《计算机系统结构教程》电子教案第1章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机系统结构教程高等学校计算机系列教材主编洪志全总目录第1章计算机系统结构导论第2章计算机系统结构第3章存储系统第4章流水线技术第5章RISC结构计算机第6章多处理机系统第7章分布式系统结构第8章非控制流计算机结构第1章计算机系统结构导论计算机系统结构(ComputerArchitecture)的概念是Buchholz于1962年在描述IBM7030计算机的扩展性时首先提出的,主要指计算机的外貌,也称为外特性。1964年,IBM370的主设计师Amdahl给出了它的定义:计算机系统结构就是程序员所看到的计算机的基本属性,即概念性结构与功能特性。对于不同层次上的程序员来说,由于使用的程序设计语言不同,可能看到的概念性结构与功能特性会有所不同。现代计算机是一种包括机器硬件、指令系统、系统软件、应用程序和用户接口的集成系统。1.1计算机系统的层次结构基于对计算机语言广义的理解,可以把计算机系统看成由多级“虚拟”计算机所组成。从语言功能层次划分,计算机系统结构的层次模型如图1-2所示。1.2计算机系统结构、组成与实现1.计算机组成与实现计算机组成是在分配给硬件的功能与概念性结构之后,研究如何组成其硬件体系,建立相互之间的联系,以实现机器语言级指令的功能与特性。其中包括各功能部件的配置、组成、相互之间的连接与相互作用等。计算机组成是计算机系统结构的逻辑实现,包括机器内部数据流和控制流的组成及其逻辑设计。计算机系统结构、计算机组成和计算机实现是三个不同的概念:计算机系统结构是计算机系统的软件与硬件之间的界面;计算机组成是指计算机系统结构的逻辑实现;计算机实现是指计算机组成的物理实现。它们各自包含有不同的内容,相互之间又有着密切的联系。2.外特性、内特性与微外特性对于机器语言程序员所看到的计算机的概念性结构与功能特性,称之为计算机的系统结构,也就是“外特性”。这种外特性是由硬件和固件来实现的,而它们本身则是由电子线路、逻辑门、寄存器等器件组成。对这些器件和电子线路的抽象,称为计算机系统的“内特性”,对应于计算机组成,其本身实际上就是计算机系统的实现。3.计算机系统的组成与实现计算机系统的组成既包括硬件系统,又包括软件系统。系统的组成实际上就是各层的硬件和软件构成的统一体,由其硬件和软件实现各层次的功能。计算机系统结构所解决的问题是计算机系统总体上、功能上需要解决的问题,而计算机组成要解决的是逻辑上如何具体实现的问题。4.计算机的透明性在计算机中,客观存在的事物或属性从某个角度看不到,则称是透明的。计算机中的“透明”和社会生活中的透明涵义正好相反:社会生活中所称的“透明”是要公开,让人看得到,而计算机中的“透明”则是指看不到。5.结构、组成与实现三者的相互影响结构不同会影响到可用的组成技术不同,而不同的组成又会反过来影响到系统结构的设计。因此,系统结构的设计必须结合应用来考虑,要为软件和算法的实现提供更多更好的硬件支持,同时要考虑可能采用和准备采用哪些组成技术,不能过多或不合理地限制各种组成、实现技术的采用与发展。组成与实现可以折衷,它主要取决于器件的来源、厂家的技术特长和性能价格比能否优化。应当在当时的器件技术条件下,使价格不增或只增很少的情况下尽可能提高系统的性能。1.3.1按“流”分类计算机系统结构分类方式主要有三种。(1)按“流”分类;(2)按“并行级”和“流水线”分类;(3)按计算机系统结构的最大并行度进行分类。按“流”分类法是Flynn教授在1966年提出的一种分类方法,他是按照计算机中指令流(InstructionStream)和数据流(DataStream)的多倍性进行分类。指令流是指机器执行的指令序列,数据流是指指令流调用的数据序列。多倍性是指在机器中最受限制(瓶颈最严重)的部件上,在同一时间单位中,最多可并行执行的指令条数或处理的数据个数。1.3计算机系统结构的分类按“并行级”和“流水线”分类法是WolfganHändler在1977年提出的。在计算机系统的三个子系统集上,按照并行性和流水线的处理程度分类。三个层次是处理控制器(PCU)、运算部件(ALU)和位级电路(BLC)。这样,一个计算机系统可描述为:1.3.2按“并行级”和“流水线”分类',',')(wwddkkcT其中:c表示计算机系统型号;k表示计算机系统中处理控制器(PCU)的个数;k′表示可组成流水线的处理控制器的个数;d表示每一个PCU中运算部件(ALU或PE)的个数;d′表示可组成流水线的ALU或PE的个数;w表示ALU或PE的字长;w′表示所有ALU或一个PE中的流水段数。如果任意一对参数的第二个元素值为1,则可以省略。冯氏分类法是美籍华人冯泽云于1972年提出来的一种分类方法,是按照“最大并行度”对计算机系统结构进行分类。最大并行度用Pm表示,定义为计算机系统在单位时间内所能处理的最大二进制位数。若设每一个时钟周期△ti内能同时处理的二进制位数为Pi,则T个时钟周期内平均并行度为:1.3.3冯氏分类法TPiPa/)(平均并行度取决于系统的运行程度,与应用程序无关。为了表示这一特性,可引入系统在T个时钟周期内的平均利用率)/()(/PmTPiPmPa图1-7给出用“最大并行度”对计算机系统结构进行分类的方法。其中直角坐标系中的一个点代表一个计算机系统;横坐标表示字宽(N位),即在一个字中可同时处理的二进制位数;纵坐标表示位片宽度(M字),即在一个位片中可同时处理的字数。随着大规模集成电路技术的发展和软件硬化的趋势,计算机系统软、硬件界限已经变得模糊了。因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。对于某一功能采用硬件方案还是软件方案,取决于器件价格、速度、可靠性、存储容量、变更周期等因素。1.4计算机系统的设计与实现1.4.1计算机系统设计原则计算机系统结构的设计是整个计算机系统设计当中极为重要的内容,因此也必须遵守计算机系统设计的原则方法和步骤。下面介绍目前在计算机系统设计中应该遵守的定量原理。1.计算机系统的设计原则(1)加快经常性事件的速度(MaketheCommonCaseFast)这是最重要也是被广泛采用的设计准则。道理十分明显,使经常性事件的处理速度加快能明显提高整个系统的性能。(2)Amdahl定律IBM公司的设计师Amdahl在1967年提出的Amdahl定律告诉我们:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。任务时间采用改进措施后执行某某任务时间未采用改进措施前执行未采用改进措施前性能采用改进措施后性能加速比(3)访问局部性原理程序访问局部性原理说明了计算机在程序执行过程中呈现出的一种规律,即程序往往重复使用它刚刚使用过的数据和指令。局部性分为时间上的局部性和空间上的局部性两种。所谓时间局部性是指近期被访问的代码,很可能不久又将再次被访问;空间局部性是指地址上相邻近的代码可能会被连续地访问。2.计算机系统设计的主要任务(1)确定用户对计算机系统的功能、价格和性能要求功能要求包括:应用领域、软件兼容性、操作系统的要求、各种通用国际标准的要求。价格要求:考虑用户或市场对计算机功能和性能要求的前提下,尽量降低成本。性能要求包括:速度、容量、输入/输出的种类、可靠性、可维护性、安全性、容错能力、人机交互的能力等。(2)软硬件的平衡硬件实现:速度快、成本高;灵活性差、占用内存少。软件实现:速度低、复制费用低;灵活性好、占用内存多。设计必须考虑硬件和软件的合理分配,同时还应考虑设计的复杂性及软硬件实现的难易程度。(3)设计出符合今后发展方向的系统结构一个成功的系统结构应该能经得起软、硬件技术的发展以及应用的变化。因此设计者必须特别注意计算机应用和计算机技术的发展趋势,这样才能延长一种机器的使用寿命。发展趋势:硬件实现的比例越来越高,软件所占的成本越来越高。计算机系统的性能与价格往往是矛盾的,一般来说若要求计算机性能越高,则价格就越高。因此,根据应用适当的性能,对降低计算机的成本是很有必要的。1.系统结构的生命周期由于计算机发展很快,任何一种系统结构的产生都要经过诞生、发展、成熟、过期甚至消亡。一旦一种系统结构不能满足应用的需要,这种系统结构就要消亡了。因此它与软件一样,存在一个生命周期。计算机的一种系统结构从诞生到消亡,大约需要经历15~20年。2.系统性能的下移与价格的变化计算机经历了五个发展时期。但是,系统结构的成就不只是表现在计算机的规模上,而且表现在系统性能的“下移”上,即巨型机、大型机的功能移向中、小型机;中、小型机的功能移向微型机。1.4.2计算机系统的性能与价格计算机系统性能评测一般由非盈利机构(组织)承担,测试结果应保证其公正性和权威性。测试结果是否能准确反映计算机实际使用效果,这是测试准确性问题。1.CPU性能CPU的性能是指CPU执行程序所用时间,也就是CPU连续地执行一条条指令的时间,不包括I/O等待时间。CPU的性能取决于三个要素:①时钟频率f;②每条指令所花的时钟周期数CPI;③指令条数IC。1.4.3计算机系统性能评测fCPIICTcpu)(ICICPICPIinii)(1其中,Ii表示i指令在程序中执行的次数,CPIi表示i指令所需的平均时钟周期数,n为指令种类数。2.MIPS和MFLOPS(1)MIPS(MillionInstructionsPerSecond)它表示每秒百万条指令数,对于一个给定的程序,MIPS定义为:610CPIMIPS时钟频率执行整型指令所需时间整型指令总数程序的执行时间为:610*MIPSTe指令条数其中:Te为程序执行时间,CPI为每条指令的平均时钟周期,时钟频率为每秒周期数即每周期的时间的倒数。机器愈快其MIPS值愈高,但MIPS对指令系统和程序的依赖性很大,在某些情况下不能准确反映系统的性能。(2)MFLOPS(MillionFloatingPointOperationsPerSecond)表示每秒百万次浮点操作次数,MFLOPS定义为:610执行时间程序中浮点操作次数MFLOPSMFLOPS用于衡量机器浮点操作的性能,同一程序在不同机器上执行的指令可能不同,但执行的浮点运算却是完全相同的。但MFLOPS不能体现机器的整体性能,MFLOPS取决于机器和程序两个方面,不同机器浮点运算集不同,因此不同浮点操作的时间也不同。3.系统性能测试为了能对计算机系统进行合理的评价,通常采用不同类型的程序进行测试,经过实践选择出的这些程序称为基准测试程序。(1)基准测试程序基准测试程序(Benchmark)用于测试和预测计算机系统的性能,揭示不同结构机器的长处和短处,为用户决定购买或使用那种机器最合适他们的应用要求提供决策。基准测试程序试图提供一个客观,公正的评价机器性能的标准。通用测试程序可分为几类:①综合型(如Dhrystone、Whetstone等);②核心型(如LivemoreFortranKernals、NASA之NAS等);③数学库(如Linpack、FFT等);④应用型(如SPEC、Perfect、Splash等);⑤并行型(如NAS之NPB、PARKBENCK等)。基准测试程序包括:①实际应用程序:如C语言的编译程序,Tex正文处理程序、SpiceCAD工具软件等。②核心程序:从实际程序中抽取小量关键的循环程序段,如Livermore24Loop(24个循环段)、Linpack(解线性方程组)。③综合测试程序:它类似于核心程序,但考虑到各种不同的操作和不同种类的程序。如Whetstone和Dhrystone等。(2)性能评价结果处理设有n个测试程序,Ri为第i个测试程序的速率;Ti为第i个测试程序所需的时间,则可通过下面三个数据来确定机器的性能:速率算术平均值Am:niniRinTinAm11111速率几何平均值Gm:nninniRiTiGm)1()(11速率加权平均值

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功