收藏 分享(赏)

计算机系统结构第1章.ppt

上传人:dreamzhangning 文档编号:3352031 上传时间:2018-10-17 格式:PPT 页数:119 大小:587.50KB
下载 相关 举报
计算机系统结构第1章.ppt_第1页
第1页 / 共119页
计算机系统结构第1章.ppt_第2页
第2页 / 共119页
计算机系统结构第1章.ppt_第3页
第3页 / 共119页
计算机系统结构第1章.ppt_第4页
第4页 / 共119页
计算机系统结构第1章.ppt_第5页
第5页 / 共119页
点击查看更多>>
资源描述

1、,第 1 章 计算机系统结构的基本概念,1.1 计算机系统的多级层次结构 1.2 计算机系统结构、 组成与实现 1.3 计算机系统的软硬取舍、性能评测及定量设计原理 1.4 软件、应用、器件对系统结构的影响 1.5 系统结构中的并行性发展和计算机系统的分类,1.1 计算机系统的多级层次结构,现代通用的计算机系统是由紧密相关的硬件和软件组成的。 从使用语言的角度,可以将系统看成是按功能划分的多层机器级组成的层次结构,如图1-1 所示。层次结构由高到低分别为应用语言机器级、高级语言机器级、汇编语言机器级、 操作系统机器级、传统机器语言机器级和微程序机器级。对于一个具体的计算机系统,层次的多少会有所

2、不同。,图 1.1 计算机系统的多级层次结构,对使用某一级语言编程的程序员来讲,只要熟悉和遵守该级语言的使用规定,所编程序总是能在此机器上运行并得到结果,而不用考虑这个机器级是如何实现的。就好像该程序员有了一台可以直接使用这种语言作为机器语言的机器一样。这里,“机器”被定义为是能存储和执行相应语言程序的算法和数据结构的集合体。实际上,只有二进制机器指令即传统所讲的机器语言与机器硬件直接对应,方可直接被硬件识别和执行。,各机器级的实现主要靠翻译或解释,或者是这两者的结合。翻译(Translation)是先用转换程序将高一级机器级上的程序整个地变换成低一级机器级上等效的程序,然后再在低一级机器级上

3、实现的技术。解释(Interpretation)则是在低级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句或指令的功能,是通过对高级的机器级语言程序中的每条语句或指令逐条解释来实现的技术。,应用语言虚拟机器级M5是为满足专门的应用设计的。使用面向某种应用的应用语言(L5)编写的程序一般是经应用程序包翻译成高级语言(L4)程序后,再逐级向下实现。高级语言机器级M4上的程序可以先用编译程序整个翻译成汇编语言(L3)程序或机器语言(L1)程序,再逐级或越级向下实现,也可以用汇编语言(L3)程序、机器语言(L1)程序,甚至微指令语言(L0)程序解释实现。汇编语言(L3)源程序则是先用汇编程序整

4、个将它变换成等效的二进制机器语言(L1)目标程序,再在传统机器级M1上实现。操作系统程序虽然已经发展成用高级语言(如C语言)编写,但最终还是要用机器语言程序或微指令程序来解释。,它提供了传统机器级M1所没有,但为汇编语言和高级语言使用和实现所用的基本操作、命令及数据结构,例如,文件管理、存储管理、进程管理、多道程序共行、多重处理、作业控制等所用到的操作命令、语句和数据结构等。因此,操作系统机器级M2放在传统机器级M1和汇编语言机器级M3之间是适宜的。传统机器级采用组合逻辑电路控制,其指令可直接用硬件来实现,也可以采用微程序控制,用微指令(L0)程序来解释实现。微指令直接控制硬件电路的动作。,就

5、目前的状况来看,M0用硬件实现,M1用微程序(固件)实现,M2到M5大多是用软件实现。所谓固件(Firmware),是一种具有软件功能的硬件,例如将软件固化在只读存储器这种大规模集成电路的硬、器件上,就是一种固件。以软件为主实现的机器称为虚拟机器,以区别于由硬件或固件实现的实际机器。虚拟机器不一定全由软件实现,有些操作也可用固件或硬件实现。例如操作系统的某些命令可用微程序或硬件实现。,将计算机系统看成是多级机器构成的层次结构推动了计算机系统结构的发展。例如,可以重新调整软、硬件比例,为应用语言级、高级语言级、操作系统级提供更多更好的硬件支持,改善硬、器件迅速发展而软件日益复杂、开销过大的状况;

6、或直接用硬件或固件实现,发展高级语言机器或操作系统计算机结构。由于层次中每一级都有其自己的用户、实现方法和指令系统,因此可让各虚拟机器级用真正的实处理机代替,摆脱以往各级功能都在同一台实际机器上实现的状况,发展多处理机、分布处理、计算机网络等系统结构。可以在一台宿主机上模拟或仿真另一台机器,推动自虚拟机、多种操作系统共行等技术的采用,从而促进软件移植、计算机系统性能评价、计算机设计自动化等技术的发展。,1.2计算机系统结构、组成与实现,1.2.1 计算机系统结构、组成、实现的定义和内涵从计算机系统的层次结构定义,系统结构(SystemArchitecture)是对计算机系统中各级界面的划分、定

7、义及其上下的功能分配。每级都有其自己的系统结构。客观存在的事物或属性从某个角度看不到,简称透明(Transparent)。不同机器级程序员所看到的计算机属性是不同的,它就是计算机系统不同层次的界面。系统结构就是要研究对于某级,哪些属性应透明,哪些属性不应透明。透明可简化该级的设计,但因无法控制,也会带来不利影响。因此,要正确进行透明性取舍。,计算机系统结构也称计算机系统的体系结构(ComputerArchitecture),它只是系统结构中的一部分,指的是传统机器级的系统结构。其界面之上包括操作系统级、汇编语言级、高级语言级和应用语言级中所有软件的功能,该界面之下包括所有硬件和固件的功能。因此

8、,它是软件和硬件/固件的交界面,是机器语言、汇编语言程序设计者,或编译程序设计者看到的机器物理系统的抽象。所以,计算机系统结构研究的是软、硬件之间的功能分配以及对传统机器级界面的确定,提供机器语言、汇编语言程序设计者或编译程序生成系统为使其设计或生成的程序能在机器上正确运行应看到和遵循的计算机属性。,就目前的通用机来说,计算机系统结构的属性包括:(1)硬件能直接识别和处理的数据类型及格式等的数据表示;(2)最小可寻址单位、寻址种类、地址计算等的寻址方式;(3)通用/专用寄存器的设置、数量、字长、使用约定等的寄存器组织;(4)二进制或汇编级指令的操作类型、格式、排序方式、控制机构等的指令系统;,

9、(5)内存的最小编址单位、编址方式、容量、最大可编址空间等的存储系统组织;(6)中断的分类与分级、中断处理程序功能及入口地址等的中断机构;(7)系统机器级的管态和用户态的定义与切换;,(8)输入/输出设备的连接、使用方式、流量、操作结束、出错指示等的机器级I/O结构;(9)系统各部分的信息保护方式和保护机构等属性。例如,IBMPC系列和VAX-11系列的指令系统、寻址方式、寄存器组织、I/O设备连接方式等都不一样,从传统机器语言程序员或汇编语言程序员看,概念性结构和功能特性差异很大。要使他们所编的程序能运行,应了解的计算机属性大不相同,但高级语言程序员却看不到。,计算机组成设计要确定的方面一般

10、应包括如下几个部分。(1)数据通路宽度:数据总线上一次并行传送的信息位数。 (2)专用部件的设置:是否设置乘除法、浮点运算、字符处理、地址运算等专用部件,设置的数量与机器要达到的速度、价格及专用部件的使用频度等有关。(3)各种操作对部件的共享程度:分时共享使用程度高,虽限制了速度,但价格便宜。设置部件多降低共享程度,因操作并行度提高,可提高速度,但价格也会提高。(4)功能部件的并行度:是用顺序串行,还是用重叠、流水或分布式控制和处理。,(5)控制机构的组成方式:用硬联还是微程序控制,是单机处理还是多机或功能分布处理。(6)缓冲和排队技术:部件间如何设置及设置多大容量的缓冲器来协调它们的速度差;

11、用随机、先进先出、先进后出、优先级,还是循环方式来安排事件处理的顺序。(7)预估、预判技术:为优化性能用什么原则预测未来行为。(8)可靠性技术:用什么冗余和容错技术来提高可靠性。,计算机实现(ComputerImplementation)指的是计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中,器件技术在实现技术中起着主导作用。,下面通过举例来说明什么是计算机系统结构、计算机组成和计算机实现。指令系统的确定属于计算机系统结构。指令的实

12、现,如取指令、指令操作码译码、计算操作数地址、取数、运算、送结果等的操作安排和排序属于计算机组成。实现这些指令功能的具体电路、器件的设计及装配技术属于计算机实现。,确定指令系统中是否要设乘法指令属于计算机系统结构。乘法指令是用专门的高速乘法器实现,还是靠用加法器和移位器经一连串时序信号控制其相加和右移来实现属于计算机组成。乘法器、加法-移位器的物理实现,如器件的类型、集成度、数量、价格,微组装技术的确定和选择属于计算机实现。 主存容量与编址方式(按位、按字节还是按字访问等)的确定属于计算机系统结构。为达到性能价格要求,主存速度应该为多少,逻辑结构是否采用多体交叉属于计算机组成。主存器件的选定、

13、逻辑设计、微组装技术的使用属于计算机实现。,又如,IBM370系列有115、125、135、145、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看的概念性结构都如图1-2所示。它们均是由中央处理机/主存通道设备控制器外设4级构成的,以主存为中心,采用通道方式输入/输出。从层次结构看,IBM370系列中不同型号的机器从高级语言机器级、汇编语言机器级到传统机器语言机器级都是相同的,只是使用不同的组成和实现、不同的微程序机器级使机器性能价格不同。因此,设计何种系列机属于计算机系统结构,而系列内不同型号计算机的组织属于计算机组成。,IBM370系列的中央处理机都有相同的机

14、器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上则采用重叠、流水或其他并行处理方式。程序设计者编程时所看到的数据形式(即数据表示)都是相同的32位字长,定点数都是半字长16位或全字长32位,浮点数都是单字长32位、双字长64位或四字长128位,如图1-3(a) 所示。由于速度、价格的要求不同,在组成和实现时,数据通路宽度(数据总线线数)可以分别采用8位、16位、32位或64位,如图1-3(b)所示。一个64位的字在8位数据通路宽度的机器上需分8次传送完,而在64位数据通路宽度的机器上却只需一次即可传送完,速度快了,但硬件多了,价格贵了。因此,数据总线宽度对程序员是透

15、明的,是他不需要知道的。,图1-2IBM370系列的概念性结构,图1-3IBM370系列字长、数的表示和数据通路宽度 (a)统一的字长与定、浮点数表示;(b)不同的数据通路宽度,IBM370系列的各档机器都采用通道方式进行输入/输出,但在计算机组成上,低档机器可以采用结合型通道,让通道的功能借用中央处理机的某些部件完成。同一套硬件分时执行中央处理机和通道的功能,虽然系统速度性能低,但可以降低成本。而高档机器上却采用独立型通道,单独设置通道硬件,与中央处理机并行,成本虽高,但系统速度提高了。可见,机器/汇编指令系统、数据表示、是否采用通道方式输入/输出的确定属于系统结构;而指令采用顺序、重叠、流

16、水还是其他方式解释,数据通路宽度的确定,通道采用结合型还是独立型,均属于计算机组成。,再如,DEC公司早先推出的PDP-11系列是以单总线结构著称的,实际上它不属于计算机系统结构。为适应不同速度和价格的要求,不同型号机器仍使用多种不同的总线。然而,它们都具有相同的I/O连接和使用方式,将I/O设备端口寄存器在逻辑上看做是主存的一部分,与主存统一编址,通过访问主存这些指定单元来实现与指定的I/O设备通信,完成对该设备的读/写等。因此,对PDP-11或后来的VAX-11来说,单总线结构属于计算机组成,其机器级的I/O连接和使用方式才属于计算机系统结构,是程序设计者编写I/O程序时应当看到的。,1.

17、2.2计算机系统结构、组成和实现的相互关系计算机系统结构、组成、实现三者互不相同,但又相互影响。从前面的例子可以看出,相同结构(如指令系统相同)的计算机,可以因速度不同而采用不同的组成。例如,指令间既可以顺序执行,也可以重叠执行以提高性能。乘法指令既可以用专门的乘法器实现,也可以用加法器、移位器等经重复加、移位来实现,这取决于性能、价格、乘法指令使用频度及所用乘法的运算方法。高速高频的可用专门乘法器,否则宜用后一种方法来降低价格。同样,一种组成可有多种不同的实现方法。如主存器件可用双极型的,也可用MOS型的;可用VLSI单片,也可用多片小规模集成电路组成。这取决于要求的性能价格比及器件技术状况

18、。,结构不同会使可能采用的组成技术不同。如为了实现: A =B+C D =E*F,如果采用面向寄存器的系统结构, 其程序可以是 LOAD R1, B ADD R1, C STORE R1, A LOAD R2, E MPY R2, F STORE R2, D 而对面向主存的具有三地址寻址方式的系统结构,其程序可以是 ADD B, C, A#; MPY E, F, D,1.3 计算机系统的软硬取舍、性能评测及定量设计原理,1.3.1 软、硬件取舍的基本原则软件和硬件在逻辑功能上是等效的。原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成,只是性能、价格、实现的难易程度不同。具有相

19、同功能的计算机系统,其软、硬件功能分配比例可以在很宽的范围内变化,如图1-4所示。这种分配比例随不同时期及同一时期的不同机器动态地改变。由于软、硬件紧密相关,软、硬件界面常常是模糊不清的。,图1-4计算机系统的软、硬件功能分配比例,一般来说,提高硬件功能的比例可提高解题速度,减少程序所需存储空间,但会增加硬件成本,降低硬件利用率和计算机系统的灵活性及适应性;而提高软件功能的比例可降低硬件成本,提高系统的灵活性、适应性,但解题速度下降,软件设计费用和所需存储器用量要增加。因此,确定软、硬件功能分配比例的第一个基本原则是应考虑在现有硬、器件(主要是逻辑器件和存储器件)条件下,系统要有高的性能价格比

20、,主要从实现费用、速度和其他性能要求来综合考虑。,下面仅从实现费用分析。无论是硬件实现,还是软件实现,实现费用都应包括研制费用和重复生产费用。目前尽管软件的设计效率低,而用硬件实现的设计费用还是明显地高于用软件实现的费用,尤其是VLSI专用芯片的设计费用是比较高的。假设某功能的软、硬件实现的每次设计费用分别为Ds和Dh,则Dh 100Ds是完全可能的。,至于重复生产费用,硬件实现的也比软件实现的贵得多,后者只是软件的复制费用加上存放该软件的存贮介质(如盘片)的价格。 设该功能软、 硬件实现的每次重复生产费用分别为Ms和Mh, 则Mh100 Ms也是可能的。用硬件实现一个功能(如子程序调用的全部

21、操作),往往只需设计一次;而用软件实现时,每用到该功能往往要重新设计。设C为该功能在软件实现时需重新设计的次数,则该功能用软件实现的设计费用就为CDs(由于重新设计时可利用原设计进行修改或简单搬用,使设计费用Ds要低得多)。同一功能的软件在存贮介质上有可能多次出现,每出现一次都需要有复制和存贮费用。 设该功能在存贮介质上出现了R次,软件实现此功能的重复生产费用就为RMs。,假定某计算机系统生产了V台。每台计算机用硬件实现的费用就为Dh/V+Mh,若改用软件实现则为CDs/V+RMs。只有当 Dh/V+MhCDs/V+RMs 改用软件实现则为 100Ds/V+100Ms CDs/V+RMs可见,

22、只有在C和R的值较大时,这个不等式才越能够成立。就是说,只有这个功能是经常要用的基本单元功能,才宜于用硬件实现,不要盲目地认为硬件实现的功能比例越大越好。,另外,软件设计费用远比软件的重复生产费用高,Ds104Ms也是完全可能的。如果将此关系式代入上式,得 ,由于C值一般总比100小,因此V值越大,这个不等式才越成立。即只有对产量大的计算机系统,增大硬件功能实现的比例才是适宜的。如果用硬件实现不能给用户带来明显的好处,产量仍较低,则系统是不会有生命力的。,106/V+100104C/V+R,确定软、硬件功能分配的第三个基本原则是,不能仅从“硬”的角度考虑如何便于应用组成技术的成果和便于发挥器件

23、技术的进展,还应从“软”的角度把如何为编译和操作系统的实现以及为高级语言程序的设计提供更多更好的硬件支持放在首位。应当进一步缩短高级语言与机器语言、操作系统与计算机系统结构以及程序设计环境(如模块化、数据类型抽象)等与计算机系统结构之间存在的语义差距。计算机系统结构、机器语言是用硬件和固件实现的,而这些语义差距是用软件来填补的。因此,语义差距的大小实质上是取决于软、硬件功能的分配,差距缩小了,系统结构对软件设计的支持就加强了。,1.3.2计算机系统的性能评测与定量设计原理1.计算机系统的性能评测多数情况在设计通用计算机系统时,进行软、硬件功能分配总是考虑在满足系统性能前提下,如何使性能价格比达

24、到最高。除非是设计高性能的巨型机,可能采取不惜成本来提高性能;或者是为追求低成本,不惜牺牲性能。前面已经提到,价格(成本)包括了系统软件和硬件两部分的研制费用和重复生产费用。这些费用会随硬件、器件、软件的发展而动态改变,且与系统的产量有关。一般来说,硬件研制成本随时间在不断地下降,而软件成本则随时间在不断地上升。就实现技术而言,硬件和软件的成本都会因工艺完善、合格率的提高而不断下降,产量的提高也有利于促进工艺稳定、生产率的提高。实际表明,产量提高一倍,成本就会降低10%。,计算机系统的性能指标体现于时间和空间两个方面。其中,在系统上程序实际运行的时间应该是衡量机器时间(速度)性能最可靠的标准。

25、高性能计算机系统应让系统结构在机器的功能与程序的行为上有良好的适配。机器的性能是通过采用好的硬件、系统结构及高效的资源管理等技术来提高的。但程序的行为又与应用中程序运行的条件密切相关,很难确切地确定。此外,算法设计、数据结构、语言、程序员的水平、编译技术等也都会影响到程序的行为。,计算机的性能通常用峰值性能及持续性能来评价。峰值性能是指在理想情况下计算机系统可获得的最高理论性能值,它不能反映出系统的实际性能。实际性能又称持续性能,它的值往往只是峰值性能的5%30%(因算法而异)。 持续性能的表示有算术性能平均值、调和性能平均值和几何性能平均值三种。,算术性能平均值Am是n道程序运算速度或运算时

26、间的算术平均值。如以速率评价,就有,式中,Ti是第i个程序的执行时间,Ri是第i个程序的执行速率。如以执行时间评价,则,调和性能平均值Hm为,Hm的值与运行全部程序所需的时间成反比,用它来衡量计算机的时间(速度)性能比较准确。,几何性能平均值Gm为,由于,因此,对不同机器进行性能比较时,可以对性能采取归一化,即可以以某台机器性能作为参考标准,让其他机器的性能与参考标准去比,不论哪台机器作参考机,Gm值均能正确地反映出结果的一致性,Gm1的机器性能相对就好,Gm 1的机器性能相对就差。而Am和Hm就没有这样的特性,因此常用Gm来作比较。,如果考虑工作负荷中各个程序出现的比例不同,可以将各程序的执

27、行速率或执行时间加权。例如,一个任务由4个程序组成,程序A的比例占10%,程序B的比例占30%,程序C的比例占40%,程序D的比例占20%,则可以分别加0.1、0.3、0.4、0.2的权值,只需将权值i与对应程序的执行速率或执行时间相乘,就可求得加权后的算术平均值、几何平均值、调和平均值。,(1)加权算术平均值:,(2)加权调和平均值:,(3)加权几何平均值:,在计算机上执行一个程序的时间可用解题时间衡量。解题时间包含有磁盘的访问时间、主存的访问时间、输入/输出的时间、编译和操作系统运行的辅助操作开销和CPU的运行时间等。要想减少解题时间,就必须减少上述各部分的时间。考虑到在多道程序运行时,程

28、序的输入/输出、系统开销可以与其他道程序的CPU运行时间重叠,所以,比较系统执行程序时的解题时间可以简化为CPU的运行时间。CPU同时运行系统程序和用户程序,对用户来说,更关心的是用户的CPU时间。,计算CPU的程序执行时间TCPU有3个因素,即程序执行的总指令条数IC(InstructionCounter)、平均每条指令的时钟周期数CPI(CyclesPerInstruction)、主时钟频率fc。这样,,假设系统共有n种指令,第i种指令的时钟周期数为CPIi,第i种指令在程序中出现的次数为Ii,则,这样,,其中,Ii/IC为第i种指令在程序总指令数IC中所占的比值。,为了反映程序的运行速度

29、,通常引入如下一些定量指标:(1)MIPS(MillionInstructionsPerSecond,每秒百万条指令数)。,这样,程序的执行时间为,由于MIPS是机器单位时间执行指令的条数,机器主频fc越高,平均每条指令的时钟周期数CPI越少,其MIPS就越高。因此,MIPS越高,一定程度上反映了机器的性能越好。但是,MIPS很大程度依赖于机器的指令系统,用它很难准确衡量指令系统不同的机器之间的性能。所以,MIPS只能用于比较相同机器指令系统的计算机之间的性能。即使在同一台计算机上,程序(负荷)不同,其CPI也不同,所以,运行程序不同时,其性能的差异会很大。同时,MIPS还与机器硬件的实现有关

30、。例如,在有加速浮点运算部件的机器上,虽然MIPS很低,但浮点运算速度会很高,而在软件实现浮点运算的机器上,MIPS虽然很高,但浮点运算速度可能很低。所以,用MIPS来衡量标量处理机的性能比较合适,衡量向量处理机就不合适。,(2)MFLOPS(MillionFloatingPointOperationsPerSecond,每秒百万次浮点运算)。假设IFN表示程序运行中的浮点运算总次数,有,MFLOPS只能反映机器执行浮点操作的性能,并不能反映机器的整体性能。例如,在程序编译过程中,不管MFLOPS有多高,对编译速度都不会有影响。,MFLOPS较适用于衡量处理机中向量的运算性能。因为它是基于浮点

31、操作而不是指令的,因此,可用于比较不同向量计算机的向量运算性能。同一个程序,不同计算机运行所需的指令数会不同,但运算所用到的浮点数的个数却是相同的,因此,用MFLOPS衡量系统性能时,就要注意,它会随整数、浮点数的个数的比例不同而不同,也会因快速浮点操作与低速浮点操作的比例不同而不同,所以,用MFLOPS有时也难以准确地反映出机器的性能。,MFLOPS与MIPS的折算尚没有统一的标准。一般认为在标量处理机上执行一次浮点操作平均需要3条指令,所以一般可按,1MFLOPS3MIPS,来折算。,评价一个计算机系统的性能除机器的结构、功能外,与工作负荷关系很大,工作负荷不同时,性能差异很大。因此,要对

32、系统性能进行客观的评测,就需要选择较能真实反映出系统性能的工作负荷(程序),通常可用不同层次的基准程序(Benchmark)来评测。其方法可有:(1)采用实际的应用程序测试。例如,C语言的各种编译程序,Tex正文处理程序,或Spice那样的CAD工具软件。(2)采用核心程序测试。实际的应用程序往往较大,核心程序则是从实际的程序中取出其中最关键的短程序部分,如循环部分或线性方程求解的部分。,(3)合成测试程序。这是人为地编写的核心程序,程序的规模较小,一般在10100行左右,容易输入,而且运行的结果是预知的。(4)综合基准测试程序。这是考虑了各种可能的操作和各种程序的比例,人为地平衡编制的基准测

33、试程序。显然,它与实际的应用差别较大,所测得的性能往往不真实。,2.计算机系统的定量设计原理在设计计算机系统时,一般应遵循如下的定量设计原理。1)哈夫曼(Huffman)压缩原理尽可能加速处理高概率事件远比加速处理概率很低的事件对性能提高要显著。例如,CPU在运算中发生溢出的概率是很低的,为此,设计时可考虑加快不溢出时的运算速度,而对溢出时的速度不予考虑。,2)Amdahl定律该定律是1967年IBM公司的Amdahl在设计IBM360系列机时首先提出来的。该定律可用于确定对系统中性能瓶颈部件采取措施提高速度后能得到系统性能改进的程度,即系统加速比Sp。系统加速比Sp定义为系统改进后的性能与未

34、改进时的性能的比值,或者定义为系统未改进时的程序执行时间Told与改进后程序执行时间Tnew的比值。系统加速比Sp与两个因素有关,即性能可改进比fnew和部件加速比rnew。,性能改进比fnew是系统性能可改进部分占用的时间与未改进时系统总执行时间的比值,显然,0fnew1。部件加速比rnew是系统性能可改进部分在改进后性能提高的比值,显然rnew 1。这样,系统加速比为,式中,分母的(1-fnew)为不能改进性能这部分的比例。,不难看出,当系统性能可改进比fnew为0时,Sp=1;而当部件加速比rnew趋于无穷大时,分母中的fnew/rnew将趋于0, 这时有,就是说,性能提高的幅度受限于性

35、能改进部分所占的比例大小,而性能改善的极限又受性能可改进比fnew的约束。,举例来说,如果系统中某部件处理速度提高到10倍,即rnew=10,但该功能的处理时间仅占整个系统运行时间的40%,则改进后,整个系统的性能提高为,即整体性能只能提高1.56倍。,实际上,Amdahl定律表明了性能提高量的递减规律,如果只对系统中的一部分进行性能改进,改进的越多,整体系统性能提高的增量却越小。仍以上面的例子来说,如果部件加速比rnew由10增大到100,在fnew仍为0.4的条件下,其Sp只约为1.66,性能提高的增量仅为0.1。因此,Amdahl定律告诉我们,改进好的高性能系统应是一个各部分性能均能平衡

36、地得到提高的系统,不能只是其中某一个功能部件性能的提高。,3)程序访问的局部性定律程序访问的局部性包括了时间上和空间上的两个局部性。时间上的局部性指的是最近的将来要用到的信息很可能就是现在正在使用的信息,这是因为程序存在着循环。空间上的局部性指的是最近的将来要用到的信息很可能与现在正在使用的信息在程序位置上是邻近的,这是因为指令通常是顺序存放、顺序执行的,数据也通常是以向量、阵列、树、表等形式簇聚地存放在一起。统计表明,程序执行时,90%的时间只访问整个程序的10%那一部分,而其余10%的时间才访问90%的那部分程序。甚至于有的程序部分访问时间连1%都不到。这为设计指令系统提供了重要的依据,即

37、指令硬件的设计应尽量加速高频指令的执行。,1.4软件、应用、器件对系统结构的影响,1.4.1软件对系统结构的影响由于软件相对于硬件的成本越来越贵,产量和可靠性的提高越来越困难,要改变过去那种把主要功能负担加在软件上以简化硬件的做法,希望重新分配软、硬件功能,充分利用硬、器件技术发展带来的好处,为程序设计提供更好的支持。但是目前已积累了大量成熟的软件,加上软件生产率又很低,软件的排错比编写难,除非特殊情况,程序设计者一般不愿意,也不应该在短时间里按新的系统结构、新的指令系统去重新设计软件。为此,在系统结构设计时,提出应在新的系统结构上解决好软件的可移植性问题。,软件的可移植性(Portabili

38、ty)指的是软件不修改或只经少量修改就可由一台机器移到另一台机器上运行,同一软件可应用于不同的环境。这样,实践证明是可靠的软件就能长期使用,不会因机器更新去重新编写,既大大减少了编制软件的工作量,又能迅速用上新的硬件技术,更新系统,让新系统立即发挥效能。软件设计者也就有精力开发全新的软件。,1.统一高级语言由于高级语言是面向题目和算法的,与机器的具体结构关系不大,如果能统一出一种可满足各种应用需要的通用高级语言,那么用这种高级语言编写的应用软件就可以移植于不同机器。如果操作系统的全部或一部分用这种高级语言编写,则系统软件中的这部分也可以移植。所以实现软件移植的一种技术是如何统一高级语言,设计出

39、一种完全通用的高级语言,为所有程序员所使用。这样,结构相同以至完全不同的机器之间都能实现高级语言程序的软件移植。,问题是至今虽然已有上百种高级语言,但没有一种是对各种应用真正通用的高级语言,原因有以下几种:第一,不同的用途要求语言的语法、语义结构不同。如FORTRAN适用于科学计算,COBOL适用于事务处理,它们的语义、语法结构差异较大,难以一致。程序员又都希望使用特别适合其用途的语言,不愿增加那些不想要的功能,否则语言难以掌握,编译程序过大,编译效率过低。,第二,人们对语言的基本结构看法不一。以GOTO语句为例,一部分人认为它可使编程灵活,应予以保留,不少人又认为它是造成程序复杂化、不易读、

40、不易检验和不易排错的主要原因,应予取消。因此,要能设计出真正满足各方面需要、又有相当大发展前途的通用语言还需进行大量的研究工作。所以,多种高级语言还将长期存在。,第三,即使同一种高级语言在不同厂家的机器上也不能完全通用。这是因为各种机器的字长、“机器零”定义、I/O设备种类和数量、子程序结构、寻址空间、操作系统等不尽相同。厂家为发展自己的特色常使用“方言”。为节省存储空间,提高执行速度,在高级语言软件中部分嵌入汇编语言程序,使同种高级语言编写的软件也难以完全移植。第四,受习惯势力阻挠,人们不愿抛弃惯用的语言,因为熟悉、有经验,也不愿抛弃长期积累的、用原有语言编写并已被实践证明是正确的软件。因此

41、,目前每种机器都得配上对应于多种较为通用的高级语言编译系统。对同一种高级语言,各个机器的编译系统软件不同,无法通用,这都不利于系统结构的发展。,2.采用系列机在所有领域和所有机器上统一使用一种高级语言很困难,与传统机器级和微程序机器级更近、依赖性更大的汇编语言和机器语言的统一就困难多了。受相对统一成少数几种高级语言的启发,如果能在一定范围内不同型号的机器之间统一汇编语言,就可以在一定程度上解决汇编语言软件的移植。显然,这只有在结构相同或相似的机器之间才可以做到,如果差别大,企图通过配不同汇编程序来使不同型号的机器有相同的汇编语言,几乎是不可能的。同理,统一机器语言来实现软件移植也只能在结构相同

42、的机器之间才可以做到。这就是研制系列机的原因。,系列机与前述从中间向两边设计相呼应。在软、硬件界面上设定好一种系统结构(系列机中称系列结构),其后,软件设计者按此设计软件,硬件设计者根据机器速度、性能、价格的不同,选择不同器件、硬件和组成、实现技术,研制并提供不同档次的机器。系列机较好地解决了软件环境要求相对稳定和硬件、器件技术迅速发展的矛盾。软件环境相对稳定就可不断积累、丰富、完善软件,使软件产量、质量不断提高,同时又能不断采用新的器件和硬件技术,使之短期内即可提供新的、性能不断提高的机器。,系列内各档机器之间软件兼容从速度和性能上有向上兼容和向下兼容的不同。向上(下)兼容指的是按某档机器编

43、制的软件,不加修改就能运行于比它高(低)档的机器上。同一系列内的软件一般应做到向上兼容,但向下兼容就不一定,特别是与机器速度有关的实时性软件向下兼容就难以做到。而低档机器上的软件在高档机器上运行一般总是可以通得过的,只是机器效率没有得到充分发挥而已。,在系列机中,低档机的速度性能一般要求不高,只希望能有低的价格;高档机则为提高速度可以不惜加大成本,采用先进的器件及复杂的组成和实现技术。所以,在系列机中,中档机的性能价格比通常总比低档和高档的要高,如图1-5所示。因此,对系列机来说,所谓优化性能价格比,指的是在满足性能的前提下尽量降低价格,或在某种价格情况下尽量提高性能。,图1-5系列机中各档机

44、器的性能价格比状况,3.模拟和仿真系列机只能在系统结构相同或相近(允许向后稍许发展)的机器之间实现汇编语言软件的移植。为实现不同系统结构的机器之间的机器语言软件移植,就必须做到在一种机器的系统结构上实现另一种机器的系统结构。从系统结构的主要方面指令系统来看,就是要在一种机器上实现另一种机器的指令系统,即另一种机器语言。,例如,要求原来在B机器上运行的应用软件,能移植到有不同系统结构的A机器上,根据层次结构概念,可把B机器的机器语言看成是在A机器的机器语言级之上的一个虚拟机器语言,在A机器上用虚拟机概念来实现B机器的指令系统,如图1-6所示。B机器的每条机器指令用A机器一段机器语言程序解释,如同

45、A机器上也有B机器的指令系统一样。这种用机器语言程序解释实现软件移植的方法称为模拟(Simulation)。进行模拟的A机器称为宿主机,被模拟的B机器称为虚拟机。,为了使虚拟机的应用软件能在宿主机上运行,除了模拟虚拟机的机器语言外,还得模拟其存储体系、I/O系统、控制台的操作,以及形成虚拟机的操作系统。让虚拟机的操作系统受宿主机操作系统的控制,如图1-6所示的那样。实际上是把它作为宿主机的一道应用程序,使原来分别在宿主机和虚拟机上运行的应用软件可以在宿主机上共同执行。所有为各种模拟所编制的解释程序统称为模拟程序。,模拟程序的编制是非常复杂和费时的。同时,虚拟机的每条机器指令是不能直接被宿主机的

46、硬件执行的,需要经相应的由多条宿主机机器指令构成的解释程序来解释,这使得模拟的运行速度显著降低,实时性变差。因此模拟方法只适合于移植运行时间短,使用次数少,而且在时间关系上没有受约束和限制的软件。,如果宿主机本身采用微程序控制,如图1-6那样,那么模拟时,一条B机器指令的执行就需要通过二重解释。先经A机器的机器语言程序解释,然后每条A机器指令又经一段微程序解释。如果能直接用微程序去解释B机器的指令,如图1-7所示,显然就会加快这一解释过程。这种用微程序直接解释另一种机器指令系统的方法就称为仿真(Emulation)。进行仿真的机器称为宿主机,被仿真的B机器称为目标机。为仿真所写的解释程序称为仿

47、真微程序。与模拟一样,除了仿真目标机的指令系统之外,还要仿真其存储体系、I/O系统、控制台的操作。,图1-6用模拟方法实现应用软件的移植,图1-7用仿真方法实现应用软件的移植,1.4.2应用的发展对系统结构的影响各种应用对结构设计会提出范围广泛的要求。其中,程序可移植、高性能价格比、便于使用、减少命令种类、简化操作步骤、高可靠性、便于维护等都是基本的要求。从用户来讲,总希望机器的应用范围越宽越好,希望在一台机器上能同时支持科学计算、事务处理和实时控制等,应用目的发生改变时不必重新购置机器。于是促使IBM公司在20世纪60年代中期推出了IBM360等一批同时具有这三方面结构特点的多功能通用机,并

48、采用系列机,提供性能、价格不同的各档机器。用户可根据不同应用需要来选购,包括外设数量、规格,主存规模均可选购。这就标志着计算机工业开始走向成熟。,机器型号减少,同一型号机器的适应面扩大,又能方便地扩充,使每种型号机器的产量大,市场占领时间长,不必经常改型。这样,计算机厂家就能进一步投资改进产品质量和可靠性,降低价格,反过来它又扩大机器应用范围,增大机器的销量。而且由于型号相对稳定,也利于软件积累,使计算机发展进入良性循环。20世纪60年代中期的多功能通用机概念起始于大、中型机,后来小型机和微型机也逐步实现了多功能通用化。回顾这几十年的发展,巨、大、中、小、微、亚微、微微型机的性能、价格随时间变

49、化的趋势大致如图1-8所示,其中虚线为等性能线。,图1-8各型机器性能、价格随时间变化的趋势,计算机的性能是硬件(主频、CPU运算速度、字长、数据类型、主存容量、寻址范围、存储体系、I/O处理能力、I/O设备量、指令系统等)、软件(高级语言状况、操作系统功能、用户程序包等)、可靠性、可用性等多种指标的综合。可以看出,各型机器的性能随时间动态增强,而价格基本保持不变。20世纪60年代末(相当于图1-8中的t-1)问世的小型机(如PDP-9)的性能几乎与70年代末(对应图中的t)的微型机相近,但价格却下降很多。20世纪50年代末,用与目前差不多是大型机价格的钱购置的机器,其性能却只接近于目前的亚微型机(膝上型和笔记本型)的性能。微型机的发展有两个趋势:一是利用VLSI的进展,维持价格提高性能,向小型机靠拢;二是维持性能降低价格,发展更低档的亚微型和微微型(掌上型)计算机,进一步扩大应用。,在性能上高档的微型机代替低档的小型机以至超级小型机,高档的超级小型机代替低档的大、中型机是推动大、中、小、微各型机不断提高其性能的重要因素。计算机工业在处理性能和价格的关系上大致也是这两种趋势:维持价格提高性能,沿图1-8中水平实线发展;维持性能降低价格,沿图1-8中虚线向下发展。不断降低价格,可促进计算机的推广使用,反过来对计算机工业迅速发展可起更为重要的作用。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报