更新时间:2023-11-02 20:02:03
封面
版权信息
作者简介
序
前言
第1章 CPU架构与流水线技术概述
1.1 复杂指令集与精简指令集概述
1.2 ARM指令集概述
1.2.1 条件执行与跳转类指令定义
1.2.2 数据处理与访存类指令定义
1.3 RISC-V指令集概述
1.3.1 寄存器结构与特权模式定义
1.3.2 RISC-V指令概述
1.4 MIPS指令集概述
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.5 TLB与缓存的组织方式
2.6 微操作缓存与循环缓冲器设计
2.7 指令提取单元设计
2.8 指令译码单元设计
2.8.1 RISC指令译码设计
2.8.2 x86指令格式概述
2.8.3 x86指令译码设计
第3章 分支预测单元设计
3.1 分支预测的原理
3.2 分支跳转方向预测
3.2.1 基于饱和计数器的预测器设计
3.2.2 TAGE预测器及其衍生设计
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.1 SRT算法原理与实现
7.4.2 Newton-Raphson迭代法原理与实现
7.4.3 Goldschmidt迭代法原理与实现
第8章 访存单元设计
8.1 内存模型概述
8.1.1 内存类型概述
8.1.2 内存格式概述
8.1.3 内存的访问顺序
8.1.4 内存指令概述
8.2 数据缓存概述
8.2.1 数据缓存层次概述