考虑以下 CPU 的数据路径。
ALU、总线和数据路径中的所有寄存器的大小相同。所有操作包括 PC 和 GPR 的增量都将在 ALU 中执行。内存读取操作需要两个时钟周期——第一个用于在 MAR 中加载地址,下一个用于将数据从内存总线加载到 MDR
指令“add R0, R1”具有寄存器传输解释 R0 < = R0 + R1。该指令执行周期所需的最小时钟周期数为。
(一) 2
(乙) 3
(三) 4
(四) 5答案:(乙)
解释:
从图中可以清楚地看出,在 ALU 执行任何操作之前,必须将操作数加载到 S&T 寄存器中。从 R 0 & 移动操作数 R 1到S&T 需要两个时钟周期。还给出了 ALU 和寄存器的大小相同,因此操作可以在一个阶段执行,只需要一个时钟周期(如果操作数的大小大于 ALU,则操作数被拆分,并且操作分阶段进行)。
1) S <= R 0 :将操作数从 R 0移到 S 寄存器。
2) T <= R 1 : 将操作数从 R 1移到 S 寄存器。
3) R 0 <= S+T :将操作数相加并存储回 R 0。
因此,执行阶段需要 3 个时钟周期。
这个问题的测验
这个问题的测验