图书简介:
目 录
第一篇 基础知识
第1章 绪论 3
1.1 计算机的基本概念 3
1.1.1 存储程序工作方式 4
1.1.2 信息的数字化表示 5
1.2 计算机系统的硬件和软件组成 7
1.2.1 计算机硬件系统 7
1.2.2 计算机软件系统 10
1.3 层次结构模型 13
1.3.1 从计算机系统组成角度划分层次结构 13
1.3.2 从语言功能角度划分层次结构 15
1.3.3 软件和硬件在逻辑上的等价 16
1.4 计算机的工作过程 17
1.4.1 处理问题的步骤 17
1.4.2 指令执行过程 18
1.5 计算机的特点和性能指标 19
1.5.1 计算机的特点 19
1.5.2 计算机的性能指标 20
1.6 计算机的发展与应用 22
1.6.1 计算机的发展历程 22
1.6.2 计算机性能提高的技术 26
1.6.3 计算机应用举例 29
习题1 30
第2章 信息表示 32
2.1 数值型数据的表示 32
2.1.1 带符号数的表示 32
2.1.2 定点数与浮点数 37
2.2 字符的表示 42
2.2.1 ASCII 42
2.2.2 Unicode编码 43
2.2.3 汉字编码简介 44
2.3 指令信息的表示 45
2.3.1 指令格式 45
2.3.2 常用寻址方式 49
2.3.3 指令类型 54
2.3.4 PentiumⅡ指令格式 57
2.3.5 RISC概述 59
2.3.6 MIPS指令系统 60
2.3.7 ARM指令系统 64
习题2 70
第二篇 计算机系统结构
第3章 微体系结构层 73
3.1 CPU的组成和功能 74
3.1.1 CPU的组成 74
3.1.2 指令执行过程 77
3.1.3 时序控制方式 79
3.1.4 指令流水线 80
3.2 ALU和运算方法 84
3.2.1 ALU介绍 84
3.2.2 定点数运算方法 88
3.2.3 浮点数运算方法 95
3.2.4 十进制数加、减运算 97
3.3 CPU模型机的组成及其数据通路 98
3.3.1 基本组成 98
3.3.2 数据传输 101
3.4 组合逻辑控制器原理 102
3.4.1 模型机的指令系统 103
3.4.2 模型机的时序系统 106
3.4.3 指令流程 108
3.4.4 微命令的综合与产生 114
3.4.5 小结 115
3.5 微程序控制器原理 115
3.5.1 微程序控制概念 115
3.5.2 微指令编码方式 117
3.5.3 微程序的顺序控制 119
3.5.4 微指令格式 121
3.5.5 典型微指令举例——模型机微指令格式 121
3.6 典型RISC处理器微体系结构 122
3.6.1 MIPS R4000的微体系结构 122
3.6.2 ARM7的微体系结构 126
习题3 128
第4章 指令系统层 130
4.1 80x86 CPU 131
4.1.1 8086/8088 CPU 131
4.1.2 80386/80486 CPU 133
4.1.3 Pentium系列CPU 135
4.2 80x86 CPU的寄存器和主存储器 139
4.2.1 80x86 CPU的寄存器 139
4.2.2 80x86的主存储器 143
4.3 80x86 CPU指令系统 154
4.3.1 80x86寻址方式 154
4.3.2 80x86 CPU指令分类 161
4.3.3 传送类指令 162
4.3.4 算术运算类指令 169
4.3.5 逻辑类指令 177
4.3.5 串操作类指令 182
4.3.6 处理机控制类指令 186
习题4 187
第5章 汇编语言层 192
5.1 汇编语言层概述 192
5.2 汇编语言语句格式 194
5.3 80x86宏汇编语言数据、表达式和运算符 196
5.3.1 常数 196
5.3.2 变量 196
5.3.3 标号 200
5.3.4 表达式与运算符 201
5.4 80x86宏汇编语言伪指令 204
5.4.1 符号定义语句 204
5.4.2 处理器选择伪指令 205
5.4.3 段结构伪指令 206
5.4.4 段组伪指令 210
5.4.5 内存模式和简化段定义伪指令 211
5.4.6 定位和对准伪指令 212
5.4.7 过程定义伪指令 213
5.4.8 包含伪指令 214
5.4.9 标题伪指令 214
5.5 宏指令 214
5.6 汇编语言程序设计基本技术 220
5.6.1 程序设计步骤 220
5.6.2 顺序程序设计 222
5.6.3 分支程序设计 224
5.6.4 循环程序设计 231
5.6.5 子程序设计 237
5.6.6 系统功能子程序的调用 247
5.6.7 汇编语言程序的开发 248
习题5 254
第三篇 存储系统和输入/输出系统
第6章 存储系统 261
6.1 存储系统概述 261
6.1.1 存储器的分类 262
6.1.2 主存的主要技术指标 263
6.2 存储原理 264
6.2.1 半导体存储器的存储原理 264
6.2.2 磁表面存储器的存储原理 269
6.3 主存储器的组织 273
6.3.1 主存储器的逻辑设计 273
6.3.2 主存储器与CPU的连接 277
6.3.3 Pentium CPU与存储器组织 279
6.3.4 高级DRAM 282
6.4 高速缓冲存储器 285
6.4.1 Cache的工作原理 286
6.4.2 Cache的组织 287
6.4.3 PentiumⅡ CPU的Cache组织 293
6.5 外部存储器 294
6.5.1 硬磁盘存储器 295
6.5.2 U盘和固态硬盘 300
6.6 物理存储系统的组织 301
6.6.1 存储系统的层次结构 301
6.6.2 磁盘阵列 302
6.6.3 多体交叉存取技术 305
6.7 虚拟存储系统的组织 306
6.7.1 概述 306
6.7.2 虚拟存储器的组织方式 306
6.7.3 Pentium CPU支持的虚拟存储器 309
6.7.4 存储管理部件 311
习题6 313
第7章 输入/输出系统 315
7.1 输入/输出系统概述 315
7.1.1 主机与外围设备间的连接方式 315
7.1.2 I/O接口的功能和分类 317
7.1.3 接口的编址和I/O指令 320
7.2 直接程序控制方式 322
7.3 程序中断方式 324
7.3.1 中断的基本概念 324
7.3.2 中断的过程 330
7.3.3 80x86中断指令 332
7.3.4 中断接口模型 334
7.3.5 中断接口举例 339
7.4 DMA方式 343
7.4.1 DMA方式的一般概念 343
7.4.2 DMA工作过程 345
7.4.3 DMA接口组成 346
7.4.4 DMA控制器编程及应用 349
7.5 总线 356
7.5.1 总线的功能与分类 356
7.5.2 总线标准及信号组成 358
7.5.3 总线操作时序 361
7.5.4 典型总线举例 363
7.6 典型外设接口 364
7.6.1 ATA接口 364
7.6.2 SCSI接口 365
7.7 I/O设备与I/O程序设计 365
7.7.1 概述 366
7.7.2 键盘 368
7.7.3 鼠标器 372
7.7.4 打印机 373
7.7.5 液晶显示器 375
习题7 376
附录A ASCII字符表 377
参考文献 378
展开
前 言
本书为“十二五”普通高等教育本科国家级规划教材,曾入选电子工业部“九五”规划教材和普通高等教育“十一五”国家级规划教材。
本书将传统教学计划中的两门相互依赖程度较深的主干课程《计算机组成原理》和《汇编语言程序设计》有机地组织为一门课程,目的是围绕机器指令级(指令系统层)及紧密相关的微操作级(微体系结构层)和汇编语言级(层),将计算机内部工作机制与编程求解问题结合,从而更好地体现软硬结合的计算机系统思想。本书将输入/输出(I/O)系统作为《计算机组成原理》和《汇编语言程序设计》的结合点,既包含硬件接口设计,又包含I/O驱动程序等软件设计,体现了两部分的紧密关联度和目前汇编语言程序设计的主要应用场合。在保持前几版的基本结构、主要内容和风格的基础上,我们对原书各章内容进行了修订,以便更好地与现代计算机系统相吻合。
下面介绍本书的编写思路、各章内容简介和第5版修订内容。
一、编写思路
本书涵盖了ACM/IEEE-CS中“AR计算机组织与体系结构”知识体的5个核心知识单元:AR2数据的机器级表示,AR3汇编机器组织,AR4存储系统组织和结构,AR5接口和通信,AR6功能组织。
本书还涉及汇编语言层的PF程序设计基础知识领域的一个核心知识单元——PF1程序设计基本结构。因此,本书适用于“计算机学科教学计划”推荐的16门核心课程中的《计算机组成基础》课程。
多年来,我们跟踪分析了国外经典教材与国内优秀教材,这些教材一般可分为两种体系:“分层体系”和“功能部件组成体系”。本书的框架体系采用这两种体系相结合的方案,从三个层次(微体系结构层、指令系统层和汇编语言层)和三大子系统(CPU、存储系统、输入/输出系统及其互连)出发建立整机概念。本书第二篇按照微体系结构层、指令系统层和汇编语言层三个层次,讨论计算机系统的组成,从而在CPU级建立整机概念。第三篇介绍存储系统、输入/输出系统,帮助读者在系统级上建立整机概念。
本书以一个CPU教学模型机的设计为例,从寄存器级描述CPU的内部逻辑组成结构,在指令流程和微操作两个层次上深入分析CPU的工作原理;从存储原理、高速缓冲–主存–外存三级存储体系、虚拟存储器阐述存储系统的工作机制与组织;从输入/输出接口控制方式、总线、外部设备阐述输入/输出系统的原理与结构。同时,本书以实际Intel 80x86、Pentium系列微处理器为背景,阐述和分析其CPU的微体系结构、指令系统、汇编语言、主存、高速缓存(Cache)、虚拟存储器、总线、I/O接口、I/O驱动程序和I/O软件调用等。
而且,本书介绍了典型精简指令集计算机(Reduced Instruction Set Computer,RISC)微处理器MIPS和ARM的微体系结构和指令系统,它们与复杂指令集计算机(Complex Instruction Set Computer,CISC)的80x86微处理器形成了对比。
二、各章内容简介
全书由基础知识、计算机系统分层结构、存储系统和输入/输出系统3篇共7章组成,体现了下述教学思路。
第一篇基础知识,包括第1~2章,介绍计算机系统组成的基本概念和信息表示。
第 1 章仍然强调计算机的两个重要基本概念:信息数字化、存储程序工作方式。在介绍计算机系统的硬件、软件组成后,引入了现代计算机的分层结构模型,自下而上分为5层:微体系结构层、指令系统层、操作系统层、汇编语言层和面向问题的语言层,本书第二篇内容就是根据其中的三层来组织的。第 1 章还对计算机的工作过程、特点、性能指标和发展史等做了介绍。
第2章讲述数据信息和指令信息的表示,包括带符号数、小数点及字符的表示方法,以及指令格式、寻址方式和指令类型,并介绍Pentium II指令格式、RISC基本概念、典型RISC微处理器MIPS和ARM的指令系统。
第二篇计算机系统结构,包括第3~5章,分别从微体系结构层、指令系统层和汇编语言层深入讨论计算机系统的组成和工作机制。
第3章介绍微体系结构层,将CPU作为整体来讨论,弱化运算方法与运算器;主要以一个教学模型机为例,从寄存器级描述CPU的内部逻辑组成,在指令流程和微操作两个层次上分析CPU的工作原理。根据当前计算机的发展趋势,更强调组合逻辑控制方式,对微程序控制方式只做一般原理性介绍,并以MIPS和ARM为典型例子,说明RISC的微体系结构。
第4章以80x86 CPU为背景讨论指令系统层,将80x86、Pentium系列CPU的微体系结构做了类比,用归纳和概括的方式介绍该系列CPU的寻址方式和指令系统。本章作为第3章与第5章的桥梁,由CPU模型过渡到实际机器80x86,并为学习汇编语言奠定了相关基础。
第5章汇编语言层,以80x86、Pentium系列CPU为背景,精练地阐述了汇编语言的基础知识、伪指令与宏指令、汇编语言程序设计基本技术。
第三篇包括第6~7章,讨论存储系统和输入/输出(I/O)系统。
第6章简介各种存储器存储信息的基本原理,芯片级主存储器的逻辑设计方法。按三级存储体系(高速缓存、主存、外存)分别介绍其工作原理,并从物理层和虚拟层讨论存储系统的组织;以Pentium为实例,深入分析其主存储器、Cache和虚拟存储器的工作机制;还引入了高级DRAM、磁盘冗余阵列RAID、并行存储技术等。
第7章介绍输入/输出系统。采用硬软结合的方式,既讨论硬件接口与I/O设备的逻辑组成及工作原理,也介绍软件调用方法与相应的I/O程序设计;详细阐述I/O接口的主要控制方式:直接程序控制方式、程序中断方式和DMA方式的工作原理,并以80x86为背景深入分析了三种控制方式的接口组成和I/O驱动程序设计;系统介绍总线分类、标准、时序和实例;简介了常用I/O设备:键盘、鼠标器、打印机和液晶显示器的工作原理,并以键盘为例分析其驱动程序的设计;另外,引入典型外设接口ATA接口和SCSI接口。
三、第5版主要修订内容
第1章增加了国产芯片龙芯和华为海思麒麟的发展史,使读者对我国自主研制CPU芯片的情况和应用场合有所了解,还对计算机的分类和提高CPU性能技术进行了补充。
目前,国际上市场份额较大的主流CPU架构有3种:Intel 80x86、ARM和MIPS。本书的实际机器背景就是CISC的Intel 80x86,因此在第2章增加了典型的RISC微处理器MIPS和ARM的指令系统,删除了非主流的SPARC指令系统;第3章相应增加了MIPS R4000和ARM7的微体系结构,删除了SPARC微体系结构,以利于读者在了解RISC的MIPS和ARM的同时与CISC的80x86进行对比。
第6章修订了Cache基本原理内容,增加了AMD Opteron数据Cache的组织结构并深入分析了该数据Cache读、写数据的过程;增加了半导体ROM和Fash存储器的存储原理、U盘和固态硬盘的内容,补充和修订了高级DRAM内容;删除了光盘存储器的相关内容。
第7章根据微机的总线结构发展演变过程,重新梳理了其单总线、双总线和多总线的结构变化和特点;增加了80x86中断指令及其应用场合,对中断接口举例和DMA接口举例内容重新进行了梳理和修订,使其内容更具可读性;删除了通道和IOP的相关内容。
本书内容丰富,覆盖与融合了传统“计算机组成原理”“微机原理”和“汇编语言程序设计”课程的主要内容,知识的系统性和教学的实用性更强,也使学时数得到了合理压缩。
由于篇幅所限,与本书有关的一些教学资料将以电子文档方式提供给读者,欢迎免费下载(http://www.hxedu.com.cn)。教学资料包括:80x86指令系统一览表,DOS系统功能调用(INT 21H),BIOS功能调用等。
本课程的参考教学时数为64~80,全书内容可能比教学时数允许的稍多一些,教师可以选取或让学生自学,部分实例可随技术发展而更新。本书为教师免费提供电子教案,欢迎到http://www.hxedu.com.cn注册后下载。
参与本书编写工作的有徐洁、叶娅兰、李晶晶和鲁珂,全书由徐洁、叶娅兰主编并负责全书的组织和统稿。重庆大学袁开榜教授担任主审,他认真、仔细地审阅了全稿,提出了许多宝贵的修改意见。本书编辑们热情、专业和细致的工作态度保证了教材的编辑质量和水平。教材的编写还得到了北京航空航天大学杨文龙教授、电子科技大学龚天富教授的热情指导和帮助,以及电子科技大学计算机学院领导和老师们的热情支持。在此,谨向所有给予我们支持和帮助的人们表示衷心的感谢。
书中还会存在错误与不足之处,恳请读者与同行给予批评指正。
作者E-mail:xujie@uestc.edu.cn,或者加入QQ群:192910558。
作 者
2022年于成都
展开