标题：计算机系统结构
概述
（Computer Architecture）也称为计算机体系结构，它是由计算机结构外特性，内特性，微外特性组成的。经典的计算机系统结构的定义是指计算机系统多级层次结构中机器语言机器级的结构，它是软件和硬件/固件的主要交界面，是由机器语言程序、汇编语言源程序和高级语言源程序翻译生成的机器语言目标程序能在机器上正确运行所应具有的界面结构和功能。
计算机系统结构指的是什么? 是一台计算机的外表? 还是是指一台计算机内部  计算机系统结构相关书籍的一块块板卡安放结构? 都不是，那么它是什么? 计算机系统结构就是计算机的机器语言程序员或编译程序编写者所看到的外特性。所谓外特性，就是计算机的概念性结构和功能特性。用一个不恰当的比喻一，比如动物吧，它的"系统结构"是指什么呢? 它的概念性结构和功能特性，就相当于动物的器官组成及其功能特性，如鸡有胃，胃可以消化食物。至于鸡的胃是什么形状的、鸡的胃部由什么组成就不是"系统结构"研究的问题了。系统结构只管到这一层。关于计算机系统的多层次结构。用"人"这种动物的不恰当的例子列表对比如下：（这种联系很不科学，只是大家轻松一下）。
计算机系统
人 
应用语言级 
服务级 
高级语言级 
读书、学习级 
汇编语言级 
语言、思维级 
操作系统级 
生理功能级 
传统机器级 
人体器官级 
微程序机器级 
细胞组织级 
电子线路级 
分子级 
传统机器级以上的所有机器都称为虚拟机，它们是由软件实现的机器。软硬件的  计算机系统结构相关书籍功能在逻辑上是等价的，即绝大多部分硬件的功能都可用软件来实现，反之亦然。
计算机系统结构的外特性，一般应包括以下几个方面（这也就是我们要分章学习的几个章节）把这几个方面弄清了，系统结构也就基本明确了：
⑴指令系统⑵数据表示⑶作数的寻址方式 ⑷寄存器的构成定义 ⑸中断机构和例外条件 ⑹存储体系和管理 ⑺I/O结构 ⑻机器工作状态定义和切换 ⑼信息保护。
所以在以后的学习中常回头想想这是系统结构的哪一方面，这对把握全局有好处。
这里提一下计算机系统结构的内部特性，计算机系统结构的内特性就是将那些外特性加以"逻辑实现"的基本属性。所谓"逻辑实现"就是在逻辑上如何实现这种功能，比如"上帝"给鸡设计了一个一定大小的胃，这个胃的功能是消化食物，这就是鸡系统的某一外特性，那怎么消化呢，就要通过鸡喙吃进食物和砂石，再通过胃的蠕动、依靠砂石的研磨来消化食物，这里的吃和蠕动等操作就是内特性。
还有一个就是计算机实现，也就是计算机组成的物理实现。它主要着眼于器件技术和微组装技术。拿上面的例子来说，这个胃由哪些组织组成几条肌肉和神经来促使它运动就是"鸡实现"。
据此我们可以分清计算机系统的外特性、内特性以及物理实现之间的关系。在所有系统结构的特性中，指令系统的外特性是最关键的。因此，计算机系统结构有时就简称为指令集系统结构。我们这门课注重学习的是计算机的系统结构，传统的讲，就是处在硬件和软件之间介面的描述，也就是外特性。
这些不恰当的比喻只是帮助理解，不可强求对应，不然会有损科学的严密性。
分类
按"流"分类的方法，这是Flynn教授提出的按指令流和数据流的多倍性概念进行分类的方法。共有四大类，即：（S-single 单一的 I-instruction 指令 M-multiple 多倍的 D-data 数据） 
SISD 单指令流单数据流，传统的单处理机属于SISD计算机。
SIMD 单指令流多数据流，并行处理机是SIMD计算机的典型代表。中国的YH-I型是此类计算机型。
MISD 多指令流单数据流，实际上不存在，但也有学者认为存在。
MIMD 多指令流多数据流，包括了大多数多处理机及多计算机系统。中国的YH-Ⅱ型计算机是这种类型的计算机。
一般将标量流水机视为SISD类型，把向量流水机视为SIMD类型。
按"并行级"和"流水线"分类：这是在计算机系统中的三个子系统级别上按并行程度及流水线处理程度进行分类的方法。
--------------------------------------------------------------------------------
设计准则
1.只加速使用频率高的部件这是最重要也是最广泛采用的计算机设计准则。因为加快处理频繁出现事件对系统的影响远比加速处理很少出现事件的影响要大。2.阿姆达尔（Amdahl）定律这个定律就是一个公式：即 
应会运用此公式做一些计算或分析，所以要记住并理解其意义。3.程序访问的局部性规律程序访问的局部性主要反映在时间和空间局部性两个方面，时间局部性是指程序中近期被访问的信息项可能马上将被再次访问，空间局部性指那些在访问地址上相邻近的信息项很可能被一起访问。
发展
冯·诺依曼计算机的主要特点是：存储程序方式；指令串行执行，并由控制器加以集中控制；单元定长的一维线性空间的存储器；使用低级机器语言，数据以二进制表示；单处理机结构，以运算器为中心。
改进后的冯·诺依曼计算机使其从原来的以运算器为中心演变为以存储器为中心。从系统结构上讲，主要是通过各种并行处理手段高提高计算机系统性能。
软件、应用和器件对系统结构发展的影响 
软件应具有可兼容性，即可移植性。为了实现软件的可移植性，可用以下方法：
模拟：用软件方法在一台现有的计算机上实现另一台计算机的指令系统，这种用实际存在的机器语言解释实现软件移植的方法就是模拟。
仿真：用A机（宿主机）中的一段微程序来解释实现B机（目标机）指令系统中每一条指令而实现B机指令系统的方法称仿真，它是有部份硬件参与解释过程的。
一般将两种方法混合作用，对于使用频率高的指令用仿真方法，而对于频率低而且难于仿真实现的指令使用模拟的方法加以实现。
采用系列机的方法，可以这么说，系列机的系统结构都是一致的，如我们使用的INTEL 的80X86微机系列及其兼容机，系统结构都是一致的，当然在发展过程中它的系统结构可以得到了新的扩充，比如原来的586机器不支持MMX多媒体扩展指令集，但是后来的芯片中扩充了这些指令，使指令系统集扩大，但它们仍是同一系列的机器。这种系列机的方法主要是为了软件兼容。如上面的扩展指令，将使得以后针对这些指令优化的软件不能在以前的机子上运行（或不能发挥相应功能）导致向前兼容性不佳。但重要的是保证做到向后兼容，也就是在按某个时期推到市场上的该档机上编制的软件能不加修改地在它之后投入市场的机器上运行。
在系列机上，软件的可称植性是通过各档机器使用相同的高级语言、汇编语言和机器语言，但使用不同的微程序来实现的。
统一标准的高级语言
采用与机器型号无关的高级程序设计语言标准如FORTRAN、COBOL等，这种方法提供了在不同硬件平台、不同操作系统之间的可移植性。
开放系统：是指一种独立于厂商，且遵循有关国际标准而建立的，具有系统可移植性、交互操作性，从而能允许用户自主选择具体实现技术和多厂商产品渠道的系统集成技术的系统。
应用需求对系统结构发展的影响 
计算机应用对系统结构不断提出的基本要求是高的运算速度、大的存储容量和大的I/O吞吐率。（我们要更快的主板CPU和内存、我们要更大的硬盘我们要更大的显示器更多的色彩更高的刷新频率...这就是需求） 
计算机应用从最初的科学计算向更高级的更复杂的应用发展，经历了从数据处理、信息处理、知识处理以及智能处理这四级逐步上升的阶段。
器件对系统结构发展的影响 
由于技术的进步，器件的性能价格比迅速提高，芯片的功能越来越强，从而使系统结构的性能从较高的大型机向小型机乃至微机下移。
综上所述：
软件是促使计算机系统结构发展的最重要的因素（没有软件，机器就不能运行，所以为了能方便地使用现有软件，就必须考虑系统结构的设计。软件最重要） 
应用需求是促使计算机系统结构发展的最根本的动力（机器是给人用的，我们追求更快更好，机器就要做得更快更好。所以需求最根本） 
器件是促使计算机系统结构发展最活跃的因素（没有器件就产不出电脑，器件的每一次升级就带来计算机系统结构的改进。没看见上半年刚买的机子，下半年就想把它扔进历史的垃圾堆么^_^，所以器件最活跃）。
同名图书
图书1作　者：刘超
出版社：中国水利水电出版社
出版时间：2005
ISBN: 9787508432243
开本：16
定价： 25.00 元
内容简介
本书以并行处理技术为主线，介绍计算机系统结构基本概念、基本理论和分析设计的技术方法及其应用实现的逻辑结构模型，讨论指令级高度并行的处理机、向量处理机、阵列处理机、多处理机系统等实现的技术基础、基本结构和性能分析。全书共8章，可分为三部分，第一部分介绍计算机系统结构的基本概念、基本理论和计算机系统结构发展的方向，第二部分介绍流水线技术、指令优化与调度技术、存储组织技术和互连网络技术，第三部分介绍指令级高度并行的处理机、阵列处理机、多处理机系统等。
本书结构新颖、内容实用、逻辑性强、重点突出、语言精炼，可作为高等院校计算机各专业及相关专业本科生的教材，同时也可作为相关方向的研究生或研究人员的参考书。建议本书教学用时为70～80学时。
目录
前言
第1章计算机系统结构导论
1.1计算机系统结构的基本概念
1.2计算机系统结构的发展及其影响因素
1.3计算机系统结构中的并行性及其发展
1.4计算机系统结构的设计
1.5计算机系统结构的定理分析
1.6数据流计算机
习题一
第2章数据表示、指令系统与I/O系统的优选技术
2.1数据表示的选择
2.2指令集结构格式的优化设计
2.3指令集结构的功能设计
2.4编译技术与指令集结构的设计
2.5总线的设计
2.6输入输出系统的设计
习题二
第3章流水线技术
3.1流水线的基本概念
3.2流水线实现的基本结构
3.3线性流水线的性能分析
3.4流水线的相关及其处理
3.5非线性流水线的调度技术
习题三
第4章存储组织技术
4.1存储系统的层次结构
4.2并行存储器与相联存储器
4.3高速缓冲存储器
4.4虚拟存储器
4.5存储系统的替换算法及其实现
4.6存储系统的组织与虚拟地址Cache
习题四
第5章互连网络技术
5.1互连网络的基本概念
5.2静态互连网络
5.3动态互连网络
5.4互连网络的消息传递机制
第6章指令级高度并行处理要
……
第7章阵列处理机
第8章多处理机系统
参考文献图书2作者：郑纬民汤志忠
出版社：清华大学出版社； 第2版 （1998年1月1日） 
丛书名：清华大学计算机系列教材 
平装：731页 
正文语种：简体中文 
开本：16
内容简介
《计算机系统结构》分12章。第一章介绍计算机系统结构的基本概念，包括计算机系统的层次结构、系统结构的定义、分类、设计技术、评价标准和系统结构的发展等，第二章介绍数据表示、寻址技术、指讼格式的优化设计、CSIC指令系统和RISC指令系统等，第三章介绍存储系统原理、虚拟存储器和高速缓冲存储器等，第四章介绍输入输出原理、中断系统、通道处理机和输入输出处理机，第五章介绍先行控制技术、流水线处理机、超标量处理机、超注水线处理机和超标量超流水线处理机等，第六章介绍向量的基本概念、向量处理机结构、提高向量处理机性能的方法、向量处理机的性能评价等，第七章 介绍互连网络的基本概念、消息传递机制和互连网络实例，第八章介绍SIMD计算机模型、结构、实例和SIMD计算机的应用，第九章介绍多处理机结构、性能和Cache一致性等，第十章介绍多处理机算法，包括同步技术、并行搜索、串行算法到并行算法的转换、并行程序设计语言及其实现方法等，第十一章介绍数据流计算机、数据库机与知识库机、面向函数程序设计语言归约机，最后第十二章是实验：DLX处理机，通过实验能够加深对《计算机系统结构》主要内容的理解。每章后附有大量习题。
编辑推荐
《计算机系统结构》是计算机专业科生"计算机系统结构"课程的通用教材，也可作为有关专业研究生的教材和有关科技工作者的专业参考书。
媒体推荐
本书特点：
● 全书以横向方式组织教学内容，在全面讲解计算机系统结构基本原理的同时，每章通过几个实
例来具体介绍典型的计算机系统；
● 既介绍计算机系统结构方面已成熟的技术，也介绍国内外最新的研究成果；
● 本书是根据作者30多年来从事相关领域的教学和科研的积累写成的，每章都有与其他教科书不
同的、新的研究成果；
● 每章内容相互独立、教师可根据不同的学时不同的专业选择其中的几章或有关章节的部分内容
进行教学；
● 每章后面附有大量的习题，通过做习题，可以帮助读者更加全面地理解本书的有关内容。
作者简介
郑纬民，1970年毕业于清华大学自动控制系并留校任教。1982年获硕士学现为清华大学计算机系教授、博士生导师。担任中国计算机学会常务理事；中国计算机学会学术工会主任；计算机体系结构专委会副主任；国防并行分布处理重点实验学术委员会委员；北京市科技进步奖第八届评审委员会委员等。1985-1986年曾在美国纽约州立大学石溪分校从事分布操作系统研究。1989-1991年曾在英国南安普敦大学参加函数语言并行编译系统研究。曾作为项目负责人或主要成员参加了“海量信息多层存储体系结构研究”、“THUDS分布计算机系统”、“军用软件开发新技术”等。
目录
第一章 计算机系统结构的基本概念
1.1 计算机系统结构
1.2 计算机系统设计技术
1.3 系统结构的评价标准
1.4 计算机系统结构的发展
习题一 
第二章 指令系统
2.1 数据表示
2.2 寻址技术
2.3 指令格式的优化设计
2.4 指讼系统的功能设计
习题二
第三章 存储系统
3.1 存储系统原理
3.2 虚拟存储器
3.3 高速缓冲存储器（Cache）
3.4 三级存储系统
习题三
第四章 输入输出系统
4.1 输入输出原理
4.2 中断系统
4.3 通道处理机
4.4 输入输出处理机
习题四
第五章 标量处理机
5.1 先行控制技术
5.2 流水线处理机
5.3 超标量处理机与超流水线处理机
习题五
第六章 向量处理机
第七章 互连网络
第八章 SIMD计算机
第九章 多处理机
第十章 多处理机算法
第十一章 计算机系统结构的新发展
第十二章 实验：DLX处理器
参考文献图书3基本信息
书名：  计算机系统结构计算机系统结构　
书号：7-113-14126
作者：徐洁
定价：33.00元
出版日期：2012年2月
开本：16开
出版单位：中国铁道出版社
内容简介
本书根据“China Computing Curricula”和ACM/IEEE-CS教学计划，在深入研究国内外相关最新教科书和其他资料的基础上编写而成。
本书内容实用，实例丰富，既注重阐述现代微处理机所采用的设计技术，也分析了传统计算机系统的基本原理，知识点覆盖全面，内容有所取舍而不显庞杂，有利于读者学习和理解。
本书共分8章，包括概述、指令系统、流水线技术、指令级并行及限制、存储系统、输入/输出系统、多处理机系统、多计算机系统等，每章后附有习题，并免费提供电子课件。
本书适合作为高等学校计算机及相关专业的教材，也可作为相关领域技术人员的参考书。
图书目录
第1章 概述 1
1.1 计算机系统结构的概念 1
1.1.1 计算机系统的层次结构 1
1.1.2 计算机系统结构、组成与实现 4
1.2 计算机系统结构的发展 7
1.2.1 冯·诺依曼计算机 8
1.2.2 存储程序计算机系统结构的发展过程 8
1.2.3 非冯·诺依曼结构计算机 10
1.3 并行性与并行计算机 11
1.3.1 并行性概念 11
1.3.2 提高并行性的技术途径 11
1.3.3 并行计算机简介 12
1.4 计算机系统的分类 16
1.4.1 Flynn分类法 16
1.4.2 应用分类 17
1.5 计算机系统设计的主要任务与量化原则 19
1.5.1 计算机系统设计者的主要任务 19
1.5.2 计算机系统设计的量化原则 21
1.6 计算机系统的性能评测 24
1.6.1 计算机性能评估 25
1.6.2 计算机性能的测试 26
1.6.3 计算机性能测试结果的统计和比较 30
习题 32
第2章 指令系统 35
2.1 数据表示 35
2.1.1 浮点数表示 36
2.1.2 自定义数据表示 40
2.2 寻址技术 41
2.2.1 编址方式 42
2.2.2 寻址方式 43
2.2.3 程序在主存中的定位方法 46
2.3 指令格式的设计和优化 47
2.3.1 指令操作码的优化 47
2.3.2 地址码的优化表示 51
2.3.3 指令格式设计实例 53
2.4 指令系统的改进 56
2.4.1 RISC与CISC的概述 56
2.4.2 RISC指令系统实例 59
习题 67
第3章 流水线技术 69
3.1 流水线概述 69
3.1.1 流水线的基本概念 69
3.1.2 流水线的分类 73
3.1.3 流水线的特点 76
3.2 流水线的时空图及性能分析 77
3.2.1 流水线的时空图 77
3.2.2 流水线的性能分析 78
3.3 流水线中的相关 83
3.3.1 什么是流水线相关 83
3.3.2 流水线中的结构相关（资源相关） 84
3.3.3 流水线中的数据相关 86
3.3.4 流水线的控制相关 87
3.4 MIPS R4000流水线计算机 89
3.4.1 MIPS R4000流水线计算机基本结构和工作原理 89
3.4.2 MIPS R4000流水线 92
3.5 向量处理机 94
3.5.1 向量处理的基本概念 94
3.5.2 向量处理机的结构 97
3.5.3 向量指令的执行过程及简单性能计算 98
3.5.4 向量的链接技术 100
3.5.5 提高向量处理机的方法 103
3.5.6 向量处理机的性能评价 105
习题 108
第4章 指令级并行及限制 111
4.1 指令级并行概述 111
4.1.1 指令级并行的基本概念 111
4.1.2 相关性对指令级并行的影响 112
4.1.3 支持指令级并行的基本编译技术 115
4.2 指令的动态调度 118
4.2.1 动态调度的原理 119
4.2.2 记分牌动态调度算法 119
4.2.3 Tomasulo动态调度算法 126
4.3 转移预测技术 135
4.3.1 静态转移预测 135
4.3.2 动态转移预测 137
4.4 多发射技术 142
4.4.1 超标量技术 142
4.4.2 多发射的动态调度 145
4.4.3 超长指令字技术 151
4.5 指令级并行的支持与限制 152
4.5.1 窗口大小和最大发射数目对理想处理机的限制 153
4.5.2 实际分支和分支预测的影响对理想处理机的限制 156
4.5.3 有限数目寄存器的影响 158
4.5.4 非完美别名分析造成的影响 159
4.6 Intel Pentium 4实例分析 161
4.6.1 Pentium Ⅲ和Pentium 4结构的简单比较 161
4.6.2 Pentium Ⅲ和Pentium 4性能的简单比较 162
习题 163
第5章 存储系统 165
5.1 存储系统简介 165
5.1.1 存储系统的层次结构 165
5.1.2 存储系统的性能参数 166
5.2 高速缓冲存储器（Cache） 168
5.2.1 Cache的工作原理 169
5.2.2 地址映像与变换方法 170
5.2.3 Cache替换算法及实现 174
5.2.4 Cache的一致性问题 178
5.2.5 Cache的性能分析 179
5.3 Cache性能的优化 181
5.3.1 降低Cache失效率的方法 181
5.3.2 减少Cache失效开销 183
5.3.3 减少命中时间 184
5.4 主存储器及性能优化 185
5.4.1 主存储器 185
5.4.2 性能优化 185
5.5 虚拟存储器 187
5.5.1 工作原理 187
5.5.2 地址映像与变换 192
5.5.3 内部地址变换优化 193
5.5.4 页面替换算法及实现 195
5.5.5 提高主存命中率的方法 198
5.6 进程保护和虚拟存储器实例 199
5.6.1 进程保护 200
5.6.2 Alpha 21064存储管理 201
5.7 Alpha 21264存储层次结构 203
习题 206
第6章 输入/输出系统 208
6.1 输入/输出系统概述 208
6.1.1 输入/输出系统的特点 208
6.1.2 基本的输入/输出方式 210
6.2 总线 211
6.2.1 总线概述 211
6.2.2 总线的连接方式 212
6.3 通道处理机 213
6.3.1 通道的功能 213
6.3.2 通道的工作过程 214
6.3.3 通道的种类 215
6.3.4 通道中的数据传送过程 217
6.3.5 通道流量分析 218
6.4 外围处理机 220
6.4.1 输入/输出处理机的作用 220
6.4.2 输入/输出处理机的种类和组织形式 221
6.4.3 输入/输出处理机实例 221
6.5 I/O系统性能评测 222
6.5.1 I/O系统的可靠性、可用性和可信性 222
6.5.2 I/O子系统性能衡量 223
6.5.3 I/O子系统的设计 224
6.5.4 并行I/O基本原理 225
6.5.5 排队论简介 226
6.6 磁盘冗余阵列 228
6.6.1 RAID概述 228
6.6.2 RAID系统分级 228
习题 234
第7章 多处理机系统 237
7.1 多处理机系统结构 237
7.1.1 多处理机系统的硬件结构 237
7.1.2 多处理机系统的存储器组织形式 239
7.1.3 多处理机系统的操作系统 241
7.1.4 多核处理机 243
7.2 多处理机的互联网络 244
7.2.1 互联网络的基本概念 244
7.2.2 互联网络的特性 245
7.2.3 互联网络的类型 246
7.3 多处理机系统的系统控制 250
7.3.1 多处理机系统的调度 250
7.3.2 多处理机系统的进程通信 252
7.4 并行处理语言及算法 254
7.4.1 并行处理遇到的挑战 254
7.4.2 并行编程模型 255
7.4.3 并行语言 256
7.4.4 并行算法 257
7.5 多处理机的性能 260
7.5.1 任务粒度 260
7.5.2 基本模型 260
7.5.3 通信开销线性增加的模型 262
7.5.4 完全重叠通信的模型 262
7.5.5 具有多条通信链的模型 262
7.6 多处理机系统实例 263
7.6.1 CRAY T3E系统 263
7.6.2 SGI Origin 2000系列服务器 264
习题 266
第8章 多计算机系统 267
8.1 集群计算机系统 267
8.1.1 集群系统的基本概念和结构 267
8.1.2 集群系统的特点 268
8.1.3 集群系统的通信技术 269
8.1.4 集群系统资源管理和调度 271
8.1.5 集群系统并行程序设计环境 272
8.2 典型集群系统实例 273
8.3 MPP系统 276
8.3.1 MPP系统机构 276
8.3.2 基于MPP的并行计算机系统 277
8.3.3 集群系统与MPP系统 278
8.4 网格技术 278
8.4.1 网格基础 279
8.4.2 网格技术概念 279
8.4.3 网格体系结构 280
8.5 网格实例 283
习题 285[1]
参考文献 287