计算机系统结构的基本概念_第1页
计算机系统结构的基本概念_第2页
计算机系统结构的基本概念_第3页
计算机系统结构的基本概念_第4页
计算机系统结构的基本概念_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机系统结构的基本概念1.1计算机系统层次结构

1.1.1按功能划分的多级层次结构现代计算机是通过执行指令来解决问题的,它由软件和硬件两大部分组成。描述一个任务如何实现的指令序列称为程序,所有程序在执行前都必须转换成计算机能识别以及直接执行的机器指令。这些机器指令与机器硬件直接对应,并能被其直接识别和执行,然而使用机器语言编程既不方便,也无法适应解题需要和计算机应用范围的扩大。第2页,共152页,2024年2月25日,星期天这个问题可从两方面去解决,前提是都需要设计一个比机器指令更方便使用或编程的指令集合,由它构成新的语言,例如汇编语言。汇编语言是一种符号语言,给程序员编程提供了方便,尽管每个语句仍基本上与机器指令对应,却并不能被机器直接识别和执行;用汇编语言开发的程序需要某种转换才能在实际机器上执行。转换的方式有以下两种:第3页,共152页,2024年2月25日,星期天

翻译(translation):在执行汇编语言源程序之前生成一个等价的机器语言指令序列来替换它,生成的程序全部由机器指令组成,计算机执行等效的机器语言源程序来代替原来的汇编语言源程序。即把源程序先转换成目标程序,而后再在机器上执行目标程序以获得结果。

解释(interpretation):用机器指令写一个程序,将汇编语言源程序作为输入数据,按顺序检查它的每条指令,然后直接执行等效的机器指令序列来解决问题。第4页,共152页,2024年2月25日,星期天汇编语言源程序可以在机器上运行并获得结果,是因为有汇编程序的支持。在汇编语言程序设计者看来,就好像有了一台用汇编语言作为机器语言的机器。这里的机器是指能存储和执行程序的算法和数据结构的集合体。我们把以软件(Software)为主实现的机器,称之为虚拟机器,而把由硬件(Hardware)和固件(Firmware)实现的机器称为实际机器。显然,虚拟机器的实现是构筑在实际机器之上的。下图给出了虚拟机器与实际机器之间构成的一个简单的层次结构。第5页,共152页,2024年2月25日,星期天图1.1虚拟机器和实际机器层次结构举例第6页,共152页,2024年2月25日,星期天语言与虚拟机之间存在着重要的对应关系,每种机器都有由它能执行的指令组成的机器语言。同时,语言也定义了机器,即机器要能执行这种语言所写的程序。有n层不同的语言,就对应有n层不同的虚拟机。在图1.2中我们给出了典型的现代计算机的多级层次结构。例如,汇编语言(L3)是面向机器的一种符号语言,其语法、语义结构仍然和二进制机器语言的基本相同,但与解题所需的差别较大,于是进一步出现了面向题目和过程的高级语言(L4);第7页,共152页,2024年2月25日,星期天在高级语言的基础上还出现了面向应用的应用语言(L5),因此我们可以得到多个层次的虚拟机器;而对于实际机器级若采用微程序(L0)控制,它又可分解成传统机器级M1和微程序级M0;虽然目前很多机器上的操作系统(L2)已不再用汇编语言编写,而是用面向系统软件的高级语言,如C语言,但从实质上看,操作系统是传统机器的引伸,它要提供传统机器所没有但为汇编语言和高级语言的使用和实现所需的某些基本操作和数据结构,如文件管理、进程管理、中断管理、作业控制、存储管理和输入输出等等,它们在许多机器上是经机器语言程序解释实现的。因此,操作系统级放在传统机器级之上,汇编语言级之下。第8页,共152页,2024年2月25日,星期天图1.2计算机系统的多级层次结构第9页,共152页,2024年2月25日,星期天把计算机系统按功能划分为多个层次结构后,对各机器级的程序员而言,只要熟悉和遵守该级语言的规范准则,所编写的程序总能在此机器级上运行并得到结果,而不用了解该机器级是如何实现的。各机器级的实现主要靠翻译或解释,或者是这两者的结合。翻译是先用转换程序将高一级机器级上的程序整个地变换成低一级机器级上可运行的等效程序,然后再在低一级机器级上实现的技术。解释则是在低一级机器级上用它的一串语句或指令来仿真高一级机器级上的一条语句或指令的功能,通过对高一级程序中的每条语句或指令逐条解释来实现的技术。第10页,共152页,2024年2月25日,星期天计算机系统采用何种实现方式,要从效率、速度、价格、资源状况、可靠性等多方面因素全盘考虑,对软件、硬件及固件的取舍进行综合平衡。

软件和硬件在逻辑功能上是等效的,同一逻辑功能既可以用软件也可以用硬件或固件实现,从原理上讲,软件实现的功能完全可以用硬件或固件完成,同样,硬件实现的逻辑功能也可以由软件的模拟来完成,只是性能、价格以及实现的难易程度不同而已。第11页,共152页,2024年2月25日,星期天例如,在计算机中实现十进制乘法这一功能,既可以用硬件来实现,也可以用软件来完成。用硬件实现,需设计十进制乘法机器指令,用硬件电路来实现该指令,其特点是完成这一功能的速度快,但需要更多的硬件。而用软件来实现这个功能,则要采用加法、移位等指令通过编程来实现,其特点是实现的速度慢,但不需增加硬件。第12页,共152页,2024年2月25日,星期天

软、硬件的功能分配比例可以在很宽的范围内变化,这种变化是动态的,如图1.3所示,软硬功能分配的比例随不同时期以及同一时期的不同机器的变化而变化。由于软、硬件是紧密相关的,软硬界面常常是模糊不清的,在计算机系统的功能实现上,有时候很难分清哪些功能是由硬件完成的,哪些功能是由软件完成的。在满足应用的前提下,软硬功能分配比例的确定,主要是看能否充分利用硬件、器件技术的现状和进展,使计算机系统达到较高的性能价格比。对于计算机系统的用户,还要考虑他所直接面对的应用语言所对应的机器级的发展状况。第13页,共152页,2024年2月25日,星期天图1.3软硬件功能分配第14页,共152页,2024年2月25日,星期天从目前软硬件技术的发展速度及实现成本上看,随着器件技术的高速发展,特别是半导体集成技术的高速发展,以前由软件来实现的功能,越来越多的由硬件来实现,总的来说,软件硬化是目前计算机系统发展的主要趋势。第15页,共152页,2024年2月25日,星期天

1.1.2按功能划分层次的好处从概念和功能上把一个复杂的计算机系统看成是由多个机器级构成的层次结构,可以有如下的好处:首先,有利于理解软件、硬件和固件在系统中的地位和作用;从系统层次的划分中,可以看出,微程序机器级(M0)、传统机器级(M1)、操作系统机器级(M2)不是为应用程序员解题设计的,而是为运行支持更高层次机器级程序所必须的解释程序和翻译程序而设计的,以便能设计和实现新的虚拟机器级。第16页,共152页,2024年2月25日,星期天在这之上的机器级(M3~M5级)则主要是为应用程序设计人员解决各类实际应用问题而设计的。其次,系统按层次进行划分,有利于理解各种语言的实质和实现途径;计算机各层次的语言总是通过低一级的语言翻译或解释来实现的,这就说明相邻机器级之间的语义差别不能太大。再次,系统按层次进行划分,有利于推动计算机系统结构的发展;例如,可以重新分配软、硬件的比例,为虚拟机器的各个层次提供更多更好的硬件支持,改变硬件及器件快速发展而软件却日益复杂、开销过大的状况。第17页,共152页,2024年2月25日,星期天可以用硬件和固件来实现高级语言和操作系统而形成高级语言机器和操作系统机器。再如,用真正的机器来取代各级虚拟机,摆脱各级功能都在同一台实际机器上实现的状况,发展多处理机系统、分布处理系统、计算机网络等系统结构。最后,系统按层次进行划分,有利于理解计算机系统结构的定义。把计算机按功能划分成多个不同的层次结构,从各个层次的功能划分和实现去了解计算机系统,有助于更深入的了解系统结构的定义。第18页,共152页,2024年2月25日,星期天1.2计算机系统结构“计算机系统结构”这个名词来源于英文ComputerArchitecture,也译成“计算机体系结构”。architecture这个词原来用在建筑领域,原意“建筑、建筑学”,60年代这个名词被引入计算机领域,“计算机系统结构”一词已经得到普遍应用,它研究的内容不但涉及计算机硬件,也涉及计算机软件,已经成为一门学科。第19页,共152页,2024年2月25日,星期天

1.2.1计算机系统结构的定义计算机系统结构这个词是Amdahl(Gene.Amdahl吉恩.阿姆达尔)等人在1964年介绍IBM360时提出的。他们把系统结构定义为由程序设计者所看到的一个计算机系统的属性,即概念性结构和功能特性。这实际上是计算机系统的外特性。按照计算机层次结构,不同程序设计者所看到的计算机具有不同的属性。在计算机技术中,一种本来是存在的事物或属性,但从某种角度看却好象不存在,称为透明性。通常,在一个计算机系统中,低层机器级的概念性结构和功能特性,对高级语言程序员来说是透明的。第20页,共152页,2024年2月25日,星期天–概念性结构指的是计算机系统中所有部件之间 的逻辑连接结构–功能特性主要指的是计算机系统的如下功 能:数据表示,寻址方式,寄存器 组织,指令系统,存储系统,中断 机构,I/O结构第21页,共152页,2024年2月25日,星期天例如使用高级语言的程序员所看到的计算机属性主要是软件子系统和固件子系统的属性,包括程序语言以及操作系统、数据库管理系统、网络软件等用户界面。例如,IBM370系列机的中央处理器都具有相同的基本指令系统,指令的解释过程在不同档次机器中的处理方式不相同,但对程序设计者而言,所看到的数据形式都是相同的32位字长。第22页,共152页,2024年2月25日,星期天同样,对于其不同档次机器,在组成与实现时,数据通路宽度(数据总线)可以分别采用8位、16位、32位或64位,但对于程序员而言,数据总线宽度是透明的,即在设计程序时不需要考虑数据总线宽度的位数。Amdahl等人提出的系统结构定义中的程序设计者是指机器语言或编译程序设计者所看到的计算机属性,是硬件子系统的概念结构及其功能特性。第23页,共152页,2024年2月25日,星期天

1.2.2计算机系统结构研究的内容计算机系统结构研究的主要内容是计算机系统中各级之间界面的定义及其上下的功能分配。在这里,我们主要讨论传统机器级的系统结构,即从机器语言程序员的角度所看到的计算机系统结构,如图1.4所示。第24页,共152页,2024年2月25日,星期天图1.4计算机系统软硬件交界面第25页,共152页,2024年2月25日,星期天界面之上的功能由软件实现;界面之下的功能由硬件/固件实现。所以本书是研究软、硬件功能的分配以及对机器级界面的确定,即由机器语言设计者或编译程序设计者所看到的机器物理系统的抽象或定义。它是机器语言程序设计者或是编译程序生成系统为使其所设计或生成的程序能在机器上正确运行,所需看到和遵循的计算机属性。它不包括机器内部的数据流和控制流、逻辑设计或器件设计等。第26页,共152页,2024年2月25日,星期天因此,计算机系统结构

研究的是软、硬件之间的功能分配以及对传统机器级界面的确定,提供机器语言、汇编语言程序设计者或编译程序生成系统为使其所设计或生成的程序能在机器上正确运行,应看到和遵循的计算机属性。第27页,共152页,2024年2月25日,星期天对于目前的通用型机器,计算机系统结构(传统机器程序员所看到的属性)一般包括:

(1)机器内的数据表示,包括硬件能直接识别和处理的数据类型和格式等;

(2)寻址方式,包括最小寻址单位,寻址方式的种类、表示和地址计算等;

(3)寄存器组织,包括操作数寄存器、变址寄存器、控制寄存器及某些专用寄存器的定义、数量和使用约定;

第28页,共152页,2024年2月25日,星期天

(4)指令系统,包括机器指令的操作类型和格式、指令间的排序方式和控制机构等;

(5)存储系统,包括最小编址单位、编址方式、主存容量和最大可编址空间等;

(6)中断机构,包括中断的类型、中断分级、中断处理程序的功能和入口地址等;

(7)机器工作状态的定义及切换,如在管态,处理机可以使用系统的全部指令和全部资源,而在目态,处理机只能执行用户程序;第29页,共152页,2024年2月25日,星期天

(8)输入输出机构,包括输入输出设备的连结方式,处理机/存储器与输入输出设备间数据传送的方式与格式、传送的数据量、以及输入输出操作的结束与出错标志等;

(9)信息保护,包括信息保护方式和硬件对信息保护的支持等。第30页,共152页,2024年2月25日,星期天1.3计算机组成

1.3.1计算机组成的定义

计算机组成(ComputerOrganization,又称计算机设计)是指计算机系统的逻辑实现。包括机器内部的数据流和控制流的组成以及逻辑设计等。它着眼于机器内各事件的排序方式与控制机构、各部件的功能以及各部件间的联系。第31页,共152页,2024年2月25日,星期天计算机组成的设计是按所希望达到的性能价格比,最佳、最合理的把各种设备和部件组成计算机,以实现所确定的计算机系统结构。对传统机器程序员来说,计算机组成的设计内容一般是透明的。第32页,共152页,2024年2月25日,星期天

1.3.2计算机组成设计计算机组成的任务是在计算机系统结构确定分配给硬件子系统的功能及其概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令级的各种功能和特性。这种相互联系包括各功能部件的配置、相互连接和相互作用。各功能部件的性能参数相互匹配是计算机组成合理的重要标志,因而相应地就有许多计算机组织方法。例如,为了使存储器的容量大、速度快,人们研究出存储体系。在存储体系中,又有虚拟存储器、高速缓存、多模块交叉工作、多寄存器组和堆栈等技术。第33页,共152页,2024年2月25日,星期天再如,为了使输入输出设备与处理机间的信息流量达到平衡,人们研究出通道、外围处理机等方式。为了提高处理机速度,人们研究出先行控制、流水线、多执行部件等方式。在各功能部件的内部结构研究方面,产生了许多组合逻辑、时序逻辑的高效设计方法和结构。第34页,共152页,2024年2月25日,星期天一般来讲,计算机组成设计要确定的内容应包括:

(1)数据通路的宽度,指数据总线上一次能并行传送的信息位数;

(2)专用部件的设置,包括设置哪些专用部件,如乘除法专用部件、浮点运算部件、字符处理部件、地址运算部件等,每种专用部件的个数等等,这些都决于所需达到的机器速度、专用部件的使用频度及允许的价格等;第35页,共152页,2024年2月25日,星期天

(3)各种操作对部件的共享程度,若共享程度太高,由于共享部件的分时使用将会降低操作的速度;若对同一功能部件设置多个以降低共享度,但系统的价格会随之升高。

(4)功能部件的并行度,如功能部件的控制和处理方式是采用顺序串行方式,还是采用重叠、流水、分布处理方式;

(5)控制机构的组成方式,如控制机构是采用硬连线控制还是微程序控制,是采用单机处理还是多机处理或功能分布处理;第36页,共152页,2024年2月25日,星期天

(6)缓冲和排队技术,包括如何在部件间设置多大容量的缓冲器来弥补它们的速度差异,对于等待要求处理的事件如何排队,如随机、先进先出、先进后出、优先级、循环队等不同方式;

(7)预估、预判技术,如采用何种原则来预测未来的行为,以优化性能和优化处理;

(8)可靠性技术,如采用什么样的冗余技术和容错技术来提高可靠性。第37页,共152页,2024年2月25日,星期天1.4计算机实现

1.4.1计算机实现的定义

计算机实现(ComputerImplementation)是指计算机组成的物理实现。它包括处理机、主存等部件的物理结构,器件的集成度和速度,信号传输,器件、模块、插件、底板的划分与连接,专用器件的设计。电源、冷却、装配等技术以及有关的制造技术和工艺等。它着眼于器件技术和微组装技术。其中,器件技术在实现技术中起着主导作用。第38页,共152页,2024年2月25日,星期天

1.4.2器件技术研究的内容器件技术研究的内容包括:处理机、主存等部件的物理结构,器件的集成度和速度,专用器件的设计,信号传输等。例如,集成电路采用TTL类型还是MOS类型,最小光刻线条的尺寸,连线采用铝连线还是铜连线,集成电路内部的电容、电阻的设计,集成电路上的晶体管采用什么样的材料和工艺,如不同场合下可以选用硅、硅锗合金、砷化镓等等,其带来的物理特性、响应特性、功耗也各有不同。随着时间的推移,芯片的封装技术已经历了好几代的变迁,从DIP、QFP、PGA、BGA到CSP,再到MCM等等。第39页,共152页,2024年2月25日,星期天计算机所用的基本器件已经从初期的电子管、晶体管、中小规模集成电路、大规模集成电路,发展到现在的超大规模集成电路(VLSI),其生产工艺从上世纪70年代的10微米发展到现在的0.09微米的水平,只用了不到30年的时间。其所能达到的集成度可以在一个芯片上集成上亿个晶体管。例如,在处理器方面,英特尔公司的第一个CPU的集成度为2000多个晶体管,而在1999年,英特尔公司推出的PentiumIII处理器的集成度就达到2400万个晶体管,到了2000年,采用Willamette核心,使用0.18微米生产工艺的Pentium4处理器的集成度就达到3400万个晶体管;第40页,共152页,2024年2月25日,星期天而其后推出的采用Northwood核心,使用0.13微米生产工艺的Pentium42.53GHz处理器其集成度达到5500万个晶体管,最新的PentiumEE955处理器更是集成了3.76亿个晶体管。并且,AMD公司的Athlon64X2处理器的集成度也达到2.33亿个晶体管。第41页,共152页,2024年2月25日,星期天计算机所用的基本器件不仅由分立器件发展到集成电路,其速度也有显著的提高。器件的发展是推动系统结构和组成前进的关键因素和主要动力。随着生产工艺以及材料工艺的进展,单个器件的尺寸可以越来越小,单个晶体管的尺寸已经从微米级缩小到纳米级,响应速度可以达到100GHz的量级,例如,IBM使用硅锗材料制造的晶体管,速度达到350GHz,为CPU的主频达到10G的水平提供了技术保障。器件技术的快速发展,使单个器件或集成电路的性能越来越高,而价格则越来越低;同时,也为各种新的系统结构和组成实现提供了硬件支持,并使计算机的应用得到快速普及。第42页,共152页,2024年2月25日,星期天器件技术的发展还促进了算法、语言和软件的发展。随着CPU性价比的迅速改善,加速了大规模高性能并行处理机和通信网络的发展。由数百甚至上万个微处理器组成的MPP(MassivelyParallelProcessor大量信息并行处理机)系统促使人们不断研究新的并行算法、并行语言及相关应用软件和操作系统,以使系统的规模和处理速度能随结点处理器数的增加而显著提高。在2005年全球高性能计算机500强的排行榜上,位居榜首的是美国国际商用机器公司(IBM)研制的“蓝色基因/L”,运算速度高达每秒280.6万亿次浮点运算,目前部署在美国劳伦斯-利弗莫尔国家实验室中。第43页,共152页,2024年2月25日,星期天位于IBM公司托马斯·沃森研究中心的一台“蓝色基因”超级计算机名列第二,运算速度为每秒91.2万亿次。中国上海超级计算中心的“曙光4000A”名列第41位,运算速度为11万亿次,在中国研制的超级计算机中排名最高。

第44页,共152页,2024年2月25日,星期天

1.4.3系统结构、组成、实现三者的关系和相互影响计算机系统结构、计算机组成和计算机实现是三个互不相同的概念,但它们是互相联系和相互影响的。计算机系统结构是计算机系统的软、硬件分界面,是机器语言程序设计者或是编译程序生成系统为使其设计或生成的程序能在机器上运行所看到的计算机属性;计算机组成是计算机系统结构的逻辑实现;计算机实现是计算机组成的物理实现。第45页,共152页,2024年2月25日,星期天

具有相同系统结构的计算机可以采用不同的组成。例如,具有相同指令系统的计算机,指令的取出、译码、取操作数、运算、存结果既可以采用顺序方式进行解释,也可以采用流水方式让它们在时间上重叠进行来提高速度。又如乘法指令可以利用专用乘法器来实现,也可以通过加法器重复相加、移位来实现,这主要取决于对速度的要求、乘法指令出现的频度和所采用的乘法运算方法。显然,前一种方法可以有效的提高乘法运算速度,而后一种方法则可以降低系统的价格。第46页,共152页,2024年2月25日,星期天一种系统结构可以有多种计算机组成,同样,一种计算机组成可以采用多种不同的计算机实现。例如,在CPU的选择上,同一类型的CPU一般都有多个不同的工作频率,从速度及价格等角度考虑,可以选择工作频率较高的CPU,来实现较高的运算速度,也可以选择工作频率较低的CPU,来保证系统的价格相对较低。又如在主存器件的选择上,可以选择TTL型的器件,也可以采用MOS型器件;即可以采用单片VLSI集成电路,也可以采用多片LSI或MSI集成电路组成;第47页,共152页,2024年2月25日,星期天既可以选择响应时间速度较快的芯片,也可以选择响应速度较慢的芯片。实际上,这也是在速度、价格等因素之间进行选择;换句话说,采用什么样的实现技术主要考虑所要达到的性能价格比及器件技术的现状。第48页,共152页,2024年2月25日,星期天反过来,计算机实现是计算机系统结构和计算机组成的基础,其技术的发展对计算机系统结构有着很大的影响,而计算机组成也会影响计算机系统结构。例如器件的发展使系统结构由大型机下移到小型机及微机的速度加快。早期用于大型机的各种数据表示、指令系统、操作系统很快应用到小型机以及微机上。例如,在目前的PC上使用的CPU,都普遍采用了在早期大型机才使用的超标量技术,并引入了VLIW(VeryLongInstructionWord超长指令集架构)技术,有些机器还使用了超流水线技术。第49页,共152页,2024年2月25日,星期天

系统结构的设计必须结合应用考虑,为软件和算法的实现提供更多更好的支持。同时,还要涉及到可能采用和准备采用的组成技术。即计算机系统结构的设计应考虑减少对各种组成及实现技术的使用限制,在一种系统结构中,应允许有多种不同的组成和实现技术。既能方便的在低档机器上用简单、低成本的组成实现,也能在高档机器上以较高的成本、复杂的组成实现。例如,在IBM370系列机中,由低到高有不同档次的机器,它们的中央处理器都具有相同的基本指令系统,第50页,共152页,2024年2月25日,星期天只是指令的分析、执行方式不同,在低档机器上用顺序方式处理,在高档机器上用并行方式处理。又如,在数据通路宽度的组成和实现上,不同档次机器可以分别采用8位、16位、32位和64位。IBM370系列机采用通道方式进行输入输出,其组成又可以分为在低档机器中采用的结合型通道和在高档机器中采用的独立型通道。第51页,共152页,2024年2月25日,星期天

在不同时期,系统结构、组成和实现所包含的内容会有所不同。在某些计算机系统中作为系统结构的内容,在另一些计算机系统中可能是组成和实现的内容。随着各种新技术的出现和发展,特别是器件技术的发展,各种功能都集成到一个芯片上,使系统结构、组成和实现融合于一体,系统结构、组成和实现三者之间的界限越来越模糊。第52页,共152页,2024年2月25日,星期天1.5计算机性能

计算机系统的性能指标,主要取决于计算机的本质属性,即时空属性。各项指标都围绕着它的本质属性来定义。时间是衡量计算机性能的标准。同样的工作量,花费的时间越少速度就越快。衡量机器性能的唯一固定而且可靠的标准就是真正执行程序的时间。第53页,共152页,2024年2月25日,星期天

1.5.1性能因子CPI

CPU的工作是建立在一个固定的时钟节拍上的,这个节拍有一定的时间长度Tc,我们称之为时钟周期(clockcycles)。它是计算机内部操作的基本时间单位,即计算机内部每一基本功能操作在一个或多个时钟周期的时间内完成。时钟周期的单位通常使用纳秒(ns),它的倒数则是时钟的频率,即CPU的主频,通常使用MHz或GHz来表示。第54页,共152页,2024年2月25日,星期天定义:表示要执行程序中的指令总数,CPI表示执行每 条指令所需的平均时钟周期数(clockcyclesper instruction)。则有,一个程序在CPU上运行所需 的时间TCPU可以用下述公式表示:

(1.1)第55页,共152页,2024年2月25日,星期天由此公式可见,程序运行的时间取决于三个特征:时钟周期(或速率),每条指令所需的时钟周期数以及程序中总的指令数。由式1.1可得到CPI的表达式:(1.2)第56页,共152页,2024年2月25日,星期天在程序执行过程中,要用到不同类型的指令,令Ii表示第i类指令在程序中执行次数,CPIi表示执行一条第i类指令所需的平均时钟周期数,n为程序中所有的指令种类数。则式1.2可以改写为:(1.3)第57页,共152页,2024年2月25日,星期天因为IN是一个常数,所以式1.3可以改写为:(1.4)第58页,共152页,2024年2月25日,星期天其中表示第i类指令在程序中所占的比例。式1.4说明平均CPI,或称有效CPI,是等于每类指令的平均CPI和该类指令在整个程序中出现的百分比的乘积之和。在这里,我们可以用CPU时间来评价CPU性能,即(1.5)第59页,共152页,2024年2月25日,星期天由式1.5可以看出,要改善CPU性能,可以通过改变其中某一项或几项因素来实现。事实上,这三个因素是相互关联的。时钟频率fC由硬件技术和组成技术决定,CPI与组成和指令集有关,而指令数IN则与指令集和编译技术有关。第60页,共152页,2024年2月25日,星期天

1.5.2计算机性能常用指标MIPS和MFLOPS1.MIPS(millioninstructionspersecond,每秒百万次指令)

这是一个用来描述计算机性能的尺度。对于一个给定的程序,MIPS定义为:(1.6)第61页,共152页,2024年2月25日,星期天其中,表示时钟速率,它是时钟周期的倒数。如果用TE代替来表示程序的执行时间,则由式1.6可得TE的表达式:(1.7)第62页,共152页,2024年2月25日,星期天例1.1已知PentiumII处理机的CPI=0.5,试计算PentiumII450处理机的运算速度。解:由于PentiumII450处理机fc=450MHz,因此,应用式1.6可求出:第63页,共152页,2024年2月25日,星期天即PentiumII450处理机的运算速度为900MIPS。

显然,既然MIPS是单位时间内的执行次数,所以机器工作频率越高,其MIPS愈高;同样,执行每条指令所需的平均时钟周期数(CPI)越小,其MIPS值也越高。MIPS从一定程度上反映了机器的性能。但是MIPS有三个方面的缺陷:第64页,共152页,2024年2月25日,星期天

(1)MIPS依赖于指令集,所以使用MIPS来衡量指令集不同的机器的性能优劣时,其结果是很不准确的。只适合于评价有相同指令集的机器。

(2)从式1.4和1.6可以看出,在同一台机器上,程序不同,其CPI也会不同,其MIPS计算结果也会因为程序不同而发生变化,有时其差异是很大的。第65页,共152页,2024年2月25日,星期天

(3)MIPS可能与性能相反。典型例子就是具有可选硬件浮点运算部件的机器。因为浮点运算远慢于整数运算,所以很多机器提供了可选的硬件浮点运算部件,但是软件实现浮点运算的MIPS高。然而硬件实现浮点运算的时间少,这时MIPS与机器性能恰好相反(为什么?)。在使用MIPS时应注意它的应用范围,它只适宜于评估标量机,因为在标量机中执行一条指令,一般可得到一个运算结果,而向量机中,执行一条向量指令通常可得到多个运算结果。因此,用MIPS来衡量向量机是不合适的。第66页,共152页,2024年2月25日,星期天

2.MFLOPS(millionfloatingpointoperationspersecond,每秒百万次浮点运算)

MFLOPS可用如下公式表示:(1.8)其中,IFN表示程序中的浮点运算次数。第67页,共152页,2024年2月25日,星期天由于MFLOPS取决于机器和程序两个方面,因此MFLOPS只能用来衡量机器浮点操作的性能,而不能体现机器的整体性能。例如编译程序,不管机器的性能有多好,它的MFLOPS不会太高。第68页,共152页,2024年2月25日,星期天

MFLOPS测量单位比较适用于衡量向量机的性能,因为MFLOPS是基于操作而非指令的,所以它可以用来比较两种不同的机器。一般而言,同一程序运行在不同计算机上时往往会执行不同的指令数,但所执行的浮点数个数常常是相同的。采用MFLOPS作为衡量单位时,应注意它的值不但会随整数、浮点数操作混合比例的不同发生变化,而且也会随快速和慢速浮点操作混合比例的变化而变化。例如,运行由100%浮点加组成的程序所得到的MFLOPS值将比由100%浮点除法组成的程序要高。第69页,共152页,2024年2月25日,星期天

MFLOPS和MIPS两个衡量值之间的量值关系,没有统一标准,一般认为在标量计算机中执行一次浮点运算需要2~5条指令,平均约需3条指令,故有1MFLOPS≈3MIPS。例1.2

用一台40MHZ处理机执行标准测试程序,程序所含的混合指令数和每类指令的CPI如表1.1所示,求有效CPI、MIPS速率和程序的执行时间。第70页,共152页,2024年2月25日,星期天表1.1标准测试程序的混合指令数和相应所需的时钟周期数指令类型整数运算数据传送浮点操作控制传送指令数4500032000150008000CPI1222第71页,共152页,2024年2月25日,星期天解:总的指令数为:45000+32000+15000+8000=100000条,因此各类指令所占的比例分别是:整数运算为45%,数据传送为32%,浮点操作为15%,控制传送为8%有效CPI、MIPS速率和程序的执行时间分别计算如下:

(1)有效CPI为:1×0.45+2×0.32+2×0.15+2×0.08=1.55CPI(2)MIPS速率为:1/1.55×40=25.8MIPS(3)程序的执行时间为:100000×1.55/(40×106)=0.003875s=3875us第72页,共152页,2024年2月25日,星期天例1.3假定你是一个计算机设计者,已设想了一个优化的设计方案,它能减少过程调用和返回所需的取/存指令次数。为了进行验证,对未加优化和已优化的方案进行实验测试,其中假定所使用的是相同的优化编译器。实验测得的结果如下:▲优化方案的时钟周期比未优化的快15%;▲未优化方案中的取/存指令数占总指令数的30%;第73页,共152页,2024年2月25日,星期天▲优化方案中的取/存指令比未优化的少1/3。对于其它指令,两种方案的动态执行数没有变化;▲未优化方案的所有指令执行均只需1个时钟周期,而优化方案只有取/存指令执行需要2个时钟周期,其它指令执行也只需1个时钟周期。试计算:

(1)优化方案的平均CPI;

(2)优化方案加速比。第74页,共152页,2024年2月25日,星期天

解:(1)优化方案的平均CPI为:

0.2/0.9×2+0.7/0.9×1≈1.22CPI第75页,共152页,2024年2月25日,星期天

(2)由题意,因为未优化方案的所有指令执行均只需1个时钟周期,因此其平均CPI为1CPI。根据题意,有:

(Tc未优化-Tc优化)/Tc未优化=0.15

解之,得:Tc优化=0.85Tc未优化

第76页,共152页,2024年2月25日,星期天优化方案的加速比为:

Sp=未优化方案程序的执行时间/已优化方案程序的执行时间

=(IN未优化×CPI未优化×Tc未优化)/(IN优化×CPI优化×Tc优化)=(IN未优化×1×Tc未优化)/(0.9IN未优化×1.22×0.85Tc未优化)≈1.075第77页,共152页,2024年2月25日,星期天

3.用基准程序来评价计算机性能基准程序(benchmark)是性能测试程序,并假设它能刻划某一类应用问题的处理和数据移动特征。基准程序用来测量和预测计算机系统的性能,并能提示它们的体系结构的弱点和优点。基准程序组(benchmarksuite)是一套基准程序的控制测试条件及过程的一组特定规则,包括输入数据、输出结果以及性能指标。基准程序系列(benchmarkfamily)则是一套基准程序组。第78页,共152页,2024年2月25日,星期天基准程序可分为宏基准程序和微基准程序两大类。宏基准程序用来测量一个计算机系统的总体性能,而微基准程序则是用来测量一个计算机系统某一特定方面的性能,如CPU速度、存储器速度、I/O速度、操作系统性能及网络性能等等。表1.2示出了几个具有代表性的微基准程序组和宏基准程序组。第79页,共152页,2024年2月25日,星期天

SPEC(StandardPerformanceEvaluationCorporation)最初是由30个左右世界知名计算机大厂商所支持的非盈利的合作组织,成员包括:IBM、AT&T、BULL、Compaq、CDC、DG、DEC、Fujitsu、HP、Intel、MIPS、SGI、SUN、Unisys等;SPEC基准测试程序能够全面反映机器的性能,具有很高的参考价值,已成为事实上的工业标准。随着因特网的快速发展,各种各样的新技术的应用,SPEC也不断变化和增加其测试的范围和内容。第80页,共152页,2024年2月25日,星期天

SPEC已经从早期只进行CPU性能测试发展到电子商务、万维网服务、电子邮件服务、高性能机群计算机等等多方面应用的测试。例如,SPECjAppServer2002应用于JAVA应用服务器性能测试,SPECMAIL2001提供电子邮件服务器性能测试,SPECweb99则是用来评估万维网服务器性能的测试。第81页,共152页,2024年2月25日,星期天表1.2几个具有代表性的微基准程序组和宏基准程序组类型名称测试范围微基准程序LINPACK数值计算(线性代数)

LMBENCHUnix中的系统调用和数据移动

STREAM存储器带宽宏基准程序NAS并行计算(CFD)

PARKBENCH并行计算

SPEC混合基准程序系列

Splash并行计算

STAP信号处理

TPC商业应用第82页,共152页,2024年2月25日,星期天在1989年10月,SPEC发布了第一个基准测试程序,包含10个测试程序,程序量超过15万行,4个定点程序,6个浮点程序;其测试结果用SPECint89和SPECfp89表示。1992年,又增加10个测试程序,共有6个定点程序和14个浮点程序,测试结果用SPECint92和SPECfp92表示。1995年推出SPECint95和SPECfp95。到了1999年,发布了测试标准为SPECCPU2000的第一个版本V1.0,2001年推出了SPECCPU2000的V1.2版本。第83页,共152页,2024年2月25日,星期天

SPECCPU2000由CINT2000和CFP2000组成,其中CINT2000由12个基准测试程序(11个由C语言编写,1个由C++语言编写)组成,分别是gzip、vpr、gcc、mcf、crafty、parser、eon、perlbmk、gap、vortex、bzip2和twolf,程序说明见表1.3;CINT2000主要完成在各种不同应用环境下计算机的整数运算能力的测试,其结果用SPECint2000表示。第84页,共152页,2024年2月25日,星期天表1.3CINT2000的基准测试程序基准测试程序编程语言设计者基准时间说明gzipANSICJean-LoupGaily1400数据压缩vprANSICVaughnBetz1400FPGA电路布线gccANSIC

1100C优化编译器mcfANSICAndreasLoebel1800组合优化(交通运输调度)craftyANSICRobertHyatt1000国际象棋游戏parserANSICDannySleator,DavyTemperley1800字处理第85页,共152页,2024年2月25日,星期天eonC++PeterShirley,KenChiu,et.al.1300计算机可视化perlbmkANSICLarryWall,et.al.1800Perl程序设计语言gapANSICMartinSchoenert1100群论、解释程序vortexANSICPeterR.Homan1900面向对象的数据库bzip2ANSICJulianSeward1500数据压缩twolfANSICBillSwartz3000布线布局模型第86页,共152页,2024年2月25日,星期天

CFP2000由14个浮点测试程序(6个由Fortran-77编写,4个由Fortran-90编写,4个由C语言编写)组成,分别是wupwise、swim、mgrid、applu、mesa、galgel、art、equake、facerec、ammp、lucas、fma3d、sixtrack和apsi,程序说明见表1.4。CFP2000主要完成在不同应用环境下计算机的浮点运算能力测试,其结果用SPECfp2000表示。第87页,共152页,2024年2月25日,星期天表1.4CFP2000的基准测试程序测试程序编程语言设计者基准时间说明wupwiseFortran77BjoernMedeke1600量子色动力学swimFortran77PaulN.Swarztrauber3100浅水区建模mgridFortran77EricBarszcz,PaulO.Frederickson18003D势场appluFortran77SisiraWeeratunga2100抛物线/椭圆型偏微分方程mesaCBrianE.Paul14003D图形库galgelFortran90AlexanderGelfgat2900计算机流体力学第88页,共152页,2024年2月25日,星期天artCCharlesRoberson&MaxDomeika2600图象识别/神经网络equakeCDavidR.O'HallaronandLoukasF.Kallivokas1300模拟地震波在水库中的传播facerecFortran90JanC.Vorbrueggen1900图象处理ammpCRobertW.Harrison2200计算化学lucasFortran90ErnstMayer2000数论:原始测试fma3dFortran90SamuelW.Key2100有限元法碰撞仿真sixtrackFortran77FrankSchmidt1100高能核物理加速器设计apsiFortran77ZaphirisD.Christidis2600污染物分布(气象学)第89页,共152页,2024年2月25日,星期天从表1.3和表1.4中,也可以看出,SPECCPU2000基准测试程序包含了不同领域间的应用,如天气预报、流体力学、数据压缩、数据库、编译、物理、化学、人工智能、图象处理等方面,能更好的反映计算机的性能。表1.5给出了2000年到2003年间一些常用CPU的测试结果。第90页,共152页,2024年2月25日,星期天表1.5SPECCPU2000测试结果CPU工作频率(MHz)SPECint2000SPECfp2000测试时间Alpha21264A8335336442000.1PowerPC604e250105842000.4R120004003474072000.4PA-86005504224142000.10AMDAthlon12004584172000.11UltraSPARC-IIe5001741822001.2第91页,共152页,2024年2月25日,星期天RS64IV7504393762001.7SPARC64GP6004064032001.8PentiumIII10004082642001.8POWER3-II4503184332001.9Pentium4(2.0AGHz)20007597732002.5Pentium4(3.06GHz)3067110710912002.8R140006005005292002.8AMDAthlon(TM)MP2400+20007666932002.11第92页,共152页,2024年2月25日,星期天Alpha21264C125087713652002.11UltraSPARCIIICu120071211062003.3AMDOpteron1441800110011542003.4POWER4+1700111316782003.4AMDAthlon(TM)XP3200+220010809822003.5SPARC64V110068210302003.5IntelItanium21500107720552003.6IntelXeon3066125811842003.6第93页,共152页,2024年2月25日,星期天

SPECCPU2000基准测试程序选择SunUltra5_10工作站性能作为参考性能,此工作站具有300MHZSunSPARC微处理器,带有256MB主存。表1.5中的SPECint2000值是对CINT2000基准程序组中12个基准程序速率与SunUltra5_10工作站速率之比取几何平均值得到的。同样,SPECfp2000值是对CFP2000基准程序组中14个基准程序速率与SunUltra5_10工作站速率之比取几何平均值得到的。第94页,共152页,2024年2月25日,星期天

1.5.3计算机系统结构的性能评价标准关于计算机的性能评价,通常用峰值性能(peakperformance)及持续性能(sustainedperformance)两个指标。峰值性能是指在理想情况下计算机系统可获得的最高理论性能值,它不能反映系统的实际性能。持续性能又称实际性能,它的值往往只有峰值性能的5%到35%(因算法而异)。第95页,共152页,2024年2月25日,星期天持续性能的表示常用算术平均值、调和平均值和几何平均值三种方法,这三种性能值(运算速率)的计算公式表示如下:

1.算术性能平均值Am

以程序执行的速率Ri来进行性能评价,则有(1.9)第96页,共152页,2024年2月25日,星期天其中Ti是第i个程序的执行时间,式1.9得到的结果是n个程序的平均执行速率。若根据执行时间进行评价,则平均执行时间是各执行时间的算术平均值。式1.9则改写为:(1.10)这时的Am表示的是n个程序的平均执行时间。第97页,共152页,2024年2月25日,星期天

2.调和性能平均值Hm调和性能平均值Hm的表达式为:(1.11)第98页,共152页,2024年2月25日,星期天由式1.11可以看出,Hm的值与运行所有程序所需时间的总和成反比关系,从执行时间是衡量性能指标的唯一标准这一点来看,用Hm值来衡量计算机系统性能是较为精确的。第99页,共152页,2024年2月25日,星期天

3.几何性能平均值Gm

对性能的评价的第三种方法是使用几何平均值,其表达式如下:(1.12)第100页,共152页,2024年2月25日,星期天使用Gm有一个很好的特性:,即几何平均值之比与比的几何平均值是相等的,因此在对各种机器性能比较而进行性能规格化(即以某台机器性能作参考标准,其它机器性能除以该参考标准所得到的值)过程中,不论取哪一台作参考机,Gm均能保持比较结果的一致性,Am和Hm由于没有这样的特性,因而在作比较时,就不如Gm那样方便。下面我们通过一个例子来说明这一点。第101页,共152页,2024年2月25日,星期天例1.4

已知四个程序在三台计算机上的执行时间如表1.6所示,假设四个程序中每一个都有100000000条指令要执行,计算这三台计算机中每台机器上每个程序的MIPS速率。根据这些速率值,能否得出有关三台计算机相对性能的明确结论?能否找到一种将它们统计排序的方法,试说明理由。第102页,共152页,2024年2月25日,星期天表1.6四个程序在三台计算机上的执行时间执行时间(s)程序计算机A计算机B计算机C程序111020程序2100010020程序3500100050程序4100800100第103页,共152页,2024年2月25日,星期天解:(1)这三台计算机中每台机器上每个程序的MIPS速率如表1.7所示。表1.7四个程序在三台计算机上的MIPS速率MIPS速率(MIPS)程序计算机A计算机B计算机C程序1100105程序20.115程序30.20.12程序410.1251第104页,共152页,2024年2月25日,星期天

(2)以A机为标准的规格化测试值和Gmi/GmA值如表1.8所示。表1.8以A机为标准的规格化测试值和Gmi/GmA值执行速率Ri(MIPS)程序计算机A计算机B计算机C程序1100(1)10(0.1)5(0.05)程序20.1(1)1(10)5(50)程序30.2(1)0.1(0.5)2(10)程序41(1)0.125(0.125)1(1)Gmi/GmA

第105页,共152页,2024年2月25日,星期天∴三台计算机相对来说,C的性能最好,A的性能次之,B的性能最差。如果考虑工作负载中各程序不会以相等的比例出现这一情况,就需要对各程序的执行速率或执行时间加上相应的权值。例如,一个任务由三个程序完成,程序1的比例占10%,程序2的比例占35%,程序3的比例占55%,那么它们的权值分别为0.1、0.35和0.55,将其与对应程序的执行速率或执行时间相乘,再累加求和,即可得到加权算术平均值。第106页,共152页,2024年2月25日,星期天同理,可以得到加权几何平均值和加权调和平均值。在这里,用Wi来表示第i个程序的权值,则对应表达式如下:加权算术平均值:(1.13)加权调和平均值:(1.14)第107页,共152页,2024年2月25日,星期天加权几何平均值:(1.15)第108页,共152页,2024年2月25日,星期天

1.5.4计算机系统设计的定量原理这里将讨论在计算机系统设计中应遵循的一些重要定量原理和应注意的现象。

1.只加速使用频率高的部件这是最重要也是最广泛采用的计算机设计准则。因为加快处理频繁出现事件对系统的影响远比加速处理很少出现事件的影响要大。使经常性事件的处理速度加快能明显提高整个系统的性能。一般说来,经常性事件的处理比较简单,因此比不经常出现的事件处理起来要快。第109页,共152页,2024年2月25日,星期天例如,在CPU中两个数进行相加运算时,相加结果可能出现溢出现象,也可能无溢出发生,显然经常出现的事件是不发生溢出的情况,而溢出是偶然发生的事件。因此,在设计时应优化不发生溢出的情况,使这个经常性事件的处理速度尽可能快。而对溢出处理则不必过多考虑优化。因为发生溢出的概率很小,即使发生了,处理得慢一些也不会对系统性能产生很大的影响。在计算机设计过程中经常会遇到上述情况,如何确定经常性事件以及如何加快处理它的速度,这就是下面介绍的Amdahl定律要解决的问题。第110页,共152页,2024年2月25日,星期天

2.阿姆达尔(Amdahl)定律阿姆达尔定律是1967年由IBM360系列机的主要设计者阿姆达尔首先提出来的。阿姆达尔定律是指:系统中对某一部件采用某种更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。Amdahl定律实际上定义了采取增强(加速)某部分功能处理后可获得的性能改进或执行时间的加速比。第111页,共152页,2024年2月25日,星期天若用Told表示不采用任何增强功能措施完成某一任务的时间,用Tnew表示采用某种增强功能措施后计算机完成同一任务所需时间。以fnew表示可采取增强功能措施的部分所占百分比(显然,0≤fnew≤1),而以rnew表示采用增强功能措施比不采用增强功能可加快执行的倍数,则性能(或时间)加速比Sp可用如下公式表示:(1.16)第112页,共152页,2024年2月25日,星期天该公式分母中的(1-fnew)表示不可增强性能部分的百分比,显然:

(1)当fnew为0时,即没有可增强性部分时,Sp=1;

(2)当rnew∞时,分母中fnew/rnew项变为0,此时Sp=1/(1-fnew)。由此可以看出,可获得性能改善的极限值受fnew值的约束。第113页,共152页,2024年2月25日,星期天例1.5若考虑将系统中某一功能的处理速度加快10倍,但该功能的处理使用时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?解:由题可知:rnew=10,fnew=0.4,根据公式,有:即采用此增强功能方法后,能使整个系统的性能提高为原来的1.56倍。第114页,共152页,2024年2月25日,星期天

例1.6如果某一计算任务用向量方式求解比用标量方式求解要快20倍,称可用向量方式求解部分所花费时间占总的时间的百分比为可向量化百分比。

(1)请写出加速比Sp与可向量化比例x之间的关系表达式。

(2)为达到加速比2,可向量化的百分比应为多少?

(3)为获得采用向量方式最大加速比半值(即10)时,所需可量化的百分比为多少?第115页,共152页,2024年2月25日,星期天解:(1)根据公式,得:第116页,共152页,2024年2月25日,星期天

(2)由题意:

解此方程,可得到x=0.526,即为达到加速比2,可向量化的百分比应为52.6%。

(3)由题意:

解此方程,可推出x=0.947,即为获得采用向量方式最大加速比半值时,所需可量化的百分比为94.7%。第117页,共152页,2024年2月25日,星期天

例1.7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论