对于家庭作业,我们得到了序列:
ADD $r0, $r1, -> $r2
SUB $r4, $r0, -> $r3
AND $r5, $r0, -> $r6
OR $r7, $r0, -> $r8
XOR $r9, $r0, -> $r10
遵循IF,ID,EX,MEM,WR阶段。
首先,我们必须确定依赖关系。我做到了(我相信)。
其次,识别危险及其类型。我想我已经做到了这一点。
第三步“iii。评估执行所有给定的五条指令所需的周期数和相应的CPI(每条指令的周期数)”
引用image here,我回答了
“如表7所示,完成所有五个(ADD,SUB,AND,OR,XOR)指令需要17个周期。 由于每条指令都依赖于$ r0,因此随着它们的进展,它们需要更长的时间。
ADD - 5 CPI SUB - 7 CPI AND - 9 CPI 或 - 11 CPI XOR - 13 CPI“
第四部分我很困惑。说
“iv。建议使用一种技术来消除这些类型的危害。绘制新的多周期管道图并计算新的CPI。”
如果有任何帮助,我会非常感激。
答案 0 :(得分:0)
首先,我没有在您发布的说明中看到任何依赖关系。此外,我不太清楚他们的意思是消除危害。
但是,您可以尝试的一种技术是转发。由于这些都是算术指令,因此它们在EX阶段之后完成。因此,您可以将ALU计算的值从MEM转发到EX或WB转发到EX。其中EX是下一条指令的执行阶段。