考虑以下CPU的数据路径。
ALU,总线和数据路径中的所有寄存器的大小都相同。包括PC和GPR增量在内的所有操作都将在ALU中进行。存储器读取操作需要两个时钟周期–第一个时钟周期用于将数据加载到MAR中,第二个时钟周期用于将数据从存储器总线加载到MDR中
指令“ add R0,R1”具有寄存器传输解释R0 <= R0 + R1。该指令执行周期所需的最小时钟周期数是。
(A) 2
(B) 3
(C) 4
(D) 5答案: (B)
解释:
从图中可以清楚地看出,在ALU执行任何操作之前,必须将操作数加载到S&T寄存器中。将操作数从R 0和 R 1至S&T需要两个时钟周期。还假定ALU和寄存器具有相同的大小,因此可以在仅需要一个时钟周期的单级中执行操作(如果操作数的大小大于ALU,则将操作数拆分,然后将操作数除以ALU)。操作分阶段执行)。
1)S <= R 0 :将操作数从R 0移至S寄存器。
2)T <= R 1 :将操作数从R 1移至S寄存器。
3)R 0 <= S + T:添加操作数并存储回R 0中。
因此,对于执行阶段来说,需要3个时钟周期。
这个问题的测验
这个问题的测验