题目详解:
1)符号标志 SF 表示运算结果的正负性,因此 SF=F15。
对于加法运算 A+B→F,若 A、B 为负,且 F 为正,则说明发生溢出;或者,若 A、B 为正,且 F 为负,也说明发生溢出。因此,加运算时,溢出标志 OF=A15⋅B15⋅F15+A15⋅B15⋅F15。
对于减法运算 A−B→F,若 A 为负、B 为正,且 F 为正,则说明发生溢出;或者,若 A 为正、B 为负,且 F 为负,也说明发生溢出。因此,减运算时,溢出标志 OF=A15⋅B15⋅F15+A15⋅B15⋅F15。
2)因为在单总线结构中,每一时刻总线上只有一个数据有效,而 ALU 有两个输入端和一个输出端。因此,当 ALU 运算时,需要先用暂存器 Y 缓存其中一个输入端的数据,再通过总线传送另一个输入端的数据。与此同时,ALU 的输出端产生运算结果,但由于总线正被占用,因此需要暂存器 Z,以缓存 ALU 的输出端数据。
3)由图可知,rs 和 rd 都是 4bit,因此 GPRs 中最多有 24=16 个通用寄存器;rs 和 rd 来自指令寄存器 IR;rd 表示寄存器编号,应连接地址译码器。
4)取指阶段需要根据程序计数器 PC 取出主存中的指令,并将指令写入指令寄存器 R 中。控制信号序列如下:
① PCout,MARin // 将指令的地址写入 MAR
② Read // 读主存,并将读出的数据写入 MDR
③ MDRout,Rin // 将 MDR 的内容写入指令寄存器 R
步骤①需要 1 个时钟周期,步骤②需要 5 个时钟周期,步骤③需要 1 个时钟周期,因此取指令阶段至少需要 7 个时钟周期。
5)图中控制信号由控制部件(CU)产生。指令寄存器 IR 和标志寄存器 FR 的输出信号会连到控制部件的输入端。