当前位置:问答库>考研试题

2018年北京市培养单位资源与环境学院866计算机原理[专业硕士]之计算机组成原理考研核心题库

  摘要

一、简答题

1. 某机器中有16个通用寄存器,运行某中断处理程序时仅用到其中2个寄存器,请问响应中断而进入该中断处理程序时是否要将通用寄存器内容保存到主存中去? 需保存几个寄存器?

【答案】(1)要将通用寄存器内容保存到主存中去。

(2)中断服务程序中要使用的通用寄存器原内容保存到存储器中,中断服务程序要动用哪个寄存器,就保存哪个,所以需要保存2个。

2. 何谓分布式仲裁? 画出逻辑结构示意图进行说明。

【答案】分布式仲裁不需要集中的总线仲裁器,每个潜在的主方功能模块都有自己的仲裁号和仲裁器。当它们有 总线请求时,把它们唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将仲裁总线上得到的号与自己的号进行 比较。如果仲裁总线上的号大,则它的总线请求不予响应,并撤消它的仲裁号。最后,获胜者的仲裁号保留在仲 裁总线上。显然,分布式仲裁是以优先级仲裁策略为基础。逻辑结构如图所示:

图 分布式仲裁的逻辑结构示意图

二、分析题

3. 假设一条指令的指令周期分为取指令、指令译码、执行指令三个子过程段,且这三个子过程延迟时间相等,即每个子过程延迟时间都为T 。假设某程序共同n=10000条指令,请写出如下两种情况下CPU 执行该程序所需的时间,画出时空图。

(1)指令顺序执行方式;

(2)指令流水执行方式。

【答案】(1)指令顺序执行方式如图1所示。

图1指令顺序执行方式

执行n 条指令的总时间为

线中同时有3 条指令在执行,故 其中2T 是填满流水线的时间。

(2)指令流水执行方式如图2所示。执行n 条指令的总时间为:2T 时间延迟后,CPU 流水

图2指令流水执行方式

4. 设变量h 放在寄存器

代码。C 赋值语句是;

【答案】虽然C 语句只有一个相加的操作,但是两个操作数均在存储器中,因此需要更多的ARM 指令。首先用取字(LDR )指令访问存储器单元

存器最后用存字(STR )指令将寄存器,位移量为然后用ADD 指令将放在寄中的结果写到存储器单元此时寄存器作为基地址数组A 的基值放在寄存器r3, 请将下面c 语句翻译成ARM 汇编语言因ARM 也是字节寻址。3条ARM 汇编语言指令形式如下:

三、综合应用题

5. 已知存储周期主存存储周期主存系统平均访问时间主存系统平均访问时间为而

求的命中率是多少? 【答案】已知所以有

6. 设计一个带有原码阵列乘法器(使用芯片)和原码阵列除法器(使用芯片)的定点运算器。

【答案】设输入的数据为X 和Y ,则会把数据驱动到原码乘法器和原码除法器芯片上,但它是通过操作控制信号选通相应的信号进行指定的运算的,因此设计如图所示。

7. 若设备的优先级依次为

配置图。

【答案】每个设备有自己唯一的设备号其中的设备具有最高优先级。

扫描仪、硬盘、磁带机、打印机,请用进行配置,画出

8. 用单链表保存m 个整数,节点的结构为删除其余绝对值相等的节点。

例如若给定的单链表head 如下

且(II 为正整数)。现要求设计一个时间复杂度尽可能高效地算法,对于链表中绝对值相等的节点,仅保留第一次出现的节点而

删除节点后的head 为

要求

(1)给出算法的基本思想

(2)使用c 或C++语言,给出单链表节点的数据类型定义。