01 / 導讀
導讀
引用
Shen, J. P., & Lipasti, M. H. (2013). Modern Processor Design: Fundamentals of Superscalar Processors. Waveland Press.
章節概要
全書共十一章,Waveland版約640頁。從目錄即可看出清晰的遞進:處理器設計與管線回顧,處理器周邊的記憶體與I/O系統,超標量的核心內容,兩個詳細案例研究加上對商用設計的綜述,最後是高階技術與多執行緒。每章末尾都有作業題。
第1章:處理器設計
開篇一章涵蓋微處理器的演變、指令集處理器設計、處理器效能原理以及指令層級平行處理。它為全書定下框架:每個週期執行多條指令。
第2章:管線處理器
本章講述管線基礎、管線處理器設計以及深度管線處理器,是後面超標量各章的基礎。
第3章:記憶體與I/O系統
第3章從系統概覽以及延遲與頻寬這兩個關鍵概念講起,隨後涵蓋記憶體階層、虛擬記憶體系統、記憶體階層的實現以及輸入/輸出系統。
第4章:超標量組織
本章從標量管線的侷限講起,繼而描述從標量到超標量管線的過渡,並給出超標量管線的概覽。
第5章:超標量技術
全書的技術核心按「流」的類別組織:指令流技術、暫存器資料流技術和記憶體資料流技術。
第6–7章:PowerPC 620;Intel的P6微架構
兩個案例研究。第6章透過實驗框架依次考察PowerPC 620的指令擷取、派發、執行和完成,給出觀察結論,並過渡到IBM POWER3和POWER4。第7章描述P6管線,包括循序前端、亂序核心、引退和記憶體子系統。
第8章:超標量處理器綜述
綜述超標量處理器的發展、對近期設計的分類、各處理器的描述,以及超標量處理器的驗證。
第9–10章:高階指令流技術;高階暫存器資料流技術
第9章涵蓋靜態、動態和混合分支預測以及其他指令流問題。第10章介紹值區域性性與冗餘執行,以及不使用和使用推測來利用值區域性性的技術。
第11章:執行多個執行緒
最後一章涵蓋共享記憶體執行緒的同步、多處理器系統導論、顯式和隱式多執行緒處理器,以及同一執行緒的重複執行。
核心概念
第1–3章:基礎
- 處理器效能與指令層級平行:效能原理,以及每週期執行多條指令的思想。
- 管線:讓指令執行的各階段相互重疊,包括深度管線設計。
- 延遲與頻寬;記憶體階層:記憶體與I/O系統的關鍵概念。
第4–5章:超標量處理器
- 超標量管線:每一級都能處理多條指令的管線。
- 指令流、暫存器資料流與記憶體資料流:組織第5章核心技術的三種「流」。
第6–8章:案例研究與綜述
- 亂序核心與引退:透過PowerPC 620和Intel P6來描述。
第9–11章:進階主題
- 分支預測:靜態、動態與混合預測器。
- 值區域性性:利用重複出現的值,包括使用和不使用推測兩種方式。
- 多執行緒:顯式和隱式多執行緒處理器。
評析
優點
- 框架清晰。 出版社把本書描述為概念清楚、表述精確,把複雜的做法提煉為基本原理,研究生和本科生都能讀懂。章節結構體現了這一點:指令流、暫存器流和記憶體流為主要技術提供了統一的分類。
- 先講基礎,再看案例。 第4、5章講解原理,第6–8章再把它們應用到具體設計和綜述中。兩個案例研究加上對商用超標量處理器的綜述,讓讀者看到真實設計如何權衡取捨。
- 高階技術獨立成章。 分支預測(第9章)、值區域性性技術(第10章)以及多執行緒與多處理器(第11章)與核心內容分開,便於選讀。
- 練習題。 每章末尾都有作業題,出版社稱它們為新興技術打下基礎。
侷限
- 案例研究有其年代。 詳細研究的是PowerPC 620和Intel P6,而Waveland版標註的版權年份為2005年,因此涉及具體設計的章節描述的是當時的處理器。應把它們看作原理的示例,而不是當今硬體的寫照。
- 本書假定讀者已有先修知識。 第1–3章回顧了處理器設計、管線和儲存,因此本書最好在已經學過指令集、簡單管線和快取記憶體的計算機組成課程之後閱讀,並具備基本的數字邏輯知識。
- 焦點較窄。 主題是單個超標量處理器的微架構,結尾涉及多執行緒;向量與資料平行硬體、GPU或能耗等主題不在章節標題之列。
在課程中的定位
在本課程書單中,Modern Processor Design 是講解微架構的深入讀物。Charles Petzold 的 Code 與 Nisan、Schocken 的 The Elements of Computing Systems 是從邏輯閘和邏輯電路出發構建計算機的平緩入門;Harris 與 Harris 的 Digital Design and Computer Architecture: RISC-V Edition 帶讀者從數字邏輯一路到管線處理器及其儲存系統;Bryant 與 O'Hallaron 的 Computer Systems: A Programmer's Perspective 從軟體一側認識機器;Hennessy 與 Patterson 的 Computer Architecture: A Quantitative Approach 則是更寬泛、以效能與能耗為導向的論述,涵蓋指令層級和資料級平行、記憶體階層、多核處理器和倉儲級系統。
Shen 與 Lipasti 是講處理器微架構的專門著作:在理解基本管線之後,想系統瞭解超標量處理器如何工作時閱讀,或與 Hennessy 和 Patterson 中關於指令層級平行的內容對照閱讀。
如何使用本書
本書面向已修完計算機組成課程的研究生和高年級本科生。
建議的學習安排:
- 核心: 第1、2章快速回顧,然後認真讀第4、5章。其中包含後文所依賴的超標量思想。
- 輔助: 第3章,講記憶體與I/O系統,是理解記憶體資料流所需的內容。
- 案例研究: 讀完第5章後,細讀第6章或第7章之一作為例項,把第8章當作可瀏覽的綜述。
- 高階: 第9章(分支預測)是自然的後續;第10、11章可按興趣選讀。
- 練習: 做每章末尾的作業題,並重新畫出案例研究中的管線圖,以確認指令流的每一步。
