您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 计算机体系结构 ch0 浙江大学 石教英 陈天洲(主讲)
计算机体系结构第1周第1节课授课教师:陈天洲计算机系统结构------定量设计方法陈天洲Tzchen@cs.zju.edu.cnAddoil.net教材计算机体系结构石教英浙江大学出版社ComputerArchitecture-------AQuantitativeApproach参考书计算机系统结构郑纬民汤志忠清华大学出版社主要特点强调性能价格比定量的设计分析方法主要介绍RISC设计思想和技术强调编译技术对系统结构的影响第一章计算机设计基础第二章指令系统设计第三章CPU设计第四章流水线技术第五章存储器层次结构第六章输入输出系统第七章网络并行计算机系统第八章多处理机系统主要内容第一章计算机设计基础1.1计算机系统结构设计的重要性1.2计算机设计的任务1.3实现技术及计算机应用的发展趋势1.4计算机定量设计原则1.5性能测量与分析报告1.6计算机的价格构成及发展趋势1.1计算机系统结构设计的重要性一.计算机的发展历史111946~1954电子管、继电器PC和累加器驱动CPU,定点运算221954~1965晶体管、磁性存储器浮点运算,I/O处理机,多路存储器存取331965~1974SSI/MSI微程序设计,流水线,Cache441974~1990VSI/VLSI,半导体存储器多处理机,向量超级计算机551991~ULSI/VHSIC,高密度封装技术大规模并行计算,可扩展系统结构二.计算机飞速发展的原因前25年:制造计算机的技术(器件技术)计算机设计技术(系统结构)70年代小型机和大型机占优势70年代末微处理器发展迅速(快速利用IC成果)软件变化汇编程序设计几乎不用了标准OS出现80年代中期新的RISC结构出现性能每年提高50%系统结构对计算机发展的作用日益增大快速增长的结果:*对用户来说,计算机的功能增强1993年POWER-2高端工作站1988年的CRAY-MP*基于微处理器的计算机占优势,覆盖了计算机设计的所有范围PC、工作站成主要产品小型机(门阵列)微处理器的服务器大型机微处理器组成的多处理器机超级计算机微处理器(MPP)三.计算机设计的两大发展趋势强调系统结构的革新充分有效地利用技术进步(器件)1.2计算机设计的任务确定用户的目标(需求功能,价格,性能)确定计算机的属性(计算机系统结构)指令集设计(程序员可见的指令集,软硬件界面)组成设计(存储系统,总线结构,CPU内部设计)硬件设计(详细逻辑设计,IC设计,封装,电源,冷却)设计优化在一定价格限度下追求性能最优(性能/价格比)可靠性,容错性(事务处理)编译和OS优化实现技术及机器应用的发展趋势(性能价格)计算机功能需求应用领域特殊目的-科学计算通用目的-商业应用软件兼容级别高层语言兼容目标码或二进制兼容操作系统需求地址空间大小存储系统管理标准1.3实现技术和计算机应用的发展趋势一.计算机应用的发展趋势*程序及数据所需的存储容量日益增加1.5~2倍/年地址位数:0.5~1bit/年*高级语言取代汇编语言编译器成为用户和机器的界面,作用日趋重要完成新的功能提高程序运行效率IC逻辑技术–晶体管密度50%/年约4倍/3年半导体DRAM–密度60%/年约4倍/3年–访问周期1/3每10年磁盘技术–密度50%/年约4倍/3年–访问周期1/3每10年成本下降速度==密度提高速度二.实现技术的三大发展趋势离散性设计时应采用机器投放市场时的技术,这样的产品才会有价格性能优势1.4计算机的定量设计原则一.高频事件高速处理(MakeTheCommonCaseFast)*提高高频事件的执行速度,有助于提高整体性能*高频事件往往是简单事件,更易于提高速度例1.常用指令用硬件实现,复杂杂指令用软件实现例2.优先考虑不溢出的情况高频事件尽量高速低频事件保证正确?二.Amdahl定律Speedup=提高部件性能后计算机的整机性能原计算机的整机性能=整个任务在原计算机上的执行时间整个任务在部件性能改进后的计算机上的执行时间=ToldTnew(1)[例]春游交通工具步行自行车跑车出租车赛车速度(km/h)4102050200相对加速比12.5512.550后段用时(h)5210.40.1全程用时(h)6321.41.1全程加速比(h)1234.35.45=6浙大本部灵隐浙大本部翻山步行1小时经少年宫20公里若已知以下两个条件:(1)F----任务在可改进部件上的执行时间在总执行时间中的百分比(2)S----改进后部件性能提高的倍数(部件性能加速比)ToldTnewSpeedup==1(1-F)+FS(2)改进前1.系统整体性能的提高有一极限值Speedup=11-F2.指明了设计原则:按各部分所占的时间比例来分配资源3.指出了两种改进设计提高性能的方法:*优先考虑高频事件,使之尽量快速实现*减小(1-F),进一步提高高频事件的使用频度4.给出了定量比较不同设计方案的方法Amdahl定律的作用课后习题1.2[例1]软硬件实现的选择已知某商用计算机拟增加字符串操作功能.若用软件实现,与无字符串操作相比,速度提高4倍,CPU成本提高1/5倍;若用硬件实现,则速度是原来的100倍,CPU成本是原来的5倍.由实验测得,字符串操作占总运行时间的50%.CPU成本约占整机成本的1/3.你选用哪种设计方案?软件方法S=1(1-50%)+50%5=1.66C=2/3+1/3*(1+1/5)=1.07C/S=1.07/1.66=0.64硬件方法S=1(1-50%)+50%100=1.98C=2/3+1/3*5=2.33C/S=1.07/1.66=1.18[例2].FPSQRT的实现方法比较已知某一基准测试程序中FPSQRT操作占20%的运行时间.一种实现方法是引入FPSQRT硬件,它能使运算速度提高9倍;另一种方法是把所有浮点操作的速度提高到原来的2倍.已知运行时间的50%是在执行浮点操作,问哪种方法更好.1SpeedupFPSQRT==1.22(1-0.2)+0.2/101SpeedupFP==1.33(1-0.5)+0.5/2?三.CPU性能计算公式CPUtime=程序执行所用的CPU时钟周期数*时钟周期(CC)=程序执行所用的CPU时钟周期数/时钟频率(CR)(1)若已知程序动态执行的指令条数(IC),则可得:程序执行所用的CPU时钟周期数平均指令执行时钟周期数(CPI)=程序动态执行的指令总条数由此可得公式的另一种表示方式:CPUtime=IC*CPI*CC(2)=IC*CPI/CRCPUtime计算公式的意义:1.CPU性能依赖于三个参量:IC,CPI,CC;2.说明改进CPU性能的三种途径.尽管同时缩小三个参数是不可能的,而且改变其中的一个都可能因此影响其他两个参量,但改变这三个参数的技术途径是独立的:CC-----硬件和组成技术CPI-----组成和指令集系统结构IC-----指令集系统结构和编译技术若已知每种指令执行所需的时钟周期数(CPIi),和每种指令的动态执行次数(ICi),则可得CPUtime的第三种表示形式:nCPUtime=(CPIi×ICi)×CC(3)i=1优点在Amdahl定律中,F的计算是很困难的,而统计IC或测量CPI却相对容易得多.[例1]计算CPUtime已知某计算机的指令使用频度和各类指令的CPI如下:操作频率时钟周期数ALU操作43%1Loads21%2Stores12%2Branch24%2CPI=43%×1+21%×2+12%×2+24%×2=1.57CPUtime=IC×1.57×CC[例2]FPSQRT的实现方法比较已知测量数据如下:FP操作指令的使用频度=25%,FP指令的平均CPI=4.0,其他指令的平均CPI=1.33,FPSQRT的使用频度=2%,FPSQRT的CPI=20.一种方法是设法把FPSQRT的CPI减少到2;另一种方法是使所有FP指令的平均CPI减少到2.问哪种方案更好?原CPI=(4×25%)+(1.33×75%)=2.0新CPIFPQRT=2.0-2%×(20-2)=1.64新CPIFP=(2×25%)+(1.33×75%)=1.5原CPUtime原CPI2.0SpeedupFP====1.33新CPUtime新CPIFP1.5[例3]比较两台机器的条件转移的实现方法机器A:一条比较指令+一条转移条件转移指令频度=20%机器B:一条比较且转移指令CCb=1.25*CCa已知:条件转移指令平均CPI=2,其他指令平均CPI=1问:以CPUtime来衡量,哪台机器的性能更好?CPIa=(20%*2)+(80%*1)=1.2CPUtimea=ICa*1.2*CCa=1.2*ICa*CCa因无比较指令,ICb=0.8*ICa;条件转移频度=20%/80%=25%CPIb=(25%*2)+(75%*1)=1.25CPUtimeb=ICb*1.25*CCb=0.8*ICa*1.25*1.25*CCa=1.25*ICa*CCa1.11.11.1四.局部性原理90/10局部性规则90%的运行时间是花费在执行10%的指令上时间局部性若某一数据被引用,则不久以后它可能被再次引用空间局部性若某一数据被引用,则它附近的数据不久也将被引用代码的局部性特征更明显1.5性能测量与分析报告一.常用性能指标MIPS----百万条指令数/秒指令数ICCRMIPS===执行时间×106IC×CPI×CC×106CPI×106注意1.MIPS与指令集有关,不适于比较不同指令集结构的机器2.不同程序测同一台计算机会得到不同的MIPS值3.MIPS反映的性能可能会与实际情况相反4.不能反映机器的浮点运算能力[例1]MIPS的误导作用设对1.3节例1做编译优化.编译可减少50%的ALU指令,但不减少其它指令.若不考虑其它因素,已知时钟周期是20ns.计算编译优化前后的MIPS值.问优化是否提高了计算机性能?CPI原=1.5750MIPS原==31.851.57×106CPUtime=IC×1.57×20×10-9=31.4×10-9×IC43%×50%×1+57%×2CPI新=1-43%×50%=1.7350MIPS新==28.901.73×106CPUtime=0.785×IC×1.73×20×10-9=27.2×10-9×ICMFLOPS----百万个浮点操作/秒浮点操作次数MFLOPS=执行时间×106可以比较不同机器的浮点运算能力,但有局限性1.MFLOPS不仅和机器有关,也和所用测试程序有关2.不同机器的浮点指令不同3.MFLOPS不仅与整数.浮点操作的比例有关,还和快.慢浮点操作的比例有关响应时间(elapsedtime)----------计算机系统完成某一任务(程序)的时间,包括磁盘访问,存储器访问,输入/输出以及OS开销的时间.[例]在UNIX系统中打time命令得到:101.8U17.2S3:2059%响应时间用户占CPU时间系统开销(U+S)百分比系统性能CPUtime用户CPU时间------CPU真正执行用户代码的时间系统CPU时间------CPU执行OS代码所占用的时间CPU性能系统CPU时间难测的原因:1.不同的机器用不同的OS2.系统CPU时间是由OS自身测量的3.OS系统代码在有些机器上也算用户代码二.测试程序的选择用户工作负载(常用程序组合+OS命令)的执行时间实际程序用户用来解决问题的实际工作程序.尽管不知道在工作负载中所占的比例.如C编译器,文本编辑器等,有输入,输出,参数核心基准测试程序(kernelbenchmark)从实际程序中抽出来的核心代码段,适于独立评价某一方面的性能如LivemoreLoops(浮点循环),Linpac
本文标题:计算机体系结构 ch0 浙江大学 石教英 陈天洲(主讲)
链接地址:https://www.777doc.com/doc-3841894 .html