隐藏

计算机组成原理


  • 作         者:
    [英]艾伦·克莱门茨(Alan Clements) 著
  • 译         者:  沈立
  • 丛   书   名:  计算机科学丛书
  • 出版日期: 2017-03-17
  • I   S   B  N:   978-7-111-55807-1

  • 定         价:  ¥79.00元

内容简介


本书由资深的计算机体系结构教育家Alan Clements博士编写,原书名为《计算机体系结构:原理与演变》(Computer Organization & Architecture: Themes and Variations),书中不仅覆盖单机系统的组成原理和系统结构的各个方面,还包括计算机的性能评价方法以及多发射、粗粒度并行等内容。作者希望本书能够适合电子工程(EE)、电子与计算机工程(ECE)、计算机科学(CS)等不同专业的教学需要。书中围绕基本概念、指令集体系结构、处理器组成和能效、存储与外设以及处理器级并行等五个核心问题将这些内容有条不紊地组织在一起,以便满足不同专业的教学需要。 

中文版引进的时候综合考虑国内高校“计算机组成与结构”或类似课程的教学目标以及我们对本书的定位,对原书进行了适当裁剪和重新组合,分为两册:《计算机组成原理》和《计算机存储与外设》。 

本书即为《计算机组成原理》,涵盖原书前三部分,共6章,主要介绍计算机系统的组成和体系结构的基本概念、指令系统以及处理器实现等涉及计算机组成原理课程的内容。 


作译者简介


Alan Clements出生于英格兰兰开夏郡,在苏克赛斯大学(University of Sussex)学习电子学。1976年,当微处理器刚出现的时候,他在拉夫堡大学(Loughborough University)研究数字数据传输均衡器并获得博士学位。通过用微处理器解决均衡问题,他对计算机设计产生了兴趣并加入提赛德大学(University of Teesside)计算机科学系。
20世纪70年代,有关微处理器设计实践的文献非常少,他出版了这一领域的第一本书。该书反响非常好,他又撰写了两本重要教材。《计算机硬件原理》(The Principles of Computer)是一本本科生教材,全面地介绍了计算机硬件,其内容涵盖了从布尔代数到测量转速的外设等各个方面。为鼓励学生对计算机体系结构感兴趣,该书采用一种对学生友好的风格撰写。
20世纪80年代,Alan撰写了有关微处理器系统设计的权威教材,介绍了设计一款微处理器的全部阶段,并提供大量实际电路,弥合了学术与实践之间的巨大鸿沟。由于Alan在微处理器设计方面的贡献,1993年摩托罗拉授予Alan提赛德大学终身教授。
多年以来,Alan对计算机体系结构教学中的问题越来越感兴趣,越来越多地参与到计算机科学的教育活动中。2001年,他担任了计算机学会国际学生竞赛主席(CSIDC),并于同年获得英国国家教学奖,这是英国高等教育的最高奖项。Alan积极参加工程教育的前沿会议,并担任两本刊物的计算机科学教育专刊的客座编辑。
Alan在IEEE计算机学会(CS)担任了多个职务,包括CS出版社主编,CS第二副主席,教育活动委员会主席等。他还担任了伊拉克利翁和科罗拉多州立大学的客座教授。
Alan积极参加学科课程体系设计,撰写了关于未来计算机体系结构教育的论文,参加了CS/ACM 2001计算课程体系项目。他为欧盟、英国政府、日立公司和希捷公司等提供咨询工作。
2007年Alan获得IEEE计算机学会泰勒布斯(Taylor Booth)教育奖。
除了教学和写作之外,Alan还对摄影感兴趣,他的作品曾数次公开展出。他还是一个私人飞行员,将他对飞行和摄影的爱好结合在一起。在www.pbase.com/clements上可以找到他的摄影作品。
2010年Alan Clements从全职教学岗位退休,专心于写作和拍摄。

图书目录


出版者的话
译者序
前言
本书导读
作者简介
第一部分 起始篇
第1章 计算机系统体系结构 4
1.1 什么是计算机系统体系结构 7
1.2 体系结构和组成 11
1.2.1 计算机系统和技术 14
1.2.2 计算机体系结构在计算机科学中的地位 14
1.3 计算机的发展 16
1.3.1 机械计算机 17
1.3.2 机电式计算机 19
1.3.3 早期的电子计算机 19
1.3.4 微机和PC革命 20
1.3.5 摩尔定律和进步的历程 21
1.3.6 存储技术发展 22
1.3.7 普适计算 23
1.3.8 多媒体计算机 23
1.4 存储程序计算机 24
1.4.1 问题描述 24
1.4.2 解决方法 24
1.4.3 构造一个算法 26
1.4.4 计算机需要通过什么来解决问题 27
1.4.5 存储器 29
1.5 存储程序的概念 31
1.6 计算机系统概览 35
1.6.1 存储层次 35
1.6.2 总线 37
1.7 现代计算 39
本章小结 39
习题 40
第2章 计算机算术 42
2.1 数据是什么 43
2.1.1 位与字节 43
2.1.2 位模式 44
2.2 数字 48
2.2.1 位置记数法 48
2.3 二进制运算 49
2.4 有符号整数 52
2.4.1 符号及值表示法 52
2.4.2 二进制补码运算 53
2.5 乘除法简介 55
2.5.1 移位运算 55
2.5.2 无符号二进制乘法 56
2.5.3 快速乘法 57
2.5.4 除法 59
2.6 浮点数 63
2.6.1 IEEE浮点数 64
2.7 浮点运算 68
2.8 浮点运算和程序员 70
2.8.1 浮点运算中的误差传播 71
2.8.2 生成数学函数 72
本章小结 74
习题 74
第二部分 指令集体系结构
第3章 体系结构与组成 79
3.1 存储程序计算机 79
3.1.1 扩展处理器:常量处理 84
3.1.2 扩展处理器:流控制 85
3.2 ISA的组成 93
3.2.1 寄存器 94
3.2.2 寻址方式概述 96
3.2.3 指令格式 98
3.2.4 操作码与指令 99
3.3 ARM指令集体系结构 101
3.3.1 ARM寄存器集 103
3.3.2 ARM指令集 103
3.4 ARM汇编语言 104
3.4.1 ARM程序结构 105
3.4.2 汇编器的实际考虑因素 107
3.4.3 伪指令 110
3.5 ARM数据处理指令 112
3.5.1 算术指令 113
3.5.2 位操作 116
3.5.3 移位操作 117
3.5.4 指令编码——洞察ARM体系结构 121
3.6 ARM的流控制指令 121
3.6.1 无条件分支 122
3.6.2 条件分支 122
3.6.3 测试与比较指令 123
3.6.4 分支与循环结构 124
3.6.5 条件执行 124
3.7 ARM寻址方式 126
3.7.1 立即数寻址 127
3.7.2 寄存器间接寻址 129
3.7.3 带偏移量的寄存器间接寻址 131
3.7.4 ARM的自动前索引寻址方式 134
3.7.5 ARM的自动后索引寻址方式 136
3.7.6 程序计数器相对寻址 136
3.7.7 ARM的load与store指令编码 136
3.8 子程序调用与返回 138
3.8.1 ARM对子程序的支持 139
3.8.2 条件子程序调用 141
3.9 ARM代码实例 141
3.9.1 计算绝对值 141
3.9.2 字节操作与拼接 141
3.9.3 字节逆转 142
3.9.4 乘以2n-1或2n+1 142
3.9.5 多条件的使用 143
3.9.6 只用一条指令 143
3.9.7 实现多段程序 143
3.9.8 简单位级逻辑操作 144
3.9.9 十六进制字符转换 144
3.9.10 输出十六进制字符 144
3.9.11 打印横幅 145
3.10 子程序与栈 145
3.10.1 子程序调用与返回 147
3.10.2 子程序嵌套 148
3.10.3 叶子程序 150
3.11 数据的大小与排列 150
3.11.1 数据组织与端格式 150
3.11.2 数据组织和ARM 152
3.11.3 块移动指令 156
3.12 整合——将所有内容放在一起 160
本章小结 163
习题 163
第4章 指令集体系结构——广度和深度 168
4.1 数据存储和栈 170
4.1.1 存储和栈 172
4.1.2 通过栈传递参数 179
4.2 特权模式和异常 187
4.3 MIPS:另一种RISC 190
4.3.1 MIPS数据处理指令 193
4.4 数据处理与数据传送 195
4.4.1 不可见的交换指令 198
4.4.2 双精度移位 199
4.4.3 压缩和解压缩指令 200
4.4.4 边界测试 201
4.4.5 位字段数据 202
4.4.6 循环 206
4.5 存储器间接寻址 207
4.6 压缩代码、RISC、Thumb和MIPS16 213
4.6.1 Thumb指令集体系结构 214
4.6.2 MIPS16 219
4.7 变长指令 220
本章小结 224
习题 224
第5章 计算机体系结构与多媒体 229
5.1 高性能计算应用 230
5.1.1 图像处理 233
5.2 多媒体的影响——重新使用CISC 243
5.3 SIMD处理简介 246
5.3.1 SIMD技术的应用 254
5.4 流扩展和SIMD技术的发展 259
5.4.1 浮点软件扩展 261
5.4.2 Intel的第三层多媒体扩展 263
5.4.3 Intel SSE3和SSE4指令 264
5.4.4 ARM系列处理器的多媒体
指令 265
本章小结 267
习题 267
第三部分 组成和效能
第6章 处理器控制 272
6.1 通用数字处理器 274
6.1.1 微程序 277
6.1.2 生成微操作 282
6.2 RISC的组成 286
6.2.1 寄存器–寄存器数据通路 289
6.2.2 单周期直通计算机的控制 292
6.3 流水线简介 295
6.3.1 加速比 298
6.3.2 实现流水线 299
6.3.3 冒险 305
6.4 分支和分支开销 312
6.4.1 分支方向 313
6.4.2 流水线中分支的影响 314
6.4.3 分支开销 315
6.4.4 延迟分支 317
6.5 分支预测 320
6.6 动态分支预测 322
6.6.1 分支目标缓冲 325
6.6.2 两级分支预测 328
本章小结 332
习题 332
参考文献 340