<超標量處理器概覽> 第 10 章 - 提交

10.1 - 概述 在 out-of-order superscalar CPU 中,為了保持程式執行順序的一致性,一般通常都會在 pipeline 的最後增加一個 commit stage 當指令抵達 commit stage 時,會將這條指令在 ROB 中的 entry 標記為 complete 此時只代表這個指令已經計算完成,不代表可以離開 pipeline (i.e. retire) 指令進到 commit stage 並不代表它一定是正確的,有可能這條指令處在 mis-prediction 或是 exception 的路徑上,最後需要從 pipeline 中被 flushed 掉 只有當這條指令之前的指令都已經 retire 了,且這條指令已經是 complete 的狀態,才可以 retire 並離開 pipeline 在一條指令 retire 前,它的狀態都是 speculative 的,只有當這條指令真的 retire 後,才可以將它的狀態更新到 CPU 的 architecture state 對一個 N-way 的 superscalar,因為每個 cycle 最少可以 fetch N 條指令進 pipeline 中,pipeline 至少也需要 retire N 條指令,才能確保 pipeline 不會被堵塞 10.2 - ROB 10.2.1 - 一般架構 ROB 本質上是一個 FIFO,ROB 中儲存了指令的相關訊息,例如:一條指令的類型、結果、destination register 和 exception 的類型等 ...

2025/05/04 · 11 分鐘 · 2247 字 · Frank Chang

<超標量處理器概覽> 第 11 章 - 真實世界的例子:Alpha 21264 處理器

11.1 - 概述 DEC 的 Alpha 21264 是 superscalar CPU 的一個典範,其為 4-way out-of-order superscalar CPU,工作頻率是 466 ~ 667 MHz,benchmark:SPECint95 - 40、SPECfp95 - 86;與同時期其他的處理器 benchmark 對比: Alpha 21264 的 pipeline 最多同時支持 80 條指令,以及 80 個 checkpoints,因此對於 branch mis-prediction、exception、interrupt,Alpha 21264 都可以快速地恢復 CPU 狀態 Alpha 21264 的分支預測器實現了基於局部歷史 (Local prediction) 和基於全局歷史 (Global prediction) 兩種預測方式,並根據程式的執行情況,動態選擇預測率最高的方法,這就像是兩種分支預測方式在進行競爭一樣 對於 load/store 指令,Alpha 21264 採用了 Speculative Memory Disambiguation 和 Load hit/miss Prediction Alpha 21264 採用 7-stage pipeline,比較短的 pipeline 使 branch mis-prediction 發生時的 mis-penalty 比較低,從而提高處理器的效率: ...

2025/05/10 · 15 分鐘 · 3101 字 · Frank Chang