1/77▲计算机系统结构张晨曦主编2/77▲计算机系统结构的英文是ComputerArchitecture。Architecture本来是用在建筑方面的一个词,其含义是“建筑学、建筑术、建筑样式、构造、结构”等。在计算机领域中,这个词一般被翻译成系统结构或体系结构。课程简介3/77▲本课程主要用于培养抽象思维能力和自顶向下、系统地分析和解决问题的能力。其目标是从总体结构、系统分析这一层次来研究和分析计算机系统的能力;掌握计算机系统结构的基本概念、基本原理、基本结构、基本设计和分析方法,并对计算机系统结构的发展历史和现状有所了解。通过学习本课程,能把在“计算机组成原理”、“操作系统”、“数据结构”、“汇编语言程序设计”等课程中所学的软、硬件知识有机地结合起来,从而建立起计算机系统的完整概念。课程简介4/77▲重点讲述现代大多数计算机都采用的比较成熟的结构、方法和技术等,重点介绍和分析经典的结构和设计思想;本课程强调采用量化的方法来学习和研究计算机系统结构,这种方法使我们能更具体、实际地分析和设计计算机系统结构;强调以并行性开发为主线,讲述从系统结构和组成的不同层次来开发并行性的概念、结构、方法和技术。主要内容包括:计算机系统结构的基本概念,计算机指令集结构设计,流水线技术和向量处理机,指令级并行,存储器层次结构,输入输出系统,多处理机系统。课程简介5/77▲1.1引言1.2计算机系统结构的概念1.3定量分析技术1.4计算机系统结构的发展1.5计算机系统结构中并行性的发展第1章计算机系统结构的基本概念6/77▲1.第一台通用电子计算机诞生于1946年2.计算机技术的飞速发展得益于两个方面计算机制造技术的发展计算机系统结构的创新3.经历了4个发展过程1.1引言7/77▲时间原因每年的性能增长1946年起的25年两种因素都起着主要的作用25%20世纪70年代末-80年代初大规模集成电路和微处理器出现,以集成电路为代表的制造技术的发展约35%20世纪80年代中开始RISC结构的出现,系统结构不断更新和变革,制造技术不断发展50%以上维持了约16年2002年以来3个(见下页)约20%1.1引言8/77▲1.1引言功耗问题(已经很大)。可以进一步有效开发的指令级并行性已经很少。存储器访问速度的提高缓慢。9/77▲1.1引言系统结构的重大转折:从单纯依靠指令级并行转向开发线程级并行和数据级并行。计算机系统结构在计算机的发展中有着极其重要的作用。10/77▲1.计算机系统=硬件/固件+软件2.计算机语言从低级向高级发展高一级语言的语句相对于低一级语言来说功能更强,更便于应用,但又都以低级语言为基础。3.从计算机语言的角度,把计算机系统按功能划分成多级层次结构。每一层以一种语言为特征1.2计算机系统结构的概念1.2.1计算机系统的层次结构第6级:应用语言虚拟机第5级:高级语言虚拟机第4级:汇编语言虚拟机第3级:操作系统虚拟机第2级:机器语言(传统机器级)第1级:微程序机器级软件硬件或固件12/77▲1.2计算机系统结构的概念虚拟机:由软件实现的机器语言实现的两种基本技术翻译:先把N+1级程序全部转换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。解释:每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。解释执行比编译后再执行所花的时间多,但占用的存储空间较少。13/77▲1.2计算机系统结构的概念1.计算机系统结构的经典定义程序员所看到的计算机属性,即概念性结构与功能特性。2.按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。3.透明性在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。1.2.2计算机系统结构的定义14/77▲1.2计算机系统结构的概念4.Amdahl提出的系统结构传统机器语言级程序员所看到的计算机属性。5.广义的系统结构定义:指令集结构、组成、硬件(计算机设计的3个方面)6.对于通用寄存器型机器来说,这些属性主要是指:指令系统包括机器指令的操作类型和格式、指令间的排序和控制机构等。数据表示硬件能直接识别和处理的数据类型。寻址规则包括最小寻址单元、寻址方式及其表示。15/77▲1.2计算机系统结构的概念寄存器定义(包括各种寄存器的定义、数量和使用方式)中断系统(中断的类型和中断响应硬件的功能等)机器工作状态的定义和切换(如管态和目态等)存储系统(主存容量、程序员可用的最大存储容量等)信息保护(包括信息保护方式和硬件对信息保护的支持)16/77▲1.2计算机系统结构的概念I/O结构包括I/O连结方式、处理机/存储器与I/O设备之间数据传送的方式和格式以及I/O操作的状态等计算机系统结构概念的实质:确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。1.2.3计算机组成和计算机实现1.计算机系统结构:计算机系统的软、硬件的界面即机器语言程序员所看到的传统机器级所具有的属性。17/77▲1.2计算机系统结构的概念2.计算机组成:计算机系统结构的逻辑实现包含物理机器级中的数据流和控制流的组成以及逻辑设计等。着眼于:物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。3.计算机实现:计算机组成的物理实现包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。着眼于:器件技术(起主导作用)、微组装技术。18/77▲1.2计算机系统结构的概念一种体系结构可以有多种组成。一种组成可以有多种物理实现。4.系列机由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。例如,IBM公司的IBM370系列,Intel公司的x86系列等。1.2.4计算机系统结构的分类常见的计算机系统结构分类法有两种:Flynn分类法、冯氏分类法19/77▲1.2计算机系统结构的概念1.冯氏分类法用系统的最大并行度对计算机进行分类。最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数。用平面直角坐标系中的一个点代表一个计算机系统,其横坐标表示字宽(n位),纵坐标表示一次能同时处理的字数(m字)。m×n就表示了其最大并行度。2.Flynn分类法按照指令流和数据流的多倍性进行分类。指令流:计算机执行的指令序列。20/77▲1.2计算机系统结构的概念数据流:由指令流调用的数据序列。多倍性:在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目。Flynn分类法把计算机系统的结构分为4类:单指令流单数据流(SISD)单指令流多数据流(SIMD)多指令流单数据流(MISD)多指令流多数据流(MIMD)4类计算机的基本结构IS:指令流,DS:数据流,CS:控制流,CU:控制部件,PU:处理部件,MM和SM:存储器。CUPUMMISCS…PU1PU2PUn…PU1PU2PUn…CU1CU2CUnCS1CS2CSn…PU1PU2PUn…CU1CU2CUnCS1CS2CSnMM1MM2MMm……DSIS1IS2ISnSMDS(c)MISD计算机DS1DS2DSnMM1MM2MMm…SMIS1IS2ISn…(d)MIMD计算机(a)SISD计算机MM1MM2MMm…SMCUDS1DS2DSnIS(b)SIMD计算机CSDS22/77▲4个定量原理:1.以经常性事件为重点对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。优化是指分配更多的资源、达到更高的性能或者分配更多的电能等。1.3定量分析技术1.3.1计算机系统设计的定量原理23/77▲1.3定量分析技术2.Amdahl定律加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。系统性能加速比:加速比=系统性能改进后系统性能改进前总执行时间改进前总执行时间改进后=24/77▲1.3定量分析技术加速比依赖于两个因素可改进比例:在改进前的系统中,可改进部分的执行时间在总的执行时间中所占的比例。它总是小于等于1。例如:一个需运行60秒的程序中有20秒的运算可以加速,那么这个比例就是20/60。部件加速比:可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。一般情况下部件加速比是大于1的。例如:若系统改进后,可改进部分的执行时间是2秒,而改进前其执行时间为5秒,则部件加速比为5/2。25/77▲1.3定量分析技术改进后程序的总执行时间总执行时间改进后=不可改进部分的执行时间+可改进部分改进后的执行时间总执行时间改进后=(1-可改进比例)×总执行时间改进前+=[(1-可改进比例)+]×总执行时间改进前可改进比例部件加速比可改进比例×总执行时间改进前部件加速比26/77▲1.3定量分析技术系统加速比为改进前与改进后总执行时间之比加速比=总执行时间改进前总执行时间改进后=(1-可改进比例)+可改进比例部件加速比127/77▲1.3定量分析技术例1.1将计算机系统中某一功能的处理速度提高到原来的20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?解由题可知,可改进比例=40%=0.4,部件加速比=20根据Amdahl定律可知:采用此提高性能的方法后,能使整个系统的性能提高到原来的1.613倍。总加速比=10.6+0.420=1.61328/77▲1.3定量分析技术例1.2某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的20倍,而系统运行某一程序的整体性能提高到原来的5倍,试计算该程序中浮点操作所占的比例。解由题可知,部件加速比=20,系统加速比=5根据Amdahl定律可知由此可得:可改进比例=84.2%即程序中浮点操作所占的比例为84.2%。20115可改进比例可改进比例29/77▲1.3定量分析技术Amdahl定律:一种性能改进的递减规则如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过1/(1-可改进比例)30/77▲1.3定量分析技术3.CPU性能公式执行一个程序所需的CPU时间CPU时间=执行程序所需的时钟周期数×时钟周期时间其中,时钟周期时间是系统时钟频率的倒数。每条指令执行的平均时钟周期数CPI(CyclesPerInstruction)CPI=执行程序所需的时钟周期数/ICIC:所执行的指令条数程序执行的CPU时间可以写成CPU时间=IC×CPI×时钟周期时间31/77▲1.3定量分析技术CPU的性能取决于3个参数时钟周期时间:取决于硬件实现技术和计算机组成。CPI:取决于计算机组成和指令集结构。IC:取决于指令集结构和编译技术。结论:只要改进任何一个参数,都能提高CPU的性能。不过这些参数都是相互关联的。32/77▲1.3定量分析技术4.程序的局部性原理程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。常用的一个经验规则程序执行时间的90%都是在执行程序中10%的代码。程序的时间局部性程序即将用到的信息很可能就是目前正在使用的信息。程序的空间局部性程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。33/77▲1.3定量分析技术结论:利用程序的局部性原理,可以根据程序最近的访问情况来比较准确地预测将要访问的指令和数据。它是存储层次的基础。34/77▲1.3定量分析技术1.执行时间和吞吐率如何评测一台计算机的性能,与测试者看问题的角度有关。用户关心的是:单个程序的执行时间(执行单个程序所花的时间很少)数据处理中心的管理员关心的是:吞吐率(在单位时间里能够完成的任务很多)1.3.2计算机系统的性能评测