計算機組織與結構›Ch5 管線化(Pipeline)
第 44 題/共 58 題
◀ CC 44/58
44. Pipeline Hazard、Forwarding、Branch Resolution、Predict-Taken
#CC-05-044難Pipeline HazardForwardingBranch ResolutionPredict-Taken

假設以下 MIPS 程式碼在一個具有 5 級管線(5-stage pipeline)與「預測跳躍」(predict-taken)分支預測器的管線化處理器上執行。

Label1: ADD R2, R1, R3
        BEQ R2, R0, Label2   # not taken once, then taken
        LW  R3, 0(R2)
        BEQ R3, R0, Label1   # taken
        ADD R1, R3, R1
Label2: SW  R1, 0(R2)

實際的指令執行順序如下:

ADD R2, R1, R3
BEQ R2, R0, Label2   # not taken
LW  R3, 0(R2)
BEQ R3, R0, Label1   # taken
BEQ R2, R0, Label2   # taken
SW  R1, 0(R2)

(a) [5%] 假設「沒有」forwarding,也沒有延遲槽(delay slots)。分支結果在 EX 階段才確定。請在你的答案卷上畫出下表,並標出每個指令完成(completed)的週期,假設第一個指令在第 5 週期完成(提示:畫出這段程式碼的管線執行圖)

Execution OrderCompleted at cycle?
ADD R2, R1, R35
BEQ R2, R0, Label(1)
LW R3, 0(R2)(2)
BEQ R3, R0, Label1(3)
BEQ R2, R0, Label2(4)
SW R1, 0(R2)(5)

(b) [10%] 假設有「完整」(FULL)forwarding,也沒有延遲槽。分支結果在 ID 階段就確定。請在你的答案卷上畫出下表,並標出每個指令完成的週期,假設第一個指令在第 5 週期完成(提示:畫出這段程式碼的管線執行圖)

Execution OrderCompleted at cycle?
ADD R2, R1, R35
BEQ R2, R0, Label(1)
LW R3, 0(R2)(2)
BEQ R3, R0, Label1(3)
BEQ R2, R0, Label2(4)
SW R1, 0(R2)(5)
📄 成大111
跳轉到第題
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch5 管線化(Pipeline)
本章題號 · 41–58 / 58