《高性能超標量CPU:微架構剖析與設計》基于當前主流的高性能CPU設計規(guī)格,全面介紹了高性能超標量CPU微架構的設計,并做出對應的分析。主要內容包括業(yè)界主流高性能處理器架構及超標量流水線背景知識(第1章);CPU前端,包括指令提取單元、分支預測單元、指令譯碼單元的設計和優(yōu)化,以及指令緩存的相關設計(第2、3章);分支預測單元的原理、設計和優(yōu)化,寄存器重命名與發(fā)射隊列的原理和設計(第4、5章);執(zhí)行單元與浮點運算單元的設計實現(第6、7章);訪存單元與數據緩存設計(第8章);重排序緩沖的原理及設計(第9章);Intel P6 CPU微架構設計實例(第10章)。微架構設計對應于指令的生命周期,為讀者提供直觀和清晰的視角,便于讀者對高性能CPU設計深入理解。
《高性能超標量CPU:微架構剖析與設計》提供了高清學習視頻,讀者可以直接掃描二維碼觀看。
《高性能超標量CPU:微架構剖析與設計》可作為從事高性能CPU相關研發(fā)工作專業(yè)人員的參考書,或用作高等院校計算機及集成電路相關專業(yè)研究生和高年級本科生的教學參考用書,也可供對CPU設計感興趣的讀者閱讀。
序
前言
第1章 CPU架構與流水線技術概述
1.1復雜指令集與精簡指令集概述
1.2ARM指令集概述
1.2.1條件執(zhí)行與跳轉類指令定義
1.2.2數據處理與訪存類指令定義
1.3RISC-V指令集概述
1.3.1寄存器結構與特權模式定義
1.3.2RISC-V指令概述
1.4MIPS指令集概述
1.5超標量CPU設計概述
1.5.1流水線技術概述
1.5.2超長指令字設計
第2章 CPU前端與指令緩存設計
2.1內存的層次結構與緩存的基本架構
2.2指令緩存分類與訪問讀取
2.2.1指令緩存結構的分類
2.2.2指令緩存的訪問讀取
2.3指令緩存的替換策略選擇
2.3.1基于新近的策略設計
2.3.2基于頻率的策略設計
2.3.3近少常使用策略設計
2.4指令緩存的性能衡量標準與硬件預取設計
2.5TLB與緩存的組織方式
2.6微操作緩存與循環(huán)緩沖器設計
2.7指令提取單元設計
2.8指令譯碼單元設計
2.8.1RISC指令譯碼設計
2.8.2x86指令格式概述
2.8.3x86指令譯碼設計
第3章 分支預測單元設計
3.1分支預測的原理
3.2分支跳轉方向預測
3.2.1基于飽和計數器的預測器設計
3.2.2TAGE預測器及其衍生設計
3.2.3感知機預測器設計
3.3分支跳轉目標預測
3.3.1分支目標緩沖與分支目標緩沖子系統(tǒng)設計
3.3.2返回地址棧設計
3.3.3循環(huán)預測器設計
3.3.4間接跳轉分支指令預測設計
3.4分支預測單元與取指令單元解耦合設計
3.5分支預測單元的設計思路
第4章 寄存器重命名單元設計
4.1寄存器重命名技術概述
4.2寄存器重命名的原理與過程概述
4.2.1發(fā)射隊列前讀寄存器重命名設計
4.2.2發(fā)射隊列后讀寄存器重命名設計
4.3寄存器重命名技術的設計空間
4.3.1寄存器重命名的范圍與結構
4.3.2重命名緩沖的類型
4.3.3寄存器重命名緩沖的數量設計
4.3.4重命名緩沖的讀寫端口設計
4.4寄存器重命名的映射方法
4.5寄存器重命名可能的實現方案
4.6寄存器重命名的實現過程
第5章 發(fā)射隊列設計
5.1發(fā)射隊列的原理
5.2發(fā)射隊列設計空間
5.2.1發(fā)射隊列的范圍與結構
5.2.2發(fā)射隊列的類型與結構參數
5.3操作數獲取策略
5.3.1發(fā)射隊列前讀寄存器與發(fā)射隊列后讀寄存器策略
5.3.2整型和浮點寄存器分開的操作數獲取策略
5.3.3發(fā)射隊列前讀寄存器與發(fā)射隊列后讀寄存器的比較
5.4發(fā)射隊列的工作機制
5.5發(fā)射隊列在超標量CPU中的應用
第6章 執(zhí)行單元設計
6.1算術邏輯運算單元設計
6.1.1加減法類與移位類指令的實現
6.1.2前導零檢測指令實現
6.2定點乘法運算設計
6.2.1部分積生成器實現
6.2.2部分積壓縮器實現
6.3單指令多數據SIMD設計
6.4旁路網絡設計
第7章 浮點運算單元設計
7.1浮點數據格式與運算標準——IEEE754
7.2浮點加法運算原理與設計
7.2.1浮點加法數據流設計
7.2.2雙路徑算法原理與實現
7.2.3前導零預測編碼原理與實現
7.2.4并行糾錯樹原理與實現
7.3浮點乘法運算原理與設計
7.4浮點除法開方運算原理與設計
7.4.1SRT算法原理與實現
7.4.2Newton-Raphson迭代法原理與實現
7.4.3Goldschmidt迭代法原理與實現
第8章 訪存單元設計
8.1內存模型概述
8.1.1內存類型概述
8.1.2內存格式概述
8.1.3內存的訪問順序
8.1.4內存指令概述
8.2數據緩存概述
8.2.1數據緩存層次概述
8.2.2緩存技術的應用與發(fā)展
8.3數據緩存控制設計
8.3.1訪存控制結構概述
8.3.2Load指令執(zhí)行流程
8.3.3Store指令執(zhí)行流程
8.3.4Load Store交織執(zhí)行流程
8.4數據緩存預取技術
8.4.1數據緩存硬件預取原理
8.4.2數據緩存硬件預取結構
8.4.3數據緩存硬件預取模式
第9章 重排序緩沖設計
9.1重排序緩沖的原理
9.2重排序緩沖的設計空間
9.2.1重排序緩沖的范圍布局與對執(zhí)行結果的存儲
9.2.2重排序緩沖的條目與端口數量
9.3重排序緩沖運行示例
第10章 高性能CPU設計實例:Intel P6微架構
10.1Intel P6微架構概述
10.2Intel P6微架構的流水線設計
10.3Intel P6微架構前端設計
10.3.1指令提取單元設計
10.3.2分支預測單元設計
10.3.3指令譯碼單元設計
10.3.4寄存器別名表設計
10.3.5分配器設計
10.4Intel P6微架構亂序執(zhí)行引擎設計
10.4.1保留站設計
10.4.2重排序緩沖設計
10.4.3P6微架構亂序執(zhí)行示例
10.5Intel P6微架構內存子系統(tǒng)設計