(特价书)嵌入式多核系统软件开发:嵌入式Intel体系结构实用指南

更多详情

内容简介: 本书系统阐述了嵌入式多核系统软件开发的技术,并基于主流的Intel嵌入式多核系统给出许多开发实例。全书共分为11章,分别介绍了嵌入式多核处理器的概念、嵌入式Intel多核体系结构处理器、多核处理器性能量化方法、嵌入式多核处理器移植、可用性技术、多线程开发、线程级并行优化、虚拟化和分区、多处理器优化技术、电能利用技术等内容。
本书采用模块化的结构安排、理论阐述与应用实例相结合的叙述方式,最大限度帮助读者掌握嵌入式多核开发技术。
本书可作为计算机科学与技术、电子科学与技术、电子信息工程等专业相关师生学习用书,也可供相关科研与工程技术人员参考。

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

译者序: 当今,多核技术正飞速发展,已经广泛进入人们的生活。根据Intel公司的战略计划,在不久的将来,主流处理器的内核数量将达到100个以上,这种多核发展趋势不但对计算机领域产生巨大影响,也将对通信、消费电子、移动计算等嵌入式领域带来巨大的转变。
多核技术的出现,使得未来的软件开发及硬件平台都将逐渐转变到多核技术上。嵌入式领域正面临着该技术所带来的挑战与机遇,并不断地与其他技术相融合,推动着嵌入式系统的技术发展。随着多核技术、应用开发工具的成熟,基于多核的嵌入式系统开发正面临着新的机遇和挑战。根据市场预计,今后3~5年,Intel将没有单核,市场上对多核软件产生了迫切要求,以利用更多的内核资源。而在嵌入式技术方面,由于Intel全面引入了多核,必将促进需要高性能、超低功耗的嵌入式领域的飞速发展。
本书从多处理器的硬件结构入手,全面阐述了嵌入式多核软件开发技术,以及嵌入式多核技术与其他技术的融合,如多线程技术和虚拟化等。并基于最新的Intel嵌入式多核体系结构对嵌入式多核软件开发过程中所遇到的技术问题进行了全面阐述。全书共分为11章,分别介绍了嵌入式多核处理器的概念、嵌入式Intel多核体系结构处理器及开发技术、多核处理器性能量化方法、嵌入式多核x86处理器移植、可用性技术、多线程开发技术、虚拟化和分区、多处理器优化技术、电能利用技术等内容。本书面向当前嵌入式多核软件开发的技术前沿,对嵌入式多核软件开发过程中面临的一些技术挑战进行了全面阐述。
本书作者从事体系结构技术研究及嵌入式系统开发20余年,熟悉多种软件工具的开发,具备坚实的知识背景和实践经验。在翻译本书的过程中,我们充分体会到了作者在嵌入式多核软件开发方面有大量的积累,并认为本书的最大特色在于:
覆盖范围广书中涵盖了嵌入式多核处理器概念、体系结构等硬件基础,还包含了相关开发工具及软件开发技术,如多线程、虚拟化和分区、可用性技术等,并讲述了多核处理器的性能评价及基准测试,以及嵌入式多核处理器的电能利用技术等内容。
注重实践书中很多内容都基于实例进行讲解,在理论讲解时配以实例运行结果,通过对结果的分析,直观呈现出问题的实质,使许多枯燥的原理及技术都易于理解,而且读者也能够真正从实例中进行理解与掌握。
实用性强本书将嵌入式系统开发与多核技术相结合,基于业界领先的Intel嵌入式多核处理器,针对其中的多项技术及挑战进行展开,内容具有前瞻性和实用性。
本书的翻译工作主要由宋廷强、肖传伟、马兴录和高树静完成。其中肖传伟负责第4~6章的翻译,马兴录负责本书的前言、第7~8章的翻译,高树静负责9~11章的翻译,宋廷强负责了本书其他部分的翻译及全书的统稿工作。对于本书的出版我们首先要感谢机械工业出版社的盛东亮编辑和他的同仁们,是他们的努力促成了本书的顺利翻译与发行,使读者能够通过本书及时了解嵌入式多核软件开发技术,同时也感谢李鹏程、张朝阳、周京地、申凤兰等给予本书的核对与检查。
在本书的翻译过程中,我们力求忠实于原著,但由于译者技术和翻译水平都很有限,再加上多核技术刚刚兴起,很多词句译者一时很难把握准确,导致书中难免存在各种翻译错误,敬请读者批评指正,以便在重印时修改完善。我们的邮箱是songtq@163com,敬请赐教。

前言: 在2006年的嵌入式系统会议的闭幕式上,Elsevier公司的策划编辑Tiffany Gasbarrini问我,是否有兴趣写一本关于嵌入式多核方面的书。我刚好在会议上发表了题为“多核SMP的开发与优化技术”的演讲,而且在前几届的嵌入式系统会议上我发表演讲并写了许多关于软件方面的论文。写书当然比演讲或发表技术论文要付出更大的精力。毋庸多言,我答应了他的请求,于是才有了这本书。我衷心希望大家能在后面的内容中找到有用的东西。
为什么写这本书
嵌入式多核软件开发是本书的主题,当然也是目前开发的主流技术。其实,多核技术不是凭空出现的,嵌入式领域也在不断变化,不断地与其他技术融合产生新的机遇。如多核技术与虚拟技术的融合使得在一个系统上可同时运行多个操作系统,每个操作系统可使用所有的处理器核,而且不会引起太大的性能降低。随着处理器芯片封装的晶体管数量的增加,内置不同功能核的多结构多核处理器不断出现。现在应该开始考虑,随着技术的不断演变,未来的机遇在哪儿?因此,本书除了探讨多核处理器外,还包含了嵌入式市场的发展趋势。
我认为接触这个题目需要一定的基础。有两个原因:一是没有一定的基础无法理解那些比较前沿的课题;二是越前沿的课题感兴趣的人越少。我曾在一家仪器设备公司与人探讨多核开发工具,话题转到了8位代码优化。我注意到了一个名叫“部分寄存器堆”的处理器问题,开始仔细讨论问题发生的原因以及处理器的内部工作流程(寄存器重命名以消除差错依赖,在无硬件支持的情况下跟踪部分寄存器的值)。我发现与我讨论的人完全被这话题迷住了,而房间里其他的人却都走开了。这更好地说明了在8位代码中部分寄存器堆确实是一个问题,有关该问题的详情可参考优化手册。
因此,我的书注重基础,而且遵循“简单化、傻瓜化”的原则:
X的最详细内容是什么?
Y的操作流程是什么?
下面我将逐步展示书中的知识以及开发中的问题,以下是本书的简要提纲:
1) 提供充足的信息,不多也不少。
2) 在应用这些知识的过程中构建出知识框架。
3) 通过研发实例,逐步引导进行嵌入式多核项目的开发。
感兴趣的读者
感兴趣的读者将包括公司内嵌入式市场部的员工,他们想在其产品中发挥多核处理器的优势;感兴趣的读者绝大部分将是嵌入式软件工程师;当然,对于不是每天都进行研发的嵌入式市场工程师及管理员来说也是非常有用的。
对于具有丰富实践经验及一定技术水平的读者来说,将会有以下收获:
对多核处理器更加深入的理解,直接面对嵌入式市场的机遇与挑战。
了解有关多核及其体系方面的复杂术语。
技术工程师还可有以下收获:
可以更好地理解单核处理器及多核处理器的优化过程。
通过详细的研发实例,一步步学会在嵌入式应用中如何使用多核处理器。
这是使用多核处理器完成手头任务的详细参考。例如,要做一个虚拟化项目,步骤是什么?需要什么样的详细资料手册?
本书注重于提供关于理论知识的实用性建议。也就是说,如果有大量的理论知识需要讨论,或需要某个领域的大量背景知识,本书只给出关于该领域的简要论述以及相关的参考书。本书将努力为多核处理器的开发者提供解决问题的关键知识点。
致谢
有许多人需要感谢,首先,我要感谢本书的编辑Rachel Roumeliotisfor。
我还要感谢对本书做出贡献的以下各位:
Jamel Tayeb编写了第9章,十分感激他在分区技术上所具有的专业知识。
Arun Raghunath编写了第8章,感谢他指出怎样执行数据流定位,并使用Intel线程检测器进行了详细的分析。还要感谢Shwetha Doss给予该章的帮助。
Markus Levy, Shay GalOn和Jeff Biers完成了第3章基准测试程序部分的输入工作。
Lori Matassa对第4章的大端和小端问题以及操作系统移植问题做了大量工作。
Clay Breshears帮助完成了第4章中工具概述部分的编写。
Harry Singh协作编写了第5章中的MySQL实例学习部分。
Bob Chesebrough完成了对第5章中的可用性部分的编写。
Lerie Kane完成了第6章的编写。
Rajshree Chabukswar编写了第10章中关于杂项用电技术的内容。
Rob Mueller完成了第10章中关于嵌入式调试的内容。
Lee Van Gundy帮助校验了本书,他的许多建议使本书更易于理解,还帮助完成了BLTK实例研究的编写工作。
Charles Roberson和Shay GalOn检查了许多章节的技术细节。
David Kreitzer, David Kanter, Jeff Meisel, Kerry Johnson和Stephen Blairchappell帮助输入并检查了本书的许多章节。
感谢Joe Wolf在本书编写上给予的支持,能在他的团队工作4年感觉十分高兴。
本书在很大意义上得益于我在工业领域20余年的工作经历,也是这段工作经验的总结,因此,必须向我的导师致谢,我要感谢我的导师Jerry Kerrick博士、Mark DeVries、Edward Page博士、Gene Tagliarini博士、Mark Smotherman博士和Andy Glew,感谢他们对我整个职业生涯的帮助。
我尤其要感谢我的妻子Michelle和我的孩子James、Caleb和Max Jr,感谢他们对我的宽容、给予的支持和所付出的爱。感谢他们允许我将个人的业余时间都用来编写本书,作为补偿我应该与他们共度一个假期。