
- 理解计算机硬件组成:系统讲解运算器、存储器、控制器等核心部件的功能与工作原理,帮助读者建立完整的硬件知识框架。
- 掌握数据表示与运算:深入剖析定点数、浮点数、补码等数据格式及加减乘除运算方法,解决数值计算中的精度与溢出问题。
- 构建存储层次体系:从SRAM、DRAM到Cache和虚拟存储器,清晰阐述各层次的作用与配合,解决存储性能与容量之间的矛盾。
- 指令系统与CPU设计:详细讲解指令格式、寻址方式及CPU的组成与控制,帮助读者理解指令执行的全过程。
- 系统总线与I/O交互:介绍总线结构、接口及输入输出控制方式,解决设备与主机之间的数据传输与协调问题。
★★★
Intermediate
BeginnerElementaryIntermediateAdvancedExpert
- 计算机专业本科生:作为核心课程教材,系统学习计算机组成原理,为后续体系结构、操作系统等课程打基础。
- 考研学生:覆盖考研大纲核心考点,配合试题解析,适合备考计算机统考或自主命题院校。
- 硬件工程师:深入理解处理器、存储、总线等底层实现,有助于嵌入式系统开发和硬件调试。
- 软件开发者:了解硬件工作原理,有助于编写高效代码,优化程序性能,理解底层执行机制。
- 循序渐进:建议按章节顺序阅读,先掌握第1-2章基础,再深入学习存储、指令、CPU等核心章节。
- 理论与实践结合:重点学习第3章存储系统和第5章CPU,结合第11-12章实验设计,动手验证理论。
- 利用配套资源:配合微课视频和动画演示,理解抽象概念,如Cache映射、指令流水线等。
- 注重习题练习:每章后习题需独立完成,尤其第2章运算器相关题目,巩固计算能力。
- 拓展阅读:对量子计算机等前沿内容可作拓展了解,不影响主线学习。
- 硬件知识体系:全面掌握计算机各部件的组成、功能与工作原理,形成完整的硬件知识框架。
- 运算与数据表示:熟练进行定点、浮点运算,理解数据编码与校验,具备分析数值问题的能力。
- 存储层次理解:深刻理解Cache、虚拟存储器等机制,能评估存储性能并优化数据访问。
- CPU与指令集:掌握指令系统设计及CPU控制流程,为设计简单处理器或理解复杂处理器打下基础。
- 系统级视角:理解总线、I/O及并行结构,建立计算机系统整体观,为后续系统类课程铺路。
📖 Book Introduction
产品特色
内容简介
《计算机组成原理(第七版)》重点讲述计算机单处理器系统的组成和工作原理,在此基础上扩展讲述并行体系结构。《计算机组成原理(第七版)》共12章,主要内容包括计算机系统概述、运算方法和运算器、存储系统、指令系统、中央处理器、总线系统、外围设备、输入/输出系统、并行组织与结构、量子计算机、课程教学实验设计和课程综合设计。
《计算机组成原理(第七版)》配套试题解析、微课视频、多媒体演示动画、教学课件、实验设计、课程综合设计等教学资源,形成“理论、实验、设计”三个过程相统一的立体化教学体系。
目录
目录
第1章 计算机系统概述 1
1.1 计算机的分类 1
1.2 计算机的发展简史 2
1.2.1 计算机的五代变化 2
1.2.2 半导体存储器的发展 3
1.2.3 微处理器的发展 4
1.2.4 国产处理器技术的发展历程 4
1.3 计算机的硬件 5
1.3.1 硬件组成要素 5
1.3.2 运算器 7
1.3.3 存储器 7
1.3.4 控制器 8
1.3.5 适配器与输入/输出设备 11
1.4 计算机的软件 11
1.4.1 软件的组成与分类 11
1.4.2 软件的发展演变 12
1.5 计算机系统性能评价 14
1.5.1 计算机的性能指标 14
1.5.2 计算机系统的测试基准 15
1.6 计算机系统的层次结构 16
1.6.1 冯诺依曼体系结构 16
1.6.2 哈佛结构和改进的哈佛结构 17
1.6.3 非诺依曼化 18
1.6.4 多级组成的计算机系统 18
1.6.5 软件与硬件的逻辑等价性 19
1.6.6 计算机系统结构、计算机组成
与计算机实现 20
本章小结 20
习题 21
第2章 运算方法和运算器 22
2.1 数据与文字的表示方法 22
2.1.1 数据格式 23
2.1.2 数的机器码表示 24
2.1.3 字符与字符串的表示方法 30
2.1.4 汉字的表示和编码 32
2.1.5 校验码 33
2.2 定点加法、减法运算 34
2.2.1 补码加法 34
2.2.2 补码减法 36
2.2.3 溢出概念与检测方法 37
2.2.4 行波进位二进制加/减法器 38
2.2.5 单级分组先行进位加法器 40
2.2.6 多级分组先行进位加法器 42
2.3 定点乘法运算 43
2.4 定点除法运算 48
2.4.1 原码除法算法原理 48
2.4.2 并行除法器 50
2.5 定点运算器的组成 54
2.5.1 逻辑运算 54
2.5.2 多功能算术/逻辑运算单元 56
2.5.3 内部总线 60
2.5.4 定点运算器的基本结构 60
2.6 浮点运算方法和浮点运算器 62
2.6.1 浮点加法、减法运算 62
2.6.2 浮点乘法、除法运算 66
本章小结 68
习题 68
第3章 存储系统 70
3.1 存储系统概述 70
3.1.1 存储系统的层次结构 70
3.1.2 存储器的分类 71
3.1.3 存储器的编址和端模式 72
3.1.4 存储器的技术指标 73
3.2 静态随机存取存储器 74
3.2.1 基本的静态存储元阵列 74
3.2.2 基本的SRAM逻辑结构 74
3.2.3 SRAM读/写时序 75
3.2.4 存储器容量的扩充 76
3.3 动态随机存取存储器 78
3.3.1 DRAM存储元的工作原理 78
3.3.2 DRAM芯片的逻辑结构 78
3.3.3 DRAM读/写时序 79
3.3.4 DRAM的刷新操作 79
3.3.5 突发传输模式 80
3.3.6 同步DRAM(SDRAM) 80
3.3.7 双倍数据率SDRAM(DDR SDRAM) 84
3.3.8 DRAM读/写校验 85
3.3.9 CDRAM 85
3.4 只读存储器 88
3.4.1 只读存储器概述 88
3.4.2 NOR闪存 89
3.5 并行存储器 93
3.5.1 双端口存储器 94
3.5.2 多模块交叉存储器 96
3.6 cache存储器 100
3.6.1 cache基本原理 100
3.6.2 主存与cache的地址映射 102
3.6.3 cache的替换策略 108
3.6.4 cache的写操作策略 109
3.6.5 使用多级cache减少缺失损失 109
3.7 虚拟存储器 110
3.7.1 虚拟存储器的基本概念 110
3.7.2 页式虚拟存储器 112
3.7.3 段式虚拟存储器和段页式虚拟存储器 115
3.7.4 虚存的替换算法 117
3.7.5 存储管理部件 118
3.8 鲲鹏920 处理器的内存储系统 118
3.8.1 鲲鹏存储系统的层次结构 118
3.8.2 鲲鹏920 处理器片上系统的主存系统 119
3.8.3 鲲鹏920 处理器片上系统的地址映射与变换 120
本章小结 121
习题 122
第4章 指令系统 125
4.1 指令系统的发展与性能要求 125
4.1.1 指令系统的发展 125
4.1.2 指令系统的性能要求 126
4.1.3 低级语言与硬件结构的关系 126
4.2 指令格式 127
4.2.1 操作码 127
4.2.2 地址码 128
4.2.3 指令字长度 129
4.2.4 指令助记符 130
4.2.5 指令格式举例 131
4.3 指令和数据的寻址方式 133
4.3.1 指令的寻址方式 134
4.3.2 操作数基本寻址方式 134
4.3.3 寻址方式举例 138
4.4 典型指令 141
4.4.1 指令的分类 141
4.4.2 RISC指令系统 142
4.5 ARM 汇编语言 144
本章小结 146
习题 147
第5章 中央处理器 149
5.1 CPU的功能和组成 149
5.1.1 CPU的功能 149
5.1.2 CPU的基本组成 150
5.1.3 CPU中的主要寄存器 151
5.1.4 操作控制器与时序发生器 152
5.2 指令周期 152
5.2.1 指令周期的基本概念 152
5.2.2 NOT指令的指令周期 154
5.2.3 LAD指令的指令周期 156
5.2.4 ADD指令的指令周期 157
5.2.5 STO指令的指令周期 158
5.2.6 JMP指令的指令周期 159
5.2.7 用方框图语言表示指令周期 161
5.3 时序发生器和控制方式 163
5.3.1 时序信号的作用和体制 163
5.3.2 时序信号发生器 164
5.3.3 控制方式 166
5.4 微程序控制器 167
5.4.1 微程序控制原理 167
5.4.2 微程序设计技术 173
5.5 硬布线控制器 177
5.6 流水线技术与流水处理器 181
5.6.1 流水线原理 181
5.6.2 流水线的应用 186
5.6.3 指令流水线设计中的若干问题 189
5.6.4 动态流水线调度 192
5.7 RISC处理器 194
5.7.1 RISC机器的特点 194
5.7.2 华为鲲鹏处理器 195
本章小结 200
习题 201
第6章 总线系统 203
6.1 总线的概念和结构形态 203
6.1.1 总线的基本概念 203
6.1.2 总线的连接方式 205
6.1.3 总线的内部结构 206
6.2 总线接口 208
6.2.1 信息传送方式 208
6.2.2 总线接口的基本概念 210
6.3 总线仲裁 211
6.3.1 集中式仲裁 212
6.3.2 分布式仲裁 213
6.4 总线的定时和数据传送模式 214
6.4.1 总线的定时 214
6.4.2 总线数据传送模式 217
6.5 PCI 总线和PCIe总线 218
6.5.1 主板总线的多总线结构 218
6.5.2 PCI总线信号 219
6.5.3 PCI总线周期类型 220
6.5.4 PCI总线周期操作 221
6.5.5 PCI总线仲裁 222
6.5.6 PCIe总线 223
6.6 鲲鹏处理器的总线与互联 225
6.6.1 鲲鹏920系统的部件互联 225
6.6.2 鲲鹏多芯片系统 228
本章小结 228
习题 229
第7章 外围设备 231
7.1 外围设备概述 231
7.1.1 外围设备的一般功能 231
7.1.2 外围设备的分类 232
7.2 硬盘存储设备 233
7.2.1 磁记录原理 233
7.2.2 磁盘的组成和分类 235
7.2.3 磁盘驱动器和控制器 236
7.2.4 磁盘上信息的分布 237
7.2.5 磁盘存储器的技术指标 238
7.2.6 磁盘cache 240
7.2.7 磁盘阵列RAID 241
7.2.8 固态盘 242
7.3 光盘和磁光盘存储设备 244
7.3.1 光盘存储设备 244
7.3.2 磁光盘存储设备 246
7.4 显示设备 247
7.4.1 显示设备的分类与有关概念 247
7.4.2 字符/图形显示器 248
7.4.3 图像显示设备 249
7.5 输入设备和打印设备 251
7.5.1 输入设备 251
7.5.2 打印设备 252
本章小结 253
习题 254
第8章 输入/输出系统 256
8.1 CPU与外设之间的信息交换方式 256
8.1.1 输入/输出接口与端口 256
8.1.2 输入/输出操作的一般过程 257
8.1.3 I/O 接口与外设间的数据传送方式 258
8.1.4 CPU与I/O接口之间的数据传送 258
8.2 程序查询方式 261
8.3 程序中断方式 263
8.3.1 异常和中断的基本概念 263
8.3.2 中断服务程序入口地址的获取 266
8.3.3 程序中断方式的基本I/O接口 267
8.3.4 单级中断 268
8.3.5 多级中断 270
8.3.6 ARMv8-A架构的异常与中断 273
8.4 DMA方式 275
8.4.1 DMA的基本概念 275
8.4.2 DMA传送方式 276
8.4.3 基本的DMA控制器 278
8.4.4 选择型和多路型DMA 控制器 280
8.5 鲲鹏920处理器片上系统的设备与输入输出子系统 283
8.5.1 鲲鹏920 处理器片上系统的片上设备类型 283
8.5.2 虚拟PCIe总线 284
8.5.3 鲲鹏920 处理器片上系统的网络子系统 285
8.5.4 鲲鹏920 处理器片上系统的外存储子系统 286
8.6 I/O系统设计 288
本章小结 289
习题 290
第9章 并行组织与结构 292
9.1 体系结构中的并行性 292
9.1.1 并行性的概念 292
9.1.2 提高并行性的技术途径 293
9.1.3 单处理器系统中的并行性 293
9.1.4 多处理器系统中的并行性 294
9.1.5 并行处理器的体系结构类型 294
9.1.6
第1章 计算机系统概述 1
1.1 计算机的分类 1
1.2 计算机的发展简史 2
1.2.1 计算机的五代变化 2
1.2.2 半导体存储器的发展 3
1.2.3 微处理器的发展 4
1.2.4 国产处理器技术的发展历程 4
1.3 计算机的硬件 5
1.3.1 硬件组成要素 5
1.3.2 运算器 7
1.3.3 存储器 7
1.3.4 控制器 8
1.3.5 适配器与输入/输出设备 11
1.4 计算机的软件 11
1.4.1 软件的组成与分类 11
1.4.2 软件的发展演变 12
1.5 计算机系统性能评价 14
1.5.1 计算机的性能指标 14
1.5.2 计算机系统的测试基准 15
1.6 计算机系统的层次结构 16
1.6.1 冯诺依曼体系结构 16
1.6.2 哈佛结构和改进的哈佛结构 17
1.6.3 非诺依曼化 18
1.6.4 多级组成的计算机系统 18
1.6.5 软件与硬件的逻辑等价性 19
1.6.6 计算机系统结构、计算机组成
与计算机实现 20
本章小结 20
习题 21
第2章 运算方法和运算器 22
2.1 数据与文字的表示方法 22
2.1.1 数据格式 23
2.1.2 数的机器码表示 24
2.1.3 字符与字符串的表示方法 30
2.1.4 汉字的表示和编码 32
2.1.5 校验码 33
2.2 定点加法、减法运算 34
2.2.1 补码加法 34
2.2.2 补码减法 36
2.2.3 溢出概念与检测方法 37
2.2.4 行波进位二进制加/减法器 38
2.2.5 单级分组先行进位加法器 40
2.2.6 多级分组先行进位加法器 42
2.3 定点乘法运算 43
2.4 定点除法运算 48
2.4.1 原码除法算法原理 48
2.4.2 并行除法器 50
2.5 定点运算器的组成 54
2.5.1 逻辑运算 54
2.5.2 多功能算术/逻辑运算单元 56
2.5.3 内部总线 60
2.5.4 定点运算器的基本结构 60
2.6 浮点运算方法和浮点运算器 62
2.6.1 浮点加法、减法运算 62
2.6.2 浮点乘法、除法运算 66
本章小结 68
习题 68
第3章 存储系统 70
3.1 存储系统概述 70
3.1.1 存储系统的层次结构 70
3.1.2 存储器的分类 71
3.1.3 存储器的编址和端模式 72
3.1.4 存储器的技术指标 73
3.2 静态随机存取存储器 74
3.2.1 基本的静态存储元阵列 74
3.2.2 基本的SRAM逻辑结构 74
3.2.3 SRAM读/写时序 75
3.2.4 存储器容量的扩充 76
3.3 动态随机存取存储器 78
3.3.1 DRAM存储元的工作原理 78
3.3.2 DRAM芯片的逻辑结构 78
3.3.3 DRAM读/写时序 79
3.3.4 DRAM的刷新操作 79
3.3.5 突发传输模式 80
3.3.6 同步DRAM(SDRAM) 80
3.3.7 双倍数据率SDRAM(DDR SDRAM) 84
3.3.8 DRAM读/写校验 85
3.3.9 CDRAM 85
3.4 只读存储器 88
3.4.1 只读存储器概述 88
3.4.2 NOR闪存 89
3.5 并行存储器 93
3.5.1 双端口存储器 94
3.5.2 多模块交叉存储器 96
3.6 cache存储器 100
3.6.1 cache基本原理 100
3.6.2 主存与cache的地址映射 102
3.6.3 cache的替换策略 108
3.6.4 cache的写操作策略 109
3.6.5 使用多级cache减少缺失损失 109
3.7 虚拟存储器 110
3.7.1 虚拟存储器的基本概念 110
3.7.2 页式虚拟存储器 112
3.7.3 段式虚拟存储器和段页式虚拟存储器 115
3.7.4 虚存的替换算法 117
3.7.5 存储管理部件 118
3.8 鲲鹏920 处理器的内存储系统 118
3.8.1 鲲鹏存储系统的层次结构 118
3.8.2 鲲鹏920 处理器片上系统的主存系统 119
3.8.3 鲲鹏920 处理器片上系统的地址映射与变换 120
本章小结 121
习题 122
第4章 指令系统 125
4.1 指令系统的发展与性能要求 125
4.1.1 指令系统的发展 125
4.1.2 指令系统的性能要求 126
4.1.3 低级语言与硬件结构的关系 126
4.2 指令格式 127
4.2.1 操作码 127
4.2.2 地址码 128
4.2.3 指令字长度 129
4.2.4 指令助记符 130
4.2.5 指令格式举例 131
4.3 指令和数据的寻址方式 133
4.3.1 指令的寻址方式 134
4.3.2 操作数基本寻址方式 134
4.3.3 寻址方式举例 138
4.4 典型指令 141
4.4.1 指令的分类 141
4.4.2 RISC指令系统 142
4.5 ARM 汇编语言 144
本章小结 146
习题 147
第5章 中央处理器 149
5.1 CPU的功能和组成 149
5.1.1 CPU的功能 149
5.1.2 CPU的基本组成 150
5.1.3 CPU中的主要寄存器 151
5.1.4 操作控制器与时序发生器 152
5.2 指令周期 152
5.2.1 指令周期的基本概念 152
5.2.2 NOT指令的指令周期 154
5.2.3 LAD指令的指令周期 156
5.2.4 ADD指令的指令周期 157
5.2.5 STO指令的指令周期 158
5.2.6 JMP指令的指令周期 159
5.2.7 用方框图语言表示指令周期 161
5.3 时序发生器和控制方式 163
5.3.1 时序信号的作用和体制 163
5.3.2 时序信号发生器 164
5.3.3 控制方式 166
5.4 微程序控制器 167
5.4.1 微程序控制原理 167
5.4.2 微程序设计技术 173
5.5 硬布线控制器 177
5.6 流水线技术与流水处理器 181
5.6.1 流水线原理 181
5.6.2 流水线的应用 186
5.6.3 指令流水线设计中的若干问题 189
5.6.4 动态流水线调度 192
5.7 RISC处理器 194
5.7.1 RISC机器的特点 194
5.7.2 华为鲲鹏处理器 195
本章小结 200
习题 201
第6章 总线系统 203
6.1 总线的概念和结构形态 203
6.1.1 总线的基本概念 203
6.1.2 总线的连接方式 205
6.1.3 总线的内部结构 206
6.2 总线接口 208
6.2.1 信息传送方式 208
6.2.2 总线接口的基本概念 210
6.3 总线仲裁 211
6.3.1 集中式仲裁 212
6.3.2 分布式仲裁 213
6.4 总线的定时和数据传送模式 214
6.4.1 总线的定时 214
6.4.2 总线数据传送模式 217
6.5 PCI 总线和PCIe总线 218
6.5.1 主板总线的多总线结构 218
6.5.2 PCI总线信号 219
6.5.3 PCI总线周期类型 220
6.5.4 PCI总线周期操作 221
6.5.5 PCI总线仲裁 222
6.5.6 PCIe总线 223
6.6 鲲鹏处理器的总线与互联 225
6.6.1 鲲鹏920系统的部件互联 225
6.6.2 鲲鹏多芯片系统 228
本章小结 228
习题 229
第7章 外围设备 231
7.1 外围设备概述 231
7.1.1 外围设备的一般功能 231
7.1.2 外围设备的分类 232
7.2 硬盘存储设备 233
7.2.1 磁记录原理 233
7.2.2 磁盘的组成和分类 235
7.2.3 磁盘驱动器和控制器 236
7.2.4 磁盘上信息的分布 237
7.2.5 磁盘存储器的技术指标 238
7.2.6 磁盘cache 240
7.2.7 磁盘阵列RAID 241
7.2.8 固态盘 242
7.3 光盘和磁光盘存储设备 244
7.3.1 光盘存储设备 244
7.3.2 磁光盘存储设备 246
7.4 显示设备 247
7.4.1 显示设备的分类与有关概念 247
7.4.2 字符/图形显示器 248
7.4.3 图像显示设备 249
7.5 输入设备和打印设备 251
7.5.1 输入设备 251
7.5.2 打印设备 252
本章小结 253
习题 254
第8章 输入/输出系统 256
8.1 CPU与外设之间的信息交换方式 256
8.1.1 输入/输出接口与端口 256
8.1.2 输入/输出操作的一般过程 257
8.1.3 I/O 接口与外设间的数据传送方式 258
8.1.4 CPU与I/O接口之间的数据传送 258
8.2 程序查询方式 261
8.3 程序中断方式 263
8.3.1 异常和中断的基本概念 263
8.3.2 中断服务程序入口地址的获取 266
8.3.3 程序中断方式的基本I/O接口 267
8.3.4 单级中断 268
8.3.5 多级中断 270
8.3.6 ARMv8-A架构的异常与中断 273
8.4 DMA方式 275
8.4.1 DMA的基本概念 275
8.4.2 DMA传送方式 276
8.4.3 基本的DMA控制器 278
8.4.4 选择型和多路型DMA 控制器 280
8.5 鲲鹏920处理器片上系统的设备与输入输出子系统 283
8.5.1 鲲鹏920 处理器片上系统的片上设备类型 283
8.5.2 虚拟PCIe总线 284
8.5.3 鲲鹏920 处理器片上系统的网络子系统 285
8.5.4 鲲鹏920 处理器片上系统的外存储子系统 286
8.6 I/O系统设计 288
本章小结 289
习题 290
第9章 并行组织与结构 292
9.1 体系结构中的并行性 292
9.1.1 并行性的概念 292
9.1.2 提高并行性的技术途径 293
9.1.3 单处理器系统中的并行性 293
9.1.4 多处理器系统中的并行性 294
9.1.5 并行处理器的体系结构类型 294
9.1.6
精彩书摘
第1章计算机系统概述
计算机系统不同于一般的电子设备,它是一个由硬件、软件组成的复杂的自动化设备。本章*先说明计算机的分类和发展历史;然后采用自上而下的方法,从存储程序的概念入手,说明计算机的基本组成;从信息处理的过程出发,说明一个完整的计算机系统是由哪些硬件和软件构成的,以及软硬件之间的关系。目的在于使读者对计算机系统的各个部分有初步的、整体的认识,以便展开后续各章内容。
1.1计算机的分类
一般而言,目前广泛应用的计算机都是电子计算机。
按输入输出信号的形式划分,电子计算机可以分为电子模拟计算机和电子数字计算机。电子模拟计算机采用模拟信号输入输出,并通过模拟电压信号进行计算,其特点是数值由连续的模拟量表示,运算过程也是连续的。
另一类是电子数字计算机,用数字信号表示数值的大小。数字计算机的主要特点是按二进制位(bk,比特)运算,并且不连续地跳动计算。表1.1列出了电子数字计算机与电子模拟计算机的主要区别。
电子模拟计算机由于精度和解题能力都有限,所以应用范围较小。电子数字计算机则与电子模拟计算机不同,它是以近似于人类的“思维过程”来进行工作的,所以称为电脑它的发明和发展是20世纪人类*伟大的科学技术成就之一,也是现代科学技术发展水平的主要标志。习惯上所称的电子计算机,一般是指现在广泛应用的电子数字计算机早期,电子数字计算机通常根据其体系结构、运算速度、结构规模、适用领域等分为不同类型,并以此来组织学科和产业分工。例如,可以根据体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等划分为超级计算机、大型机、服务器、PC机和单片机等类型。一般来说,超级计算机主要用于科学计算,其运算速度在每秒万亿次以上,数据存储容量很大,结构复杂,价格昂贵。大型机、服务器、PC机和单片机,它们的结构规模和性能指标依次递减。单片机是只用一片集成电路做成的计算机,体积小,结构简单,性能指标较低,价格便宜。这种分类方法一直沿袭到20世纪80年代。1989年,电气电子工程师学会(IEEE)的科学巨型机委员会将计算机分为个人计算机(Personal Computer,PC)、工作站(workstation)、小型计算机(mini-computer)、主机(mainframe)、小巨型计算机(mini-supercomputer)和巨型计算机(super-computer)6类。
但随着计算机技术的迅猛发展,这样的分类方式已经没有意义了。因为当前手持计算机终端设备的处理能力已经远远超过了当年大中型计算机,靠运算速度、结构规模等对计算机分类无法适应计算机技术的发展变化。
通常按照以应用为中心的分类方法将电子数字计算机进一步分为通用计算机和专用计算机。
通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现并应用在社会的各个方面。通用计算机不专门针对某种应用,可用于多种应用,适应性很强,但是牺牲了效率、速度和经济性,对特定应用而言未必是*优的。
专用计算机是针对某一类特定任务设计的计算机。一般来说,其结构要比通用计算机简单,主要以嵌入式(embedded)计算机的形式出现,被安装、固定、嵌入到交通工具、仪器仪表、控制系统、通信设备、家用电器等部件中,并以嵌入式系统的形式隐藏在各种装置、产品和系统中。对特定的应用场景而言,专用计算机是*有效、*经济和*快速的计算机,但是它的适应性很差,一般不能应用于设计目标以外的应用场景。
1.2计算机的发展简史
1.2.1计算机的五代变化
世界上**台电子数字计算机是1946年在美国宾夕法尼亚大学制成的。这台机器用了18000多个电子管,占地170m2,重量达30t,而运算速度只有每秒5000次。用今天的眼光来看,这台计算机耗费既大又不完善,但却是科学史上一次划时代的创新,它奠定了电子计算机的基础。自这台计算机问世70多年来,从使用器件的角度来说,计算机的发展大致经历了五代的变化。
**代为1946~1957年,电子管计算机。计算机运算速度为每秒几千次至几万次,体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,数据处理机开始得到应用。
第二代为1958~1964年,晶体管计算机。运算速度提高到每秒几万次至几十万次,可靠性提高,体积缩小,成本降低。在此期间,工业控制机开始得到应用。
第三代为1965~1971年,中小规模集成电路计算机。可靠性进一步提高,体积进一步缩小,成本进一步下降,运算速度提高到每秒几十万次至几百万次。在此期间形成机种多样化,生产系列化,使用系统化,小型计算机开始出现。
第四代为1972~1990年,大规模集成电路(LSI)和超大规模集成电路(VLSI)计算机。可靠性更进一步提高,体积更进一步缩小,成本更进一步降低,运算速度提高到每秒1000万次至1亿次。由几片大规模集成电路组成的微型计算机开始出现。
第五代为1991年开始的巨大规模集成电路(ULSI)计算机。运算速度提高到每秒10亿次以上。由一片巨大规模集成电路实现的单片计算机开始出现。
计算机从第三代起,与集成电路技术的发展密切相关。采用大规模集成电路技术可以在一块集成电路芯片上放置1000个元件,采用超大规模集成电路则可达到每块芯片上放置1万个元件,现在的巨大规模集成电路每块芯片上放置超过了100万个元件。1965年,英特尔(Intel)公司创始人之一高登?摩尔(GordonMoore)观察到芯片上的晶体管数量大约每年翻一番,1970年这种态势减慢成每18个月翻一番,这就是人们所称的摩尔定律,如图1.1所示。不过,随着半导体工艺制程的持续演进,晶体管尺寸的缩减已经越来越接近物理极限,在过去数十年里一直驱动信息产业发展的摩尔定律正逐渐走向终结。自2015年起,单核处理器性能提升的比例已由20世纪80年代的每年22%降低至现在的每年3%。未来,基于量子、光子、碳基电子等技术构造的新型芯片或将打破电路元件的限制,衍生出运算速度更快的计算机。
1.2.2半导体存储器的发展
20世纪50~60年代,所有计算机存储器都是由微小的铁磁体环(磁芯)做成,每个磁芯直径约1mm。这些小磁芯处在计算机内用三条细导线穿过网格板上。每个磁芯的一种磁化方向代表一个1,另一个磁化方向则代表一个0。磁芯存储器速度相当快,读存储器中的一位只需1p。但是磁芯存储器价格昂贵、体积大,而且读出是破坏性的,因此必须有读出后立即重写数据的电路。更重要的在于工艺复杂,甚至必须手工制作。
1970年,仙童半导体公司生产出了**个较大容量的半导体存储器。一块相当于单个磁芯大小的芯片,包含了256位的存储器。这种芯片的读写是非破坏性的,而且读写速度比磁芯快得多,读出一位只要70ns,但是其价格比磁芯要高。
1974年,每位半导体存储器的价格开始低于磁芯。这以后,存储器的价格持续快速下跌,但存储密度却不断增加。这导致新的机器比之前的机器更小、更快、存储容量更大,价格更便宜。在不到10年的时间里,存储器技术与处理器技术的发展让计算机焕发了全新的生命力。虽然庞大而昂贵的计算机仍然存在,但计算机已经走向了个人计算机时代。
半导体存储器单芯片的容量已经从20世纪70年代的几KB逐渐提升至TB级。其中1K=210,1M=220,1G=230,1T=240。存储器的存储密度逐渐提高,而每位半导体存储器的价格和存取时间都在下降。
1.2.3微处理器的发展
与存储器芯片类似,单片处理器芯片中容纳的晶体管数量也在不断增加,因此构建一个计算机处理器所需的芯片数量越来越少。
以英特尔公司的微处理器为例。1971年,英特尔公司开发出Intel 4004。这是**个将CPU的所有元件都放入同一块芯片内的产品。于是,微处理器诞生了。
Intel4004集成了2300个晶体管,能完成两个4位二进制数相加,并可通过重复相加完成乘法运算。虽然按今天的标准而言Intel4004过于简单,但是它却成为微处理器的能力和功能不断发展的奠基者。
微处理器演变中的另一个主要进步是1972年出现的Intel8008,这是**个8位微处理器,它比Intel4004复杂一倍。1974年出现了Intel8080,这是**个通用微处理器,而Intel4004和Intel8008是为特殊用途而设计的。Intel8080是为通用微机而设计的中央处理器,它与Intel8008—样,都是8位微处理器,但Intel8080更快,有更丰富的指令系统和更强的寻址能力。
大约在同时期,16位微机被开发出来。但是直到20世纪70年代末才出现强大的通用16位微处理器,Intel8086便是其中之一。这一发展趋势中的另一阶段是在1981年,贝尔实验室和HP公司开发出了32位单片微处理器。Intel公司于1985年推出了32位微处理器Intel80386,1995年推出了64位的PentiumPro处理器。
时至今日,通用处理器虽然还是64位字长,但其性能和功能已经日新月异,处理器单芯片所容纳的晶体管数量可达数百亿甚至上千亿个。
1.2.4国产处理器技术的发展历程
处理器是计算机的核心。中国的电子计算机科研和应用起步于20世纪50年代中后期,当时的计算机系统都是国内自主设计,同国际水平差距不大。但受制于当时的国际国内大环境,国产计算机技术逐渐落后于国际先进水平。全球计算技术的生态环境长期被国外巨头把持,特别是在桌面通用计算领域,英特尔架构处理器和微软(Microsoft)Windows操作系统组合而成的“Wintel”联盟长期居于统治地位,而Arm公司的Arm架构处理器和谷歌(Google)公司主导的安卓(Android)操作系统打造的“A-A”联盟则占据着移动计算市场。
在经历20世纪末的低谷之后,中国国产处理器技术从21世纪初开始追赶****水平。在国家产业政策和重点研发计划支持下,一批国产处理器设计单位和研究机构快速成长,技术发展逐渐走向正轨。时至今日,已经有部分国产处理器厂商具备了完全自主研发能力,国产处理器的应用范围也在不断扩大。海光、兆芯、龙芯中科、华为、飞腾和申威等国产处理器厂商的产品不仅在性能上突飞猛进,市场份额也不断提升。
其中,中科曙光旗下的海光信息技术股份有限公司和上海兆芯集成电路有限公司都采用x86架构IP内核授权模式,产品性能强、产业生态壁垒低,由于依赖海外企业技术授权,自主可控风险偏高。
中国科学院计算技术研究所旗下的龙芯中科技术股份有限公司多年来基于MIPS架构自主研发处理器,并于2021年推出采用自主LoongArch架构的产品。龙芯处理器面向高端嵌入式、个人计算机、服务器和高性能计算等应用场景,在政企、安全、金融、能源等应用场景得到了广泛应用。与龙芯类似,国家高性能集成电路设计中心的申威系列处理器*早基于Alpha架构开发,逐渐过渡到专为高性能计算自研的指令集。申威处理器在超算领域的应用场景中性能强大、优势明显,搭载申威处理器并运行国产操作系统的神威太湖之光超级计算机的性能曾位列全球超级计算机TOP500榜单**名。
天津飞腾(Phytium)信息技术有限公司的飞腾处理器由国防科技大学研究团队研发。当前的飞腾处理器采用Arm指令集,集成全自主研发的处理器内核,并形成了覆盖桌面、服务器和嵌入式等领域的完整产品线。
华为旗下的海思半导体有限公司于2019年发布的鲲鹏(Kunpeng)920处理器片上系统是华为自主设计的高性能服务处理器片上系统。每个鲲鹏920处理器片上系统集成*多64个自研处理器内核,在兼容ARMv8-A指令集的基础上,鲲鹏芯片集成了诸多革命性的改变,
集高性能、
计算机系统不同于一般的电子设备,它是一个由硬件、软件组成的复杂的自动化设备。本章*先说明计算机的分类和发展历史;然后采用自上而下的方法,从存储程序的概念入手,说明计算机的基本组成;从信息处理的过程出发,说明一个完整的计算机系统是由哪些硬件和软件构成的,以及软硬件之间的关系。目的在于使读者对计算机系统的各个部分有初步的、整体的认识,以便展开后续各章内容。
1.1计算机的分类
一般而言,目前广泛应用的计算机都是电子计算机。
按输入输出信号的形式划分,电子计算机可以分为电子模拟计算机和电子数字计算机。电子模拟计算机采用模拟信号输入输出,并通过模拟电压信号进行计算,其特点是数值由连续的模拟量表示,运算过程也是连续的。
另一类是电子数字计算机,用数字信号表示数值的大小。数字计算机的主要特点是按二进制位(bk,比特)运算,并且不连续地跳动计算。表1.1列出了电子数字计算机与电子模拟计算机的主要区别。
电子模拟计算机由于精度和解题能力都有限,所以应用范围较小。电子数字计算机则与电子模拟计算机不同,它是以近似于人类的“思维过程”来进行工作的,所以称为电脑它的发明和发展是20世纪人类*伟大的科学技术成就之一,也是现代科学技术发展水平的主要标志。习惯上所称的电子计算机,一般是指现在广泛应用的电子数字计算机早期,电子数字计算机通常根据其体系结构、运算速度、结构规模、适用领域等分为不同类型,并以此来组织学科和产业分工。例如,可以根据体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等划分为超级计算机、大型机、服务器、PC机和单片机等类型。一般来说,超级计算机主要用于科学计算,其运算速度在每秒万亿次以上,数据存储容量很大,结构复杂,价格昂贵。大型机、服务器、PC机和单片机,它们的结构规模和性能指标依次递减。单片机是只用一片集成电路做成的计算机,体积小,结构简单,性能指标较低,价格便宜。这种分类方法一直沿袭到20世纪80年代。1989年,电气电子工程师学会(IEEE)的科学巨型机委员会将计算机分为个人计算机(Personal Computer,PC)、工作站(workstation)、小型计算机(mini-computer)、主机(mainframe)、小巨型计算机(mini-supercomputer)和巨型计算机(super-computer)6类。
但随着计算机技术的迅猛发展,这样的分类方式已经没有意义了。因为当前手持计算机终端设备的处理能力已经远远超过了当年大中型计算机,靠运算速度、结构规模等对计算机分类无法适应计算机技术的发展变化。
通常按照以应用为中心的分类方法将电子数字计算机进一步分为通用计算机和专用计算机。
通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现并应用在社会的各个方面。通用计算机不专门针对某种应用,可用于多种应用,适应性很强,但是牺牲了效率、速度和经济性,对特定应用而言未必是*优的。
专用计算机是针对某一类特定任务设计的计算机。一般来说,其结构要比通用计算机简单,主要以嵌入式(embedded)计算机的形式出现,被安装、固定、嵌入到交通工具、仪器仪表、控制系统、通信设备、家用电器等部件中,并以嵌入式系统的形式隐藏在各种装置、产品和系统中。对特定的应用场景而言,专用计算机是*有效、*经济和*快速的计算机,但是它的适应性很差,一般不能应用于设计目标以外的应用场景。
1.2计算机的发展简史
1.2.1计算机的五代变化
世界上**台电子数字计算机是1946年在美国宾夕法尼亚大学制成的。这台机器用了18000多个电子管,占地170m2,重量达30t,而运算速度只有每秒5000次。用今天的眼光来看,这台计算机耗费既大又不完善,但却是科学史上一次划时代的创新,它奠定了电子计算机的基础。自这台计算机问世70多年来,从使用器件的角度来说,计算机的发展大致经历了五代的变化。
**代为1946~1957年,电子管计算机。计算机运算速度为每秒几千次至几万次,体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,数据处理机开始得到应用。
第二代为1958~1964年,晶体管计算机。运算速度提高到每秒几万次至几十万次,可靠性提高,体积缩小,成本降低。在此期间,工业控制机开始得到应用。
第三代为1965~1971年,中小规模集成电路计算机。可靠性进一步提高,体积进一步缩小,成本进一步下降,运算速度提高到每秒几十万次至几百万次。在此期间形成机种多样化,生产系列化,使用系统化,小型计算机开始出现。
第四代为1972~1990年,大规模集成电路(LSI)和超大规模集成电路(VLSI)计算机。可靠性更进一步提高,体积更进一步缩小,成本更进一步降低,运算速度提高到每秒1000万次至1亿次。由几片大规模集成电路组成的微型计算机开始出现。
第五代为1991年开始的巨大规模集成电路(ULSI)计算机。运算速度提高到每秒10亿次以上。由一片巨大规模集成电路实现的单片计算机开始出现。
计算机从第三代起,与集成电路技术的发展密切相关。采用大规模集成电路技术可以在一块集成电路芯片上放置1000个元件,采用超大规模集成电路则可达到每块芯片上放置1万个元件,现在的巨大规模集成电路每块芯片上放置超过了100万个元件。1965年,英特尔(Intel)公司创始人之一高登?摩尔(GordonMoore)观察到芯片上的晶体管数量大约每年翻一番,1970年这种态势减慢成每18个月翻一番,这就是人们所称的摩尔定律,如图1.1所示。不过,随着半导体工艺制程的持续演进,晶体管尺寸的缩减已经越来越接近物理极限,在过去数十年里一直驱动信息产业发展的摩尔定律正逐渐走向终结。自2015年起,单核处理器性能提升的比例已由20世纪80年代的每年22%降低至现在的每年3%。未来,基于量子、光子、碳基电子等技术构造的新型芯片或将打破电路元件的限制,衍生出运算速度更快的计算机。
1.2.2半导体存储器的发展
20世纪50~60年代,所有计算机存储器都是由微小的铁磁体环(磁芯)做成,每个磁芯直径约1mm。这些小磁芯处在计算机内用三条细导线穿过网格板上。每个磁芯的一种磁化方向代表一个1,另一个磁化方向则代表一个0。磁芯存储器速度相当快,读存储器中的一位只需1p。但是磁芯存储器价格昂贵、体积大,而且读出是破坏性的,因此必须有读出后立即重写数据的电路。更重要的在于工艺复杂,甚至必须手工制作。
1970年,仙童半导体公司生产出了**个较大容量的半导体存储器。一块相当于单个磁芯大小的芯片,包含了256位的存储器。这种芯片的读写是非破坏性的,而且读写速度比磁芯快得多,读出一位只要70ns,但是其价格比磁芯要高。
1974年,每位半导体存储器的价格开始低于磁芯。这以后,存储器的价格持续快速下跌,但存储密度却不断增加。这导致新的机器比之前的机器更小、更快、存储容量更大,价格更便宜。在不到10年的时间里,存储器技术与处理器技术的发展让计算机焕发了全新的生命力。虽然庞大而昂贵的计算机仍然存在,但计算机已经走向了个人计算机时代。
半导体存储器单芯片的容量已经从20世纪70年代的几KB逐渐提升至TB级。其中1K=210,1M=220,1G=230,1T=240。存储器的存储密度逐渐提高,而每位半导体存储器的价格和存取时间都在下降。
1.2.3微处理器的发展
与存储器芯片类似,单片处理器芯片中容纳的晶体管数量也在不断增加,因此构建一个计算机处理器所需的芯片数量越来越少。
以英特尔公司的微处理器为例。1971年,英特尔公司开发出Intel 4004。这是**个将CPU的所有元件都放入同一块芯片内的产品。于是,微处理器诞生了。
Intel4004集成了2300个晶体管,能完成两个4位二进制数相加,并可通过重复相加完成乘法运算。虽然按今天的标准而言Intel4004过于简单,但是它却成为微处理器的能力和功能不断发展的奠基者。
微处理器演变中的另一个主要进步是1972年出现的Intel8008,这是**个8位微处理器,它比Intel4004复杂一倍。1974年出现了Intel8080,这是**个通用微处理器,而Intel4004和Intel8008是为特殊用途而设计的。Intel8080是为通用微机而设计的中央处理器,它与Intel8008—样,都是8位微处理器,但Intel8080更快,有更丰富的指令系统和更强的寻址能力。
大约在同时期,16位微机被开发出来。但是直到20世纪70年代末才出现强大的通用16位微处理器,Intel8086便是其中之一。这一发展趋势中的另一阶段是在1981年,贝尔实验室和HP公司开发出了32位单片微处理器。Intel公司于1985年推出了32位微处理器Intel80386,1995年推出了64位的PentiumPro处理器。
时至今日,通用处理器虽然还是64位字长,但其性能和功能已经日新月异,处理器单芯片所容纳的晶体管数量可达数百亿甚至上千亿个。
1.2.4国产处理器技术的发展历程
处理器是计算机的核心。中国的电子计算机科研和应用起步于20世纪50年代中后期,当时的计算机系统都是国内自主设计,同国际水平差距不大。但受制于当时的国际国内大环境,国产计算机技术逐渐落后于国际先进水平。全球计算技术的生态环境长期被国外巨头把持,特别是在桌面通用计算领域,英特尔架构处理器和微软(Microsoft)Windows操作系统组合而成的“Wintel”联盟长期居于统治地位,而Arm公司的Arm架构处理器和谷歌(Google)公司主导的安卓(Android)操作系统打造的“A-A”联盟则占据着移动计算市场。
在经历20世纪末的低谷之后,中国国产处理器技术从21世纪初开始追赶****水平。在国家产业政策和重点研发计划支持下,一批国产处理器设计单位和研究机构快速成长,技术发展逐渐走向正轨。时至今日,已经有部分国产处理器厂商具备了完全自主研发能力,国产处理器的应用范围也在不断扩大。海光、兆芯、龙芯中科、华为、飞腾和申威等国产处理器厂商的产品不仅在性能上突飞猛进,市场份额也不断提升。
其中,中科曙光旗下的海光信息技术股份有限公司和上海兆芯集成电路有限公司都采用x86架构IP内核授权模式,产品性能强、产业生态壁垒低,由于依赖海外企业技术授权,自主可控风险偏高。
中国科学院计算技术研究所旗下的龙芯中科技术股份有限公司多年来基于MIPS架构自主研发处理器,并于2021年推出采用自主LoongArch架构的产品。龙芯处理器面向高端嵌入式、个人计算机、服务器和高性能计算等应用场景,在政企、安全、金融、能源等应用场景得到了广泛应用。与龙芯类似,国家高性能集成电路设计中心的申威系列处理器*早基于Alpha架构开发,逐渐过渡到专为高性能计算自研的指令集。申威处理器在超算领域的应用场景中性能强大、优势明显,搭载申威处理器并运行国产操作系统的神威太湖之光超级计算机的性能曾位列全球超级计算机TOP500榜单**名。
天津飞腾(Phytium)信息技术有限公司的飞腾处理器由国防科技大学研究团队研发。当前的飞腾处理器采用Arm指令集,集成全自主研发的处理器内核,并形成了覆盖桌面、服务器和嵌入式等领域的完整产品线。
华为旗下的海思半导体有限公司于2019年发布的鲲鹏(Kunpeng)920处理器片上系统是华为自主设计的高性能服务处理器片上系统。每个鲲鹏920处理器片上系统集成*多64个自研处理器内核,在兼容ARMv8-A指令集的基础上,鲲鹏芯片集成了诸多革命性的改变,
集高性能、
📑 Table of Contents
- 计算机系统概述
- 运算方法和运算器
- 存储系统
- 指令系统
- 中央处理器
- 总线系统
- 外围设备
- 输入/输出系统
- 并行组织与结构
- 量子计算机
- 课程教学实验设计
- 课程综合设计