计算机系统结构(第四版)》介绍了计算机系统结构的基本概念、基本原理、基本分析和设计方法。《计算机系统结构(第四版)》共7章,内容包括:计算机系统结构的相关概念、时间并行技术、指令级并行技术、多处理机、超级计算机、仓库级计算机、云计算构架。
计算机系统结构(第四版)》依据短学时教学要求编写,知识完整、结构合理、重点突出、概念清楚,反映了计算机科学技术的近期成果。
计算机系统结构(第四版)》文字流畅,便于自学,有广泛的适应面,可作为高等院校计算机科学与技术专业本科生教材,也可作为成人教育教材和全国计算机等级考试(四级)参考书。
前
第1章计算机系统结构的相关概念
1.1系统结构的有关术语
1.1.1计算机系统的层次结构
1.1.2计算机系统结构
1.1.3计算机组织和计算机实现
1.1.4计算机系统结构的分类
1.2系统结构发展的因素
1.2.1存储程序计算机系统结构及其发展
1.2.2软件对系统结构的影响
1.2.3应用对系统结构的影响
1.2.4器件对系统结构的影响
1.2.5系统结构的生命周期
1.3定量分析技术
1.3.1系统设计的定量原理
1.3.2性能评价标准
1.3.3成本与价格
1.4系统结构中并行性的发展
1.4.1并行性的概念
1.4.2提高并行性的技术途径
1.4.3单处理机系统中并行性的发展
1.4.4多处理机系统中并行性的发展
1.4.5并行处理机的系统结构类型
1.4.6图形处理器
小结
习题
第2章时间并行技术
2.1流水线技术
2.1.1流水线的基本概念
2.1.2流水线的表示方法
2.1.3流水线的特点
2.2流水线的性能指标
2.2.1流水线的吞吐率
2.2.2流水线的加速比
2.2.3流水线的效率
2.2.4流水线的段数
2.3流水线的结构相关和数据相关
2.3.1流水线的结构相关
2.3.2流水线的数据相关
2.4流水线的控制相关
2.4.1控制相关的概念
2.4.2条件分支对流水线的影响
2.4.3静态分支技术
2.4.4动态分支预测技术
2.4.5流水线处理机的中断处理
小结
习题
iv计算机系统结构目录v第3章指令级并行技术
3.1指令级并行的概念
3.1.1并行性的有关术语
3.1.2多指令流出:指令级并行度
3.2数据相关及其处理技术
3.2.1数据相关类型
3.2.2寄存器重命名
3.2.3静态指令调度
3.2.4动态指令调度
3.3超标量流水处理机
3.3.1超标量流水线的发射策略
3.3.2典型处理机结构
3.3.3超标量流水处理机性能
3.4超流水线处理机
3.4.1超流水线处理机时空图
3.4.2典型处理机结构
3.4.3超流水线处理机性能
3.5超标量超流水线处理机
3.5.1指令执行时空图
3.5.2典型处理机结构
3.5.3超标量超流水线处理机性能
3.6超长指令字处理机
3.6.1超长指令字处理机的特点
3.6.2VLIW处理机的结构模型
3.6.3典型处理机结构
3.7多线程与超线程处理机
3.7.1指令级并行与线程级并行
3.7.2同时多线程结构
3.7.3超线程处理机结构
小结
习题
第4章多处理机
4.1互连网络的相关概念
4.1.1互连网络的功能和特征
4.1.2互连网络的描述工具
4.1.3互连网络的特性参数
4.2互连网络的结构
4.2.1静态互连网络
4.2.2动态互连网络
4.3多处理机的特点和分类
4.3.1多处理机的特点
4.3.2多处理机的分类
4.4SMP的系统结构和实例
4.4.1SMP的基本概念
4.4.2SMP的一般结构
4.4.3Origin 2000系统
4.4.4IBM大型机SMP
4.4.5容错计算机系统Stratus
4.5多处理机的Cache一致性
4.6多处理机操作系统
4.7多处理机中程序并行性的开发
4.7.1程序并行性的分析
4.7.2并行程序设计
小结
习题
第5章超级计算机
5.1超级计算机的相关概念
5.1.1超级计算机的定义
5.1.2超级计算机的评价指标
5.1.3超级计算机相关技术——机群
5.2超级计算机的发展
5.2.1超级计算机系统结构的发展
5.2.2超级计算机运算速度的变化
5.2.3超级计算机操作系统的变化
5.2.4超级计算机使用的互连技术
5.2.5中国超级计算机的发展
5.3世界超级计算机前三强介绍
5.3.1天河二号(Tianhe2)
5.3.2泰坦(Titan)
5.3.3红杉(Sequoia)
5.4超级计算机的未来发展趋势
小结
习题
vi计算机系统结构第6章仓库级计算机
6.1仓库级计算机的相关概念
6.1.1仓库级计算机的定义
6.1.2仓库级计算机与超级计算机、数据中心的区别
6.2仓库级计算机的设计原则
6.3仓库级计算机的体系结构
6.3.1层次化的存储体系
6.3.2可伸缩的网络组织
6.4仓库级计算机的性和可用性
6.4.1可用性的重新定义
6.4.2性对可用性的影响
6.4.3故障与容错
6.5仓库级计算机的能耗与散热
6.5.1能耗与能量效率
6.5.2散热方案设计
6.6仓库级计算机的建设与维护
6.6.1CAPEX成本
6.6.2OPEX成本
小结
习题
第7章云计算构架
7.1云计算的相关概念
7.2云计算与机群、网格计算的区别
7.3云计算的服务模式
7.3.1基础设施即服务(IaaS
7.3.2平台即服务(PaaS
7.3.3软件即服务(SaaS
7.4云计算应用实例
7.4.1IaaS实例AWS
7.4.2PaaS实例 GAE
7.4.3SaaS实例 Salesforce
7.5云计算数据中心网络的设计
7.5.1数据中心互连网络的特征
7.5.2基于FatTree(胖树)互连网络的数据中心
7.5.3基于BCube的互连网络的数据中心
7.6云计算中的并行处理框架
7.6.1并行编程模型MapReduce
7.6.2数据分布存储 GFS
7.6.3分布式数据的管理 BigTable
7.7开放式的分布式架构Hadoop
7.7.1Hadoop简介
7.7.2并行编程模型MapReduce
7.7.3分布式文件系统HDFS
7.7.4分布式数据管理工具 HBase
7.7.5数据仓库工具Hive
7.7.6分布式锁设施Zookeeper
小结
习题
术语索引
参考文献
"第1章计算机系统结构的相关概念
本章介绍计算机系统的有关术语,计算机系统结构与技术的关系,系统结构的定量分析技术,系统结构的并行性发展。重点是:①计算机系统的层次结构、计算机系统结构、计算机组织、计算机实现三者的定义及其关系;②透明性、局部性原理、MIPS和MFLOPS定义;③Amdahl定律;④CPU性能公式。
1 1系统结构的有关术语[1]1 1 1计算机系统的层次结构现代计算机系统是硬件、固件和软件组成的十分复杂的系统。为了对这个系统进行描述、分析、设计和使用,人们从不同的角度提出了观察计算机的观点和方法。其中常用的一种方法,就是从机器语言的角度出发,把计算机系统按功能划分成多级层次结构,如图1 1所示。
图1 1计算机系统的多级层次结构
计算机的语言可分成一系列的层次级,最内层级语言的功能最简单,最外层级语言的功能最强。对于用某一层级语言编写程序的程序员来说,他一般不管其程序在机器中是如何执行的,只要程序正确,他就能得到预期的结果。这样,对这层语言的程序员来说,他似乎有了一种新的机器,这层语言就是这种机器的机器语言,该机器能执行用该层语言编写的全部程序。因此,计算机系统就可以按语言的功能划分成多层次结构,每一层以一种不同的语言为特征。
最内层的L0级是硬联逻辑级。这一级由门、触发器等逻辑电路组成,它是由逻辑设计员采用布尔语言设计的硬件内核。
L1级是微程序机器级。这一级的机器语言是二进制编码的微指令集。程序员用微指令编写的微程序由固件/硬件来解释实现。L1级的机器语言是二进制语言。
L2级是传统机器级。这一级的机器语言是机器指令集。程序员用机器指令集编写的程序可以由L1级微程序进行解释,也可直接采用L0级硬联逻辑进行解释。这个解释程序运行在L1级上。
计算机系统结构第1章计算机系统结构的相关概念L3级是操作系统虚拟机。这一级机器语言中的多数指令是传统机器级指令。此外还提供操作系统级指令,如打开文件、读/写文件、关闭文件等指令。用这一级语言编写的程序,若与L2级指令相同则由微程序解释,而操作系统级指令则由操作系统进行解释。操作系统是运行在L2级上的解释程序。
L4级是汇编语言虚拟机。这一级的机器语言是汇编语言。用汇编语言编写的程序,首先翻译成L3级和L2级语言,然后再由相应的机器执行。完成汇编语言翻译的程序称作汇编程序。
L5级是高级语言虚拟机。这一级的机器语言是各种高级语言。目前高级语言已有上百种,如C、C++、FORTRAN等。用这些语言所编写的程序一般由称为编译程序的翻译程序翻译到L4级或L3级上。个别高级语言如BASIC编写的程序采用解释的方法实现,即用解释程序翻译到L4级或L3级。
最外层的L6级是应用语言虚拟机。这一级是为使计算机满足某种用途而专门设计的,因此这一级语言就是各种面向问题的应用语言。为此可以设计专门用于人工智能、教育、管理、计算机设计等领域的虚拟机,这些虚拟机也是当代计算机应用领域的重要研究课题。用应用语言编写的程序一般由应用程序包翻译到L5级上。
由上面的叙述我们可以强调:
(1 计算机语言是由低级(内核)向高级(外层)发展的,高一级语言的语句相对于低级语言功能更强,更便于应用,但都是以低级语言为基础来支撑的。
(2 L3级以上由软件实现。由软件实现的机器我们称为虚拟机器,以区别于由硬件/固件实现的实际物理机器。
(3 编译和解释是机器语言实现的两种基本技术。它们的相同点是:都以执行一串L级指令来实现L+1级指令。但是二者的差别是:编译程序是先把L+1级程序全部变换成L级程序后,再去执行新产生的L级程序,在执行过程中L+1级程序不再被访问。而解释程序是每当一条L+1级指令被译码后,就直接去执行一串等效的L级指令,然后再去取下一条L+1级的指令,依次重复进行。因此解释过程是边变换边执行的过程。在实现新的虚拟机器时,这两种技术都被广泛使用。一般来说,解释执行比编译执行花的时间多,但占用存储空间较小。
1 1 2计算机系统结构
计算机系统结构(compute architecture)一词也译成计算机体系结构,目前作为专用术语被广泛使用。其经典定义是1964年Amdahl在介绍IB 360系统时提出的:计算机系统结构是程序员所看到的计算机属性,即概念性结构与功能属性。
按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。例如,传统机器级程序员所看到的计算机主要属性是该机指令集的功能特性,而高级语言虚拟机程序员所看到的计算机主要属性是该机所配置的高级语言所具有的功能特性。显然,不同的计算机系统,从传统机器级或汇编语言程序员的角度来看,具有不同的属性。但是从高级语言(如C语言)程序员看,它们就几乎没有什么差别,具有相同的属性。换句话说,这些传统机器级所存在的差别对高级语言程序员来说是"看不见"的,也是他们不需要知道的。在计算机技术中,对这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。通常,在一个计算机系统中,低层机器的属性对高层机器的程序员往往是透明的,如传统机器级的概念性结构和功能特性,对高级语言程序员来说是透明的。由此看出,在层次结构的各个级上都有它的系统结构。
为了不使概念具有多义性,计算机系统结构通常定义为:机器语言程序员所看到的传统机器级所具有的属性,它包含概念性结构和功能特性两个方面。这些属性是机器语言程序设计者(或者编译程序生成系统)为使其所设计(或生成)的程序能在机器上正确运行,所需遵循的计算机属性。对通用寄存器型机器来说,这些属性主要是指:
(1 数据表示(硬件能直接识别和处理的数据类型);
(2 寻址规则(最小寻址单元、寻址方式及其表示);
(3 寄存器定义(各种寄存器的定义、数据及使用方式);
(4 指令集(机器指令的操作类型和格式、指令间的排序和控制机构);
(5 中断系统(中断类型、中断响应硬件的功能等);
(6 机器工作状态的定义和切换(如管态和目态等);
(7 存储系统(主存容量、程序员可用的较大存储容量等);
(8 信息保护(信息保护方式、硬件对信息保护的支持);
(9 I/O结构(I/O连接方式、处理机/存储器与I/O设备间数据传送的方式和格式、I/O操作的状态等)。
上述属性是计算机系统中由硬件或固件完成的功能,程序员在了解这些属性后才能编出在传统机器级上正确运行的程序。因此,计算机系统结构概念的实质是确定计算机系统中软硬件的界面,界面之上是软件的功能,界面之下是硬件和固件的功能。
1 1 3计算机组织和计算机实现
计算机系统结构、计算机组织(compute organization)、计算机实现(compute implementation)是三个不同的概念。它们各自包含不同的内容,但又有紧密的关系。
计算机系统结构是指计算机系统的软、硬件的界面,即机器语言程序员所看到的传统机器级所具有的属性。
计算机组织是指计算机系统结构的逻辑实现,包括物理机器级内的数据流和控制流的组成以及逻辑设计等。它着眼于物理机器级内各事件的排序方式与控制方式,各部件的功能以及各部件的联系。计算机组织也被译成计算机组成。
计算机实现是指计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中器件技术在实现技术中占主导作用。
下面举例说明计算机系统结构、计算机组织、计算机实现三者之间的区别。
例1 (1 机器指令集的确定属于计算机系统结构。
2 指令的实现,如取指令、取操作数、运算、送结果等具体操作及其排序方式属于计算机组织。
3 实现指令集中所有指令功能的具体电路、器件的设计、装配技术等属于计算机实现。
例1 (1 确定是否有乘法指令属于计算机系统结构。
(2 乘法指令是用专门的乘法器实现,还是经加法器用重复的相加和右移操作来实现,属于计算机组织。
(3 乘法器、加法器的物理实现,如器件的选定(器件集成度、类型、数量、价格)及所用微组装技术等,属于计算机实现。
例1 (1 主存容量与编址方式(按位、按字节、按字访问等)的确定属于计算机系统结构。
(2 为达到所定性能价格比,主存速度应多快,在逻辑结构上需采用什么措施(如多体交叉存储等)属于计算机组织。
(3 主存系统的物理实现,如存储器器件的选定、逻辑电路的设计、微组装技术的选定属于计算机实现。
可以看出,具有相同计算机系统结构(如指令系统相同)的计算机因为速度要求不同等因素可以采用不同的计算机组织。例如,取指令、译码、取操作数、运算、存结果可以在时间上按顺序方式进行,也可以让它们在时间上按重叠方式进行以提高执行速度。
同样,一种计算机组织可以采用多种不同的计算机实现。例如,主存器件可以采用SRAM芯片,也可以采用DRAM芯片。可以采用大规模集成电路单个芯片,也可以采用中小规模集成电路进行构建。显然,这取决于性能价格比的要求与器件技术的现状。
1 1 4计算机系统结构的分类
研究计算机系统分类方法有助于人们认识计算机的系统结构和组织的特点,理解系统的工作原理和性能。
通常把计算机系统按其性能与价格的综合指标分为巨型、大型、中型、小型、微型、单片机等。但是随着科学技术的进步,各类计算机的性能指标都在不断进步,以至于过去的一台大型机的性能还比不上今天的一台微型机;而用过去一台大型机的价钱,今天却能买一台性能指标高许多倍的新式大型机。可见,按巨、大、中、小、微、单来划分的性能标准是随时间而变化的。
按用途分类,计算机系统可分为科学计算、事务处理、实时控制、家用等。一般说来,计算机都是作为通用系统进行设计的,但是在用户编写程序时,却都带有专用性质。为了解决这个矛盾,采取的办法有:灵活地改变系统配置;适应特殊环境要求采取不同的物理安装;增加处理不同数据结构的能力;提供多种语言和操作系统以适应不同的需要。
按处理机个数分,计算机系统可分为单处理机、多处理机;按种类分有标量处理机、超标量处理机、超流水处理机、向量处理机、阵列处理机、对称多处理机、大规模并行处理机、机群系统等。
下面从计算机系统结构的并行性能出发,介绍两种常用的分类方法。
1 Flynn分类法
1966年M.J.Flynn按照指令流(instructio stream)和数据流(dat stream)的不同组织方式,把计算机系统的结构分为以下4类:
1 单指令流单数据流SISD(singl instructio strea singl datastream);
2 单指令流多数据流SIMD(singl instructio strea multipl datastream);
3 多指令流单数据流MISD(multipl instructio strea singl datastream);
4 多指令流多数据流MIMD(multipl instructio strea multipl datastream)。
图1 2Flynn分类法的4类机器结构图1 2所表示的是这4类计算机的基本结构框图。SISD是传统的顺序处理计算机。SIMD以阵列处理机为代表。MISD在实际中代表何种计算机,存在着不同的看法,有的文献把流水线结构的机器看成是MISD结构。MIMD的代表是多处理机。
2 Hndler分类法
1977年,Hndler根据并行度和流水线提出了另一种分类法。这种分类方法把计算机的硬件结构分成3个层次,并分别考虑它们的可并行流水处理程度。这3个层次是:处理控制器PCU、算术逻辑部件ALU(或运算部件PE)和位级电路BLC。其中位级电路相当于在ALU中要进行1位运算时所需的基本逻辑电路。
这样,一个计算机系统可用3对整数来表示:
T(系统型号)=〈kk′,dd′,ww′〉
式中:k为处理控制器PCU的数目;k′为可组成流水线的PCU数目;d为每个PCU所控制的ALU(或PE)"
需要组成原理的基础才方便阅读
满意
好
满意