计算机系统结构的基本概念.ppt
计算机系统结构课件编著:陈建铎设计:程俊波西安石油大学计算机学院,目录 第一章 计算机系统结构的基本概念 第二章 数据与指令系统设计 第三章 存储器体系结构 第四章 标量流水线技术 第五章 向量流水与向量处理机 第六章 互连网络第七章 并行处理技术与SIMD阵列机 第八章 多处理机 第九章 计算机体系结构的发展,第1章 计算机系统结构的基本概念,内容提要:,本章首先简要介绍计算机系统结构的含义、层次结构类型,然后讲述计算机系统结构性能分析的方法、计算机系统结构的发展及计算机系统的成本、性能与价格。重 点是计算机系统的层次结构、按“流”分类、定量分析、Amdahl定律、影响计算机系统结构的要素。难点是计算机系统的层次结构、按“流”分类、定量分析及Amdahl定律。,第1章 计算机系统结构的基本概念,1.1 概 述 1.2 计算机系统结构的定义与内涵 1.3 计算机系统结构的类型1.4 计算机系统性能分析 1.5 计算机系统结构的发展过程 1.6 计算机系统的成本、性能与价格,1.1概 述,自从上世纪40年代上第一台数字计算机诞生以来,其结构、规模、类型、性能、应用领域发生了翻天覆地的变化,其中决定因素是器件和系统结构的发展与变化。人们把计算机的发展过程归结为四个历史时期,也称为四代。现在,正在向第五代发展。各历史时期及其主要特征如表1.1 所示。,计算机科学家恩斯洛(P.H.Enslow)曾对19651975年间计算机的发展进行了研究。结果表明,计算机系统的性能提高了100倍,其中10倍归功于器件的发展,而另外10倍归于系统结构的变化。在计算机进入第四代以后,人们认为第五代计算机应当是智能化计算机。但是,经过多年的努力,一时还难以实现。而在上世纪90年代以后,计算机的硬件体系结构有了新的突破性的发展,于是人们把其归结为第五代系统结构的发展时期。典型机种除了表1.1中所列举的几种之外,还有:Fujitsu的VPP500、Cray Research的MPP、Thinking Machines公司的CM-5、Intel超级计算机系统Paragon、SGI的Origin2000以及SUN 10000服务器等。目前,就计算机的规模而言,有微型机、小型机、中型机、大型机和巨型机;就计算机的体系结构而言,有标量流水机、向量流水机、阵列机、并行多处理机、数据流机以及规约机等;另外,人工智能计算机仍然在发展之中。,在进入上世纪80年代以后,由于软件技术的发展,对计算机系统结构的发展也起到了一定的促进作用。一方面是对汇编语言的要求有所降低,放宽了对目标代码兼容性的苛刻要求;另一方面,与厂商无关、类似 于UNIX操作系统那样的标准化的建立,使新的系统结构的设计成本与风险有所降低,这就促使许多厂商相继推出了许多新型计算机,比如小巨型机、高性能的微处理机、工程工作站以及各种多处理机等。在微型计算机的发展中,随着芯片集成度的提高,一方面向工程工作站、小型机靠拢;另一方面,各种高性能的微控制器、嵌入式芯片大量涌现出来,广泛地用于自动控制、电信和智能化仪器仪表中。在进入80年代以后,另一个突破性的进展出现了。这就是精简指令系统计算机RISC,它是对CISC计算机的一种挑战,使计算机的体系结构再一次发生了质的改变。,1.2 计算机系统结构的定义与内涵,1.2.1 计算机系统的层次结构1.2.2 计算机系统结构的定义与内涵1.2.3 计算机系统的组成与实现,计算机系统的层次结构,随着软件技术的发展,人们使用不同的高级语言编程,站在不同的层面上使用计算机。于是,产生了计算机系统的多层次结构,如图1.1 所示。,图1.1 计算机系统的层次结构,图中每一层对应一种“机器”,为该层的操作者所使用。操作者通过该层的语言与“机器”对话,或者交互信息,而不必关心其内层的结构和工作过程。这体现的是一种称之为透明性的特性。,L0 和L1级是计算机的底层硬件,指中央控制器。其中 L0级由电子线路组成,用来实现微指令的功能。L1是微程序控制器,也称为固件。L2是传统的机器语言级机器,也称为物理机,程序员通过机器语言指令编程。向下,进入L1级,每一条机器语言指令对应于一段微程序,通过执行其微程序,实现该指令的功能。,L3是操作系统虚拟机。在这一级,多数指令是传统的机器语言指令,操作系统提供自己的命令集,比如打开/关闭文件、读/写文件等。程序员主要使用操作系统的命令对文件进行操作,其功能由软件来实现,因此称为操作系统虚拟机。L4是汇编语言虚拟机。程序员通过对汇编语言指令的编程,来实现外部的功能要求。汇编语言程序需要翻译成L3和L2级语言,然后再由机器执行。这种翻译程序称为汇编程序。,L5是高级语言虚拟机。程序员使用高级语言进行程序设计,然后再由编译或解释程序翻译成L4级或L3级上的语言,然后由下一级机器执行。L6是应用语言虚拟机,是为某些专门的应用而设计的,使用面向问题或对象语言,可设计出用于不同领域的虚拟机。应用语言编写的程序一般是由应用程序包翻译到L5级上,然后再一级一级地翻译或解释执行。,计算机系统结构(Computer architecture)这一概念,是在1962年Buchholz描述IBM 7030的扩展性(Stretch)时首先提出来的;主要是指计算机的外貌,也称为外特性。1964年,IBM 370的主设计师Amdahl给出了它的定义:计算机系统结构就是程序员所看到的计算机的基本属性,即概念性结构与功能特性。对于不同层次上的程序员来说,由于使用的程序设计语言不同,可能看到的概念性结构与功能特性会有所不同。例如,使用机器语言或汇编语言分别在PDP-11和80X86机上进行程序设计,就会发现两种机器的基本属性截然不同;如果使用高级语言,比如FORTRAN或C/C+,进行程序设计,经编译后再在这两种机器上运行,就会发现它们之间不再有多大的区别。,计算机系统结构的定义与内涵,是什么原因呢?主要是编译程序填补了两种机器之间的差异。象这种本来存在差异或区别的事物或特性,站在某一角度来看,似乎不再有什么差异或者区别,这种现象或概念称为透明性(Transparency)。由此可见,在层次结构的各级机器上都有相应的系统结构。Amdahl提出的系统结构是指传统机器语言级的系统结构,即机器语言程序员所看到的计算机外特性,是在传统的硬件层面上看到的特性。这种外特性主要有:指令系统 数据表示 寻址规则 寄存器结构 中断系统 工作状态的定义与切换 存储系统 信息保护方式 I/O结构等。,这些在计算机系统中是由硬件或固件完成的功能。由图1.1可以看出,计算机系统的概念性结构和功能特性实质上是由计算机系统中软件与硬件之间的界面所确定,界面之上主要是软件功能,界面之下则主要是硬件。以上是针对经典的计算机系统结构的概念而言的。随着计算机技术的发展,计算机系统结构的概念和它所包含的内容也正处在不断的发展与变化之中,它涉及到广义计算机系统结构的概念,包括计算机新的组成与实现技术。,图1.1 计算机系统的层次结构,1.2.3 计算机系统的组成与实现,1.计算机组成与实现2.外特性、内特性与微外特性3.计算机系统的组成与实现,1.计算机组成与实现,所谓计算机组成是在明确计算机系统结构分配给硬件的功能与概念性结构之后,研究如何组成其硬件体系,并建立相互之间的联系,以实现机器语言级指令的功能与特性。其中包括各功能部件的配置、组成、相互之间的连接与相互作用等。各功能部件的性能、参数以及相互之间的合理匹配是计算机组成的重要指标。例如,运算器的组成、功能、运算速度,存储器的层次结构、容量、存取周期、虚拟存储技术、通道技术或I/O处理机、先行控制、流水线技术、多功能部件、阵列机以及并行多处理机技术等。计算机组成是计算机系统结构的逻辑实现,包括机器内部数据流和控制流的组成及其逻辑设计。在研究计算机组成时,又涉及到各种功能部件的组成逻辑、时序电路以及时钟信号的设计与选用。,例如,在设计运算器时,既涉及到时序电路,又涉及到算法;在设计存储器时既涉及到采用什么样的器件,又涉及到它的容量、外围电路和速度;在设计输入输出通道时,同样也涉及到采用什么样的器件及外围电路。另外,在构成计算机时还涉及到信号的传输方式、模块的划分、插件与底版的连接,以及电源、冷却方式、组装工艺和技术等。这些,统称为计算机组成的物理实现。计算机系统结构、计算机组成和计算机实现是三个不同的概念。系统结构是计算机系统的软件与硬件之间的界面;计算机组成是指计算机系统结构的逻辑实现;计算机实现是指计算机组成的物理实现。它们各自包含有不同的内容,相互之间又有着密切的联系。,上述三种概念所包含的内容随不同的机器可能有所变化。在一些机器中属于系统结构内容,到了另一种机器中可能成为计算机组成或实现的内容。例如高速缓冲存储器Cache一般是作为计算机组成提出来的,其中存储的信息全部由硬件管理,对程序员来说是透明的;然而在有的机器中为了提高效率,配置了Cache操作指令,使程序员可通过指令参与Cache的管理。这样,Cache就成为系统结构的一部分,对程序员不再透明了。按照Amdahl的定义,在一个系列机中不同档次的机器具有相同的系统结构。,2.外特性、内特性与微外特性,对于机器语言程序员所看到的计算机的概念性结构与功能特性,我们称之为计算机的系统结构,也就是“外特性”。这种外特性是由硬件和固件来实现的,而它们本身则是由电子线路、逻辑门、寄存器等器件组成的。对这些器件和电子线路的抽象,称为计算机系统的“内特性”,对应于计算机组成,其本身实际上就是计算机系统的实现。,计算机系统的内特性所涉及到的内容主要包括机器语言级内的数据流和控制流的组成,CPU与主存等部件的逻辑设计,各事件的排序方式与控制机构,以及各部件之间的联系等。它所涉及到的问题是如何合理地配置硬件功能和技术指标 在设有微程序控制器的计算机系统中,执行指令的过程实际上就是执行微程序的过程。这对于微程序设计人员来说,他们所看到的外特性实际上就是微程序控制器的外特性,也称为“微外特性”。,如果把它作为一个抽象级,可以视为硬件与固件之间的界面,也称为微系统结构。外特性、内特性及微系统结构之间的关系如图1.2所示。由于计算机系统的外特性是对内特性的抽象,因此二者之间的影射关系是一对多的关系,即某一外特性可以影射多种内特性;而某一内特性也可以影射多种物理实现。,图1.2 计算机的外特性、内特性与微系统结构的关系,3.计算机系统的组成与实现,计算机系统的组成既包括硬件系统,又包括软件系统。它的组成与实现如图1.1所示,即分为下层的物理机和上层的虚拟机。其系统的组成实际上就是各层的硬件和软件构成的统一体,由其硬件和软件实现各层次的功能。各层的组成与作用已在节介绍。,1.3 软件的产生、发展与软件危机,1.3.1 按“流”分类1.3.2 按“并行级”和“流水线”分类1.3.3 冯氏分类法,计算机系统结构分类方式主要有三种。一种是按“流”分类,一种是按“并行级”和“流水线”分类,另一种是按照计算机系统结构的最大并行度进行分类。,按“流”分类法是Flynn教授在1966年提出的一种分类方法,他是按照计算机中指令流(Instruction stream)和数据流(Data stream)的多倍性进行分类。所谓指令流是指机器执行的指令序列;所谓数据流是指指令流调用的数据序列。多倍性是指在机器中最受限制(瓶颈最严重)的部件上,在同一时间单位中,最多可并行执行的指令条数或处理的数据个数。,1.3.1 按“流”分类,这样,可分成如表1.2所示的四种类型,即:单指令流单数据流(SISD)单指令流多数据流(SIMD)多指令流单数据流(MISD)多指令流多数据流(MIMD)四种类型如图1.3所示,其中CU表示控制部件,PU表示处理部件,MM是主存模块,CS表示控制流,DS表示数据流,IS表示指令流,SM表示共享主存。,1.SISD计算机 单指令流单数据流计算机如图1.3(a)所示,控制部件(CU)只有一个,处理部件(PU)也只有一个。同一时间单元中只能对一条指令进行译码和执行。由于主存模块(MM)也是一个,因此一次所能处理的数据也是一个。2.SIMD计算机 单指令流多数据流计算机如图1.3(b)所示,控制部件(CU)只有一个,在同一时间单元内只能对一条指令进行译码和执行;但是有多个处理部件(PU),同时执行控制单元分配给各自的任务,对多个数据进行处理,即多数据流。并行处理机可谓这种结构的典型代表。例如ILLIAC-,ICL-DAP,CRAY-1,YH-1以及CM-2等。,图1.3 Flynn分类法中4种类型的逻辑结构,3.MISD计算机 多指令流单数据流计算机如图1.3(c)所示,控制部件(CU)有多个,处理部件(PU)也有多个,在同一时间单元内可对多条指令进行译码和执行,即多个指令流。但是主存模块(SM)只有一个数据通路,仅对一个数据流进行处理。目前,有人认为这种结构尚不存在;但是也有学者认为,超级标量机、超长指令字计算机、退耦以及脉动阵列机可归属于SIMD计算机。4.MIMD计算机 多指令流多数据流计算机如图1.3(d)所示,有多个控制部件(CU)和多个处理部件(PU),可对多个数据流进行处理。目前的大多数多处理机系统和多计算机系统当属这种类型。其中,多个处理机共享一个主存空间,并由共享主存交换或传递数据信息的称为紧耦合MIMD系统;对于不直接共享一个主存空间的,称为松耦合MIMD系统。实际上,它也是多个独立的SISD计算机系统的集合。例如IBM 370/168MP,CRAY X-MP,YH-2等。,1.3.2 按“并行级”和“流水线”分类,按“并行级”和“流水线”分类法是Wolfgan Hndler在1977年提出的。是在计算机系统的三个子系统集上,按照并行性和流水线的处理程度分类。三个层次是处理控制器(PCU)、运算部件(ALU)和位级电路(BLC)。这样,一个计算机系统可描述为:T(C)=其中:C表示计算机系统型号;k表示计算机系统中处理控制器(PCU)的个数;k表示可组成流水线的处理控制器的个数;d表示每一个PCU中运算部件(ALU或PE)的个数;d表示可组成流水线的ALU或PE的个数;w表示ALU或PE的字长;w表示所有ALU或一个PE中的流水段数。如果任意一对参数的第二个元素值为1,则可以省略。,【例1.1】CDC6600计算机系统有一个CPU,它的ALU有10个功能部件,所有的功能部件可以连成一条流水线,字长60位;此外,配有10个可并行工作的I/O处理机,每一个I/O处理机有一个ALU,字长12位。则CDC6600计算机系统可以描述为:T(CDC6600)=T=【例1.2】CRAY-1计算机有一个CPU,12个相当于ALU或PE的处理部件,最多可实现8级流水线;字长64位,可实现114位流水线处理。则CRAY-1计算机系统可描述为:T(CRAY-1)=按照Wolfgan Hndler分类法,一些典型计算机可表示为:T(PDP11)=(1,1,16)T(ILLIAC)=(1,64,64)T(STARAN)=(1,8192,1)T(MPP)=(1,16384,1)T(C.mmp)=(16,1,16)T(PEPE)=(13,288,32),冯氏分类法是美籍华人冯泽云于1972年提出来的一种分类方法。他是按照“最大并行度”对计算机系统结构进行分类。所谓最大并行度用Pm表示,定义为计算机系统在单位时间内所能处理的最大二进制位数。若设每一个时钟周期ti内能同时处理的二进制位数为Pi,则T个时钟周期内平均并行度为:,1.3.3 冯氏分类法,平均并行度取决于系统的运行程度,与应用程序有关。为了表示这一特性,可引入系统在T个时钟周期内的平均利用率,用表示:,下面可通过图1.4给出用“最大并行度”对计算机系统结构进行分类的方法。其中直角坐标系中的一个点代表一个计算机系统;横坐标表示字宽(n位),即在一个字中可同时处理的二进制位数;纵坐标表示位片宽度(m字),即在一个位片中可同时处理的字数。这样,对于一个计算机系统的最大并行度可用两个量的乘积来表示,即通过该点的水平线、垂直线与两坐标轴围成的矩形面积。,图1.4 冯氏分类法,由图1.4可见,按照对数据处理的方式,可得到4种不同处理方式的计算机系统结构:字串位串(WSBS,Word Serial and Bit Serial),即 n=1,m=1。这主要是第一代计算机发展的初期,采用纯串行工作方式的一类计算机。字并位串(WPBS,Word Parallel and Bit Serial),即 n1,m=1。这主要是传统的并行单处理机。字串位并(WSBP,Word Serial and Bit Parallel),即 n=1,m1。STARAN、MPP、DAP等属于这种结构。字并位并(WPBP,Word Parallel and Bit Parallel),即 n1,m1。PEPE、ILLIAC-、C.mmp等属于这种结构。,1.4 计算机系统性能分析,1.4.1 定量分析法1.4.2 CPU性能分析1.4.3 MIPS与MFLOPS指标1.4.4 性能测试结果的统计与比较,1.4.1 定量分析法,1.大概率事件优先原理 大概率事件优先原理的基本思想是对大概率事件(最常见的事件)赋予优先处理权和资源使用权,以获得全局最优结果。例如在CPU的加法运算中,溢出是小概率事件,无溢出是大概率事件。相比之下,应对无溢出加法进行优化设计,加快无溢出加法的速度;而溢出会降低机器的运算速度,但是它的概率很小。因此,从总体上来看,机器的性能还是提高了。2.Amdahl定律 Amdahl定律是Amdahl于1967年提出来的。他指出,对某一部件采取某种更快的执行方式,所获得的系统性能改进程度取决于这种执行方式被使用的概率或所占用总执行时间的比例。简言之,加快某种部件执行的速度所获得系统性能加速比,受限于该部件在系统中的重要性或使用概率。,若用To表示某部件改进前执行某一任务所用的时间,Te表示改进后执行该任务所用的时间;re表示部件经改进后其功能加快的倍数,fe表示该部件执行占系统总执行时间的百分比;则系统性能(或时间)加速比Sp的公式可表示如下:,显然,当fe为0时,Sp为1,表示被改进或增强功能的设备没有使用;当re时:,【例1.3】若将计算机系统中某一部件的处理速度提高8倍,该部件处理时间占整个系统运行时间的60%。试问该部件的处理速度提高后,整个系统的性能提高了多少?解:根据题意,re=8,fe=60%,则,图1.5 Sp-fe曲线,若以Sp为纵坐标,fe为横坐标,对不同的re,可画出函数:Sp=f(fe)的曲线,如图1.5所示。,【例1.4】假设某程序中,求浮点数平方根FPSQR操作占整个程序执行时间的20%,而所有浮点运算指令FP操作占整个程序执行时间的50%。现用两种措施来提高计算机系统的性能,一种是采用FPSQR硬件,可使FPSQR操作的速度提高10倍;另一种是使所有浮点运算指令的速度提高2倍。试比较两种改进方案。解:在两种实施方案下,re分别是10和2;fe分别是20%和50%,使用加速比Sp的公式:,通过计算可以看出,使采用“提高FP指令的速度”,要比“FPSQR硬件”方案好一些。,1.4.2 CPU性能分析,在大多数计算机中,时钟周期用TC表示,单位为ns。对于一个有IN条指令的程序来说,执行时间可TCPU来表示,则:TCPU=INCPITC 其中CPI表示执行一条指令所需要的平均时钟周期数:,IN表示程序中指令的总数,Ii表示第i类指令在程序中执行的次数,CPIi表示执行一条第i类指令所需要的平均时钟周期数,n为程序中所有指令的种类数。,上述CPI还可以表示为:,n,i=1,【例1.5】假设某标量计算机使用的时钟频率为40MHz,在执行一个典型的测试程序时,所测到的指令类型、指令的条数以及所用时钟周期数如表1.3所示。试求执行该程序时的平均时钟周期数CPI和总的CPU执行时间。解:根据题意 Tc=1/(40106)=25ns,TCPU=CPIINTC=1.8510000025=4625000ns=4.625ms,1.4.3 MIPS与MFLOPS指标,除了上述性能加速比Sp和平均时钟周期数CPI之外,在衡量计算机的运算速度时常用的还有MIPS和MFLOPS指标。1.基本公式(1)MIPS MIPS表示每秒百万条指令,用来衡量标量处理机定点运算的速度。对于一个给定的程序,MIPS可表示为:,式中TE表示程序执行时间;RC表示时钟速率,是时钟周期TC的倒数。根据这一定义,上述例1.6中处理机的MIPS值为:,(2)MFLOPS MFLOPS表示每秒百万条浮点运算指令,用来衡量浮点处理机的运算速度。对于一个给定的程序,MFLOPS可表示为:,式中IFN表示程序中浮点运算的次数(即指令的条数),TE表示程序执行时间。在MFLOPS和MIPS的量值之间没有直接的联系和统一的标准,但是人们认为在一般标量机上进行一次浮点运算需要25条指令,取平均值3,故1MFLOPS3MIPS。,2.基准测试程序 为了较好地反映计算机系统的性能,常用不同层次的基准应用程序(Bebchmark)来评价系统的性能,主要有以下几种。(1)采用实际应用程序根据不同的被测系统,可选用不同的实际测试程序。例如C语言编译程序、TeX文本处理程序、CAD工具软件Spice等。(2)采用核心程序是从实际运行的程序中抽出少量关键性的循环程序段,以此测试和评估计算机系统的性能,例如livermore 24 Loops、Linpack等。(3)合成测试程序 类似于核心程序,它是考虑到各种操作和程序的比例而专门编写的,比较流行的有Whetstone和Dhrystone。其中Whetstone是由整型运算和浮点运算混合组成,包括超越函数、条件转移和函数调用等;Dhrystone主要是有关的整型运算,包括字符串及数组处理等。,(4)小测试程序 通常测试程序代码在100行以下,运行结果可以预知,例如Sieve of Erastosthenes、Puzzle、Quicksort等程序。(5)SPEC测试程序 为了对计算机系统有一个比较公正的评价,1988年起,美国HP、DEC、MIPS、SUN等公司发起成立了一个系统性能评价合作团体(SPEC组织),用一组实用程序和相应输入来评价计算机系统的性能。典型测试程序主要有以下10个:GCC、Espresso、Spice2g6、DODUC、NASA7、Li、Eqntott、Matrix300、FPPPP、TOMCATV。其中GCC、Espresso、Li、Eqntott是用C语言编写,进行整型运算;其余是用FORTRAN语言编写,进行浮点运算。测试结果用SPEC mark分值表示,其值越大越好。1 SPEC mark约相当于0.20.3MFLOPS。测试程序进一步分为整型SPECint和浮点SPECfp。与之类似,还有Perfect俱乐部的一组称为Perfect Club的典型测试程序。,1.4.4 性能测试结果的统计与比较,1.性能测试结果的统计 关于计算机系统性能的评价,通常有峰值性能(Peak performance)和持续性能(Sustained performance)两个标准。表示持续性能的主要有算术平均值、几何平均值和调和平均值。(1)算术平均值 设有n个测试程序,其中第i个程序的执行速率用Ri表示,执行周期用Ti 表示,则算术平均值Am可表示为:,若用执行时间表示性能,则:,如果考虑不同的程序在总的任务中所占的比例不同,比如程序1占20%,程序2占40%等,那么可以用权因子予以表述,其权分别为0.2和0.4。若用Wi表示权因子,则加权平均值可表示为:,(2)调和平均值设调和平均值用Hm表示,则,加权调和平均值可表示为:,(3)几何平均值设几何平均值用Gm表示,则,加权几何平均值可表示为:,采用Gm表示计算机系统的性能时有一个很好的特性:,在以上三种表示中,由于几何平均比值与比的几何平均值相等,因此有时使用Gm较为方便。,【例1.6】已知A、B、C三台计算机执行4个程序所用的时间如表1.4所示。假设每一个程序都有108条指令,试计算三台计算机执行每一个程序时的MIPS值,并用Am、Bm、Hm表示每一台计算机的性能。,解:使用公式 可求出MIPS值,如表1.5所示;Am、Hm、Gm的值如表1.6所示。,计算机系统结构的演变过程 软件对计算机系统结构发展的影响问答题 应用需求对计算机系统结构发展的影响 器件对计算机系统结构发展的影响 算法对计算机系统结构发展的影响,1.5 计算机系统结构的发展过程,1.5.1 计算机系统结构的演变过程,早期的计算机是以运算器为中心的体系结构。以后50多年逐步演变成以存储器为中心,并采用流水线、多处理器、多处理机的并行处理技术,使其功能得到不断地提高。按其规模,相继出现了小型机、中型机、大型机、巨型机、微型机,以后又演变出超级小型机、小巨型机、工程工作站以及嵌入式微程序控制器等。按其结构,相继出现了流水线计算机、向量机、并行多处理机以及非冯.诺依曼的数据流机、归约机和人工智能推理机等;目前,随着计算机网络和工业控制的发展,各种专用计算机层出不穷。1.以运算器为中心的体系结构早期的计算机主要是以运算器为中心,所有的输入输出都通过运算器来进行,其示意如图1.6所示,,图1.6 以运算器为中心的体系结构,以后计算机有了很大的发展,可概括为两个方面。一种是改进的方法,即保留冯.诺依曼的“存储程序”思想,在体系结构和实现方法上进行改进。另一种是革命的方法,发展非冯.诺依曼计算机。在改进冯.诺依曼计算机的过程中,产生了以存储器为中心的体系结构,如图1.7 所示。改进的思想和方法可归纳如下:,2.单CPU系统结构的演变,图1.7 以存储器为中心的体系结构,增加新的数据表示形式,比如浮点数、字符串、十进制等,采用虚拟存储器,引入堆栈,以提高不同类型数据的处理能力,支持高级语言编程以及其中的过程调用、递归运算及表达式求值等操作。采用变址寄存器,提供多种间接寻址方式,以方便对结构化数据对象的访问与处理。大量使用通用寄存器,增设高速缓冲存储器Cache,以减少访问主存储器的次数,缓解CPU与主存之间数据的频繁传送。采用自定义数据,由数据标识符表明CPU进行何种操作,以减少指令的类型和条数,方便程序设计。使程序/数据存储器独立设置,采用多体交叉存储器和无冲突并行访问技术,以提高CPU访问主存的带宽与速度。采用多功能部件,以支持流水线技术,加快指令处理速度,提高MIPS/MFLOPS速率。,3.并行处理技术 即发展多处理器和以并行计算为基础的并行处理技术,从而出现了阵列机和多处理机系统;以后,随着计算机网络的发展,人们又在发展各种适应于网络环境的计算机,以便更大范围地实现并行处理与资源共享。采用多处理器,以支持流水线和并行处理技术,加快指令的执行和数据处理的速度,比如产生了针对向量运算的向量机、脉动阵列机等。采用多个处理机,构成并行处理机系统,比如设置浮点运算协处理机、I/O处理机等,以提高整机的数据处理能力和I/O速率;在此基础上,发展为多个处理机的并行处理机系统。随着计算机网络的发展,各种计算机都配置了调制解调器,以便联网,以实现更大范围的多机并行处理和资源共享。,4.非冯.诺依曼计算机 冯.诺依曼计算机是一种控制驱动方式。随着科学技术的发展,人们也在寻求其它驱动方式。于是,产生了数据驱动的数据流机、需求驱动的归约机。为了使计算机能够理解人们的自然语言,具有视觉能力,识别景物;能够自主学习,并进行知识的积累与重构,于是产生了人工智能计算机的研究。这类计算机不遵循或者不完全遵循“存储程序”的思想,因此称为非冯.诺依曼计算机。,软件对计算机系统结构发展的影响问答题,在计算机硬件和软件的发展过程中,人们希望原有的软件能够继续使用;对于两种不同的计算机,希望一台计算机兼容另一台计算机的功能。于是,导致了模拟与仿真技术、系列机、兼容机以及统一高级语言标准的出现。这些,都影响到计算机系统结构的变化与发展。1.模拟与仿真 为了在一台计算机上实现另一台计算机的功能,模拟和仿真技术成 为主要途径。(1)模拟 所谓“模拟”是用软件的方法在一台计算机上实现另一台计算机的功能。比如在A机上实现B机的指令系统,可用解释的方法来实现。就是说,对于B机上的一条指令,在A机上用一段程序予以解释和执行。这种用已有的机器语言程序进行解释和执行,以此实现软件移植的方法称为模拟。A机通常称为宿主机;因为B机实际上不一定存在,因此称为虚拟机。,(2)仿真 所谓仿真,是当宿主机采用微程序控制器时,通过宿主机上的微程序来实现虚拟机指令系统中一条指令的功能。也就是说,通过A机上的一段微程序,来实现B机上一条指令的功能。这时,A机称为宿主机,B机称为目标机。由于在A机中,微程序存放在微程序控制器中,是硬件(固件)的一部分,因此其速度比纯软件的模拟方法快。但是,微程序控制器依赖于计算机的系统结构,设计起来较为复杂,因此常把仿真与模拟方法结合起来使用。2.系列机与兼容机(1)系列机的概念 系列机一般是按同一系统结构而生产的一系列计算机。这些计算机在性能参数上有所不同,但是具有相同的概念性结构和物理属性,系统软件在不同档次的计算机上都可以使用。也就是说,在设计和制造时采用统一的机器语言、数据表示和概念性结构,实现了系统软件在不同档次计算机上的可移植性。例如IBM 360、370系列机,DEC公司的PDP-11、VAX-11、Intel公司的80 x86、Motorola公司的680 x0以及我国的银河等系列机。,在一个系列中,又有许多不同型号的计算机,例如,在IBM 370包含有115,125,135,145,158,168等型号的计算机,其性能是由低到高。但是机器语言级的程序员所看到的概念性结构和功能属性是一样的,如图1.8所示。,图1.8 IBM 370系列机的概念性结构,都是由中央处理器/主存-通道-设备控制器-外围设备四级组成。(2)系列机的实现 于系列机的生产,要预先确定一种系统结构,即软件与硬件之间的界面。然后进行系统软件的设计和采用不同的组成方式和物理实现的技术,以生产出不同档次的计算机。比如,各档次的指令系统相同,但是对指令的分析与执行不一定相同;各档次的字长可能都定义为32位,但在不同档次或型号的机器中,数据通路的宽度不一定相同,可能是8位,16位,32位或者64位等。在输入输出方面,可采用不同的通道方式。这些,对程序员来说,往往是透明的。,由于在系列机中,机器语言级的程序员或编译程序的设计者所看到的概念性结构与功能属性是一样的,即有相同的指令系统、数据表示和外特性。因此为某一档次的计算机设计的软件,可容易地移植到其它档次的机器上。这样,可较好地解决硬件技术发展快,而软件设计周期长的矛盾,做到竖直(即上下)兼容和横向(即左右)兼容。(3)存在的问题 它要保证软件的兼容性,要求系统结构不能改变,可能影响了计算机系统结构的发展。随着计算机硬件技术和器件性能的不断提高,软件的兼容性受到了一定的冲击。人们对于软件的兼容性已不再有完全兼容的苛刻要求。同一系列内的软件一般可以做到向上(高档)兼容,但是向下(低档)兼容就不一定了。,(4)兼容机 兼容机的思想与系列机基本一致,包括软件兼容和硬件兼容。它主要是一些后起的生产厂商为了使自己的产品能与大公司或名牌产品匹敌,或者能够运行名牌产品的软件,以便占领市场,而采取的一种研发方式。最早推出兼容机的是Amdahl公司,它照搬IBM 370的系统结构,以便充分利用IBM 370的软件,但又采用了新的组成、器件和实现方式,成功地研制成比IBM 370的性能价格比更好的Amdahl 470/480等计算机。例如1981年IBM公司推出第一台IBM PC机以后,世界上已有成百上千种兼容机。如今的台式个人计算机,绝大多数可谓IBM PC机的兼容机。又如我国的长城0520兼容IBM PC机,但它具备汉字处理能力,因而功能增强,市场竞争力增强。如今我国的“联想”、“金长城”、“TCL”等微型机,基本上属于在系统结构上进行了改进的个人兼容机。严格说来,硬件和软件完全兼容的兼容机很少,因为它可能成为某公司的仿制品,而引起官司。当然,也有一些兼容机只是实现了功能上的兼容,其系统结构可能有很大的差别。,3.统一高级语言标准 软件移植包括系统软件和应用软件两个方面。如果能用一种可以满足各种需要的通用高级语言编写用户应用程序和系统程序,那么软件可移植性的问题也就解决了。因此,人们希望能有一种与机器型号无关的语言标准,以提供在不同硬件平台、不同操作系统之间的可移植性。但是,实现起来是很困难的。因为它不仅是一种语言标准,而实质上要成为系统结构的标准。目前的高级语言程序可以在不同的机器上运行,主要是编译程序填补了不同计算机在系统结构上的差异。模拟与仿真为不同厂商不同型号的计算机软件的可移植性提供了一种方法。但是,它不能从根本上解决所有程序的可移植性,于是导致了所谓开放系统(Open system)的出现。首先是由国际标准化组织(ISO)于1978年提出了这一概念,以后许多国际组织对其含义进行了不同的解释,但是没有一个为大家所认可的定义。为了便于理解和交流,一些书中把它定义为:是一种独立于厂商,遵循有关国际标准而建立的,且具有系统可移植性、交互操作性,从而允许用户自主选择具体实现技术和多厂商产品的系统集成技术的系统。,另外,开放系统还为系统的档次皆适宜性、规模可扩展性提供了条件,同一应用软件可以在某一开放系统的所有系列产品上运行,从个人机、工作站到小型机、中型机和大型机,乃至巨型机。为了达到上述目标,就需要优选硬件和软件平台,对编程接口、人机接口、通信接口等,建立统一的规范、协议和标准。目前采用的硬件抽象层技术,是一种硬件系统和独立的操作系统之间的二进制接口。使用硬件抽象层,可以将标准的操作系统,比如UNIX的标准POSIX,用到不同的硬件平台上去。这样,只要掌握了硬件抽象层技术,用户就可以开发具有独立版权的开放系统。通过开放系统的建立,一方面可以实现应用软件的跨平台可移植性,另一方面将促进系统结构的发展。,应用需求对计算机系统结构发展的影响,1.应用需求对计算机系统结构的影响 正是由于社会上的应用需求,产生了第一台电子计算机。同时,也正是应用需求,一直在推动着计算机的发展。为了满足应用需求对性能的需要,计算机的系统结构一直处于发展和变化之中,主要表现在运算速度、存储器容量和I/O吞吐率等方面。计算机应用从早期的科学计算,发展到今天的数据处理、信息处理、知识处理、智能处理以及工业生产中的自动控制、邮电通信中的信号传输,又通过网络服务于千家万户。为了满足各方面的需求,计算机的系统结构不得不在发生变化,比如主存容量每年增长(1.52)%,地址每年增加12位。为了满足科学计算和大量数据信息的处理,计算机由小型机发展到中型机、大型机乃至巨型机,在系统结构上产生了浮点运算器、阵列机、并行处理机以及各种多处理机系统等;,为了满足工业自动化控制、信号传输与通信的需要,计算机的运算速度、I/O吞吐量在大幅度地提高,产生了包括I/O处理机在内的各种专用计算机;为了实现智能化的控制与管理,出现了模糊处理机和模糊存储器;为了适应智能仪器仪表的发展,不同结构的嵌入式计算机芯片也就大量地涌现了出来。2.选择合理的性能价格比 为了满足不同领域中的特殊需求,需要为之设计高效率系统结构的计算机。主要的应用领域有:高结构化的数值运算:流体力学、气象模型、有限元分析等;非结构化的数值运算:蒙特卡洛模拟、稀疏矩阵等;实时多因素处理:语音识别、图形图像处理、计算机视觉等;大容量与高I/O密度的处理:数据库系统、事务处理、大容量交换机等;人工智能:面向知识系统、推理系统、自学习系统、智能管理与控制等。如果让一台计算机具有上述所有的功能,可以说,很好。但是它将非常庞大,甚至不可能实现。一是因为成本太高,以至用户无法接受。二是使用效率不高,浪费很大。因此,最好能把专用系统结构与通用系统结构结合起