新書推薦:
《
梦醒子:一位华北乡居者的人生(1857—1942))(第2版)
》
售價:NT$
340.0
《
啊哈!原来如此(中译本修订版)
》
售價:NT$
290.0
《
部分识别入门——计量经济学的创新性方法
》
售價:NT$
345.0
《
东野圭吾:变身(来一场真正的烧脑 如果移植了别人的脑子,那是否还是我自己)
》
售價:NT$
295.0
《
严复与福泽谕吉启蒙思想比较(王中江著作系列)
》
售價:NT$
750.0
《
甘于平凡的勇气
》
售價:NT$
225.0
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:NT$
240.0
《
生成式人工智能:AIGC与多模态技术应用实践指南
》
售價:NT$
495.0
|
內容簡介: |
这是一本从嵌入式角度探索计算硬件和软件原理的综合教科书。本书将逐步揭示如何在现实世界中运用这些计算原理构建计算机系统,从小型嵌入式设备到仓库大小的计算机集群,以及这些概念是如何通过互联网在全球范围内相互连接的。《计算机系统:嵌入式方法》首先会完整地讲述主要的硬件组件——包括处理器、内存、存储设备与性能加速器;接着又充分探讨操作系统、连接以及网络。通过此书,您将了解计算机硬件和软件是如何协同工作来支持无处不在的计算、物联网、移动计算技术以及*小到最大的应用和程序。
|
關於作者: |
伊恩·文斯·麦克洛克林Ian Vince McLoughlin是英国肯特大学计算机学院院长、计算机教授。 在职业生涯的30多年中,他在三大洲一直从事工业、政府和学术领域工作并专注研究与创新。 他也是一名计算机工程师,曾经参与设计过对流层和太空中的计算系统,以及海底通信网络;在民用领域,他曾将嵌入式设备设计应用到喉咙手术上帮助病人说话。 麦克洛克林教授同时是IET会员、IEEE高级会员、英国注册工程师和全欧工程师。
|
目錄:
|
出版者的话
译者序
前言
致谢
关于作译者
第1章 引言1
1.1 计算机的进化1
1.2 进化过程1
1.3 计算机发展阶段划分4
1.3.1 第一代计算机4
1.3.2 第二代计算机5
1.3.3 第三代计算机5
1.3.4 第四代计算机6
1.3.5 第五代计算机7
1.4 云、普适、网格和超并行计算机7
1.5 未来8
1.6 小结10
第2章 基础知识11
2.1 计算机组成11
2.1.1 Flynn分类法11
2.1.2 连接方式12
2.1.3 计算机结构层次视图13
2.2 计算机基本原理13
2.3 数字格式16
2.3.1 无符号二进制16
2.3.2 原码17
2.3.3 反码17
2.3.4 补码17
2.3.5 移码18
2.3.6 BCD码19
2.3.7 定点数表示法19
2.3.8 符号扩展20
2.4 算术运算20
2.4.1 加法20
2.4.2 并行进位传递加法器20
2.4.3 超前进位22
2.4.4 减法22
2.5 乘法24
2.5.1 加法迭代法24
2.5.2 部分积方法25
2.5.3 移位加方法27
2.5.4 Booth和Robertson方法27
2.6 除法29
2.7 定点数格式的运算30
2.7.1 定点数的运算31
2.7.2 定点数的乘除32
2.8 浮点数32
2.8.1 广义浮点数33
2.8.2 IEEE754浮点标准33
2.8.3 IEEE754标准模式34
2.8.4 IEEE754数的范围36
2.9 浮点数处理38
2.9.1 IEEE754数的加减运算39
2.9.2 IEEE754数的乘除运算41
2.9.3 IEEE754中间格式41
2.9.4 舍入42
2.10 小结42
思考题43
第3章 CPU基础45
3.1 什么是计算机45
3.2 让计算机为你服务45
3.2.1 程序存储46
3.2.2 存储架构46
3.2.3 程序传输47
3.2.4 控制单元48
3.2.5 微指令52
3.2.6 RISC和CISC的对比53
3.2.7 处理器实例——ARM55
3.2.8 关于ARM的更多内容56
3.3 指令处理56
3.3.1 指令集57
3.3.2 取指和译码59
3.3.3 压缩指令集63
3.3.4 寻址模式65
3.3.5 堆栈机和逆波兰表示法67
3.4 数据处理68
3.4.1 数据的格式和表达68
3.4.2 数据流71
3.4.3 数据存储72
3.4.4 内部数据72
3.4.5 数据处理73
3.5 自顶向下方法75
3.5.1 计算机的能力75
3.5.2 性能衡量和统计76
3.5.3 性能评估78
3.6 小结79
思考题80
第4章 处理器内部组成82
4.1 内部总线结构82
4.1.1 程序员的角度82
4.1.2 分解互联排列83
4.1.3 ADSP21xx总线排列84
4.1.4 数据与程序同时访存84
4.1.5 双总线体系结构86
4.1.6 单总线体系结构87
4.2 算术逻辑单元88
4.2.1 ALU功能88
4.2.2 ALU设计89
4.3 内存管理单元91
4.3.1 对虚拟存储的需求91
4.3.2 MMU操作91
4.3.3 退回算法93
4.3.4 内部存储碎片和片段93
4.3.5 外部碎片94
4.3.6 改进的MMU95
4.3.7 内存保护96
4.4 cache97
4.4.1 直接相联cache98
4.4.2 组相联cache99
4.4.3 全相联cache100
4.4.4 局部性原则100
4.4.5 cache替换算法102
4.4.6 cache性能104
4.4.7 cache一致性105
4.5 协处理器107
4.6 浮点运算单元107
4.7 SIMD流指令扩展和多媒体扩展109
4.7.1 MMX109
4.7.2 MMX实现110
4.7.3 MMX的使用111
4.7.4 SIMD流指令扩展111
4.7.5 使用SSE和MMX111
4.8 嵌入式系统中的协处理112
4.9 小结112
思考题113
第5章 提高CPU性能116
5.1 加速116
5.2 流水线117
5.2.1 多功能流水线118
5.2.2 动态流水线119
5.2.3 改变流水线模式119
5.2.4 数据相关冒险121
5.2.5 条件冒险122
5.2.6 条件分支123
5.2.7 编译时流水线补偿125
5.2.8 相对地址分支126
5.2.9 流水线的指令集补偿127
5.2.10 运行时流水线补偿128
5.3 复杂指令集和精简指令集130
5.4 超标量体系结构130
5.4.1 简单超标量130
5.4.2 多发送超标量132
5.4.3 超标量的性能133
5.5 每周期的指令数133
5.5.1 不同体系结构的IPC133
5.5.2 IPC度量134
5.6 硬件加速器135
5.6.1 零开销循环135
5.6.2 地址处理硬件137
5.6.3 影子寄存器140
5.7 分支预测140
5.7.1 分支预测的必要性141
5.7.2 单T位预测器142
5.7.3 双位预测器143
5.7.4 计数器和移位器预测器145
5.7.5 局部分支预测器145
5.7.6 全局分支预测器148
5.7.7 G选择预测器149
5.7.8 G共享预测器150
5.7.9 混合预测器151
5.7.10 分支目标缓冲152
5.7.11 基本代码段153
5.7.12 分支预测总结154
5.8 并行机器155
5.8.1 SISD向MIMD的演变157
5.8.2 为提高性能而采用并行159
5.8.3 其他并行
|
內容試閱:
|
智能手机、便携式游戏设备等都是广义上的计算机,它们在人们的日常生活中正变得越来越重要。本书致力于从多个层面理解这些系统,让读者明白是什么使其成为计算机,并强调它们背后的内核——嵌入式系统,以及嵌入式系统真正令人着迷的技术。审视嵌入式系统的内部,对于一个有技术头脑的人来说,就像打开了一个充满知识的圣诞礼物。
书店(特别是大学城里的书店)里关于这个主题的教科书似乎随处可见,比如计算机体系结构、计算机系统设计、网络、操作系统,甚至是嵌入式系统。许多著名的技术作者也都尝试过在这个领域写作,但计算机是一个不断发展的技术领域,很难用会很快过时的静态教科书充分地描述。特别是在过去十年,嵌入式计算系统的兴起让一些思维保守的作者感到惊讶:在20世纪五六十年代的一些教科书中,人们坚持将计算机视为房间大小的机器,20世纪八九十年代的教科书将计算机视为台式和服务器计算机,只有少数作者真正认为未来使用的绝大多数计算机都是嵌入在日常物品中的,认为计算机在未来是嵌入式的、互通的和无处不在的。在未来,台式机甚至笔记本电脑将会像50年前的打孔机一样不合时宜。
本书中的讨论尽可能直接面向嵌入式,并使用来自嵌入式世界的例子,这些例子适用于计算机体系结构、操作系统和连接这三个子领域。有些主题与嵌入式处理器有更紧密的联系,其他的可能是更传统的主题。这里将尽可能给出嵌入式领域的一些例子,以及可以描述章节主题与读者的联系的相关资料。
全书结构
本书由12章构成,除了第1、2章的介绍与第12章的总结部分之外,其他章节可以粗略分为三个部分,依次解决以下三个问题:
现代计算机系统(嵌入式或其他系统)所用的内部硬件,其工作原理以及协同方法。
在使用计算机编程实现功能时需要怎么做?软件如何被写入、加载并执行?如何系统化并呈现给用户?现代计算机内部的系统如何管理?
计算机之间如何通过连接来交换信息并为用户提供分布式服务?
总的来说,在“引言”和“基础知识”章节之后,第3~7章会讨论硬件,相关的软件编程和操作系统知识将在第8章和第9章介绍,连接性和网络系统的内容在第10章和11章介绍。本书各部分之间紧密联系,但是读者不必按顺序学习本书——这三部分都包含对其他部分的介绍,非常通俗易懂。
适用读者
本书适用于计算机、计算机科学、计算机工程、计算机系统工程、电子与计算机工程、电子与电气工程等专业的本科生。对于工作在其他技术领域的人来说,如果对学习计算机基础有兴趣,本书也是不错的选择。引言与基础知识部分适合本科生前两年学习,本书还有足够的深度与拓展部分,适合学习计算机架构或计算机系统设计的大四学生阅读。
对于从事嵌入式系统相关工作的程序员与工程师来说,本书是十分有用的参考。本书对各个行业都十分适用的ARM处理器的重点介绍一定会受到业内人士的欢迎。
本书设计
本书的内容是自下而上编写的,除了本书的硬件和计算机体系结构章节的某些部分以我以前的作品《计算机体系结构:嵌入式方法》(Computer Architecture:An Embedded Approach)为基础以外,其他部分并没有借鉴现有的任何教科书。我采用了一种新的方法,并在不受传统结构约束的情况下规划本书,避开了计算机进化过程中出现的“死胡同”以及一些不相关的问题。这让读者的思路更加清晰,可以将注意力集中在嵌入式系统上本书没有完全略去大型机器,因为它们包含了多年来已普及的更重要且更好的技术演变的优秀例子)。
在创作本书的过程中,我的目的是通过编写简单易懂的文字来培养读者的兴趣,并努力保持本书与影响日常生活的流行前沿技术的相关性。然而,在任何研究领域都存在一些棘手的概念,遇到这些概念时,我会写出明确的解释性文字,同时在许多地方提供了充分而直观的说明来帮助读者理解。此外,本书还提供了许多解释框,这些解释框包含了额外的示例、有趣的信息和其他解释之类的材料,目的是扩充正文内容并帮助读者吸收知识。
本书使用SI(国际单位制),包括新的计算机存储度量单位kibibyte和mebibyte(附录A中对此进行了解释)。本书的主要章节附有思考题。
本书的编写
书中的示例代码和大多数嵌入式系统描述源自作者的硬件和软件设计经验。非常感谢GNU项目中出色的GCC ARM编译器,以及Busybox(嵌入式系统编码的“瑞士军刀”)和ARM Linux项目。
本书中的一些图像由Wikimedia Commons等在线资源提供,均在图题中有所标注。这些图像均有知识共享(CC)归属(BY)许可或共享(SA)许可。特别要感谢Wikimedia Commons提供了优秀资源以及Creative Commons提供了保护许可证。
开始之前
我们应该铭记数十年来辛勤工作的计算机工程师们,他们为现代社会的移动电话、智能机、计算机和嵌入式技术的蓬勃发展注入了重要的力量。 我们赞扬过去那些伟大的贡献,并希望读者能够畅游在嵌入式计算机系统知识的海洋里,努力建设更美好的科技未来。
Ian Vince McLoughlin
关于本书教辅资源,只有使用本书作为教材的教师才可以申请,需要的教师可向麦格劳-希尔教育出版公司北京代表处申请,电话010-57997618760
|
|