《计算机体系结构简明教程》系统地讲述了计算机体系结构的基本概念、基本原理、基本结构和基本分析方法,同时还介绍了ARM公司RISC嵌入式处理器体系结构和Intel公司嵌入式处理器和多核处理器等新内容。
全书共分7章,第1章讲述计算机系统结构的基本概念,第2章讲述数据表示与指令系统,第3章讲述输入/输出系统,第4章讲述存储体系,第5章讲述流水线和向量处理机,第6章讲述并行处理机和互连网络,第7章讲述多处理机和多计算机。
本书内容简明,通俗易懂,每章都附有学习指南和习题。
本书可作为高等院校计算机及相关专业的教材,也可以作为参加各类相关考试考生的参考用书。
计算机体系结构又称计算机系统结构。计算机体系结构是高等院校计算机专业本科生的必修内容,学习目的是以全面、系统的观点来认识计算机系统,掌握分析和设计计算机系统的方法,同时加强对其他专业知识的理解。
目前,对于计算机体系结构课程的设置,国内高校有两种情况:
(1) 单独设课,其前导课程为计算机组成原理,课程学时数一般不多。
(2) 不单独设课,内容与计算机组成原理课程合并,统称为计算机组成与结构。
《计算机体系结构简明教程》一书针对单独设课的情况,主要围绕“研究软硬件功能分配,以及如何最佳、最合理地实现分配给硬件的功能”这个中心,着重介绍基本概念、基本原理、基本结构和基本分析方法。
本书共分7章,包括计算机系统结构基础、数据表示与指令系统、输入/输出系统、存储体系、流水线和向量处理机、并行处理机和互连网络、多处理机和多计算机等章节,力求反映近几十年来在体系结构上的重要进展和现代计算机系统的发展中的一些新技术和新的分析、设计方法。
目前国内计算机体系结构方面的教材不少,但教材内容普遍偏多、偏深、偏难,随着教学课时的减少,教材内容与教学学时之间差距较大。本书强调“简明”两字,尽可能压缩内容,突出计算机系统结构的经典内容,以适应大多数学校的教学要求。同时,由于“计算机系统结构”是计算机领域中一个重要的二级学科,本书的相关内容在硕士学位研究生入学的综合考试中多有涉及。本书尽可能通俗易懂,适合自学,以适应相关考生的需要。
本书的最大特色和创新点在于,首次将移动终端广泛使用的ARM公司RISC嵌入式处理器体系结构实例内容加入书中,还增加了Intel公司嵌入式处理器和多核处理器等新内容。随着移动互联网的发展,移动终端和多核处理器已经普及,这些新内容的加入使得本书不仅具有先进性,同时具有实用性。本书的每一章前都增加了学习指南,可以帮助读者了解各章的学习要求和重点、难点。
本书的第1~3章由蒋本珊编写,第4~6章由马忠梅编写,第7章由郑宏编写。本书在写作过程中还得到了Intel和ARM公司大学计划和工程师的大力支持,在此表示衷心的感谢。
由于作者的水平有限,书中难免存在着疏误或不妥之处,恳请读者批评指正。
编者
2014年12月
蒋本珊,北京理工大学计算机科学技术学院教授,主要研究方向是嵌入式片上系统(SOPC)、软硬件协同设计。主讲“计算机组成原理”等课程二十余年,具有丰富的教学经验,多次获得北京市和北京理工大学教学优秀成果奖,被评为三育人和师德先进个人。正式出版教材和教学参考书十余本,其中1本被评为北京市精品教材,3本入选教育部普通高等教育“十一五”国家级规划教材。主持和参与科研项目5项,主持教学改革立项1项,其中主持开发的计算机组成实验多媒体教学软件获北京市高教学会优秀软件二等奖。
第1章计算机系统结构的基本概念/1
1.0学习指南/1
1.1计算机系统的多层次结构/2
1.2计算机系统结构、组成与实现/4
1.2.1计算机系统结构、组成、实现的定义/4
1.2.2计算机系统结构、组成和实现的相互
关系/6
1.3软硬件取舍与计算机系统的设计思路/6
1.3.1软硬件取舍的基本原则/6
1.3.2计算机系统的设计思路/7
1.4计算机设计的量化准则/8
1.4.1计算机系统设计的定量原理/8
1.4.2衡量计算机系统性能的主要标准/10
1.4.3计算机性能的比较/11
1.4.4计算机系统的性能评价/13
1.5对系统结构的影响因素/14
1.5.1软件对系统结构的影响/14
1.5.2器件和应用对系统结构的影响/17
1.6系统结构中的并行性/18
1.6.1并行性概念/18
1.6.2并行处理系统的结构与多机系统的
耦合度/20
1.7计算机系统的分类/21
1.7.1Flynn分类法/21
1.7.2其他分类法/22
习题1/25第2章数据表示与指令系统/28
2.0学习指南/28
2.1数据表示/29
2.1.1数据表示与数据结构/29
2.1.2高级数据表示/292.1.3引入数据表示的原则/34
2.2寻址方式/34
2.2.1寻址方式分析/34
2.2.2间接寻址方式与变址寻址方式的
比较/36
2.2.3程序在主存中的定位技术/38
2.3指令系统的设计和优化/39
2.3.1指令操作码的优化/39
2.3.2指令字格式的优化/43
2.4指令系统的发展和改进/44
2.4.1CISC和RISC/44
2.4.2按CISC方向发展与改进指令系统/44
2.4.3按RISC方向发展与改进指令系统/45
2.4.4设计RISC的关键技术/48
2.5典型的RISC处理器/53
2.5.1ARM嵌入式处理器/53
2.5.2MIPS嵌入式处理器/55
2.6Intel嵌入式处理器/56
2.6.1Atom处理器/56
2.6.2Quark处理器/57
习题2/58第3章输入/输出系统/61
3.0学习指南/61
3.1输入/输出系统概述/61
3.2磁盘阵列/62
3.2.1RAID 简介/62
3.2.2RAID的分级/63
3.3总线设计/65
3.3.1总线特点/65
3.3.2总线的数据宽度/66
3.3.3总线定时控制/67
3.3.4总线的集中仲裁方式/68
3.3.5总线的分布仲裁方式/70
3.4通道处理机/71
3.4.1通道的作用和功能/71
3.4.2通道工作过程/72
3.4.3通道的类型/73
3.4.4通道中的数据传送过程/75
3.4.5通道的流量分析/77
习题3/79第4章存储体系/82
4.0学习指南/82
4.1存储体系概念和并行存储系统/83
4.1.1存储体系的引出/83
4.1.2并行存储系统/84
4.1.3存储体系定义和分支/87
4.1.4存储体系的性能参数/89
4.1.5双口RAM/93
4.2虚拟存储系统/94
4.2.1虚拟存储管理方式/94
4.2.2页式虚拟存储系统构成/100
4.2.3页式虚拟存储系统实现中的问题/109
4.3高速缓冲存储器/113
4.3.1Cache存储系统基本结构/114
4.3.2地址映像和变换/115
4.3.3替换算法的实现/123
4.3.4Cache的透明性及性能分析 /125
4.4Cache主存辅存三级层次/129
4.5ARM存储系统/130
习题4/131第5章流水线和向量处理机/136
5.0学习指南/136
5.1重叠方式/137
5.1.1重叠原理和一次重叠/137
5.1.2相关处理/139
5.2流水方式/143
5.2.1基本概念/143
5.2.2流水线处理机的主要性能/147
5.2.3流水线调度/152
5.2.4流水机器的相关处理和控制机构/156
5.3向量的流水处理与向量流水处理机 /159
5.3.1向量的流水处理/159
5.3.2向量流水处理机/161
5.4指令级高度并行的超级处理机/163
5.4.1超标量处理机/163
5.4.2超流水线处理机/166
5.4.3超标量超流水线处理机 /169
5.4.4三种指令级并行处理机性能比较/172
5.4.5超长指令字处理机/174
5.5ARM流水线处理器举例/174
习题5/176第6章并行处理机和互连网络/181
6.0学习指南/181
6.1并行处理机原理/182
6.1.1并行处理机定义及特点 /182
6.1.2阵列处理机的构形与特点/182
6.2阵列处理机的并行算法 /184
6.3互连网络的基本概念/190
6.3.1互连网络的设计目标及互连函数/190
6.3.2设计互连网络时应考虑的问题 /192
6.4互连网络的种类/193
6.4.1静态互连网络/193
6.4.2循环互连网络/195
6.4.3基本的单级互连网络/196
6.4.4多级互连网络 /198
6.4.5全排列网络 /203
6.5并行存储器的无冲突访问/204
习题6/206第7章多处理机与多计算机/209
7.0学习指南/209
7.1多处理机概念/210
7.1.1多处理机定义/210
7.1.2多处理机分类/211
7.1.3多处理机特点和主要技术问题/211
7.2多处理机结构/213
7.2.1共享存储器结构/213
7.2.2分布式存储器结构/218
7.2.3大规模并行处理机/219
7.2.4机群/220
7.3多核处理器/225
7.3.1多核处理器定义与结构/225
7.3.2Intel多核处理器/227
7.3.3AMD多核处理器/229
7.3.4ARM多核处理器/230
7.4多处理机的多Cache一致性/232
7.4.1存储器一致性定义/232
7.4.2多Cache一致性问题的产生/232
7.4.3多Cache一致性问题解决方法/234
7.5多处理机的机间互连形式/239
7.6程序并行性/241
7.6.1并行算法/241
7.6.2程序段间的相关性分析/242
7.6.3并行程序设计语言/243
7.7多处理机的性能/244
7.7.1基本模型/245
7.7.2N台处理机系统的基本模型/246
7.8多处理机的操作系统/248
7.8.1主从型操作系统/248
7.8.2各自独立型操作系统/249
7.8.3浮动型操作系统/249
习题7/250参考文献/252