第1章 嵌入式计算 1
1.1 高性能嵌入式计算的现状 1
1.2 信息物理系统和嵌入式计算 3
1.2.1 交通工具控制和操作 3
1.2.2 医疗设备和系统 5
1.2.3 电力 6
1.2.4 无线电和网络 7
1.2.5 多媒体 10
1.3 设计方法 12
1.3.1 为什么使用设计方法 13
1.3.2 设计目标 13
1.3.3 基本设计方法 14
1.3.4 嵌入式设计流程 15
1.3.5 基于标准的设计方法 16
1.3.6 设计验证和确认 18
1.3.7 方法学 18
1.3.8 算法和体系结构联合开发 19
1.4 计算模型 19
1.4.1 为什么学习计算模型 20
1.4.2 图灵机 20
1.4.3 面向流模型 21
1.4.4 状态和控制的表示 23
1.4.5 并行性和通信 24
1.4.6 并行的来源和使用 26
1.5 可靠性、安全性和保密性 27
1.5.1 为什么需要可靠的嵌入式系统 27
1.5.2 可靠系统设计的基础 28
1.5.3 新型攻击和对策 30
1.6 消费类电子产品体系结构 31
1.6.1 蓝牙 31
1.6.2 WiFi 32
1.6.3 网络化消费类电子设备 33
1.6.4 高层次服务 33
1.7 小结和展望 35
本章所学内容 35
进一步阅读 35
习题 35
实验练习 36
第2章 CPU 37
2.1 引言 37
2.2 处理器的比较 37
2.2.1 评价处理器 37
2.2.2 处理器的分类 38
2.2.3 嵌入式处理器与通用处理器 39
2.3 RISC处理器和数字信号处理器 39
2.3.1 RISC处理器 40
2.3.2 数字信号处理器 40
2.4 并行执行机制 44
2.4.1 超长指令字处理器 44
2.4.2 超标量处理器 45
2.4.3 SIMD和向量处理器 45
2.4.4 线程级并行性 46
2.4.5 GPU 46
2.4.6 处理器资源的利用 47
2.5 性能可变CPU体系结构 48
2.5.1 动态电压和频率缩放 49
2.5.2 可靠性和错误感知计算 49
2.6 处理器存储层次结构 50
2.6.1 存储器组件模型 50
2.6.2 寄存器文件 54
2.6.3 缓存 54
2.6.4 暂存存储器 56
2.7 编码和安全 56
2.7.1 代码压缩 56
2.7.2 代码和数据压缩 65
2.7.3 低功率总线编码 66
2.7.4 安全性 69
2.8 CPU模拟 71
2.8.1 基于跟踪文件的分析 73
2.8.2 直接执行 74
2.8.3 微体系结构建模模拟器 74
2.8.4 功耗和热度的模拟与建模 75
2.9 自动化CPU设计 75
2.9.1 可配置处理器 76
2.9.2 指令集综合 82
2.10 小结 86
本章所学内容 86
进一步阅读 86
习题 86
实验练习 87
第3章 程序 88
3.1 引言 88
3.2 代码生成和后端编译 88
3.2.1 指令模型 89
3.2.2 寄存器分配 90
3.2.3 指令选择和调度 92
3.2.4 代码放置 93
3.2.5 编程环境 95
3.3 面向存储的优化 96
3.3.1 循环变换 96
3.3.2 全局优化 99
3.3.3 缓冲区、数据传输和内存管理 100
3.3.4 面向缓存和暂存的优化 102
3.3.5 面向主存的优化 104
3.4 程序性能分析 106
3.4.1 性能模型 107
3.4.2 路径分析 108
3.4.3 路径计时 110
3.5 计算与编程模型 114
3.5.1 面向中断的语言 115
3.5.2 数据流语言 116
3.5.3 面向控制的语言 120
3.5.4 Java 123
3.5.5 计算异构模型 124
3.6 小结 126
本章所学内容 126
进一步阅读 126
习题 127
实验练习 128
第4章 进程和操作系统 129
4.1 引言 129
4.2 实时进程调度 129
4.2.1 预备知识 129
4.2.2 实时调度算法 131
4.2.3 多关键级调度 136
4.2.4 动态电压和频率缩放调度 138
4.2.5 性能估计 141
4.3 语言和调度 142
4.4 操作系统设计 146
4.4.1 嵌入式操作系统的内存管理 146
4.4.2 实时操作系统结构 146
4.4.3 操作系统开销 147
4.4.4 对调度的支持 148
4.4.5 进程间通信机制 149
4.4.6 功耗管理 149
4.4.7 嵌入式设备中的文件系统 150
4.5 验证 153
4.6 小结 155
本章所学内容 156
进一步阅读 156
习题 156
实验练习 157
第5章 多处理器体系结构 158
5.1 引言 158
5.2 为什么需要嵌入式多处理器 159
5.2.1 嵌入式系统需求 159
5.2.2 性能和能量 160
5.2.3 专用性和多处理器 161
5.2.4 灵活性和效率 162
5.3 多处理器设计技术 162
5.3.1 多处理器设计方法 162
5.3.2 多处理器的建模和模拟 163
5.4 多处理器体系结构简介 164
5.5 处理单元 167
5.6 互连网络 167
5.6.1 模型 168
5.6.2 网络拓扑 169
5.6.3 路由和流控制 171
5.6.4 片上网络 172
5.7 存储系统 177
5.7.1 传统并行存储系统 177
5.7.2 存储模型 178
5.7.3 异构存储系统 178
5.7.4 一致性并行存储系统 180
5.8 物理分布式系统和网络 182
5.8.1 CAN总线 183
5.8.2 时间触发架构 183
5.8.3 FlexRay 184
5.8.4 航空网络 189
5.9 多处理器设计方法和算法 190
5.10 小结 193
本章所学内容 194
进一步阅读 194
习题 194
实验练习 195
第6章 多处理器软件 196
6.1 引言 196
6.2 嵌入式多处理器软件有何不同 196
6.3 实时多处理器操作系统 197
6.3.1 操作系统的角色 197
6.3.2 多处理器调度 199
6.3.3 动态任务的调度 209
6.4 嵌入式多处理器的服务和中间件 210
6.4.1 基于标准的服务 211
6.4.2 片上系统服务 213
6.4.3 服务质量 216
6.5 设计验证 219
6.6 小结 220
本章所学内容 220
进一步阅读 220
习题 220
实验练习 222
第7章 系统级设计和软硬件协同设计 223
7.1 引言 223
7.2 性能估计 223
7.2.1 高层综合 223
7.2.2 加速器估计 226
7.3 软硬件协同综合算法 228
7.3.1 程序表达 229
7.3.2 平台表达 230
7.3.3 模板驱动的综合算法 230
7.3.4 通用多处理器的协同综合 235
7.3.5 多目标优化 239
7.3.6 控制和I/O综合 242
7.3.7 存储系统 243
7.3.8 可重构系统的协同综合 244
7.4 电子系统级设计 245
7.5 热度感知设计 247
7.6 可靠性 249
7.7 系统级模拟 250
7.8 小结 252
本章所学内容 252
进一步阅读 252
习题 252
实验练习 253
第8章 信息物理系统 254
8.1 引言 254
8.2 控制理论和系统 254
8.3 控制/计算协同设计 255
8.4 网络化控制系统 257
8.5 设计方法学 260
8.5.1 基于模型的设计 260
8.5.2 形式化方法 261
8.6 安全性 264
8.7 小结 267
本章所学内容 267
进一步阅读 268
习题 268
实验练习 268
术语表 269
参考文献 287
索引 314