本书是一本系统介绍各种类型微处理器体系结构的教材。作者从与传统的微处理器教材不同的视角,根据自身多年的设计实践与教学经验,全面探讨了包括随机逻辑体系结构、MSPARC随机逻辑结构、微码体系结构和流水线体系结构等在内的多种微处理器体系结构的特性,以及它们在软硬件设计方面所面临的各种问题,在相应章节给出了各类微处理器的VHDL代码以及其行为验证实验,供读者借助电子设计自动化(EDA)工具进行实际仿真模拟实践。本书配有相关习题,方便读者复习每章出现的概念,从而使读者能逐步掌握书中内容并快速地开始设计。
本书适合作为高等院校集成电路设计相关专业工程硕士的教材,并可以作为微处理器硬件与软件设计相关专业高年级本科生和研究生的教材。
样章试读
目录
- 丛书序
前言
第1章 引言
1.1 电子技术及计算机的发展
1.1.1 计算机体系结构的历史回顾
1.1.2 微电子学的成长与处理器的发展
1.1.3 现代计算机的分类
1.2 微处理器体系结构简介
1.2.1 随机逻辑体系结构
1.2.2 微码体系结构
1.2.3 流水线体系结构
1.3 习题
第2章 随机逻辑体系结构
2.1 随机逻辑体系结构的特点
2.1.1 逻辑门的最小化
2.1.2 优化硬件时序以增强性能
2.1.3 限制于采用简单的指令集
2.2 随机逻辑体系结构的操作
2.2.1 取指令操作
2.2.2 执行指令操作
2.3 使用时序方法以增强随机逻辑体系结构的性能
2.3.1 随机逻辑体系结构中的取指时钟周期及执行时钟周期
2.3.2 使用不同长度的单个时钟周期
2.3.3 使用不同数目的多个时钟周期
2.3.4 时序方法的性能分析
2.4 MSPARC 的指令集
2.4.1 随机逻辑体系结构指令集的设计
2.4.2 MSPARC 的指令集
2.5 性能分析
2.6 习题
第3章 MSPARC 随机逻辑结构的VHDL 模拟模型
3.1 配置模块
3.2 顶层系统模块
3.3 CPU 模块
3.3.1 控制单元模块
3.3.2 寄存器堆及其他模块
3.4 ROM 模块
3.5 VHDL 模型的仿真
3.5.1 VHDL 模型仿真的指令流
3.5.2 仿真结果
3.6 实验1 :随机逻辑结构CPU 的设计和验证
3.6.1 简介
3.6.2 设定工具环境
3.6.3 随机逻辑结构CPU 的设计信息
3.6.4 验证设计
3.7 实验2 :执行指令的仿真操作
3.7.1 简介
3.7.2 验证实验1 : 设置寄存器指令的仿真操作
3.7.3 验证实验2 : ALU与逻辑指令的仿真操作
3.7.4 验证实验3 : 存储器访问指令的仿真操作
3.8 习题
第4章 微码体系结构
4.1 微码体系结构的特点
4.2 微码机器操作
4.2.1 具有单一数据总线、3 个寄存器、与使用直接寻址的微码机器
4.2.2 具有4 个寄存器使用索引寻址的微码机
4.3 微码结构与随机逻辑结构的比较
4.3.1 指令集的改变导致不同的硬件设计开销
4.3.2 两种结构的性能比较
4.3.3 现代微码机器的应用
4.4 习题
第5章 流水线体系结构
5.1 流水线体系结构的特性
5.2 流水线结构的操作
5.2.1 四阶段流水线的操作
5.2.2 流水线结构与微码结构的比较
5.2.3 流水线阶段与超流水线阶段的比较
5.2.4 可视化的流水线阶段
5.3 MINI-SPARC 流水线结构的VHDL 模拟模型
5.3.1 Mini-SPARC 的特性
5.3.2 配置模块
5.3.3 顶层系统模块
5.3.4 CPU 模块
5.4 实验3 :流水线结构CPU 的设计和验证
5.4.1 流水线结构CPU 的设计信息
5.4.2 验证设计
5.5 实验4 :执行流水线结构指令的实验
5.6 习题
第6章 流水线结构的冲突
6.1 数据冲突
6.1.1 数据冲突的两种来源
6.1.2 数据冲突的三种形式
6.1.3 使用数据旁路以减少写后读冲突
6.1.4 将数据旁路加入到Mini-SPARC 的VHDL 模型
6.1.5 无数据旁路的Mini-SPARC 模拟
6.1.6 使用数据旁路的Mini-SPARC 模拟
6.2 控制冲突
6.2.1 控制冲突的来源——— 分支损失
6.2.2 使用分支预测以减少控制冲突
6.2.3 当分支目标被正确预测时的操作
6.2.4 当分支目标被错误预测时的操作
6.2.5 使用延迟分支以减少控制冲突
6.2.6 未采用数据和控制冲突改善时的性能分析——— 微观式的阶段性能和宏观式的统计性能
6.2.7 使用数据旁路时的性能增强
6.2.8 使用数据旁路、分支预测和延迟分支时的性能增强
6.3 结构冲突
6.4 使用统一存储器的计算机系统性能增强的分析
6.4.1 不使用任何增强措施(无预取队列等)的计算机系统
6.4.2 仅使用预取队列增强措施的计算机系统
6.4.3 仅使用数据旁路增强措施的计算机系统
6.4.4 使用数据旁路、分支预测与延迟分支等增强措施,但无预取队列的计算机系统
6.5 习题
第7章 Cache(高速缓冲存储器)
7.1 存储器系统
7.1.1 微处理器的速度超过动态随机取存存储器
7.1.2 微计算机系统中的动态随机取存存储器
7.1.3 计算机系统中的存储器层次结构
7.2 Cache 结构的分类
7.2.1 全相联Cache
7.2.2 直接映射Cache
7.2.3 组相联Cache
7.3 指令Cache 的结构
7.3.1 指令预取队列的使用
7.3.2 指令Cache 的总线介面接口
7.4 Cache 的操作
7.4.1 直接映射Cache 的操作
7.4.2 两路组相联Cache 的操作
7.4.3 Cache 被分支指令访问时的操作
7.4.4 Cache 的两种写入策略
7.5 Cache 缺失
7.5.1 Cache 缺失的三种类型
7.5.2 强制性缺失率、容量缺失率与Cache 容量之间的关系
7.5.3 冲突缺失率与相联度之间的关系
7.5.4 Cache 的总缺失率与Cache 容量之间的关系
7.5.5 Cache 的局部性原理
7.6 Cache 的性能分析
7.6.1 仅使用L1 级Cache 系统的性能分析
7.6.2 使用L1 级及L2 级Cache 系统的性能分析
7.7 习题
第8章 虚拟存储器
8.1 虚拟存储器的特性
8.1.1 虚拟存储器与物理存储器之比较
8.1.2 虚拟存储器的页面容量
8.1.3 虚拟存储器对于缺页的处理
8.1.4 虚拟存储器的调页法及按需调页法
8.2 通过快表快速查找虚拟存储器所映射的地址
8.2.1 快表及Cache 的寻址结构
8.2.2 虚拟索引-物理标记的非全相联Cache 及TLB 的总体操作
8.3 虚拟存储器的性能分析
8.4 习题
第9章 超标量体系结构
9.1 超标量体系结构的特点
9.2 超标量结构操作
9.2.1 取指令操作
9.2.2 指令的发射操作与执行操作
9.3 超标量结构的数据冲突
9.3.1 读后写(WAR)和写后写(WAW)数据冲突
9.3.2 顺序完成的指令执行过程
9.3.3 乱序完成的指令执行过程
9.4 使用写缓冲器以减低存储器存入操作的暂停时间
9.5 性能分析
9.5.1 超标量系统的性能分析
9.5.2 具有虚拟存储器的超标量系统的性能分析
9.6 习题
第10章 用软件编译辅助改善硬件性能
10.1 通过循环展开以减少分支损失
10.1.1 原循环代码的执行
10.1.2 循环代码的展开及其执行
10.2 通过重新调度代码减少数据冲突
10.3 通过软件流水线化减少数据的相关性
10.3.1 流水线化指令流的执行过程
10.3.2 流水线化中的起始代码和结束代码
10.4 具有编译器辅助的超标量系统的性能分析
10.5 习题
附录A 重要术语
附录B VHDL模拟模型代码
B.1 MSPARC 随机逻辑结构的VHDL 模拟模型代码
B.1.1 Configuration VHDL Code (..\rtl_rl\cfg_random)
B.1.2 Interfaces of VHDL Modules
B.1.3 Top Level System VHDL Code (..\rtl_rl\cpu_sys)
B.1.4 CPU Block VHDL Code (..\rtl\L1_sys_entity ,..\rtl\L1_sys_arc)
B.1.5 Control VHDL Code (../rtl_rl/control)
B.1.6 regfile VHDL Code (../rtl/regfile)
B.1.7 alu VHDL Code (../rtl/alu)
B.1.8 MUX VHDL Code (../rtl/mux2 ,../rtl/mux4)
B.1.9 ROM VHDL Code (../rtl/rom64x16)
B.1.10 DRAM VHDL Code (..\rtl\ram64x8)
B.2 MINI-SPARC 流水线结构的VHDL 模拟模型代码
B.2.1 Configuration VHDL Code (../rtl_pipe/cfg_pcpu)
B.2.2 Interfaces of VHDL Modules
B.2.3 CPU Block and Pipeline Stages VHDL Code (pcpu.arc)
B.2.4 Fetch Process VHDL Code (../rtl_pipe/fetch_arc)
B.2.5 Decode Process VHDL Code (../rtl_pipe/decode_arc)
B.2.6 Execute Process VHDL Code (../rtl_pipe/execute_arc)
B.2.7 Memory Process VHDL Code (../rtl_pipe/memory_arc)
B.2.8 Write Process VHDL Code (../rtl_pipe/ write_arc)
B.3 MINI-SPARC 超标量体系结构的VHDL 模拟模型代码(../rtl_ss/sscpu)