第1章 绪论 1
1.1写作目的 2
1.2多核处理器的出现 2
1.3多处理器系统不是一项新技术 3
1.4应用程序需要采用多线程 4
1.5软件是负担还是机遇 5
1.6什么是嵌入式 6
1.7嵌入式有何独特性 8
本章小结 8
第2章 基本系统和处理器体系结构 10
2.1性能 11
2.2嵌入式Intel体系结构处理器发展历程 12
2.2.1 Intel 186处理器 12
2.2.2 Intel 386处理器 12
2.2.3 Intel 486处理器 14
2.2.4 Intel Pentium处理器 16
2.2.5 Intel Pentium Ⅲ处理器 17
2.2.6 Intel PentiumⅣ处理器 17
2.2.7 Intel Pentium M处理器 18
2.2.8 Intel Xeon LV及ULV双核处理器和Intel Xeon 5100系列双核处理器 19
2.2.9嵌入式Intel Core2双核处理器 19
2.2.10 Intel Xeon 5300系列四核处理器 20
2.3嵌入式系统及其处理器的发展趋势 20
2.3.1未来45 nm工艺嵌入式处理器 20
2.3.2 Intel Atom处理器内核 20
2.3.3 Tolapai片上系统加速器 21
2.4 x86汇编语言指导 21
2.4.1 x86汇编基础 21
2.4.2提示1:关注小范围 23
2.4.3提示2:快速识别源操作数和目标操作数 23
2.4.4提示3:了解基本寄存器和存储器访问 23
2.4.5提示4:熟悉常用操作 24
2.4.6提示5:把参考手册当成好助手 25
2.4.7提示6:注意编译器的优化 25
2.4.8提示7:反汇编与源程序的相关性 27
2.4.9汇编实例指南 27
本章小结 30
相关阅读 30
第3章 多核处理器与嵌入式 31
3.1采用多核处理器的目的 31
3.2多核处理器体系结构 32
3.2.1同构多核与异构多核 33
3.2.2对称多核与非对称多核 34
3.3多核处理器给嵌入式系统带来的好处 35
3.4嵌入式市场与多核处理器 36
3.4.1无线通信基础设施 36
3.4.2工业控制 36
3.4.3国家机关的应用 37
3.4.4企业基础安全 37
3.4.5车载娱乐 37
3.4.6互动终端 38
3.4.7语音及整合通信 38
3.4.8数字安全监控 39
3.4.9存储 39
3.4.10医疗 39
3.5多核处理器的性能评价 40
3.5.1单核性能基准测试程序 40
3.5.2多核性能基准测试程序 41
3.5.3功耗基准测试 42
3.5.4应用性能评价 45
3.5.5嵌入式系统的性能特点 47
3.5.6审查基准测试程序数据 49
本章小结 50
相关阅读 50
第4章 移植到Intel多核处理器 52
4.1移植到Intel体系结构 52
4.1.1 32位与64位支持 53
4.1.2字节顺序:大端与小端 54
4.1.3关于BIOS和OS 57
4.2支持SMP操作系统 64
4.2.1基本MESI协议 65
4.2.2设备驱动程序和内核程序 66
4.3多核处理器开发工具的发展 67
4.3.1 OpenMP 67
4.3.2自动并行化 70
4.3.3猜测预执行 71
4.3.4线程库 71
4.3.5图形设计工具 74
4.3.6调试 75
4.3.7性能分析工具 76
本章小结 78
相关阅读 78
第5章 标量优化与可用性 80
5.1编译器优化 82
5.1.1一般优化 82
5.1.2高级优化 83
5.1.3高级优化选项 85
5.1.4辅助优化 85
5.2优化流程 87
5.3可用性 92
5.3.1诊断 92
5.3.2兼容性 93
5.3.3编译时间 94
5.3.4预编译头文件 94
5.3.5并行编译 95
5.3.6代码规模 95
5.3.7代码覆盖 96
5.3.8调试优化结果 96
本章小结 98
相关阅读 98
第6章 线程级并行优化 99
6.1并行化基础知识 100
6.1.1线程 100
6.1.2分解 100
6.1.3可伸缩性 101
6.1.4并行处理的局限性 102
6.1.5线程技术需求 104
6.2线程开发周期 105
6.2.1分析 105
6.2.2设计与实现 109
6.2.3调试 112
6.2.4调整 115
本章小结 117
相关阅读 117
第7章 案例研究:数据分解 119
7.1案例概述 119
7.2构建过程 119
7.3分析 121
7.4设计和实现 131
7.5调试 133
7.6调整 136
本章小结 141
第8章 案例研究:功能分解 143
8.1 Snort 143
8.1.1程序简介 143
8.1.2构建过程 145
8.2分析 145
8.2.1串行优化 145
8.2.2基准 146
8.2.3串行优化结果 147
8.2.4执行时间分析 148
8.2.5函数调用关系图 148
8.3设计与实现 149
8.3.1线程化Snort 149
8.3.2代码修改 150
8.3.3流定位 155
8.3.4流定位的代码修改 157
8.4 Snort调试 163
8.5调整 164
本章小结 166
第9章 虚拟化和分区 168
9.1概述 168
9.2虚拟化和分区 169
9.2.1 VMM体系结构 171
9.2.2虚拟化的应用模型和优点 172
9.2.3电信/嵌入式领域中的应用前景 176
9.3技术和设计因素 180
9.4虚拟化的电信实例 191
9.4.1建立和配置BKM 191
9.4.2计算和网络I/O性能 198
本章小结 205
相关阅读 205
第10章 迎接低功耗Intel体系结构 207
10.1体系结构 208
10.1.1顺序执行 208
10.1.2节能软件的多种技术 214
10.2嵌入式系统调试 217
10.2.1嵌入式系统调试历史概述 217
10.2.2 JTAG和嵌入式调试未来发展趋势 218
10.2.3硬件平台的构建 219
10.2.4操作系统和设备驱动程序调试 221
10.2.5应用程序调试 225
10.2.6多核调试的考虑因素 229
本章小结 230
第11章 总结、趋势和结论 231
11.1发展趋势 232
11.1.1处理器发展趋势 232
11.1.2软件挑战 233
11.1.3带宽挑战 234
11.2结论 235
附录 236
术语表 238