《计算机系统结构(第二版)尹朝庆主编-第1章_计算机系统结构导论.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构(第二版)尹朝庆主编-第1章_计算机系统结构导论.ppt(98页珍藏版)》请在三一办公上搜索。
1、1,第1章 计算机系统结构导论,1.1 计算机系统结构的基本概念 1.2 计算机系统结构中并行性的发展翻译 1.3 计算机系统的分类 1.4 计算机性能的评价,2,1.1 计算机机系统结构的基本概念,1.1.1 计算机系统的层次结构 计算机系统由硬件和软件组成。从计算机语言的角度,可以把计算机系统按功能划分成多级层次结构,如图1.1所示。这个层次模型中的每一级都对应一个机器。这里的“机器”只对一定的观察者而存在,它的功能体现在广义语言上,对该语言提供解释手段,然后作用在信息处理或控制对象上,并从对象上获得必要的状态信息。,3,图1.1 计算机系统层次结构,图1.2一级机器的组成,层次模型中的每
2、一级所对应的机器,其组成如图1.2所示。,4,M0 级为硬联逻辑M1级是微程序机器级M2级是传统机器级M3级是操作系统机器M4级是汇编语言机器M5级是高级语言机器M6级是应用语言机器,5,某级机器能将本级机器的语言转换为下级机器能够识别和处理的形式,就完成了本级机器的实现。层次结构中的M0级机器为硬联逻辑,M1级机器由硬联逻辑实现,M2级机器由微程序(固件)实现,M3级至M6级主要由软件实现。我们将主要由软件实现的机器称为虚拟机器,以区别由硬件或固件实现的实际机器。,6,各虚拟机器级的实现有两种主要的方法,即翻译和解释,或者是这两者的结合。翻译:是用转换程序将N1级程序全部变换成N级程序后,再
3、去执行新产生的N级程序,执行过程中N1级程序不再被访问。解释:是每当一条N1级指令被译码后,就在N级机器级上用它的一串语句或指令来仿真N1级机器级上的一条语句或指令的功能,依此重复,通过对高一级程序中的每条语句或指令逐条解释来实现的技术。在这个过程中不产生翻译出来的程序。,7,软件和硬件在逻辑功能上是等效的。从原理上同一逻辑功能既能用软件实现,也可以用硬件或固件实现,只是性能、价格以及实现的难易程度不同而已。一般来说,硬件实现的特点是速度快,但灵活性较差,增加硬件成本;软件实现的特点是灵活性较好,硬件成本低,但实现速度慢。计算机统采用何种实现方式,要从效率、速度、价格、资源状况、可靠性等多方面
4、因素全盘考虑,对软件、硬件及固件的取舍进行综合平衡,使计算机系统达到较高的性能价格比。,8,1.1.2 计算机系统结构、组成与实现 1.计算机系统结构 所谓“系统结构”是指计算机系统中各级之间界面的定义及其上、下级的功能分配。本课程中计算机系统结构研究的是对传统机器级界面的确定以及软、硬件之间的功能分配,即机器语言程序设计者或编译程序设计者所看到的计算机物理系统的抽象或定义。在一个计算机系统中,低层机器的概念性结构和功能特性对高层机器的程序设计者往往是透明的。在计算机技术中,对这种本来存在的事物或属性,但从某种角度看却好象不存在的概念称为透明性。,9,对于目前的通用型机器,计算机系统结构研究的
5、内容一般包括:(1)数据表示(2)寻址方式(3)寄存器组织(4)指令系统(5)存储系统(6)中断机构(7)机器工作状态(8)I/O系统(9)信息保护,10,2.计算机组成 计算机组成是计算机系统结构的逻辑实现,包括机器内部的数据流和控制流的组成以及逻辑设计等。计算机组成的任务是在计算机系统结构确定分配给硬件系统的功能及其概念结构之后,研究各组成部分的内部构造和相互之间的联系,以实现机器指令级要求的各种功能和性能。这种相互联系包括各功能部件的配置、相互连接和相互作用。,11,计算机组成的设计是按希望达到的性能价格比,最佳、最合理地把各种设备和部件组成计算机,以实现所确定的计算机系统结构。对传统机
6、器程序员来说,计算机组成的设计内容一般是透明的。,12,计算器组成设计要确定的内容应包括:(1)数据通路的宽度(2)专用部件的设置(3)各种操作对部件的共享程度(4)功能部件的并行度(5)控制机构的组成方式(6)缓冲和排队技术(7)预估、预判技术(8)可靠性技术,13,3.计算机实现 计算机实现是计算机组成的物理实现,包括处理机、主机等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中,器件技术在实现技术中起着主导作用。,14,4.计算机系统结构、组成和实现三者的关系 计算
7、机系统结构、计算机组成和计算机实现是三个互不相同的概念。计算机系统结构是计算机系统的软、硬件的界面;计算机组成是计算机系统结构的逻辑实现;计算机实现是计算机组成的物理实现。它们各自包含不同的内容,但又相互联系且相互影响。,15,具有相同系统结构的计算机可因性价比要求不同而采用不同的组成技术。而计算机组成也会影响计算机系统结构。一种计算机组成也可以采用多种不同的计算机实现。计算机实现是计算机系统结构和计算机组成的基础。而计算机组成也会影响计算机系统结构。系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持,还应考虑减少对各种组成及实现技术的使用限制。系统结构、组成和实现所包含的具
8、体内容在不同时期或随不同的计算机系统会有所变化。,16,1.1.3 计算机系统的特性计算机等级 计算机系统通常被分为巨型、大型、中型、小型、微型等若干等级。但随着技术进步,各等级的计算机性能指标都不断提高,如果按性能指标来划分计算机等级,那么一台计算机的等级将随时间而下移。各型机器的性能、价格随时间变化的趋势大致可用图1.3示意说明,其中虚线称为等性能线。,17,图1.3 计算机性能下移示意图,计算机工业在处理性能和价格的关系上可以有两种途径:一是维持价格不变,充分利用器件技术等的进展不断提高机器的性能,即沿图中的水平实线发展;另一是在性能基本不变的情况下,利用器件技术等的进展不断降低机器的价
9、格,即沿图中虚线往下发展。,18,基于这种思想,不同等级的计算机可采用不同的发展策略:在同等级范围内以合理的价格获得尽可能好的性能,逐渐向高档机发展,称为最佳性能价格比设计。维持一定适用的基本性能而争取最低价格,称为最低价格设计。以获取最高性能为主要目标而不惜增加价格,称为最高性能设计。,19,从系统结构的观点来看,各型计算机的性能随时间下移,实质上是在低档(型)机上引用甚至照搬高档(型)机的系统结构和组成。这种低档机承袭高档机系统结构的状况正符合小型机和微型机的设计原则,即充分发挥器件技术的进步,以尽可能低的价格在低档机上实现高档机已有的结构和组成,而不是花很大力量专门去研究和采用新的系统结
10、构和组成技术。这将有利于计算机工业的快速发展和计算机应用的广泛普及。,20,.系列计算机 所谓系列机的概念,是在软、硬件界面上设计好一种系统结构,然后软件设计者按此系统结构设计系统的软件;硬件设计者根据机器速度、性能、价格的不同,选择不同的器件,采用不同的硬件技术和组成与实现技术,研制并提供不同档次的机器。在系列机上必须保证用户看到一致的机器属性。,21,系列机之间必须保持软件兼容。这是指同一个软件(目标程序)可以不加修改地运行于系统结构相同的各档次机器,而且所得结果一致。软件兼容包括向上兼容和向下兼容。向上兼容是指在低档机器上编制的软件,不加修改就可以运行于高档机器上;向下兼容则相反。软件兼
11、容还有向前兼容和向后兼容之分。向后兼容是指在某个时期投入市场的该型号机器上编制的软件,不加修改就可以运行于在它之后投入市场的机器上;向前兼容则相反。对系列机而言,必须保证做到软件向后兼容,力争做到软件向上兼容。,22,为了减少编制软件的工作量,降低软件开发成本,延长成熟软件的生命周期,应在研究新的系统结构时,解决好软件的可移植性问题。所谓软件的可移植性,是指软件不用修改或只需少量加工就能由一台机器搬到另一台机器上运行,即同一软件用于不同的环境。,23,系列机为了保证软件兼容,要求系统结构的一致,这成为妨碍计算机系统结构发展的重要因素。若允许系列机中后面推出的各档机的系统结构有所发展和变化。则这
12、种改变只能是为提高机器总的性能所作的必要扩充,且主要是为改进系统软件的性能来修改系统软件,尽可能不要影响高级语言应用软件的兼容。因此,可以对系列机的软件向下兼容和向前兼容不作要求,向上兼容在某种情况下也可能做不到,但向后兼容是肯定要做到的。,24,把不同公司厂家生产的具有相同系统结构的计算机称为兼容机,它的思想与系列机的思想是一致的。兼容机还可以对原有的系统结构进行某种扩充,使之具有更强的功能。,25,.模拟与仿真 为了实现软件在不同系统结构的机器之间移植,就必须做到能在一种机器的系统结构上实现另一种机器的系统结构。从计算机系统结构的层次模型来看,就是要在一种机器的系统结构上实现另一种机器的指
13、令系统。一般可采用模拟方法或仿真方法。,26,在机器上用虚拟机的概念实现机器的指令系统,即由机器的一段机器语言程序去解释执行机器的每一条机器指令,从而可使机器的程序能在机器上运行,如图1.4所示。这种用机器语言程序解释实现软件移植的方法称为模拟被模拟的机器称为虚拟机A机器称为宿主机。,27,图1.4 用模拟方法实现软件的移植,28,如果机器采用微程序控制,则直接用机器的微程序去解释机器的机器指令就会加快解释过程,如图1.5所示。这种用微程序直接解释另一种机器指令系统实现软件移植的方法称为仿真进行仿真工作的机器称为宿主机,被仿真的机器称为目标机为仿真所编写的解释微程序称为仿真微程序。,29,图1
14、.5 用仿真方法实现软件的移植,30,为了使虚拟机的应用软件能在宿主机上运行,除了模拟虚拟机的机器语言外,还得模拟其存储体系、I/O系统、控制台的操作,以及形成虚拟机的操作系统。即把虚拟机操作系统作为宿主机的应用程序来看待。所有为模拟所编制的解释程序统称为模拟程序。,31,用仿真方法可以提高被移植软件的运行速度,但由于微程序机器级结构深度依赖于机器的系统结构,所以当两种机器结构差别较大时,就很难依靠仿真来实现软件移植,特别是当其I/O系统结构差别较大时更是如此。在实际应用中,不同系列机之间的软件移植往往通过仿真和模拟两种方法并用来实现。,32,1.2 计算机系统结构中并行性的发展 研究计算机体
15、系结构的目的是提高计算机系统的性能。开发计算机系统的并行性,是计算机体系结构的重要研究内容之一。本节首先对冯诺依曼系统结构进行分析,然后叙述体系结构中的并行性概念,再从单机系统和多机系统两个方面对并行性的发展进行归纳,得到对计算机系统结构中并行性发展全面的了解和认识。,33,1.2.1 冯诺依曼型计算机系统结构 冯诺依曼型计算机由运算器、控制器、存储器、输入设备和输出设备个部分组成。其在结构上有以下特点:机器以运算器为中心,各部件的操作及相互之间的联系都由控制器集中控制。采用存储程序的思想。将存储器中的指令和数据同等对待,因此,由指令组成的程序可以在运行过程中被修改。存储器按地址访问。它是一个
16、顺序、线性编址的一维空间,每个存储单元的位数是固定的。,34,由指令计数器指明要执行的指令在存储器中的地址,可以改变指令计数器的值,以改变指令执行顺序。指令由操作码和操作数地址码组成,操作数的数据类型由操作码指明,操作数不能判定它是何种数据类型。数据以二进制编码,并采用二进制运算。软件与硬件完全分开,硬件逻辑结构固定,其功能是不变的,依靠编制软件来适应不同的应用需要。,35,人们已逐渐认识到早期计算机所采用的冯诺依曼型结构存在问题,其主要问题和改进发展的主要表现有:由于机器以运算器为中心,使得低速的输入/输出和高速的运算必须互相等待、串行进行。而所有部件的操作由控制器集中控制,将使控制器的负担
17、过重,从而严重影响机器速度和设备利用率的提高。后将机器的结构改为以主存为中心,让系统的输入/输出与CPU的操作并行,多种输入和输出并行,并进一步发展为分布处理和并行处理。,36,存储程序和程序控制的思想,使机器各部分的操作是在指令顺序执行的控制下完成的。难以最大限度地发挥系统的并行处理能力,影响计算机性能的提高。故人们发展了数据流计算机。在数据流计算机中,只要指令所需要的操作数都准备好了,这一条或一批指令就马上可被激发执行,完全不需要程序计数器控制,指令的执行与指令在程序中出现的次序完全无关。数据流计算机能最大限度地满足程序的并行性。,37,指令和数据混存于同一存储器中,可因共用一套存储器外围
18、电路而节省硬件,并因对指令和数据不加区别同等对待而简化了存储管理,但由于程序执行过程中,指令可像操作数一样被修改,因此不利于程序调试和排错,不利于实现程序的可再入性和程序的递归调用,不利于指令和数据的并行存取以及在组成上采用重叠、流水方式来提高速度。所以,绝大多数计算机已改为指令在执行过程中不准修改的工作方式,有的机器还将指令和数据分别存放在两个独立编址且可以同时被访问的不同存储器中。,38,存储器构成按地址访问的顺序、一维线性空间,虽然有结构简单、价格便宜、访问速度快等优点,但存储器的一维线性空间表示与应用中需要的栈、树、图、多维数组等非线性、多维、离散的数据结构相矛盾。经软件变换的方法使软
19、件复杂,效率降低,且不适合对大量数据的快速并行查找。改进技术包括使存储器同时具有多种编址方式;采用虚拟存储技术;构成多体交叉编址的并行存储器;采用相联存储器实现高速相联查找;采用增设通用寄存器来减少访存的次数;在CPU和主存之间设置高速缓冲存储器;使计算机具有高级寻址能力的数据表示等等。,39,为了进一步开发利用求解问题和程序隐含的并行性,提高运行的速度和效率,将原来CPU的顺序执行组成方式改为先行控制、重叠、流水等组成方式。同时开发指令内、指令间、任务间、作业间等不同级别上的并行性,出现了向量处理机、并行处理机、多处理机、分布处理系统等计算机系统结构。进一步发展以非控制流方式驱动的数据流计算
20、机,并研究开发更为复杂的并行算法。,40,机器指令中的操作数不表示本身的数据类型,而由操作码指出,因此每增加一种操作数类型,就要增加一组处理这种类型操作数的指令,这将导致指令系统日益庞大复杂。在高级语言中操作符与数据类型无关,操作数的类型是由数据类型说明语句说明的。机器语言与高级语言之间存在的这种语义差别通过编译程序来弥补,加重了编译的负担,增大了辅助开销。为此,人们为计算机系统增设了许多高级数据表示,使指令具有对多种数据类型操作的通用性从而简化机器指令系统和编译。,41,软件与硬件截然分开,硬件结构完全固定,会导致无法更合理地进行软硬功能分配,难以优化系统结构的设计。当求解的问题和应用要求变
21、化时,会使机器性能价格比明显下降。现在特别强调软硬结合,比如采用可以灵活地选择和改变指令系统和结构的动态自适应机器。要求研制出智能计算机系统结构来有效地支持知识和信息处理,对知识进行逻辑推理,特别是能利用经验性知识对不完全确定的事实进行非精确性的推理。,42,1.2.2 并行性概念 所谓并行性是指在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作。只要时间上是相互重叠,就存在并行性。严格来讲,把两个或多个事件在同一时刻发生的并行性叫做同时性而把两个或多个事件在同一时间间隔内发生的并行性叫做并发性。,43,所谓并行处理,是指一种开发计算过程中存在的并发事件的信息处理方式。在进行
22、并行处理时,每次处理的规模大小可用并行性颗粒度来表示。颗粒度用于衡量软件进程所含计算量的大小,用程序段中指令的条数来表示。颗粒度可分为细粒度、中粒度和粗粒度三种,若程序段中指令条数小于500条,则称为细粒度,5002000条指令之间则称为中粒度,大于2000条则称为粗粒度。,44,假定系统中共有n个处理器,颗粒度大小G还可用以下公式来表示:式中,Tw表示所有处理器工作负载的总和,即 这里的工作负载实际上就是进行计算的时间;Tc表示所有处理器的通信开销的总和,即 这里的通信开销实际上就是进行通信的时间。,45,计算机系统中的并行性有不同的等级。根据颗粒度的不同来观察程序的执行过程。并行性等级从低
23、到高可分为:()指令内部并行()指令级并行(ILP)()任务级或过程级并行()作业或程序级并行,46,从处理数据的角度,并行性等级从低到高可以分为:()字串位串()字串位并()字并位串()全并行,47,并行处理是指在这些层次的一级或多级上的并行性开发。层次越高的并行处理粒度就越粗,而低层上的并行处理粒度就较细。粗粒度并行性主要开发功能并行性。而细粒度并行性主要开发的是数据并行性。,48,在一个计算机系统中,可同时采取多种并行性措施。既可以有执行程序方面的并行性,又可以有处理数据方面的并行性。当并行性提高到一定级别时则称之为进入并行处理领域。如执行程序的并行性达到任务或过程级,或处理数据的并行性
24、达到字并位串一级,即可认为进入并行处理领域。并行处理是硬件、系统结构、软件、算法、语言等多方面综合研究的领域。,49,1.2.3 提高并行性的技术途径 提高计算机系统并行性的措施很多,但其基本思想均可纳入下列三种技术途径:1.时间重叠 在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转来提高处理速度。,50,2.资源重复 在并行性概念中引入空间因素,是根据“以数量取胜”的原则,通过重复设置资源,尤其是硬件资源,大幅度提高计算机系统的性能。3.资源共享 这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套资源。资源共享既降低了
25、成本,以提高系统资源利用率,也可以相应提高整个系统的性能。,51,计算机结构设计中并行性技术的应用使计算机系统结构发展形成不同类型的多处理机系统。并行处理的发展过程可从单处理机系统和多计算机系统两个方向来实现。,52,单机系统中并行性的发展 高性能单处理机的发展过程中,起着主导作用的技术途径是时间重叠,实现的基础是部件功能专用化思想。即把一种工作按功能分割为若干相互联系的部分,把每一部分指定给专门的部件完成,然后按时间重叠原则把各部分执行过程在时间上重叠起来,让所有部件依次分工完成一组同样的工作。这可使多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分。在处理机内部可以同时处
26、理多条指令,从而提高处理机的速度。时间重叠开发的是并行性中的并发行。图1.7所示为指令顺序执行和流水执行的情况。,53,图1.7 指令顺序执行和流水执行,54,按时间重叠的技术途径进一步发展到采用专门的流水线处理机时,就进入了并行处理的领域。还可以进一步发展到处理机一级,形成以任务重叠为特征的宏流水线,就由单处理机发展到了多处理机系统。构成由多个不同类型,至少是担负不同功能的处理机组成的非对称型或异构型多处理机系统。,55,资源重复的途径来看,单处理机向高性能发展,最初是将按位串行改为按字并行,后来在非流水线处理机或流水线处理机中,发展了多操作部件和多体存储器。进一步可以重复设置多个相同的处理
27、单元,在同一个控制器指挥下,按照同一条指令的要求对向量的各元素同时进行操作,这就是所谓的并行处理机。从指令和数据处理的角度看,它用一条指令处理多个数据,属于按单指令流多数据流(SIMD)方式工作的多处理器系统。使处理机进入了并行处理领域。资源重复开发的是并行性中的同时性。,56,如果提高并行性,使其达到数据集级并行,多个处理单元同时处理一组数据,就构成阵列处理机。进一步提高并行性,使其达到任务级并行,则每个处理单元都有自己的控制器,能独立地解释指令而成为独立处理机,这就进入多处理机范畴,即同时有多条指令处理多个数据。这就进入了并行处理领域。由于此多处理机中的每个处理(器)机都是同类型的,且完成
28、同样的功能,所以构成的是一种对称型或同构型多处理机系统。,57,同构型多处理机系统也可以是基于处理机一级冗余的容错多处理机,让多个处理机中的一部分作为备用处理机以随时顶替出故障的工作处理机,从而提高系统工作的可靠性。还可以进一步发展成为一种可变结构的系统或可重构系统。,58,从资源共享的途径来看,最初在单处理机上采用多道程序和分时操作,形成所谓虚拟机的概念。类似的思想发展了虚拟存储器、虚拟处理机。随着远程终端、计算机网络和微型机小型机的发展,可采用真正的处理机代替虚拟处理机,构成以分散为特征的多处理机系统,以此代替以集中为特征的分时系统,这就进入到并行处理领域。,59,这种有大量分散、重复的处
29、理机资源(一般是具有独立功能的单处理机)相互连接在一起,在操作系统(可以是集中的也可以是分散的)的全局控制下统一协调工作而最少依赖于集中的程序、数据或硬件的系统称为分布处理系统。以近距离、宽频带、快响应为特点的计算机局域网作支持环境发展起来的机群系统就是分布处理系统的一个很好的例子。显然,分时系统实现的是并行性中的并发性,而分布处理系统实现的是并行性中的同时性。,60,再看多机系统中并行性的发展。多机系统也遵循着时间重叠。资源重复和资源共享的技术途径,向着三种不同的多处理机方向发展。但在采取的技术措施上与单机系统稍有些差别。,61,为了反映多机系统各机器之间物理连接的紧密程度和交互作用能力的强
30、弱,引入耦合度的概念。多机系统的耦合度可分为:()最低耦合系统()松散耦合或间接耦合系统()紧密耦合系统或直接耦合系统,62,在单机系统中,时间重叠是通过功能部件专用化实现。而在多处理机中则是将处理功能分散给各专用处理机去完成,即功能专用化。各处理机之间按照时间重叠原理工作。如输入/输出功能的分离,导致由通道向专用外围处理机发展。这种趋势的发展,使许多主要功能,如数组运算。高级语言编译、数据库管理等,也逐渐分离出来交由专用处理机完成,机间的耦合程度也逐渐加强,发展成异构型多处理机系统。,63,为了提高系统的可靠性,开始由单机系统的部件级冗余上升到处理机一级的冗余,设置多台相同类型的计算机构成容
31、错多处理机系统。继而提高机间互连网络的灵活性和可重构性,发展为可重构系统。现在更多的是通过进一步改进多处理机间的互连网络,使之具有实现进程或程序一级的高速并行处理能力来提高整个系统的速度,演变成各种紧密耦合系统。为使并行处理的任务能在处理机之间随机地进行调度,必须使各个处理机具有同等的功能,这样就发展成同构型的多处理机系统。,64,要实现远距离多台计算机之间的资源共享,只有网络化,将通信功能从主机中分离出来,由专用通信处理机完成。计算机网络按其通信距离可划分为远程网(WAN)和局域网(LAN)。远程网距离远,通信速率较低。局域网距离近,通信速率高。局域网成为分布处理系统发展的基础。,65,表1
32、.1 三种类型多处理机比较,66,1.3 计算机系统的分类.Flynn 分类法 Michael.J.Flynn于1966年提出按指令流和数据流的多倍性对计算机系统结构进行分类的方法。指令流是指机器执行的指令序列。数据流是指由指令流调用的数据序列,包括输入数据和中间结果。多倍性是指在系统瓶颈部件上,同时处于同一执行阶段的指令或数据的最大可能个数。,67,Flynn分类法按照指令流和数据流的不同组织方式,把计算机系统的结构分为类。()单指令流单数据流(SISD)()单指令流多数据流(SIMD)()多指令流单数据流(MISD)()多指令流多数据流(MIMD),68,69,2.冯氏分类法 1972年,
33、美籍华人冯泽云提出用最大并行度对计算机系统结构进行分类。所谓最大并行度Pm是指计算机系统在单位时间内能够处理的最大的二进制位数。平均并行度取决于系统的运用程度,它与应用程序有关。最大并行度Pm定量地反映了对数据处理的并行性。Pm=n m式中,n 表示同时处理时一个字中的二进制位数;m 表示能同时处理的字数。,70,按计算机对数据处理方式,由Pm值可得下列种计算机系统结构类型。字串位串(WSBS)字串位并(WSBP)字并位串(WPBS)字并位并(WPBP),71,1.4 计算机性能的评价1.4.1 计算机系统设计和测评的基本原则.经常性事件优先原则 经常性事件优先原则的基本思想是:对于经常发生的
34、事件,赋予它优先的处理权和资源使用权,加快它的处理速度,可以提高整个系统的性能。,72,Amdahl定律 Amdahl 定律指出:系统中某部件由于采用某种更快的执行方式后,整个系统性能的提高与这种执行方式在系统中使用频率或占总执行时间的比例有关。Amdahl定律定义了加速比的概念。假设对机器进行某种改进,那么机器系统的加速比就是:,73,系统加速比依赖于两个因素:(1)可改进部分在原系统执行时间中所占的比例。用“可改进比例(Fe)”表示,Fe总是小于或等于的。,(2)可改进部分改进以后的性能提高。用“部件加速比(Se)”表示性能提高比一般Se是大于的。,74,由此,得到下列结论;(1)改进后系
35、统的总执行时间Tn,式中,To为改进前系统的总执行时间。(2)改进前后整个系统的加速比Sn,式中,(1Fe)表示不可改进比例,当Fe0无改进部分时,Sn1,所以系统性能提高幅度受改进部分所占比例限制。,75,当Se 时,有Sn1/(1Fe)。得到Amdahl定律的一个重要推论:若只针对整个系统的一部分进行优化,则系统获取的性能改善极限值受Fe的约束,系统加速比不大于1/(1Fe)。例1.1设系统中某部件原处理时间占整个运行时间的30%,现加快速度到15倍,则整个系统性能提高多少?解:由题可知:Fe0.3,Se15,则,76,例1.2若在整个测试程序的执行时间中,求浮点数平方根FPSQR的操作占
36、10。现有两种改进方案:一种是采用FPSQR硬件,使其速度加快到10倍;另一种是使所有浮点数指令FP速度加快到4倍,并设FP指令占整个程序执行时间的40。请比较两种方案的优劣。解:硬件方案:Fe0.1,Se10,则,FP加速方案:Fe0.4,Se4,则,由结果比较可知,FP加速方案更优。需注意结论的前提是程序量的40%为FP指令。,77,程序访问的局部性原理 所谓程序访问的局部性原理,是指程序在执行过程中所访问地址的分布有相对簇聚的倾向,这种簇聚表现在指令和数据两方面。程序局部性包括时间上的局部性和空间上的局部性。前者是指程序即将用到的信息很可能是目前正在使用的信息。后者是指程序即将用到的信息
37、很可能与目前正在使用的信息在程序空间上是相邻或相近的。,78,1.4.2 CPU性能公式 一个程序在计算机上运行所花费的CPU时间可表示为,或 CPU时间总CPU时钟周期数时钟周期T 若将程序执行过程中所处理的指令数记为IC。可以获得一个与计算机系统结构有关的参数,即每条指令的平均时钟周期数CPI:,79,程序执行的CPU时间可写为,这个公式通常称为CPU性能公式,它表明CPU性能与三种系统结构技术相关:(1)时钟频率f:反映了计算机实现技术和计算机组织。(2)机器指令的平均时钟周期数CPI:反映了计算机系统结构组织和指令集的设计与实现。(3)程序使用的指令条数IC:反映了计算机指令集的结构和
38、编译技术。,80,假设计算机系统有n种指令,ICi表示第i种指令在程序中执行的次数,CPIi表示执行一条第 i 种指令所需的平均时钟周期数,则程序执行的CPU时间为,则CPI 可表示为,式中 表示了第i 种指令在程序中所占比例。上面这些公式均称为CPU性能公式。,81,例1.3若浮点数指令FP占全部指令的30%,其中浮点数平方根FPSQR指令占全部指令的4%,FP操作的CPI为5,FPSQR操作的CPI为20,其他指令的平均CPI为1.25。现提出两种改进方案,一种是把FPSQR操作的CPI减至3,另一种是把所有FP操作的CPI减至3,试比较两种方案对系统性能的提高程度。解:改进之前,系统的指
39、令平均时钟周期数为:,82,方案A:如果使 FPSQR 操作的时钟周期数由CPIFPSQR20降至CPIFPSQR3,则系统的CPI为:,方案:如果使所有FP操作的平均时钟周期数由 CPIFP5降至CPIFP3,则整个系统的CPI为:,从降低整个系统的指令平均时钟周期数的程度来看,方案 A优于方案B。,83,计算两种方案的加速比:,从加速比来看,同样得出方案优于方案的结论。,84,例1.4设有两台机器A和B,对条件转移采用不同方法。CPUA采用比较指令和条件转移指令处理方法,实现一次条件转移需执行两条指令,条件转移指令和比较指令各占执行指令总数的15%。CPUB采用比较和条件转移指令合一方法,
40、实现一次条件转移只需执行一条指令。若规定两台机器执行条件转移指令需2个时钟周期,其他指令只需1个时钟周期。CPUB的时钟周期比CPUA慢20%。请比较:(1)CPUA和CPUB哪个工作速度更快?(2)若CPUB的时钟周期只比CPUA慢10%,哪个CPU工作速度更快?,85,解:(1)计算机器A CPIA0.1520.8511.15CPUA时间ICACPIATA1.15TAICA ICA是CPUA的指令条数。因CPUB无比较指令ICB0.85ICA使CPUB的转移指令所占比例为15%85%17.65%18%计算机器B CPIB0.1820.8211.18又因CPUB的TB比CPUA的TA慢20%
41、,所以TB1.2TA CPUB时间ICBCPIBTB1.2 TAICA 比较可知,CPUA时间CPUB时间,故CPUA比CPUB工作速度快。,86,(2)此时有TB1.1TA,据前结论 CPUA时间1.15TAICA CPUB时间0.85ICA1.181.1TA 1.1 TAICA 因CPUB时间CPUA时间,故CPUB的工作速度更快些。,87,1.4.3 系统结构的性能评价标准 衡量计算机性能的标准是机器真正执行程序的时间。这里的执行时间是计算机在完成一个任务时所花费的全部时间,也称为计算机的响应时间。CPU时间是指CPU工作的时间,不包括I/O等待时间。它可分为CPU执行用户程序的用户CP
42、U时间和CPU花费在操作系统上的系统CPU时间。因此,计算机性能可分为基于响应时间的“系统性能”度量方法和基于用户CPU时间的“CPU性能”度量方法。,88,1.MIPS和MFLOPS MIPS是目前较为流行的描述计算机性能的替代标准之一。对于一个给定的程序,MIPS定义为:,MIPS是单位时间内执行指令的次数。若用Te表示程序的执行时间,则Te的表达式为:,89,例1.5 已知某处理机的CPI0.5,钟频率为450 MHz,试计算该处理机的运算速度。解:由于处理机的时钟频率为fc450 MHz,可求得运算速度为:,90,MIPS可从一定程度上反映了机器的性能。但是用MIPS评价机器的性能存在
43、以下问题。MIPS依赖于机器的指令集,所以用MIPS来衡量指令集不同的机器性能优劣是很不准确的。在同一台机器上,MIPS会因程序不同而发生变化,有时其差异会很大。MIPS的评价结果可能与采用正确的性能评价方法的评价结果相反。,91,如具有可选硬件浮点运算部件的机器。因为浮点运算速度低于整数运算,所以很多机器提供可选的硬件浮点运算部件。结果是用硬件实现浮点运算的时间少,而用软件实现浮点运算的MIPS高,导致MIPS评价结果与机器实际性能相反。因此MIPS标准只适宜于评价标量机,用MIPS来衡量向量机是不合适的。,92,另一种替代标准是MFLOPS,即每秒百万浮点操作次数。MFLOPS定义为:,9
44、3,MFLOPS衡量机器性能时存在下述缺陷:MFLOPS只能衡量机器浮点操作的性能,而不能体现机器的整体性能。MFLOPS的衡量是基于浮点操作而非指令来进行的,因此它可以用来比较不同指令集的机器之间的浮点操作性能,但比较的结果并非可靠。由于不同机器的浮点运算集可能不同。因此难以按MFLOPS评价它们的性能优劣。,94,MFLOPS取决于机器和程序两个方面,不同程序在同一机器上的MFLOPS会不相同。因此用单个程序的MFLOPS值不能反映机器的性能。MFLOPS和MIPS之间的量值关系没有统一标准,一般认为在标量计算机中执行一次浮点运算需要条指令,平均约需条指令,故有1 MFLOPSMIPS。,
45、95,例1.6用一台50MHz处理机执行标准测试程序,程序所含的混合指令数和每类指令的CPI如表1.4所示,求有效CPI、MIPS速率和程序的执行时间。表1.4 标准测试程序的混合指令数和相应所需的时钟周期数,解:总的指令数为43 00034 000十17 000十6 000100 000条 因此各类指令所占的比例分别是:整数运算为43,数据传送为34,浮点操作为17,控制传送为6。,96,(1)有效CPI为 10.4320.34 20.1720.061.57CPI()MIPS速率为,()程序的执行时间为,97,2.性能测试 机器的性能需要采用基准测试程序来测试评价,衡量计算机性能的标准是程序的执行时间。基准测试程序是为比较测试机器性能而专门编制的程序,它考虑了各种操作和各种程序的比例,它可以是一组或多组程序。将 n 个测试程序在机器上运行,记录它们的执行时间,然后可按下述方法对n个执行时间进行处理来评价机器性能。,98,(1)平均执行时间 平均执行时间是各测试程序执行时间的算术平均值。,其中 Ti 为第 i 个测试程序的执行时间。(2)加权执行时间 加权执行时间是各测试程序执行时间的加权平均值,其中权因子i 是第 i 个测试程序在总共 n 个测试程序中所占的比重,。,
链接地址:https://www.31ppt.com/p-2791858.html