高培成1/1111.1引言1.计算机性能的高速增长受益于:2.体系结构的重要性3.基于微处理器的系统电路技术的发展体系结构技术的发展第一章计算机体系结构的基本概念高培成2/1111.2.1计算机系统中的层次概念1.计算机系统=软件+硬件/固件2.计算机语言由低级向高级发展高一级语言的语句相对于低级语言功能更强,更便于应用,但又都以低级语言为基础。3.从计算机语言的角度,把计算机系统按功能划分成多级层次结构。1.2计算机体系结构的概念第一章计算机体系结构的基本概念张晨曦刘依3/111第6级:应用语言虚拟机第5级:高级语言虚拟机第4级:汇编语言虚拟机第3级:操作系统虚拟机第2级:机器语言(传统机器级)第1级:微程序机器级软件硬件或固件高培成4/111(1)虚拟机:由软件实现的机器。(2)语言实现的两种基本技术◆翻译:先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。◆解释:每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。解释执行比翻译花的时间多,但存储空间占用较少。1.2计算机体系结构的概念高培成5/1111.2.2计算机体系结构1.计算机体系结构的定义:程序员所看到的计算机的属性,即概念性结构与功能特性。2.按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。3.透明性在计算机技术中,对这种本来是存在的事物或属性,但从某种角度看又好象不存在。1.2计算机体系结构的概念高培成6/1114.Amdahl提出的体系结构:传统机器级的体系结构。即一般所说的机器语言程序员所看到的传统机器级所具有的属性。5.对于通用寄存器型机器,这些属性主要是指:(1)数据表示(硬件能直接辩认和处理的数据类型)(2)寻址规则(包括最小寻址单元、寻址方式及其表示)(3)寄存器定义(包括各种寄存器的定义、数量和使用方式)1.2计算机体系结构的概念高培成7/111(4)指令集(包括机器指令的操作类型和格式、指令间的排序和控制机构等)(5)中断系统(中断的类型和中断响应硬件的功能等)(6)机器工作状态的定义和切换(如管态和目态等)(7)存储系统(主存容量、程序员可用的最大存储容量等)1.2计算机体系结构的概念高培成8/111(8)信息保护(包括信息保护方式和硬件对信息保护的支持)(9)I/O结构(包括I/O连接方式、处理机/存储器与I/O设备间数据传送的方式和格式以及I/O操作的状态等)经典计算机体系结构概念的实质:计算机系统中软硬件界面的确定,其界面之上的是软件的功能,界面之下的是硬件和固件的功能。1.2计算机体系结构的概念高培成9/1111.2.3计算机组成和计算机实现技术1.计算机组成:计算机体系结构的逻辑实现。2.计算机实现:计算机组成的物理实现。一种体系结构可以有多种组成。一种组成可以有多种物理实现。3.系列机(1)系列机在一个厂家内生产的具有相同的体系结构,但具有不同组成和实现的一系列不同型号的机器。1.2计算机体系结构的概念高培成10/1111.3计算机体系结构的发展1.3.1存储程序计算机体系结构及其发展运算器(ALU)控制器存储器输入设备输出设备数据流控制流第一章计算机体系结构的基本概念高培成11/1111.存储程序计算机的主要特点(1)机器以运算器为中心;(2)采用存储程序原理;(3)存储器是按地址访问的、线性编址的空间;(4)控制流由指令流产生;(5)指令由操作码和地址码组成;(6)数据以二进制编码表示,采用二进制运算。1.3计算机体系结构的发展高培成12/111程序控制输入输出方式DMAI/O处理机程序等待程序中断成组传递周期挪用通道外围处理机1.3计算机体系结构的发展高培成13/111复杂指令集计算机(CISC)精简指令集计算机(RISC)(5)指令集结构的发展◆指令集的功能◆指令的地址空间和寻址方式多种灵活的寻址方式。1.3计算机体系结构的发展高培成14/1111.3.2计算机的分代和分型1.计算机到目前为止已经发展了五代这五代计算机分别具有明显的器件、体系结构技术和软件技术的特征。2.计算机可以根据价格分为五个档次:巨型机、大型机、中型机、小型机、微型机1.3计算机体系结构的发展高培成15/1111.3计算机体系结构的发展4.根据当前的计算机应用市场的现状和价格特征,通常把计算机分为服务器、桌面系统和嵌入式计算三大领域。高培成16/1115.新型体系结构的设计(1)合理地增加计算机系统中硬件的功能比例,这种体系结构对操作系统、高级语言甚至应用软件提供更多更好的支持;(2)通过多种途径提高计算机体系结构中的并行性等级,使得凡是能并行计算和处理的问题都能并行计算和处理,使这种体系结构和组成对算法提供更多更好的支持。1.3计算机体系结构的发展高培成17/1111.3.3应用需求的发展1.计算机的设计受两方面因素的影响2.软件技术最重要的发展趋势(1)程序及数据所使用存储器容量的不断增大;(2)编译器的重要性日益突出,逐渐成为用户与计算机的主要界面。计算机现在和未来的使用方法下层的实现技术1.3计算机体系结构的发展高培成18/1113.计算机技术和市场分化成为桌面计算、服务器和嵌入式计算三个部分,这三个不同的领域应用需求的特点对计算机系统设计的影响巨大。桌面计算市场是销售额最大的市场,是对性能价格比要求最为苛刻和敏感的市场。服务器市场对计算机的要求是可用性、大容量和可扩展性。嵌入式计算与解决的应用问题密切相关,需求千差万别。1.3计算机体系结构的发展高培成19/1114.四种实现技术对于当代计算机的发展发挥着非常关键的作用逻辑电路半导体DRAM(动态随机访问存储器)磁盘网络1.3计算机体系结构的发展高培成20/1114.在设计上将面临的问题:微处理器芯片正确性验证复杂性成倍上升.5.从经济角度看问题和从技术角度看问题往往是不同的6.一个计算机体系结构,从产生到消亡,大致需要15~20年的时间。1.3计算机体系结构的发展高培成21/1111.5定量分析技术基础1.5.1计算机性能的评测◆响应时间:从事件开始到结束之间的时间,也称为执行时间。(计算机完成某一任务所花费的全部时间)◆流量:在单位时间内所能完成的工作量。相同点:都认为能够以最短时间完成指定任务的计算机就是最快的。不同点:响应时间针对单任务,而流量针对多任务。第一章计算机体系结构的基本概念高培成22/111用户CPU时间系统CPU时间2.CPU时间CPU工作的时间,不包含I/O等待时间及运行其它程序的时间。1.5定量分析技术基础高培成23/1111.5.3性能设计和评测的基本原则三条基本原则和方法:1.大概率事件优先的原则对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。2.Amdahl定律加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。1.5定量分析技术基础(1)加速比系统加速比依赖于两个因素:可改进比例:可改进部分在原系统计算时间中所占的比例,它总是小于等于1的。例如:一个需运行60秒的程序中有20秒的运算可以加速,那么该比例就是20/60。系统加速比==改进前改进后系统性能系统性能改进后改进前总执行时间总执行时间高培成25/111部件加速比:可改进部分改进以后的性能提高,一般情况下它是大于1的。例如:系统改进后执行程序,其中可改进部分花费2秒的时间,而改进前该部分需花费5秒,则性能提高为5/2。1.5定量分析技术基础总执行时间改进后=(1-可改进比例)总执行时间改进前+=[(1-可改进比例)+]总执行时间改进前总执行时间改进后=不可改进部分的执行时间+可改进部分改进后的执行时间部件加速比总执行时间可改进比例改进前部件加速比可改进比例系统加速比为改进前与改进后总执行时间之比:系统加速比==改进后改进前总执行时间总执行时间部件加速比可改进比例可改进比例)1(1高培成28/1111.2定量知识───3个性能公式Amdahl定律(加快经常性事件原理,P9)eeenonSFFTTS)1(1其中:Sn──全局加速比;To──原执行时间(old);Tn──新执行时间(new);Se──被改进部分的局部加速比;Fe──被改进部分原执行时间占原来总时间的百分比。高培成29/111Amdahl定律的推导eeenoneeeoneeooSFFTTSSFFTTFFTT)1(1)1()1(根据加速比定义,有::操作加快,总时间降为改进之后由于其中部分,间可写为:改进之前程序运行总时高培成30/111Amdahl定律的图形Sn极限2=211eF极限1=111eFFe=Fe2Fe=Fe11.0(设Fe2Fe1)0.01.0Se图1.2Amdahl定律的图形从图1.2可以看出,增大Se和Fe对Sn都有提升作用;但当Fe固定时,一味增大Se对Sn的作用会越来越不显著。高培成31/111每秒百万指令数MIPS与每秒百万浮点数MFLOPS(P11)。,主要用于向量计算机条数每次浮点运算所需指令;,主要用于标量计算机MIPSMFLOPSCPIfCYCLECPIICICTICMIPSe666101010高培成32/111例题选讲(1)例1.1(P10)Amdahl定律公式,已知:Fe=0.4,Se=10,求Sn。它说明局部(40%)的大幅度改进(10倍)对全局的作用要小得多(1.56倍)。例1.2(P10)Amdahl定律公式,已知方案1:Fe1=0.2,Se1=10,求Sn1;已知方案2:Fe2=0.5,Se2=2,求Sn2。它说明大范围的小幅度改进(方案2)效果可能更好。高培成33/111(2)Amdahl定律:性能递减规则如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。推论:如果只针对整个任务的一部分进行优化,那么所获得的加速比不大于1/(1-fe)。(3)一个“好”的计算机系统:具有高性价比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能。1.5定量分析技术基础高培成34/1113.程序的局部性原理程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚包括指令和数据两部分。◆程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。◆程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。1.5定量分析技术基础高培成35/1111.5.4CPU的性能1.将程序执行的时间进行分解(1)计算机工作的时钟频率计算机系统中与实现技术和工艺有关的因素。单位是MHz(f)。(2)总时钟周期数程序执行的cpu时间:CPU时间=总时钟周期数/时钟频率1.5定量分析技术基础高培成36/1112.“指令时钟数”CPI(CyclesPerInstruction)一个与计算机体系结构有关的参数。CPI=总时钟周期数/IC3.程序执行的CPU时间可以写成总CPU时间=CPIIC/时钟频率◆时钟频率:反映了计算机实现技术、生产工艺和计算机组织。IC:程序执行过程中所处理的指令数。1.5定量分析技术基础高培成37/111◆CPI:反映了计算机实现技术、计算机指令集的结构和计算机组织。◆IC:反映了计算机指令集的结构和编译技术。1.5定量分析技术基础高培成38/111CPU性能公式总结CPU的性能取决于三个要素:①时钟频率f(或时钟周期t);②每条指令所花的时钟周期数CPI;③指令条数IC一个程序所花的CPU时间(T)可以用两种方式来表示:CPU时间(T)=CPU时钟周期数(CPI×IC)*时钟周期长(t))f()CPIIC(CPU)T(CPU频率时钟周期数时间每条指令的平均时钟周期数:ICCPUCPI时钟周期数目高培成39/111例1.3如果FP操作的比例为25%,FP操作的平均