第1章 超標量處理器概覽
1.1 為什麼需要超標量
1.2 普通處理器的流水綫
1.2.1 流水綫概述
1.2.2 流水綫的劃分
1.2.3 指令間的相關性
1.3 超標量處理器的流水綫
1.3.1 順序執行
1.3.2 亂序執行
第2章 Cache
2.1 Cache的一般設計
2.1.1 Cache的組成方式
2.1.2 Cache的寫入
2.1.3 Cache的替換策略
2.2 提高Cache的性能
2.2.1 寫緩存
2.2.2 流水綫
2.2.3 多級結構
2.2.4 Victim Cache
2.2.5 預取
2.3 多端口Cache
2.3.1 True Multiport
2.3.2 Multiple Cache Copies
2.3.3 Multibanking
2.3.4 真實的例子: AMD Opteron的多端口Cache
2.4 超標量處理器的取指令
第3章 虛擬存儲器
3.1 概述
3.2 地址轉換
3.2.1 單級頁錶
3.2.2 多級頁錶
3.2.3 Page Fault
3.2.4 小結
3.3 程序保護
3.4 加入TLB和Cache
3.4.1 TLB的設計
3.4.2 Cache的設計
3.4.3 將TLB和Cache放入流水綫
第4章 分支預測
4.1 概述
4.2 分支指令的方嚮預測
4.2.1 基於兩位飽和計數器的分支預測
4.2.2 基於局部曆史的分支預測
4.2.3 基於全局曆史的分支預測
4.2.4 競爭的分支預測
4.2.5 分支預測的更新
4.3 分支指令的目標地址預測
4.3.1 直接跳轉類型的分支預測
4.3.2 間接跳轉類型的分支預測
4.3.3 小結
4.4 分支預測失敗時的恢復
4.5 超標量處理器的分支預測
第5章 指令集體係
5.1 復雜指令集和精簡指令集
5.2 精簡指令集概述
5.2.1 MIPS指令集
5.2.2 ARM指令集
5.3 Load/Store指令
5.3.1 Load指令
5.3.2 Store指令
5.4 計算指令
5.4.1 加減法
5.4.2 移位指令
5.4.3 邏輯指令
5.4.4 乘法指令
5.4.5 乘纍加指令
5.4.6 特殊計算指令
5.5 分支指令
5.6 雜項指令
5.7 異常
第6章 指令解碼
6.1 指令緩存
6.2 一般情況
6.3 特殊情況
6.3.1 分支指令的處理
6.3.2 乘纍加/乘法指令的處理
6.3.3 前/後變址指令的處理
6.3.4 LDM/STM指令的處理
6.3.5 條件執行指令的處理
第7章 寄存器重命名
7.1 概述
7.2 寄存器重命名的方式
7.2.1 使用ROB進行寄存器重命名
7.2.2 將ARF擴展進行寄存器重命名
7.2.3 使用統一的PRF進行寄存器重命名
7.3 重命名映射錶
7.3.1 基於SRAM的重命名映射錶
7.3.2 基於CAM的重命名映射錶
7.4 超標量處理器的寄存器重命名
7.4.1 解決RAW相關性
7.4.2 解決WAW相關性
7.5 寄存器重命名過程的恢復
7.5.1 使用Checkpoint
7.5.2 使用WALK
7.5.3 使用Architecture State
7.6 分發
第8章 發射
8.1 概述
8.1.1 集中式VS分布式
8.1.2 數據捕捉VS非數據捕捉
8.1.3 壓縮VS非壓縮
8.2 發射過程的流水綫
8.2.1 非數據捕捉結構的流水綫
8.2.2 數據捕捉結構的流水綫
8.3 分配
8.4 仲裁
8.4.1 1ofM的仲裁電路
8.4.2 NofM的仲裁電路
8.5 喚醒
8.5.1 單周期指令的喚醒
8.5.2 多周期指令的喚醒
8.5.3 推測喚醒
第9章 執行
9.1 概述
9.2 FU的類型
9.2.1 ALU
9.2.2 AGU
9.2.3 BRU
9.2.4 其他FU
9.3 旁路網絡
9.3.1 簡單設計的旁路網絡
9.3.2 復雜設計的旁路網絡
9.4 操作數的選擇
9.5 Cluster
9.5.1 Cluster IQ
9.5.2 Cluster Bypass
9.6 存儲器指令的加速
9.6.1 Memory Disambiguation
9.6.2 非阻塞Cache
9.6.3 關鍵字優先
9.6.4 提前開始
第10章 提交
10.1 概述
10.2 重排序緩存
10.2.1 一般結構
10.2.2 端口需求
10.3 管理處理器的狀態
10.3.1 使用ROB管理指令集定義的狀態
10.3.2 使用物理寄存器管理指令集定義的狀態
10.4 特殊情況的處理
10.4.1 分支預測失敗的處理
10.4.2 異常的處理
10.4.3 中斷的處理
10.4.4 Store指令的處理
10.4.5 指令離開流水綫的限製
第11章 真實世界的例子: Alpha 21264處理器
11.1 概述
11.2 取指令和分支預測
11.2.1 line/way的預測
11.2.2 分支預測
11.3 寄存器重命名
11.4 發射
11.5 執行單元
11.5.1 整數的執行單元
11.5.2 浮點數的執行單元
11.6 存儲器的訪問
11.6.1 Speculative Disambiguation
11.6.2 Load hit/miss Prediction
11.7 退休
11.8 結論
參考文獻
· · · · · · (
收起)