1,1-3 计算机系统的软硬取舍、性能评测及定量设计原理,基本内容: 软、硬取舍的基本原则 计算机系统的性能评测 计算机系统的定量设计原理 计算机系统设计者的主要任务 计算机系统的设计思路 计算机系统的设计步骤,2,计算机系统的软、硬件功能分配,,,,,,,发展,不可编程,目前计算机,最少硬件,软件,硬件,软 硬 件 比 例,3,控制流程的三种实现方法,全硬件、软硬件结合、全软件 逻辑上等价 硬件实现:速度快、成本高;灵活性差、占用内存少 软件实现:速度慢、复制费用低;灵活性好、占用内存多、易设计、可改性强、适应性强、设计周期短; 发展趋势 硬件实现的比例越来越高 硬件所占的成本越来越低,4,软硬件实现的优缺点,5,计算机系统的软、硬件成本变化,,,,,,,,,,七十年代,硬件,软件,成本,年代,6,软硬取舍的基本原则,很高的性能价格比 设:D为研制设计费用,M为重复生产费用 h为硬件,s为软件 则: 设C为该功能在软件实现时需重新设计的次数; R:存储介质上出现的次数; V:生产的台数; 则硬件的费用: 软件的费用:,7,软硬取舍的基本原则(续),则只有: 用硬件实现才是适宜的。
将上述带入 : 可见:只有在C和R的值较大时,才成立 由于: 则: 因为:C<100 所以V值越大,上式成立即产量大8,软硬取舍的基本原则(续),考虑到准备采用和可能采用的组成技术,使它尽可能不要过多或不合理地限制各种组成、实现技术的采用; 不能仅从“硬”的角度去考虑如何便于应用组成技术的成果和发挥器件技术的进展,还应从“软”的角度把为编译和操作系统的实现,以至高级语言程序的设计提供更多更好的硬件支持放在首位;,9,软硬取舍的基本原则(续),考虑用户的应用领域:专用硬件 设计周期长的硬件不宜采用 常用的功能尽量采用硬件实现 实现功能的价格性能比要低 尽量采用新技术实现超前设计,10,举例1-3-1:,某一计算机用于商业外贸的事务处理,有大量的字符串操作由于这种事务处理很普遍,有较大的市场,故而设计人员决定在下一代此类计算机的CPU中加入字符串操作的功能经测试应用软件调查发现,字符串操作的使用占整个程序运行时间的50%,而增加此功能如用软件(如微程序)实现,则快5倍,增加CPU成本1/5倍;如果用硬件实现,则快100倍,CPU成本增加到5倍问设计人员提出增加此功能是否恰当?是否用软件还是硬件? 设CPU成本占整机成本的1/3。
11,硬件实现,12,软件实现,13,举例1-3-2:,如果上例中,字符串操作功能的使用时间占整个程序运行时间的90%,则情况如何?,14,硬件实现,软件实现,15,计算机系统的评测,性能指标体现在时间和空间 峰值性能:在理想情况下计算机系统可获得的最高理论性能值,它不能反映出系统的实际性能 实际性能(持续性能):只是峰值性能的5%-30%,16,持续性能的表示,算术性能平均值: 调和性能平均值: 几何性能平均值:,17,加权算术平均值: 加权调和平均值: 加权几何平均值:,18,CPU性能公式,CPU的性能取决于三个要素: 时钟频率fc (或时钟周期t); 每条指令所花的时钟周期数CPI; 指令条数IC 一个程序所花的CPU时间(T)可以用两种方式来表示: CPU时间(T)=CPU时钟周期数(CPIIC)*时钟周期长(t),每条指令的平均时钟周期数:,19,计算CPU的程序时间: IC (Instruction Counter):程序执行的总指令条数 CPI (Cycles Per Instruction):平均每条指令的时钟周期 fc:主时钟频率,20,假设系统共有n种指令,第i种指令在程序中出现的次数为Ii, 这样:,21,MIPS(Million Instruction Per Second),22,MFLOPS(Million Floating Point Per Second),23,评测方法,采用实际的应用程序测试 如:C语言的编译程序,CAD应用:Spice 采用核心程序测试 从实际程序中抽出关键部分组合而成 合成测试程序 人为写的核心程序,规模小,结果预知 综合基准测试程序 人为平衡编制基准测试程序,与实际应用差别较大,所测得的性能往往不真实,24,计算机系统的定量设计原理,哈夫曼压缩原理 Amdahl定律 程序访问的局部性规律,25,哈夫曼压缩原理,尽可能加速高概率事件远比加速处理概率很低的事件对性能提高要显著。
26,Amdahl 定律,Make the common case fast 例如:CPU中的加法,溢出情况 这是计算机设计中最重要也最广泛采用的设计准则使经常性事件的处理速度加快能明显提高整个系统的性能27,Amdahl定律(续),系统对某一部件采用某种更快执行方式所能获得的系统性能改进,取决于这种执行方式被使用的频率,或所占总执行时间的比例28,Amdahl定律(续),定义了加速比的大小,29,Amdahl加速比(续),30,例1-3-3,假设将某系统的某一部件的处理速度加快到10倍,但该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少? 解:由题意可知:fe=0.4, re=10,根据Amdahl定律,31,例1-3-4,采用哪种实现技术来求浮点数平方根FPSQR的操作对系统的性能影响较大假设FPSQR操作占整个测试程序执行时间的20% 一种实现方法是采用FPSQR硬件,使FPSQR操作的速度加快到10倍 另一种实现方法是使所有浮点数据指令的速度加快,使FP指令的速度加快到2倍,还假设FP指令占整个执行时间的50%请比较这两种设计方案32,解:分别计算出这两种设计方案所能得到的加速比:,33,性能递减规则 如果仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的效果越小。
推论:如果只针对整个任务的一部分进行优化,那么所获得的加速比不大于1/(1-fe) 一个“好”的计算机系统:具有高性价比的计算机系统是一个带宽平衡的系统,而不是看它的某些部件的性能 Amdahl定律(续),34,CPU性能公式,CPU的性能取决于三个要素: 时钟频率f(或时钟周期t); 每条指令所花的时钟周期数CPI; 指令条数IC 一个程序所花的CPU时间(T)可以用两种方式来表示: CPU时间(T)=CPU时钟周期数(CPIIC)*时钟周期长(t),每条指令的平均时钟周期数:,35,例1-3-5,如果FP操作的比例为25%,FP操作的平均CPI=4.0,其它指令的平均CPI为1.33,FPSQR操作的比例为2%, FPSQR的CPI为20假设有两种设计方案,分别把FPSQR操作的CPI和所有FP操作的CPI减为2试利用CPU性能公式比较这两种设计方案哪一个更好(只改变CPI而时钟频率和指令条数保持不变)36,解:原系统的CPI=25%4+75%1.33=2 方案1(使FPSQR操作的CPI为2)系统 CPI=CPI原-2%(20-2)=2-2%18=1.64 方案2(提高所有FP指令的处理速度)系统 CPI=CPI原-25%(4-2)=2-25%2=1.5 我们也可以根据以下公式计算出方案2系统的CPI CPI= 75%1.33+25%2=1.5 显然,提高所有FP指令处理速度的方案要比提高FPSQR处理速度的方案要好。
方案2的加速比=2/1.5= 1.33,37,假设我们考虑条件分支指令的两种不同设计方法如下: (1) CPU1:通过比较指令设置条件码,然后测试条件码进行分支 (2) CPU2:在分支指令中包括比较过程 在两种CPU中,条件分支指令都占用2个时钟周期而所有其它指令占用1个时钟周期,对于CPU1,执行的指令中分支指令占20%;由于每个分支指令之前都需要有比较指令,因此比较指令也占20%例1-3-6,38,由于CPU1在分支时不需要比较,因此假设它的时钟周期时间比CPU2快1.25倍哪一个CPU更快? 如果CPU1的时钟周期时间仅仅比CPU2快1.1倍,哪一个CPU更快呢? 解:我们不考虑所有系统问题,所以可用CPU性能公式占用2个时钟周期的分支指令占总指令的20%,剩下的指令占用1个时钟周期所以 CPI1 = 0.2 2 + 0.80 1 = 1.2 则CPU性能为: 总CPU时间1 = IC 1.2 时钟周期1,39,根据假设,有: 时钟周期2 = 1.25 时钟周期1 在CPU2中没有独立的比较指令,所以CPU2的程序量为CPU1的80%,分支指令的比例为: 20%/80% = 25% 这些分支指令占用2个时钟周期,而剩下的75%的指令占用1个时钟周期,因此: CPI2= 0.25 2 + 0.75 1 = 1.25 因为CPU2不执行比较,故: IC2= 0.8 IC1,40,因此CPU2性能为: 总CPU时间2 = IC2 CPI2 时钟周期2 = 0.8 IC1 1.25 (1.25 时钟周期1) = 1.25 IC1 时钟周期1 在这些假设之下,尽管CPU2执行指令条数较少,CPU1因为有着更短的时钟周期,所以比CPU2快。
41,如果CPU1的时钟周期时间仅仅比CPU2快1.1倍,则 时钟周期2= 1.10 时钟周期1 CPU2的性能为: 总CPU时间2 = IC2 CPI2 时钟周期2 = 0.8 IC1 1.25 (1.10 时钟周期1) = 1.10 IC1 时钟周期1 因此CPU2由于执行更少指令条数,比CPU1运行更快42,程序访问的局部性规律,局部性分时间上的局部性和空间上的局部性 时间局部性:程序中近期被访问的信息项很可能马上将被再次访问 空间局部性:指那些在访问地址上相邻近的信息项很可能会被一起访问 存储器体系的构成就是以访问的局部性原理为基础的43,计算机系统设计者的主要任务,满足用户对功能上的要求以及相应的价格性能要求 满足功能要求的基础上,进行优化设计 设计应能适应日后的发展趋势,44,硬件与软件的发展,硬件: 晶体管数: 增加25%/年, 三年一倍 DRAM的密度: 增加60%/年, 二年三倍 访存周期: 减少33%/十年 硬盘密度: 增加25%/年 访问时间: 减少33%/十年 软件: 程序空间: 增加1.52位/年 地址: 增加0.51位/年,45,计算机系统设计思路,由上往下(Top-down) 由下往上(Bottom-up) 由中间开始(Middle-out),46,由上往下(Top-down),设计过程:由上向下 面向应用的数学模型 面向应用的高级语言 面向这种应用的操作系统 面向操作系统和高级语言的机器语言 面向机器语言的微指令系统和硬件实现 应用场合:专用计算机的设计(早期计算机的设计) 特点:对于所面向的应用领域,性能和性能价格比很高,应用对象变了,难以适应。
随着通用计算机价格降低,目前已经很少采用,47,48,由下往上(Bottom-up),设计过程: 根据当时的器件水平,设计微程序机器级和传统机器级 根据不同的应用领域设计多种操作系统、汇编语言、高级语言编译器等 最后设计面向应用的虚拟机器级 应用场合:在计算机早期设计中(6070年代)广为采用 特点: 容易使软件和硬件脱节 软件被动,某些性能指标不确切 整个计算机系统的效率降低49,,由 下 往 上 设 计,50,由中间开始(Middle-out),设计过程: 首先定义软硬件的分界面,包括:指令系统、存储系统、输入输出系统、中断系统、硬件对操作系统和编译系统的支持等 然后各个层次分别进行设计: 软件设计人员设计操作系统、高级语言、汇编语言、应用出现等; 硬件设计人员设计传统机器、微程序、硬联逻辑等 应用场合:用于系列机的设计 特点: 软硬件的分界面在上升; 硬件价格下降,软件价格上升; 软硬件人员结合共同设计,有利于缩短周期 随着硬。