今有4级流水线分别完成取值、指令译码并取数、运算、送结果四步操作,现假设完成各步操作的时间依次为100 ns,100 ns,80 ns,50 ns。 请回答下列问题: (1)流水线的操作周期应设计为多少? (2)若相邻两条指令发生数

admin2019-01-16  32

问题 今有4级流水线分别完成取值、指令译码并取数、运算、送结果四步操作,现假设完成各步操作的时间依次为100 ns,100 ns,80 ns,50 ns。
    请回答下列问题:
    (1)流水线的操作周期应设计为多少?
    (2)若相邻两条指令发生数据相关,而且在硬件上不采取措施,那么第二条指令要推迟多少时间进行?
    (3)如果在硬件设计上加以改进,至少需推迟多少时间?

选项

答案(1)流水线的操作时钟周期t按四步操作中最长时间来考虑,所以t=100 ns。 (2)两条指令发生数据相关冲突情况: ADD R1,R2,R3; R2+R3→R1 SUB R4,R1,R5; R1一R5→R4 两条指令在流水线中执行情况如下表所示。 [*] ADD指令在时钟4时将结果写入寄存器堆(R1),但SUB指令在时钟3时读寄存器堆(R1)。本来ADD指令应先写入R1,SUB指令后读R1,结果变成SUB指令先读R1,ADD指令后写R1,因而发生两条指令间的数据相关,如果硬件上不采取措施,第2条指令SUB至少应推迟2个操作时钟周期(2×100 ns)。 (3)如果硬件上加以改进(采取旁路技术),可推迟1个操作时钟周期(100 ns)。

解析
转载请注明原文地址:https://kaotiyun.com/show/olRi777K
0

最新回复(0)