本书以冯?诺依曼程序控制单处理器计算机的结构框架为主体,围绕经典计算机组织设计实现的技术方法,阐述计算机的结构原理、组成实现等概念,以及数据表示、指令系统、数据校验等计算机属性,介绍计算机组成部件的功能与组织基础、结构原理与工作机制、设计方法与实现逻辑。本书包含计算机系统概论、计算机组成设计实现基础、系统总线及其I/O接口、运算器及其设计实现、主存储器及其组织实现、控制器及其设计实现、输入输出系统及其操作控制7章,可分为两部分:第1、2章为优质部分,讨论计算机组成设计实现的基础;第3~7章为第二部分,讨论计算机组成部件的设计实现。本书依据本科院校应用型人才培养的目标要求和计算机硬件课程体系的组织配置,在总结编者长期教学经验、借鉴国内外经典教材优点的基础上,经过反复研究和精心编写而成。本书结构新颖,内容实用,层次有序,概念清晰,语言通俗,可作为高等院校计算机类专业本科生“计算机组成原理”课程的教材,也可作为有关专业研究生和相关领域科技人员的参考书。
本书依据本科院校应用型人才培养的目标要求和计算机硬件课程体系的组织配置,总结编者长期的教学经验,借鉴国内外经典教材的优点,反复研究、精心编写。本书结构新颖、内容实用、层次有序、概念清晰、语言通俗,可作为高等院校计算机类专业本科生“计算机组成原理”课程的教材,也可作为有关专业研究生和相关领域科技人员的参考书。
前言
一台完整计算机(系统)包含硬件和软件,硬件是功能实现的根基,软件指示硬件的工作任务,用于扩展硬件功能。近几十年,由于计算机技术的迅猛发展及其应用领域的不断延伸,以单台计算机为基础,衍生出计算机科学与技术、软件工程、网络工程、信息安全、物联网工程、数字媒体技术、智能科学与技术、空间信息与数字技术、数据科学与大数据技术等专业,由此形成一个计算机类专业群。可见,底层(硬件)的结构原理与运行机制及其设计实现技术是计算机设计实现及其应用能力建构的知识,并已渗透到许多领域,也必将渗透到人类社会活动的方方面面。所以“计算机组成原理”是计算机类各专业的一门专业核心课,在计算机硬件课程体系中具有承上启下的作用,“承”先导课程有“数字逻辑电路”和“汇编语言程序设计”,“启”后继课程有“计算机体系结构”“微型计算机及其接口技术”“嵌入式系统及其应用开发”“单片机及其应用开发”等。依据地方本科高校应用型人才培养的目标要求及其学生的特点,编写知识体系适宜、层次结构清晰、文字探究可读性强、适用于自主研究性学习的“计算机组成原理”课程教材是极其必要的。
1. 编写的基本思想
“计算机组成原理”课程的教学内容不仅繁多复杂、差异性大、理论性强,而且知识具有难、远、长的特点。“难”是知识难以掌握,“远”是理论与实际相距甚远,“长”是知识关系链长。根据地方本科高校应用型人才培养的目标要求和“计算机组成原理”课程知识内容的特点,借鉴吸收经典“计算机组成原理”课程教材的优点,在总结分析自己长期从事“计算机组成原理”及硬件系列课程教学的基础上,本书编写的基本思想为: ①在内容范围上,选择定位本义性“计算机组成原理”,围绕经典计算机硬件结构框架,讨论组成部件的设计实现; ②在内容组织上,按先软(设计实现基础)后硬(部件设计实现)的原则,对经典教材一般结构进行适当调整; ③在内容阐述上,以问题场景或知识关联为引导,不仅通俗具体地叙述知识,而且深化详细地析解知识,使得文字探究可读,适用于学生自主研究性学习。
组成实现是认知物理形态对象的基本途径,整体是由部分分层组成实现的。计算机(硬件)的组成可分为整机、部件、器件和元件四个层次,通过元件→器件、器件→部件、部件→整机三级来实现,且分别对应“数字逻辑电路”“计算机组成原理”和“计算机体系结构”三门课程,该三门课程是计算机硬件课程的核心体系,知识关系极为紧密。因此,虽然“计算机组成原理”课程教材众多,但从内容范围来看,一般可分为本义性和扩展性两种类型,扩展性“计算机组成原理”课程教材又分为带先导的和带后继的两种类型。本义性“计算机组成原理”课程教材是以经典计算机结构框架为基础,按计算机三级实现设置硬件课程来规划内容范围。带先导的扩展性“计算机组成原理”课程教材是考虑不单独设置先导课程“数字逻辑电路”,在本义性“计算机组成原理”课程教材的基础上,增加1或2章来阐述数字逻辑电路的基本知识。带后继的扩展性“计算机组成原理”课程教材是考虑不另外设置后继课程“计算机体系结构”,且“计算机组成原理”与“计算机体系结构”课程在知识内容上难以区分,在本义性“计算机组成原理”课程教材的有关章中,增加1或2节来介绍“计算机体系结构”课程的相应知识(该类型目前出版最多),如在“控制器及其设计实现”一章中介绍流水线处理技术,“主存储器及其组织实现”一章改为“存储系统及其组织实现”,主存储器仅作为存储层次的一部分等。同种类型“计算机组成原理”课程教材,其内容范围差异不大,但扩展性“计算机组成原理”课程教材体量较大,一般需要90~100课时来完成其所包含知识内容的教学,如此还不如单独设置两门课程。目前,计算机类专业通常单独设置三门或前两门课程来配置计算机硬件核心课程体系,极少把“数字逻辑电路”或“计算机体系结构”课程的知识内容包含于“计算机组成原理”课程之中。因此,本书内容范围选择定位于本义性“计算机组成原理”。
〖1〗计算机组成原理(第2版)前言[3]〖3〗本义性“计算机组成原理”课程教材内容范围的组织结构大同小异,一般分为计算机系统概论、数据信息表示与检验、指令系统、运算方法与运算器、主存储器及其组织、中央处理器、系统总线、输入输出系统(含接口)、输入输出设备9章。这样的组织结构使得各章之间所包含知识与篇幅差异较大,如指令系统和系统总线两章同运算方法与运算器和中央处理器两章相比,所包含知识与篇幅很少。对此,本书在组织结构上进行了三方面的调整: 一是由于数据信息表示与检验和指令系统两章的知识内容均是计算机结构及其功能部件设计实现的基础,便将它们合并为一章,称为“计算机组成设计实现基础”;二是由于性能不高的计算机均采用总线结构,则接口必须面向某一系统总线,即如系统总线一样是标准化的,便将I/O接口的知识内容调整到系统总线一章,称为“系统总线及其I/O接口”;三是输入输出设备是输入输出系统的组成部分,便将输入输出系统和输入输出设备合并为一章,称为“输入输出系统及其操作控制”。所以,本书分为7章,且按内容组织原则,顺序为: 计算机系统概论、计算机组成设计实现基础、系统总线及其I/O接口、运算器及其设计实现、主存储器及其组织实现、控制器及其设计实现、输入输出系统及其操作控制。
地方本科高校的学生普遍存在“重软轻硬”现象,由教材提供一定的文字阅读量、深化具体展开知识探究,是提高学生学习兴趣、促进学生自主研究性学习的途径之一。在知识叙述上,平铺直叙知识内容,没有关联通俗的比较,则文字的可阅读性和趣味性不强;如叙述“微指令格式”时,则同“指令格式”相比较,为什么前者需要配置“顺序控制域”,而后者却不需要。在知识析解上,“就事论事”地阐述“怎样做”,不深入解释“为什么这样做”,则知识可理解性、可探讨性不高;如解释“指令功能分类”时,则应从计算机的功能特性与工作原理出发,来解释为什么需要配置这些类型的指令。特别地,依据基于问题学习(PBL)教学理论,每一节都配置一段问题导学,通过关联场景,提出本节需要讨论的知识和解决的问题,有利于基于问题学习的实现和学生自主研究性学习。
2. 教材各章概述
本书共7章,可分为两部分。优质部分包括第1、2章。第1章回顾计算机发展的历史,展望计算机发展的未来,介绍计算机的功能特点与应用领域,讨论计算机的结构原理与组成实现,分析软硬件关系及其等效性、虚拟计算机等概念,阐述计算机的性能指标与分类和计算机系统的层次性。第2章介绍数据表示、数据校验和指令系统及其相关概念,讨论非数值数据的编码和数值数据的表示方法及其功效特征,分析数据校验编码的原理及其方法,阐述指令格式及其结构类型、指令功能分类、寻址方式和堆栈及其寻址实现。
第二部分包括第3~7章。第3章介绍总线及其分类、特性、事务等基本概念和常用系统总线与I/O接口标准的性能特点,阐述系统总线的数据交换过程、通信定时方式、分配仲裁方法、单处理机的总线结构,讨论I/O接口及其分类和功能结构。第4章在阐述基本二进制加法器及其进位逻辑的基础上,分析原码与补码加、减、乘、除运算的方法、规则及流程,讨论原码与补码加、减、乘、除运算的逻辑实现与速度提高的途径,介绍算术逻辑运算部件逻辑结构设计方法和运算器的组成结构及其组织形式。第5章介绍存储器的分类、性能指标、
目录[3]〖3〗第1章计算机系统概论/1
1.1计算机及其发展与应用1
1.1.1计算机及其功能特点1
1.1.2计算机发展的历史2
1.1.3未来计算机的发展6
1.1.4计算机应用7
1.2计算机的结构原理9
1.2.1计算机的工作原理9
1.2.2冯·诺依曼计算机体系结构12
1.2.3计算机功能部件简介14
1.3计算机组成实现与性能分类16
1.3.1计算机组成与计算机实现16
1.3.2计算机组成层次与互连17
1.3.3计算机的主要性能指标18
1.3.4计算机的分类19
1.4计算机系统及其软件20
1.4.1计算机系统及其软硬件等效性21
1.4.2计算机软件的分类22
1.4.3计算机系统的层次性22
复习题24
练习题25
第2章计算机组成设计实现基础/26
2.1数据表示与非数值数据编码26
2.1.1数据表示与二进制编码26
2.1.2非数值数据编码27
2.1.3线性结构数据表示33
2.2数值数据表示34
2.2.1数值数据表示的相关概念34
2.2.2数值数据的表示格式36
2.2.3定点数的编码及其数值范围38
2.2.4定点机器数的比较与转换43
2.2.5定点机器数符号扩展46
2.2.6浮点数的编码与数值范围46
2.3数据校验的编译码与实现50
2.3.1数据校验及其基本思想51
2.3.2奇偶校验码52
2.3.3海明校验码55
2.3.4循环冗余校验码59
2.4指令格式与指令功能分类65
2.4.1指令及指令格式65
2.4.2指令格式的分类66
2.4.3指令系统及其指令功能分类69
2.4.4数据传输指令71
2.4.5运算操作指令73
2.4.6程序控制指令74
2.5寻址方式与堆栈76
2.5.1寻址方式及其分类76
2.5.2指令寻址方式77
2.5.3操作数寻址方式79
2.5.4堆栈及其寻址实现85
复习题89
练习题91
第3章系统总线及其I/O接口/95
3.1总线的基本概念95
3.1.1总线及其电路95
3.1.2总线的分类96
3.1.3总线的特性与性能指标97
3.1.4总线事务与数据传送方式98
3.2系统总线特性与连接结构100
3.2.1数据交换过程与传输线分类100
3.2.2总线通信的定时方式102
3.2.3串行传送的通信方式105
3.2.4总线仲裁及其仲裁方法106
3.2.5单处理器计算机的总线结构111
3.3系统总线I/O接口113
3.3.1I/O接口及其分类114
3.3.2I/O接口的功能与结构模型115
3.3.3串并行接口的组成结构117
3.4实用标准总线及其I/O接口118
3.4.1实用标准总线的发展历程118
3.4.2主流实用总线标准简介121
3.4.3典型实用接口标准简介124
复习题130
练习题131
第4章运算器及其设计实现/132
4.1二进制基本加法器及其进位逻辑132
4.1.1二进制基本加法器与串行加法器132
4.1.2并行加法器及其串行进位134
4.1.3先行进位及其层级分时136
4.2定点数加减运算及其逻辑实现142
4.2.1补码加减的运算方法143
4.2.2补码加减运算上溢判断方法147
4.2.3补码加减运算的逻辑实现151
4.2.4移码加减运算及其逻辑实现153
4.2.5十进制加运算及其逻辑实现155
4.3定点数乘运算及其逻辑实现158
4.3.1乘法器种类与手工运算的改进158
4.3.2有符号数的移位与舍入规则160
4.3.3原码一位乘法及其逻辑实现162
4.3.4补码一位乘法及其逻辑实现165
4.3.5两位乘运算方法168
4.3.6阵列乘法器173
4.4定点数除运算及其逻辑实现176
4.4.1除法器种类与手工运算的改进176
4.4.2原码除法及其逻辑实现178
4.4.3补码除法及其逻辑实现181
4.4.4阵列除法器186
4.5浮点数算术运算方法与逻辑运算实现188
4.5.1浮点数加减运算方法188
4.5.2浮点数乘除运算方法191
4.5.3逻辑运算及其实现195
4.6运算器组成及其组织结构196
4.6.1算术逻辑运算单元与部件196
4.6.2SN74181 ALU集成电路芯片198
4.6.3定点运算器组成及其组织结构200
4.6.4浮点运算器组成结构202
复习题204
练习题205
第5章主存储器及其组织实现/208
5.1存储器与存储系统的概述208
5.1.1存储器的访问与性能208
5.1.2存储器的分类及其结构209
5.1.3存储系统及其组织结构211
5.1.4二级结构存储系统及其比较214
5.1.5半导体存储器芯片的一般结构216
5.2MOS写常态存储器芯片219
5.2.1静态存储器芯片的结构原理220
5.2.2动态存储器芯片的结构原理223
5.2.3静态与动态存储器芯片的比较227
5.2.4静态存储器芯片的读写周期227
5.2.5动态MOS存储器的刷新231
5.3只读、混合与高性能MOS存储器芯片235
5.3.1只读MOS存储器芯片的结构原理235
5.3.2混合MOS存储器芯片的结构原理237
5.3.3双端口存储器239
5.3.4相联存储器240
5.3.5动态MOS存储器的新技术243
5.4主存储器及其容量扩展组织245
5.4.1半导体存储器芯片的特性与引脚245
5.4.2主机及其存储器的组成结构247
5.4.3主存储器模块的组织249
5.4.4主存储器实现及其与CPU的连接256
复习题266
练习题267
第6章控制器及其设计实现/270
6.1控制器功能结构与实现方法270
6.1.1中央处理器的功能与结构270
6.1.2中央处理器中的寄存器272
6.1.3中央处理器的主要性能指标275
6.1.4控制器的功能与结构276
6.1.5控制信号序列发生器的实现方法279
6.2指令处理的数据通路、微操作与微命令280
6.2.1指令处理流程及其状态转换281
6.2.2指令处理的数据通路及其微操作282
6.2.3模型机及其微命令285
6.3时序信号体系及其控制实现291
6.3.1指令周期及其时段划分291
6.3.2控制器时序控制293
6.3.3CPU内部时序信号体系295
6.3.4时序信号发生器298
6.4微程序设计技术302
6.4.1微指令及其基本格式302
6.4.2微程序及其与指令、微指令的关系305
6.4.3微命令的编码方法307
6.4.4微指令格式的类型310
6.4.5微程序运行的控制方法311
6.4.6微程序设计316
6.5硬布线控制器与微程序控制器321
6.5.1硬布线控制器321
6.5.2微程序控制器323
6.5.3微程序控制器与硬布线控制器的比较325
6.6控制信号序列发生器设计326
6.6.1模型机指令及其控制信号序列326
6.6.2组合逻辑控制信号序列发生器设计330
6.6.3存储逻辑控制信号序列发生器设计334
复习题338
练习题340
第7章输入输出系统及其操作控制/346
7.1输入输出系统概述346
7.1.1外围设备的分类与特性346
7.1.2输入输出系统及其结构功能348
7.1.3输入输出的过程与指令349
7.1.4输入输出控制的发展历程349
7.1.5输入输出系统的工作方式351
7.2中断及其实现的结构原理352
7.2.1中断与中断源352
7.2.2中断请求355
7.2.3中断响应357
7.2.4中断服务返回与中断过程结构363
7.3输入输出操作的控制方式366
7.3.1程序查询控制方式366
7.3.2程序中断控制方式369
7.3.3直接存储访问控制方式372
7.3.4通道控制方式377
7.4输入设备381
7.4.1键盘381
7.4.2扫描仪384
7.4.3数码相机386
7.4.4其他输入设备388
7.5输出设备390
7.5.1打印机390
7.5.2显示器394
7.6存储设备400
7.6.1磁表面存储器400
7.6.2硬磁盘存储器403
7.6.3冗余磁盘阵列406
7.6.4光盘存储器411
复习题414
练习题416