本书是教育部“高等教育面向21世纪教学内容和课程体系改革计划”的研究成果,是面向21世纪课程教材。本书的主要内容有:计算机体系结构的基本概念、计算机指令集结构设计、流水线技术、指令级并行技术、存储体系、输入/输出系统以及多处理机。本书比较全面和系统地接触了当今计算机体系结构的发展前沿,概念清晰,易于理解,并配有大量的实例分析。
本书可作为计算机专业本科生计算机体系结构课程的教材,也可作为计算机相关专业研究生教材,书中的内容对于从事计算机研究及相关人员亦有很好的参考价值。
第一章 计算机体系结构的基本概念
1.1 引论
1.2 计算机体系结构的概念
1.2.1 计算机系统中的层次概念
1.2.2 计算机体系结构
1.2.3 计算机组成和计算机实现技术
1.3 计算机体系结构的发展
1.3.1 存储程序计算机体系结构及其发展
1.3.2 计算机的分代和分型
1.3.3 应用需求的发展
1.3.4 计算机实现技术的发展
1.3.5 体系结构的生命周期
1.4 计算机体系结构中并行性的发展
1.4.1 并行性概念
1.4.2 提高并行性的技术途径
1.5 定量分析技术基础
1.5.1 计算机性能的评测
1.5.2 测试程序
1.5.3 性能设计和评测的基本原则
1.5.4 CPU的性能
1.6 影响计算机体系结构的成本和价格因素
1.6.1 集成电路的成本
1.6.2 计算机系统的成本和价格
1.7 小结
习题一
第二章 计算机指令集结构设计
2.1 指令集结构的分类
2.1.1 指令集结构的分类
2.1.2 通用寄存器型指令集结构分类
2.2 寻址技术
2.3 指令集结构的功能设计
2.3.I CISC计算机指令集结构的功能设计
2.3.2 RISC计算机指令集结构的功能设计
2.3.3 控制指令
2.4 操作数的类型、表示和大小
2.5 指令集格式的设计
2.5.1 寻址方式的表示方法
2.5.2 指令集格式的选择
2.6 编译技术与计算机体系结构设计
2.6.1 现代编译器的结构和相关技术
2.6.2 现代编译技术对计算机体系结构设计的影响
2.6.3 计算机体系结构对当前编译技术的影响
2.7 DLX指令集结构
2. 7.1 DLX指令集结构
2.7.2 DLX指令集结构效能分析
2.8 小结
习题二
第三章 流水线技术
3.1 流水线的基本概念
3.1.1 流水线的基本概念
3.1. 2 流水线的分类
3.2 DLX的基本流水线
3.2. 1 DLX的一种简单实现
3.2.2 基本的DLX流水线
3.2.3 流水线性能分析
3.3 流水线中的相关
3.3.1 流水线的结构相关
3.3.2 流水线的数据相关
3.3.3 流水线的控制相关
3. 4 流水线计算机实例分析(MIPSR4000)
3.4.1 MIPSR4000整型流水线
3.4.2 MIPSR4000浮点流水线
3.4.3 MIPSR4000流水线的性能分析
3.5 向量处理机
3. 5.1 向量处理方式和向量处理机
3.5.2 向量处理机实例分析
3.6 小结
习题三
第四章 指令级并行
4.1 指令级并行的概念
4.1.1 循环展开调度的基本方法
4.1.2 相关性
4.2 指令的动态调度
4.2.1 动态调度的原理
4.2.2 动态调度算法之一:记分牌
4.2.3 动态调度算法之二:Tomasulo算法
4.3 控制相关的动态解决技术
4.3.1 减少分支延迟:分支预测缓冲技术
4.3.2 进一步减少分支延迟:分支目标缓冲
4.3.3 基于硬件的推断执行
4.4 多指令流出技术
4.4.1 超标量技术
4.4.2 多指令流出的动态调度
4.4.3 超长指令字技术
4.4.4 多流出处理器受到的限制
4.5 小结
习题四
第五章 存储层次
5.1 存储器的层次结构
5.1.1 从单级存储器到多级存储器
5.1.2 存储层次的性能参数
5.1.3 "Cache-主存"和"主存-辅存"层次
5.1.4 存储层次的四个问题
5.2 Cache基本知识
5.2.1 映象规则
5.2.2 查找方法
5.2.3 替换算法
5.2.4 写策略
5.2.5 Cache的结构
5.2.6 Cache性能分析
5.2.7 改进Cache性能
5.3 降低Cache失效率的方法
5.3.1 增加Cache块大小
5.3.2 提高相联度
5.3.3 VictimCache
5.3.4 伪相联Cache
5.3.5 硬件预取技术
5.3.6 由编译器控制的领取
5.3.7 编译器优化
5.4 减少Cache失效开销
5.4.1 让读失效优先于写
5.4.2 子块放置技术
5.4.3 请求字处理技术
5.4.4 非阻塞Cache技术
5.4.5 采用两级Cache
5.5 减少命中时间
5.5.1 容量小,结构简单的Cache
5.5.2 虚拟Cache
5.5.3 写操作流水化
5.5.4 Cache优化技术小结
5.6 主存
5.6.1 存储器技术
5.6.2 提高主存性能的存储器组织结构
5.7 虚拟存储器
5.7.1 虚拟存储器基本原理
5.7.2 快表(TLB)
5.7.3 页面大小的选择
5.8 进程保护和虚存实例
5.8.1 进程保护
5.8.2 页式虚存举例:AlphAXP的存储管理和21064的TLB
5.9 AlphaAXP 21064存储层次
5.10 小结
习题五
第六章 输入输出系统
6.1 概述
6.2 存储设备
6.2.1 磁盘设备
6.2.2 磁带设备
6.2.3 光盘设备
6.3 总线
6.3.1 总线分类
6.3.2 总线基本工作原理
6.3.3 总线使用
6.3. 4 总线标准和实例
6.3.5 设备的连接
6.3.6 CPU与I/O处理的匹配
6.4 通道处理机
6.4.1 通道的作用和功能
6.4.2 通道的工作过程
6.4.3 通道种类
6.4.4 通道中的数据传送过程
6.4.5 通道的流量分析
6.5 I/O与操作系统
6.5.1 I/O和Cache数据一致性
6.5.2 DMA和虚拟存储器
6.6 I/O系统设计
6.7 小结
习题六
第七章 多处理机
7.1 引言
7.1.1 并行计算机体系结构的分类
7.1.2 通信模型和存储器的结构模型
7.1.3 通信机制的性能
7.1.4 不同通信机制的优点
7.1.5 并行处理面临的挑战
7.1.6 并行程序的计算/通信比率
7.2 多处理机的存储器体系结构
7.2.1 集中式共享存储器体系结构
7.2.2 分布式共享存储器体系结构
7.3 互连网络
7.3.1 互连网络的性能参数
7.3.2 静态连接网络
7.3.3 动态连接网络
7.4 同步与通信
7.4.1 同步机制
7.4.2 大规模机器的同步
7.5 并行化技术
7.5.1 并行化的基本策略
7.5.2 并行语言与编译器
7.6 多处理机实例
7.6.1 Challenge多处理机系统
7.6.2 Origin2000
7.7 小结
习题七
主要参考文献
本书是高等学校计算机专业本科生及研究生计算机体系结构课程的通用教材。为了适应面向2l世纪计算机类专业教学内容和课程体系改革的需要,国家教育部高等学校计算机科学与技术教学指导委员会统一组织编写了计算机科学与技术专业九五规划教材。其中,《计算机体系结构》、《计算机组成原理》和《微型计算机技术》是重点组织的系列教材。本书是该系列教材之一。
在内容的选择上,本书不打算覆盖计算机体系结构的各个方面,不想成为大而全的参考手册,而是重点论述现代大多数计算机都采用的比较成熟的思想、结构和方法等,并且力求做到深入浅出,通俗易懂。
本书除了着重论述计算机体系结构的基本概念、基本原理、基本结构和基本分析方法以外,还强调采用量化的分析方法。这种方法使我们能更具体、实际地分析和设计计算机体系结构。书中用了大量的例题说明如何进行量化分析。
本书共七章。第一章论述计算机体系结构的概念以及体系结构和并行性概念的发展,并简单地讨论影响计算机系统设计的成本和价格因素。第二章论述计算机指令集结构设计中的一些问题,包括寻址技术、指令集的功能设计、操作数的类型和大小、指令格式等,并且介绍一种指令集结构的实例———DLX。第三章为流水线技术,论述流水线的基本概念、分类以及性能计算方法,并对流水线中的相关问题以及向量计算机进行讨论。第四章为指令级并行,论述利用硬、软件技术开发程序中存在的指令间并行性的技术和方法,包括指令调度、超标量技术、分支处理技术和超长指令字技术。第五章为存储层次,论述Cache的基本知识、降低Cache失效率的方法、减少Cache失效开销的方法以及减少命中时间的方法,并对主存和虚拟存储器进行讨论。第六章为输入输出系统,论述存储设备、总线和通道,并讨论I/O与操作系统的关系以及I/O系统设计。第七章为多处理机,论述多处理机的存储器体系结构、互连网络以及同步与通信,并对并行化技术和多处理机实例进行讨论。
本书由国防科学技术大学计算机学院张晨曦教授编写第五章,王志英教授编写第七章,张春元博士编写第一章和第四章,戴葵博士编写第二章和第三章,朱海滨博士编写第六章。
本书由复旦大学朱传琪教投主审,提出了宝贵的修改意见。在本书编写过程中,得到了中国科学技术大学陈国良教授的大力支持,并得到了国防科学技术大学计算机学院领导和有关师生的多方面帮助。在此一并表示衷心的感谢。
由于作者水平有限,书中难免有错误和不妥之处,敬请读者批评指正。
本书有配套的CAI课件和PowerPoint讲稿,详见
http://www.GotoSchool.net
作 者
1999年3月于长沙