1
考慮執行以下5級流水線中的指令 (IF-ID-EX-MEM-WB) 其中「SD N(R2),R1」表示從寄存器R1到存儲器位置M [N + R2],「ADD R3,R1,R2」執行操作R1 + R2並將結果存儲在R3中,並且NOP是氣泡。存儲管道危險處理
對於我所瞭解的寄存器在ID舞臺上閱讀。
所以,如果我有以下說明:
I1: SD 0(R2), R6
NOP
I2: ADD R3, R1, R2
則執行進入如下(我希望它看起來清晰)
R2 is read
^ Store M[0+R2] <- R6
^ ^
I1: | IF | ID | EX | MEM | WB |
NOP: |////|////|////|////|////|
I2: | IF | ID | EX | MEM | WB |
v
R2 is read
是否有第4次循環時I1危險是否在MEM階段,ID階段是I2,因爲兩個指令都想同時訪問R2? 或者是沒有危險,因爲R2只在ID階段讀取,因此它不在MEM階段訪問?