我们得到了这套说明:
1000 Add R3, R2, #20
1004 Subtract R5, R4, #3
1008 And R6, R4, #0x3A
1012 Add R7, R2, R4
并告知最初,注册R2
和R4
包含2000
和50
。我们正在处理一个5级流水线,其中第一条指令在时钟周期1中被取出,其余的指令在连续的循环中被取出。
我们将绘制管道并描述每个流水线阶段在时钟周期1到8期间执行的操作。我对描述正在执行的操作的含义感到困惑。这是指Add指令与Subtract指令吗?
这是我的管道:
Clock Cycle 1 2 3 4 5 6 7 8
Add R3, R2, #20 F D E M W
Subtract R5, R4, #3 F D E M W
And R6, R4, #0x3A F D E M W
Add R7, R2, R4 F D E M W
或者这是否意味着例如在第1周期我们正在获取地址1000
而在第2周期我们将值加载到R2
并在读取地址时读取立即值{{1对于新指令。第3周期我们评估1004
,同时获取R2 + #20
中的值,并在获取地址1008时立即评估。循环4 ......依此类推第四。
问题的另一部分我不确定是在第2到第8周期内描述管道中寄存器IR,PC,RA,RB,RY,RZ的内容.RA,RB,RY, RZ是流水线寄存器。