計算機組織與結構›Ch5 管線化(Pipeline)
第 7 題/共 58 題
◀ CC 7/58
7. RISC-V Pipeline、Branch Predictor、Branch Target Buffer
#CC-05-007難RISC-V PipelineBranch PredictorBranch Target Buffer

你正在分析一個 RISC-V 六級管線(6-stage pipeline),包含 IF (Fetch)、ID (Decode)、EX (Execute)、MEM1&MEM2 (Memory)、WB (Write-Back) 這些 stages。此管線使用 split-phase register file,寫入發生在 clock cycle 的前半段,讀取發生在後半段。使用一個 2-bit branch predictor,branch 指令在 EX stage 被解析(resolved)。處理器實作了 branch target buffer。因此,當一個 branch 被預測為 "taken" 時,目標位址也會被預測。假設這個迴圈執行 10 次迭代。考慮下列組合語言片段:

Loop:
    lw   x3, 0(x11)
    lw   x4, 0(x12)
    add  x5, x3, x4
    sw   x5, 0(x11)
    addi x11, x11, 4
    addi x12, x12, 4
    bne  x11, x13, loop

假設 predictor 初始狀態為 "Predict Non-Taken, 11",且迴圈被多次執行。一個 iteration 的執行 cycles 定義為:該 iteration 的 Instruction Fetch (IF) stage 開始,到下一個 iteration 開始其 IF stage 之間的距離(或跳出迴圈的第一個指令開始的時間)。例如,若第 i 個 iteration 在 cycle 12 開始其 IF stage,第 (i+1) 個 iteration 在 cycle 25 開始其 IF stage,則第 i 個 iteration 的總執行時間為 13 cycles。請選出正確的敘述。

題目附圖
📄 台大115
跳轉到第題
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch5 管線化(Pipeline)
本章題號 · 1–20 / 58