第1章 概述 1
1.1 计算机发展概述 1
1.1.1 电子计算机发展概述 1
1.1.2 普适计算与泛在通信 3
1.2 集成电路与SoC设计 8
1.2.1 集成电路技术的发展 9
1.2.2 基于IP的SoC设计 10
1.3 先进的处理器技术 13
1.3.1 片上多核处理器(CMP) 13
1.3.2 流处理器(Stream Processor) 15
1.3.3 PIM(Processor In Memory) 16
1.3.4 可重构计算处理器 17
1.4 嵌入式系统 19
1.4.1 嵌入式系统的概念 20
1.4.2 嵌入式系统的特点 21
1.4.3 嵌入式系统中的处理器 21
1.4.4 嵌入式系统的组成 24
1.4.5 嵌入式系统的发展现状与趋势 25
1.4.6 学习嵌入式系统的意义 27
参考文献 28
习题 28
第2章 计算机系统的结构组成与工作原理 29
2.1 计算机系统的基本结构与组成 29
2.1.1 计算机系统的层次模型 29
2.1.2 计算机系统的结构、组织与实现 31
2.2 计算机系统的工作原理 32
2.2.1 冯·诺依曼计算机架构 32
2.2.2 模型机系统结构 33
2.2.3 模型机指令集 36
2.2.4 模型机工作流程 37
2.3 微处理器体系结构的改进 38
2.3.1 冯·诺依曼结构的改进 39
2.3.2 并行技术的发展 43
2.3.3 流水线结构 44
2.3.4 超标量与超长指令字结构 48
2.3.5 多机与多核结构 50
2.4 计算机体系结构分类 52
2.5 计算机性能评测 54
2.5.1 字长 54
2.5.2 存储容量 54
2.5.3 运算速度 55
参考文献 56
习题 56
第3章 微处理器体系结构及关键技术 58
3.1 微处理器体系结构及功能模块简介 58
3.1.1 处理器的主要功能及部件 59
3.1.2 处理器的基本功能结构 60
3.1.3 一个简化的处理器模型结构示例 62
3.2 处理器设计 64
3.2.1 处理器的设计步骤 65
3.2.2 控制器的操作与功能 66
3.2.3 随机逻辑控制器设计 67
3.2.4 微程序(微码)控制器结构及设计 70
3.2.5 寄存器组设计 73
3.3 指令系统设计 74
3.3.1 机器指令的组成 74
3.3.2 指令格式 76
3.3.3 指令类型 77
3.3.4 寻址方式 78
3.3.5 指令系统设计要点 82
3.4 指令流水线技术 82
3.4.1 流水线技术的特点 83
3.4.2 流水线操作的详细说明 84
3.4.3 流水线的局限性 85
3.4.4 指令流水线设计 87
3.5 典型微处理体系结构简介 90
3.5.1 ARM体系结构简介 90
3.5.2 Intel x86体系结构简介 91
参考文献 93
习题 94
第4章 总线技术与总线标准 95
4.1 总线技术 95
4.1.1 总线技术概述 95
4.1.2 总线仲裁 100
4.1.3 总线操作与时序 103
4.2 总线标准 107
4.2.1 片内AMBA总线 108
4.2.2 PCI系统总线 116
4.2.3 异步串行通信总线 127
参考文献 133
习题 133
第5章 存储器系统 135
5.1 存储器件的分类 135
5.1.1 按存储介质分类 135
5.1.2 按读写策略分类 138
5.2 半导体存储芯片的基本结构与性能指标 139
5.2.1 随机存取存储器 139
5.2.2 只读存储器 146
5.2.3 存储器芯片的性能指标 154
5.3 存储系统的层次结构 156
5.3.1 存储系统的分层管理 156
5.3.2 虚拟存储器与地址映射 158
5.3.3 现代计算机的多层次存储体系 161
5.4 主存储器设计技术 164
5.4.1 存储芯片选型 165
5.4.2 存储芯片的组织形式 165
5.4.3 地址译码技术 169
5.4.4 存储器接口设计 174
参考文献 176
习题 176
第6章 输入/输出接口 179
6.1 输入/输出接口基础 179
6.1.1 输入/输出接口的功能与结构 179
6.1.2 输入/输出端口编址 182
6.2 接口地址译码 184
6.3 接口信息传输方式 185
6.3.1 程序查询传输方式 185
6.3.2 程序中断传输方式 188
6.3.3 直接存储器访问(DMA)方式 195
6.3.4 通道方式 198
6.4 并行接口 198
6.4.1 无握手信号的并行接口 199
6.4.2 带握手信号的并行接口 203
6.4.3 可编程并行接口 205
6.5 串行接口 209
6.5.1 同步串行接口 209
6.5.2 异步串行接口 212
参考文献 214
习题 214
第7章 ARM微处理器编程模型 216
7.1 ARM内核体系结构 216
7.1.1 ARM体系结构版本 216
7.1.2 ARM内核简介 220
7.2 ARM编程模型 225
7.2.1 处理器工作状态 225
7.2.2 处理器运行模式 226
7.2.3 寄存器组织 226
7.2.4 数据类型和存储格式 230
7.2.5 异常 231
参考文献 235
习题 235
第8章 ARM汇编指令 236
8.1 ARM指令格式 236
8.1.1 ARM指令的一般编码格式 236
8.1.2 ARM指令的条件域 237
8.1.3 指令的第二源操作数 238
8.2 ARM寻址方式 240
8.2.1 立即寻址 240
8.2.2 寄存器直接寻址 240
8.2.3 寄存器移位寻址 240
8.2.4 寄存器间接寻址 241
8.2.5 基址变址寻址 241
8.2.6 多寄存器直接寻址 243
8.2.7 相对寻址 243
8.2.8 堆栈寻址 243
8.3 ARM指令集 244
8.3.1 数据处理指令 244
8.3.2 转移指令 254
8.3.3 程序状态寄存器访问指令 256
8.3.4 加载/存储指令 258
8.3.5 异常产生指令 265
8.3.6 伪指令 266
参考文献 268
习题 268
第9章 ARM程序设计 269
9.1 ARM程序开发环境 269
9.1.1 常用ARM程序开发环境简介 269
9.1.2 RVDS开发环境简介 272
9.2 汇编语言伪指令 273
9.2.1 符号定义伪指令 273
9.2.2 数据定义伪指令 274
9.2.3 汇编控制伪指令 275
9.2.4 其他常用伪指令 279
9.2.5 汇编语言中常用的符号 282
9.2.6 常用运算符和表达式 283
9.3 ARM汇编语言程序设计 285
9.3.1 ARM汇编语言程序结构 285
9.3.2 ARM汇编程序设计实例 286
9.4 ARM汇编语言与C/C++的混合编程 295
9.4.1 C语言与汇编语言之间的函数调用 295
9.4.2 C/C++语言和汇编语言的混合编程 300
参考文献 304
习题 304
第10章 基于ARM微处理器的硬件系统设计 307
10.1 基于ARM微处理器的系统设计概述 307
10.2 S3C2440A微处理器 307
10.2.1 S3C2440A微处理器简介 307
10.2.2 S3C2440A内部结构及主要特性 308
10.2.3 S3C2440A外部引脚 311
10.3 ARM微处理器最小硬件系统 311
10.3.1 电源模块 312
10.3.2 时钟模块 313
10.3.3 复位模块 313
10.3.4 JTAG调试接口模块 315
10.3.5 外部存储器模块 315
10.4 人机交互接口 318
10.4.1 键盘与LED接口 318
10.4.2 LCD显示接口 320
10.4.3 触摸屏接口 323
10.5 通信接口 327
10.5.1 串行通信接口 327
10.5.2 其他通信接口 332
参考文献 333
习题 334
第11章 基于ARM微处理器的软件系统设计 335
11.1 嵌入式软件系统结构及工作流程 335
11.1.1 嵌入式软件系统结构 335
11.1.2 嵌入式软件系统工作流程 336
11.2 嵌入式软件系统的引导和加载 337
11.2.1 Bootloader程序的基本概念 338
11.2.2 U-Boot的分析与移植 339
11.3 嵌入式Linux内核的移植 341
11.3.1 Linux内核的结构 344
11.3.2 内核的配置与裁减 345
11.3.3 内核的编译 347
11.3.4 Linux内核配置编译实例 348
11.4 Linux下驱动程序设计示例 350
参考文献 354
习题 354
第12章 基于ARM微处理器核的SoC设计 355
12.1 概述 355
12.2 SoC设计 356
12.2.1 SoC的典型结构 357
12.2.2 SoC设计中的关键技术 358
12.3 SoC的片上总线 361
12.3.1 片上总线的特点 361
12.3.2 SoC中常用的总线标准 362
12.4 SoC系统的设计流程 365
12.4.1 SoC系统芯片的系统级设计 366
12.4.2 系统芯片的设计流程 367
12.5 基于ARM内核的SoC系统设计 368
12.5.1 常用ARM CPU内核所使用的总线接口 368
12.5.2 基于ARM的SoC结构 369
12.5.3 基于ARM内核的SoC系统应用设计举例 376
参考文献 380
习题 380
附录A ASCII码表 381
附录B ARM实验系统简介 382
附录C AT91SAM9263引脚排列及信号名称表 384
附录D S3C2440A引脚排列及信号名称表 386
附录E MX21引脚排列及信号名称表 388
附录F ARM指令速查表及符号含义 389
附录G Linux常用命令表 399