計算機組織與結構›Ch5 管線化(Pipeline)第 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 Order | Completed at cycle? |
|---|---|
| ADD R2, R1, R3 | 5 |
| 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 Order | Completed at cycle? |
|---|---|
| ADD R2, R1, R3 | 5 |
| 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)