《计算机科学丛书:计算机组成原理》其分三部分。第一部分从计算机组成和结构的有关概念、计算机的发展历程及存储程序计算机开始讲起,介绍了计算机系统的组成和体系结构的基本概念,然后讨论了数据在计算机中的表示方法和运算方法。第二部分讲解ISA的基本概念,并以ARM指令集为例介绍了ISA设计时需要考虑的主要问题,还介绍了另一个经典的RISC指令集MIPS,然后着重介绍了当前处理器为特定领域应用(比如多媒体应用)提供的支持。第三部分首先介绍了设计控制器的两种经典方法——微程序与组合逻辑,然后详细讨论了流水线技术、影响流水线性能的因素及一些可行的解决方法。
《计算机科学丛书:计算机组成原理》适合计算机科学、电子工程、电子与计算机工程及相关专业作为教学用书,也可供相关技术人员阅读参考。
目录
Computer Organization and Architecture: Themes and Variations
出版者的话
译者序
前言
本书导读
作者简介
第一部分起始篇
第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.1IEEE浮点数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.2ISA的组成93
3.2.1寄存器94
3.2.2寻址方式概述96
3.2.3指令格式98
3.2.4操作码与指令99
3.3ARM指令集体系结构101
3.3.1ARM寄存器集103
3.3.2ARM指令集103
3.4ARM汇编语言104
3.4.1ARM程序结构105
3.4.2汇编器的实际考虑因素107
3.4.3伪指令110
3.5ARM数据处理指令112
3.5.1算术指令113
3.5.2位操作116
3.5.3移位操作117
3.5.4指令编码——洞察ARM体系结构121
3.6ARM的流控制指令121
3.6.1无条件分支122
3.6.2条件分支122
3.6.3测试与比较指令123
3.6.4分支与循环结构124
3.6.5条件执行124
3.7ARM寻址方式126
3.7.1立即数寻址127
3.7.2寄存器间接寻址129
3.7.3带偏移量的寄存器间接寻址131
3.7.4ARM的自动前索引寻址方式134
3.7.5ARM的自动后索引寻址方式136
3.7.6程序计数器相对寻址136
3.7.7ARM的load与store指令编码136
3.8子程序调用与返回138
3.8.1ARM对子程序的支持139
3.8.2条件子程序调用141
3.9ARM代码实例141
3.9.1计算绝对值141
3.9.2字节操作与拼接141
3.9.3字节逆转142
3.9.4乘以2n-1或2n+1142
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数据组织和ARM152
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.3MIPS:另一种RISC190
4.3.1MIPS数据处理指令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和MIPS16213
4.6.1Thumb指令集体系结构214
4.6.2MIPS16219
4.7变长指令220
本章小结224
习题224
第5章计算机体系结构与多媒体229
5.1高性能计算应用230
5.1.1图像处理233
5.2多媒体的影响——重新使用CISC243
5.3SIMD处理简介246
5.3.1SIMD技术的应用254
5.4流扩展和SIMD技术的发展259
5.4.1浮点软件扩展261
5.4.2Intel的第三层多媒体扩展263
5.4.3Intel SSE3和SSE4指令264
5.4.4ARM系列处理器的多媒体
指令265
本章小结267
习题267
第三部分组成和效能
第6章处理器控制272
6.1通用数字处理器274
6.1.1微程序277
6.1.2生成微操作282
6.2RISC的组成286
6.2.1寄存器–寄存器数据通路289
6.2.2单周期直通计算机的控制292
6.3显示全部信息
作 者 简 介Computer Organization and Architecture: Themes and VariationsAlan 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从全职教学岗位退休,专心于写作和拍摄。
显示全部信息