高性能超標量 CPU:微架構剖析與設計

李東聲 等著

買這商品的人也買了...

商品描述

《高性能超標量CPU:微架構剖析與設計》基於當前主流的高性能CPU設計規格,
全面介紹了高性能超標量CPU微架構的設計,並做出對應的分析。
主要內容包括業界主流高性能處理器架構及超標量流水線背景知識(第1章);
CPU前端,包括指令提取單元、分支預測單元、指令譯碼單元的設計和優化,以及指令緩存的相關設計(第2、3章);
分支預測單元的原理、設計和優化,寄存器重命名與發射隊列的原理和設計(第4、5章);
執行單元與浮點運算單元的設計實現(第6、7章);
訪存單元與數據緩存設計(第8章);
重排序緩衝的原理及設計(第9章);
Intel P6 CPU微架構設計實例(第10章)。
微架構設計對應於指令的生命週期,為讀者提供直觀和清晰的視角,便於讀者對高性能CPU設計深入理解。
《高性能超標量CPU:微架構剖析與設計》提供了高清學習視頻,讀者可以直接掃描二維碼觀看。
《高性能超標量CPU:微架構剖析與設計》可作為從事高性能CPU相關研發工作專業人員的參考書,
或用作高等院校計算機及集成電路相關專業研究生和高年級本科生的教學參考用書,也可供對CPU設計感興趣的讀者閱讀。

作者簡介

李東聲
處理器設計高級主任工程師,專注於高性能處理器微架構設計、性能分析優化與關鍵技術研究。
交付多版本國產自研高性能處理器核架構/微架構設計,申請處理器IP發明專利十餘項。

任子木
處理器架構高級工程師,主導多款高性能DSP/AI處理器架構與核心模塊設計。
諳熟業界主流高性能處理器指令集架構,在計算機體系結構、數字信號處理等方向有豐富的實踐經驗。

孫小明
處理器設計資深工程師,專注於高性能處理器微架構設計與性能分析。
曾參與國產自研高性能處理器核微架構研製和開發,對x86、ARM、RISC-V架構有深入研究和實際交付經驗。

梧桐
高性能處理器資深專家,長期從事高性能處理器Memory子系統架構研究與設計實現,
主導完成了多款國產自研高性能處理器(大核)交付,在Server和Mobile領域得到廣泛應用。

目錄大綱


前言
第1章CPU架構與流水線技術概述
1.1複雜指令集與精簡指令集概述
1.2ARM指令集概述
1.2.1條件執行與跳轉類指令定義
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微操作緩存與循環緩衝器設計
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分支目標緩衝與分支目標緩衝子系統設計
3.3.2返回地址棧設計
3.3.3循環預測器設計
3.3.4間接跳轉分支指令預測設計
3.4分支預測單元與取指令單元解耦合設計
3.5分支預測單元的設計思路
第4章寄存器重命名單元設計
4.1寄存器重命名技術概述
4.2寄存器重命名的原理與過程概述
4.2.1發射隊列前讀寄存器重命名設計
4.2.2發射隊列後讀寄存器重命名設計
4.3寄存器重命名技術的設計空間
4.3.1寄存器重命名的範圍與結構
4.3.2重命名緩衝的類型
4.3.3寄存器重命名緩衝的數量設計
4.3.4重命名緩衝的讀寫端口設計
4.4寄存器重命名的映射方法
4.5寄存器重命名可能的實現方案
4.6寄存器重命名的實現過程
第5章發射隊列設計
5.1發射隊列的原理
5.2發射隊列設計空間
5.2.1發射隊列的範圍與結構
5.2.2發射隊列的類型與結構參數
5.3操作數獲取策略
5.3.1發射隊列前讀寄存器與發射隊列後讀寄存器策略
5.3.2整型和浮點寄存器分開的操作數獲取策略
5.3.3發射隊列前讀寄存器與發射隊列後讀寄存器的比較
5.4發射隊列的工作機制
5.5發射隊列在超標量CPU中的應用
第6章執行單元設計
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緩存技術的應用與發展
8.3數據緩存控制設計
8.3.1訪存控制結構概述
8.3.2Load指令執行流程
8.3.3Store指令執行流程
8.3.4Load Store交織執行流程
8.4數據緩存預取技術
8.4.1數據緩存硬件預取原理
8.4.2數據緩存硬件預取結構
8.4.3數據緩存硬件預取模式
第9章重排序緩衝設計
9.1重排序緩衝的原理
9.2重排序緩衝的設計空間
9.2.1重排序緩衝的範圍佈局與對執行結果的存儲
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微架構亂序執行引擎設計
10.4.1保留站設計
10.4.2重排序緩衝設計
10.4.3P6微架構亂序執行示例
10.5Intel P6微架構內存子系統設計