计算机系统结构的基本概念qxye@gucas.ac.cn中科院研究生院工程教育学院叶齐祥写在前面…写在前面…人们越来越多地使用计算机系统…计算机系统不是PC机系统…PC在现有计算机系统中占有很小的一部分…计算机从计算走向“信号处理”、“多媒体”、“工业控制”…我国的计算机系统从起步走向繁荣…写在前面…第1章计算机系统结构的基本概念1.1计算机系统结构1.2计算机系统设计技术1.3系统结构的评价标准1.4计算机系统结构的发展写在前面…为什么学习计算机系统结构?从结构上了解计算机提高软件/硬件设计的合理度借鉴前人的设计思想1.1计算机系统结构1.1.1计算机系统层次结构1.1.2计算机系统结构定义1.1.3计算机系统结构的组成与实现1.1.4计算机系统结构的分类1.1.1计算机系统层次结构应用语言M6应用程序应用程序信息处理系统高级语言/高级语言机解释(编译)程序运行程序汇编语言M4汇编语言机汇编程序运行程序键盘命令系统源语M3操作员操作系统系统资源机器指令系统机器语言机中央处理机机器语言程序机器指令时序微程序控制微程序机寄存器传送门时序电路硬联逻辑硬件逻辑逻辑线路内核用户高级语言程序员汇编程序员操作员机器语言程序员逻辑程序员硬件维护人员M0,M1是机器的核心部分,某些机器不用微程序解释执行指令,直接用硬件逻辑实现机器指令系统,M0和M1就合而为一。有些机器用毫微程序实现微程序,则M0还可以划分为两级。M2机器语言机器用指令系统编写程序,是机器语言程序员的工作。微机原理的指令系统编程为这一级。1.1.1计算机系统层次结构M3操作系统机器该级上支持两类指令;机器语言指令,操作系统指令(打开文件,读/写文件,关闭文件等)。操作系统是运行在第二级上的解释程序。M4汇编语言机器使用汇编语言编程,先译成M3或M2的语言后执行。1.1.1计算机系统层次结构M5高级语言机器高级语言程序先译成M4或M3级语言而后执行。解释执行只是边译边执行。M6应用语言机器这类语言程序大多是用高级语言编写的语言程序实现的,用户不必是计算机专业人员,仅用终端键盘、鼠标器等发出一些命令进行操作。例用FoxPro,DBASE等编写的管理系统控制系统等。1.1.1计算机系统层次结构从学科领域来划分第0和第1级属于计算机组成与系统结构第2至第4级是系统软件第5级是应用软件它们之间仍有交叉第1级涉及汇编语言程序设计的内容第2级与计算机系统结构密切相关在特殊的计算机系统中,有些级别可能不存在。1.1.1计算机系统层次结构虚拟机概念在计算机系统的多层次结构中,除第0、1级外,上面四级均为虚拟机。虚拟计算机是指这个计算机只对该级的观察者存在。对某一层次的观察者来说,它只能是通过该层次的语言来了解和使用计算机,至于下层是如何工作和实现的就不必关心了。简而言之,虚拟计算机即是由软件实现的机器。1.1.1计算机系统层次结构从使用语言的角度上,将计算机系统看成按功能划分的多级层次结构。机器语言汇编语言高级语言应用语言低级高级特点:后者以前者为基础;比前者功能强、使用更方便。1.1.1计算机系统层次结构计算机只能直接识别和执行机器语言。汇编语言是一种符号式程序设计语言。可以想象在使用机器指令的实际机器上出现了用汇编语言作为机器语言的“虚拟”机器。1.1.1计算机系统层次结构翻译(Translation):先用转换程序将高一级机器级上的程序整个地变换成低一级机器级上可运行的等效程序,然后再在低一级机器级上去实现的技术。(先翻译后执行)例:英语翻译解释(Interpretation):在低一级机器级上用它的一串语句或指令来等效高一级机器上的一条语句或指令的功能,通过对高一级机器语言程序中的每条语句或指令逐条解释来实现的技术。(边解释边执行)例:解释一件事1.1.1计算机系统层次结构翻译和解释是语言实现的两种基本技术。一般来说,解释执行比翻译花的时间多,但占用存储空间较少。在多层次结构中,通常第1、2级是用解释方法实现的,而第3级或更高级则用翻译方法实现。1.1.1计算机系统层次结构系统结构定义:计算机系统结构主要研究软硬件功能分配和对软硬件界面的确定。计算机系统由软件、硬件和固件组成,它们在功能上是同等的。同一种功能可以用硬件实现,也可以用软件或固件实现。1.1.2计算机系统结构定义系统结构?1.1.3计算机系统结构组成与实现计算机组成?计算机实现?ComputerArchitecture计算机系统软件、硬件/固件功能分配及其界面的确定。ComputerOrganization计算机系统结构的逻辑实现,包括数据流、控制流组成及逻辑设计。ComputerImplementation计算机组成的物理实现:物理结构器件技术组装技术1.1.3计算机系统结构组成与实现三种常用的分类方法:1.Flynn分类2.冯泽云分类3.Handler分类1.1.4计算机系统结构分类1.弗林(Flynn)分类法1966年由Michael.J.Flynn提出。按照指令流和数据流的多倍性特征对计算机系统进行分类。指令流:机器执行的指令序列。数据流:由指令流调用的数据序列,包括输入数据和中间结果。多倍性:在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数。1.1.4计算机系统结构分类数据流指令流单多单SISDSIMD多MISDMIMD1.1.4计算机系统结构分类四种类型单指令流单数据流SISD(SingleInstructionSingleDatastream);单指令流多数据流SIMD(SingleInstructionMultipleDatastream);多指令流单数据流MISD(MultipleInstructionSingleDatastream);多指令流多数据流MIMD(MultipleInstructionMultipleDatastream)1.1.4计算机系统结构分类SISD:它每次只对一条指令译码,并只对一个操作部件分配数据。典型单处理机,包括:单功能部件处理机:IBM1401,VAX-11多功能部件处理机:IBM360/91,370/168,CDC6600CUPUMMISDSSISD1.1.4计算机系统结构分类PUMMISDS1SIMDCUPUPUDS2DSnMM……1.1.4计算机系统结构分类SIMD:多个PU按一定方式互连,在同一个CU控制下,多个各自的数据完成同一条指令规定的操作;从CU看,指令顺序(串行)执行,从PU看,数据并行执行。并行处理机、阵列处理机、向量处理机、相联处理机、…。数据全并行:ILLIACIV、PEPE、STAR100、TI-ASC、CRAY-1。数据字并位串:STARAN、MPP、DAP。1.1.4计算机系统结构分类MMDSMISDPUIS1CUMM……PUIS2CUPUISnCU…………1.1.4计算机系统结构分类MISD:几条指令对同一个数据进行不同处理,因为它要求系统在指令级上并行,而在数据级上又不并行,这是不太现实的。但现在也有些学者有不同的看法,在有些文献中将超级标量机以及超长指令字计算机等看作是MISD类型。1.1.4计算机系统结构分类MMMIMDPUIS1CUMM……PUIS2CUPUISnCU…………DS1DS2DSn冯泽云分类法1972年美籍华人冯泽云提出。用最大并行度来对计算机系统进行分类。最大并行度:计算机系统在单位时间内能够处理的最大二进制位数。假设同时处理的字宽为n,位宽为m,则最大并行度定义为:Pm=mn1.1.4计算机系统结构分类平均并行度:假设每个时钟周期ti内能同时处理的二进位数为Bi,T个时钟周期内平均并行度定义为:TtBPT1iini表示方法:处理机名(n,m)Pm=等于整数n和m确定的矩形面积。1.1.4计算机系统结构分类四种类型(1)字串位串WSBS(WordSerialandBitSerial)每次只处理一个字中的一位。串行计算机;m=1,n=1;例如:EDVAC(1,1)(2)字串位并WSBP(WordSerialandBitParallel)每次只处理一个字中的n位。传统的单处理机;m=1,n1;例如:Pentium(32,1)1.1.4计算机系统结构分类(3)字并位串WPBS(WordParallelandBitSerial)一次处理m个字中的1位。(位片处理)并行计算机、MPP、相联计算机;m1,n=1;例如:MPP(1,16384),STARAN(1,256),DAP(1,4096)1.1.4计算机系统结构分类(4)字并位并WPBP(WordParallelandBitParallel)一次处理m个字,每个字为n位。全并行计算机;m1,n1;例如:ILLIACIV(64,64),ASC(64,32),PEPE(32,288),Cmmp(16,16)主要缺点:仅考虑了数据的并行性,没有考虑指令、任务、作业的并行。1.1.4计算机系统结构分类3.汉德勒分类法由WolfganHindler于1977年提出,又称为ESC(ErlangeClassificationScheme)分类法。根据并行度和流水线分类,计算机的硬件结构分成三个层次,并分别考虑它们的可并行性和流水处理程度。1.1.4计算机系统结构分类4.其他分类法如从对执行程序或指令的控制方式上分类控制驱动的控制流方式数据驱动的数据流方式需求驱动的规约方式模式驱动的匹配方式1.1.4计算机系统结构分类1.2计算机系统设计技术1.2.1计算机系统设计的定量原理1.2.2计算机系统设计者的主要任务1.2.3系统设计的主要方法1.2.1计算机系统设计定量原理Amdal定律:系统中某一部件改进后使得整个系统的性能的提高与此部件的执行时间占总执行时间的比例有关。加速比=(该进后的性能)/(改进前性能)1.2.1计算机系统设计定量原理Amdal定律:假设:=(可改进部分占用时间)/(改进前任务总时间)=(改进前改进部分占用时间)/(改进后改进部分时间)改进后系统时间:改进后系统加速比:FeSeSeFeFeTTn10SeFeFeTTSnn1101.2.1计算机系统设计定量原理CPU性能公式:CPU时间=CPU时钟周期x时钟周期长度平均时钟周期数:CPI=CPU时钟周期/ICCPU时钟周期数=其中:为指令执行次数CPI=niiiICPI1)(iIICICPIniii1)(1.2.1计算机系统设计定量原理访问的局部性原理程序往往重复使用他刚刚使用过的数据和指令实验表明:一个程序用90%的时间去执行10%的程序代码存储体系的构成就是以访问的局部性原原理为基础的1.2.2计算机设计者的任务1.确定用户对计算机的功能、价格、性能要求应用领域软件兼容层次操作系统需求2.软硬件平衡3.发展潮流和趋势1.2.3计算机系统设计的主要方法1.“自下而上”据用户要求逐级向下设计,下级都能使上一级优化,应用效能必然是好的,适用于专用计算机,不适用于通用计算机。2.“自上而下”只能制成通用机,而后配OS,编译语言,硬软脱节,很难优化软件3.“自中间开始”一般从硬件机器级和操作系统的界面起向两端发展。要求设计人员具有丰富的软、硬件、器件,应用等多方面的知识。应有有效的软件设计环境和开发工具。1.3计算机系统结构的评价1.性能(两个指标)MIPS(Millioninstructionpersecond)MIPS=MFLOPS(Millionfloatingpointoperationspersecond)MFLOPS=6610CPI10时钟频率执行时间指令条数610执行时间浮点操作次数1.3计算机系统结构的评价2.成本一次性开发成本部件成本硬件成本和简单性1.3计算机系统结构的评价评价可以使用性能和成本进行综合评价设计简单效率高的结构比设计复杂效率底的结构竞争力强。1.4计算机系统结构的发展历程一种重要的计算机结构——冯.诺依曼结构输