高级计算机体系结构(精编)

上传人:1505****484 文档编号:240729137 上传时间:2024-05-03 格式:PPT 页数:170 大小:2.13MB
返回 下载 相关 举报
高级计算机体系结构(精编)_第1页
第1页 / 共170页
高级计算机体系结构(精编)_第2页
第2页 / 共170页
高级计算机体系结构(精编)_第3页
第3页 / 共170页
点击查看更多>>
资源描述
高级计算机体系结构高级计算机体系结构(精精编编)现在的计算机中为什么用二进制?计算机是由电子元器件构成的,二进制最易实现。计算机是由电子元器件构成的,二进制最易实现。冯诺亿曼结构:数据和程序都在存储器中,冯诺亿曼结构:数据和程序都在存储器中,CPU从内存中取指令和数据进行运算并把从内存中取指令和数据进行运算并把结果也放到内存中结果也放到内存中外存储器输入设备输出设备控制器运算器数据线数据线数据线数据线控制线控制线控制线控制线CPUCPU内存2用最少的指令描述一件事情用最少的指令描述一件事情-算法,编译算法,编译提高提高芯芯跳的速度跳的速度-主频主频每拍做更多的事情每拍做更多的事情-体系结构体系结构计算机怎样才能跑得快3第一代到第四代第一代:电子管计算机(第一代:电子管计算机(1946-1958)每秒几千到几万次运算每秒几千到几万次运算冯诺依曼结构冯诺依曼结构第二代:晶体管计算机(第二代:晶体管计算机(1958-1964)每秒几十万次每秒几十万次高级程序语言出现:高级程序语言出现:FORTRAN、COBOL等等IBM7094、CDC1604等等第三代:中小规模集成电路计算机(第三代:中小规模集成电路计算机(1964-1975)每秒几百万次每秒几百万次操作系统逐步成熟、小型机出现操作系统逐步成熟、小型机出现IBM360、PDP11、VAX11第四代:大规模集成电路计算机(第四代:大规模集成电路计算机(1975-)每秒亿次以上每秒亿次以上微处理器出现:微处理器出现:Intel,AMD.4摩尔定律到达尺寸极限后怎么办?会不会有新材料及新器件技术取代会不会有新材料及新器件技术取代CMOS?硅的平台不可能被取代,但硅平台上生长的器件会不断硅的平台不可能被取代,但硅平台上生长的器件会不断改进改进摩尔定律的进一步延续的技术:纳米线技术、碳纳米管摩尔定律的进一步延续的技术:纳米线技术、碳纳米管技术技术一个普及性的技术必须可以工业大规模可制备一个普及性的技术必须可以工业大规模可制备其他任何技术都不具备这个特点其他任何技术都不具备这个特点成为成熟的产业,从高向广发展成为成熟的产业,从高向广发展飞机满天飞了,汽车还遍地跑飞机满天飞了,汽车还遍地跑5摩尔定律与系统结构第一阶段:晶体管不够用第一阶段:晶体管不够用计算机由很多独立芯片构成计算机由很多独立芯片构成计算机结构受限于晶体管数目不够计算机结构受限于晶体管数目不够第二阶段:存储器速度太慢第二阶段:存储器速度太慢集成度提高,微处理器蓬勃发展集成度提高,微处理器蓬勃发展存储容量指数增加,但访存速度增加缓慢存储容量指数增加,但访存速度增加缓慢Cache占多达占多达80%的芯片面积的芯片面积第三阶段:晶体管越来越多而第三阶段:晶体管越来越多而“难难”用用设计验证能力提高与晶体管增加形成剪刀差设计验证能力提高与晶体管增加形成剪刀差功耗问题突出、连线成为主要矛盾功耗问题突出、连线成为主要矛盾不得已向多核发展不得已向多核发展第四阶段:够用就行?第四阶段:够用就行?6CPU发展趋势:高性能,低成本 高性能多核高性能多核CPU正从向千亿次量级向万亿次量级迈进正从向千亿次量级向万亿次量级迈进片上运算能力的增加使带宽问题日益突出片上运算能力的增加使带宽问题日益突出结合一定领域需求的结合一定领域需求的XPU开始盛行,处理器核加向量开始盛行,处理器核加向量处理器(处理器(VPU)和图形处理器()和图形处理器(GPU)等属于这类结)等属于这类结构。构。继功耗问题之后,带宽问题导致第二次结构变革继功耗问题之后,带宽问题导致第二次结构变革功耗问题导致多核结构,带宽问题导致专用核结构功耗问题导致多核结构,带宽问题导致专用核结构为了提高性能而牺牲微处理器的通用性和可编程性为了提高性能而牺牲微处理器的通用性和可编程性7Question?1 多核技术出现原因?2 2个1G的多核 Vs 2G的单核处理器3 编程模型:SIMD vs MIMD?4 虚拟化技术的意义?8主频障碍过去主频的提高一半靠摩尔定律,一半靠结构优化过去主频的提高一半靠摩尔定律,一半靠结构优化如如P3是是10级流水线,级流水线,P4是是20级流水线级流水线流水线很难再细分流水线很难再细分随着晶体管尺寸的缩小,连线延迟成为主要延迟随着晶体管尺寸的缩小,连线延迟成为主要延迟局部线延迟不变(变短了,但也变细了)局部线延迟不变(变短了,但也变细了)全局的连线延迟还会不断变长(芯片面积不变)全局的连线延迟还会不断变长(芯片面积不变)高主频的复杂设计正在终结高主频的复杂设计正在终结强调:局部化、流水化、异步、自定时强调:局部化、流水化、异步、自定时9复杂度障碍晶体管数目的指数增加与设计队伍的增加形成剪刀差晶体管数目的指数增加与设计队伍的增加形成剪刀差设计能力、验证能力设计能力、验证能力晶体管越来越难用晶体管越来越难用串扰问题、片上漂移、可制造性设计串扰问题、片上漂移、可制造性设计处理器结构经历了简单、复杂、简单、复杂的螺旋上升过程处理器结构经历了简单、复杂、简单、复杂的螺旋上升过程最早期的处理器结构由于工艺技术的限制,不可能做得很复杂,一般都最早期的处理器结构由于工艺技术的限制,不可能做得很复杂,一般都是串行执行是串行执行随着流水线、动态调度、随着流水线、动态调度、CACHE、向量机技术等技术的发展,处理器结、向量机技术等技术的发展,处理器结构变得复杂,如构变得复杂,如IBM 360系列的机器以及系列的机器以及Cray的向量机的向量机RISC技术的提出使处理器结构得到一次较大的简化技术的提出使处理器结构得到一次较大的简化随着多发射乱序执行技术的实现,随着多发射乱序执行技术的实现,RISC结构越来越复杂,结构越来越复杂,Intel和和HP研制研制的的EPIC结构没有从根本上对处理器结构进行简化结构没有从根本上对处理器结构进行简化10未来可能会流行的CPU结构多核多核+向量处理向量处理 典型:典型:Larrabee(16way ALU/512 bit)向量的位宽:向量的位宽:64/128/256/512/1024 众核:同构的基于分片的多核(众核:同构的基于分片的多核(tile based)典型:典型:Tile64处理器核的个数:处理器核的个数:64/128 512/1024 带有协处理器的异构多核带有协处理器的异构多核典型:典型:CELL通用处理器专用的协处理器(通用处理器专用的协处理器(GPU、流处理、流处理器)器)11摩尔定律发展过程中碰到的“墙”1980s:存储墙:存储墙CPU变快,内存只变大不变快变快,内存只变大不变快80%的晶体管用于片内高速缓存等的晶体管用于片内高速缓存等2000s:功耗墙:功耗墙一一Intel放弃放弃4GHz的的Pentium IV为标志,终止复杂的高主频设计为标志,终止复杂的高主频设计多核设计成为主流多核设计成为主流未来还有可能碰到的未来还有可能碰到的“墙墙”带宽墙:带宽墙:“茶壶里倒饺子茶壶里倒饺子”(性能和带宽(性能和带宽1-2FLOPS:1BPS的关系)的关系)成本墙:太贵了做不起(目前只剩成本墙:太贵了做不起(目前只剩Intel、IBM、TSMC三家)或用三家)或用不起(不起(10nm以后单片成本反而增加)以后单片成本反而增加)应用墙:应用墙:16核以上的核以上的CPU卖给谁?量大面广的应用需要多少核?卖给谁?量大面广的应用需要多少核?如果克服不了上述如果克服不了上述“墙墙”,通用,通用CPU的摩尔定律到的摩尔定律到2015年即告终止年即告终止12带宽障碍摩尔定律的新定义摩尔定律的新定义片内处理器核的个数指数增长片内处理器核的个数指数增长封装引脚增加缓慢封装引脚增加缓慢每个核使用的引脚数指数下降每个核使用的引脚数指数下降茶壶里倒饺子茶壶里倒饺子高速信号传输缓解带宽瓶颈高速信号传输缓解带宽瓶颈目前引脚上的信号频率已经达到目前引脚上的信号频率已经达到GHz很快会出现板上频率高于片内频率的现象很快会出现板上频率高于片内频率的现象13提高计算机的性能:减少指令数和提高IPC结构提高计算机性能的常用方法和原则结构提高计算机性能的常用方法和原则加快经常性事件的速度加快经常性事件的速度 局部性原理局部性原理 利用并行性利用并行性归一化时间计算方法当负载中各程序的执行百分比不同时,计算加权执行时间是一种方法,当负载中各程序的执行百分比不同时,计算加权执行时间是一种方法,另一种方法是另一种方法是“归一化归一化”。就是说,将执行时间对一台参考机器进行归。就是说,将执行时间对一台参考机器进行归一化,然后取其归一化执行时间的平均值。一化,然后取其归一化执行时间的平均值。SPEC测试程序套件采用了该测试程序套件采用了该方法。方法。平均归一化时间既可表示为算术平均值,也可表示为几何平均值。平均归一化时间既可表示为算术平均值,也可表示为几何平均值。14影响CPU性能的因素Inst.CountCPIClock RateProgramXCompilerX(X)ISAXXOrganizationXX TechnologyX 性能的最本质定义性能的最本质定义完成一个任务(如后天的天气预报)所需的时间完成一个任务(如后天的天气预报)所需的时间以指令为基本单位以指令为基本单位15CPI及IPC在指令系统确定后,系统结构设计者的主要目在指令系统确定后,系统结构设计者的主要目标就是降低标就是降低CPI或提高或提高IPC平均平均CPI“Average Cycles per Instruction”CPI=(CPU Time*Clock Rate)/Instruction Count =Cycles/Instruction Count Instruction Frequency16开发并行性指令级并行指令级并行是过去的是过去的20年里体系结构设计者提升性能的主要途径年里体系结构设计者提升性能的主要途径时间并行性:指令流水线时间并行性:指令流水线空间并行性:空间并行性:SuperScalar(Out-of-Order)和)和EPIC(编译器优化)(编译器优化)进一步挖掘指令级并行的空间不大进一步挖掘指令级并行的空间不大数据级并行:数据级并行:SIMD向量机向量机SSE多媒体指令多媒体指令作为指令级并行的有效补充,在高性能计算及流媒体等领域发挥重作为指令级并行的有效补充,在高性能计算及流媒体等领域发挥重要作用,在专用处理器中应用较多要作用,在专用处理器中应用较多线程级并行线程级并行线程级并行大量存在于线程级并行大量存在于Internet应用应用多核处理器多核处理器多线程处理器多线程处理器是目前的热点是目前的热点17低功耗优化方法优化对象优化对象动态功耗优化动态功耗优化静态功耗优化静态功耗优化优化层次优化层次系统级系统级算法级算法级逻辑级逻辑级电路级电路级版图及工艺级版图及工艺级181.在三台不同指令系统的计算机上运行同一程序在三台不同指令系统的计算机上运行同一程序P时,时,A机需要执行机需要执行1.0*108条指令,条指令,B机需要执行机需要执行2.0*108条指条指令,令,C机需要执行机需要执行4.0*108条指令,但实际执行时间都是条指令,但实际执行时间都是10秒,请分别计算这三台机器在实行程序秒,请分别计算这三台机器在实行程序P时的实际时的实际运行速度,以运行速度,以MIPS为单位。这三台计算机在运行程序为单位。这三台计算机在运行程序P时,哪台性能最高?为什么?时,哪台性能最高?为什么?2.如果要给标量处理器增加向量运算部件,并且假定向量模式的运算速度是标量模式的如果要给标量处理器增加向量运算部件,并且假定向量模式的运算速度是标量模式的8倍,这里把向量模式所倍,这里把向量模式所占的百分比时间称作向量化百分比。占的百分比时间称作向量化百分比。a)画出一张图来表示加速比和向量化百分比的关系,画出一张图来表示加速比和向量化百分比的关系,X轴为向量化百分比,轴为向量化百分比,Y轴为加速比。轴为加速比。b)向量化百分比为多少时,加速比能达到向量化百分比为多少时,加速比能达到2?当加速比达到?当加速比达到2时,向量模式占了运算运行时间的百分之多少?向时,向量模式占了运算运行时间的百分之多少?向量化百分比为多少时,加速比能达到最大加速比的一半?量化百分比为多少时,加速比能达到最大加速比的一半?c)假设程序的向量化百分比为假设程序的向量化百分比为70%。如果需要继续提升处理器的性能,一种方法是增加硬件成本将向量部件的。如果需要继续提升处理器的性能,一种方法是增加硬件成本将向量部件的速度提高一倍,另外一种方法是通过改进编译器来提高向量模式的应用范围,那么需要提升多少向量化百分速度提高一倍,另外一种方法是通过改进编译器来提高向量模式的应用范围,那么需要提升多少向量化百分比才能得到与向量部件运算速度提高一倍得到相同的性能?你推荐哪一种设计方案?比才能得到与向量部件运算速度提高一倍得到相同的性能?你推荐哪一种设计方案?3.假设有一个代表典型应用的基准测试程序。一款不包含浮点部件的处理器(可以通过整数指令的模拟来执行浮假设有一个代表典型应用的基准测试程序。一款不包含浮点部件的处理器(可以通过整数指令的模拟来执行浮点指令)运行该基准程序的运行速度是点指令)运行该基准程序的运行速度是120MIPS,在该处理器上增加浮点协处理器后运行该基准程序的运行,在该处理器上增加浮点协处理器后运行该基准程序的运行速度是速度是80MIPS。下面给出了一些参数:。下面给出了一些参数:I基准测试中整数指令的数目,基准测试中整数指令的数目,F基准测试中浮点指令的数目,基准测试中浮点指令的数目,Y模拟一条浮点指令需要的整数指令的数目,模拟一条浮点指令需要的整数指令的数目,W无浮点协处理器时基准程序的运行时间,无浮点协处理器时基准程序的运行时间,B有浮点协处有浮点协处理器时基准程序的运行时间。理器时基准程序的运行时间。a)用上面的参数符号表示出两种配置处理器的用上面的参数符号表示出两种配置处理器的MIPS值。值。b)在没有协处理器的配置下,假定在没有协处理器的配置下,假定F=8*106,Y=50,W=4秒,求秒,求I的值。的值。c)在上题的条件下,求在上题的条件下,求B的值。的值。d)在包含协处理器的配置下,系统的在包含协处理器的配置下,系统的MFLOPS是多少?是多少?e)你的同事想要购买这种协处理器来提高性能,而该配置下你的同事想要购买这种协处理器来提高性能,而该配置下MIPS降低了,请问他的决策正确吗?解释你的观点降低了,请问他的决策正确吗?解释你的观点5.对某处理器进行功耗测试,得到如下数据:时钟不翻转,电压对某处理器进行功耗测试,得到如下数据:时钟不翻转,电压1.2V时,电流为时,电流为500mA;时钟频率为;时钟频率为1GHz,电,电压压1.2V时,电流为时,电流为2500mA。请计算此处理器的静态功耗以及。请计算此处理器的静态功耗以及500MHz下的总功耗。下的总功耗。1.解:解:A 为为10MIPS,B 为为20MIPS,C 为为40MIPS。三台机器实际性能相同。三台机器实际性能相同。2.解:加速比解:加速比y 与向量化比例与向量化比例x 之间的关系是:之间的关系是:y=1/(1-x)+x/8)=1/(1-7x/8)(A)(2)在式在式(A)中令中令y=2,可解得,可解得x=4/757.14%。此时向量模式运行时间占总时间比例是此时向量模式运行时间占总时间比例是(4/7)/8)/(3/7+(4/7)/8)=1/7=14.29%(3)硬件方法,整体加速比为硬件方法,整体加速比为1/(1-0.7*(1-1/16)=2.91软件方法,设相同加速比下向量化比例为软件方法,设相同加速比下向量化比例为x,即,即1/(1-7x/8)=2.91,x=0.75所以推荐软件方法。所以推荐软件方法。3.解:解:(1)MIPSEMUL=(I+FY)/(W106);MIPSFPU=(I+F)/(B106)(2)120=(I+810650)/(4106)=I=80106(3)80=(80106+8106)/(B106)=B=1.1(4)MFLOPS=F/(B-(W*I)/(I+F*Y)106)18.46(5)决策正确,因为执行时间缩短了,这才是关键标准。决策正确,因为执行时间缩短了,这才是关键标准。5.解:解:1.1V 下静态功耗下静态功耗1.1*1.1/(1.05/0.5)=0.576W1.1V 下下1GHZ 时动态功耗为时动态功耗为1.1*2.5-0.576=2.174W1.1V 下下0.5GHZ 功耗功耗为功耗功耗为2.174*0.5/1=1.087W1.1V 下下0.5GHZ 总功耗为总功耗为1.087+0.576=1.663W20二二.二进制与逻辑电路二进制与逻辑电路计算机中数的表示计算机中数的表示CMOS门电路及工艺门电路及工艺CMOS组合逻辑与时序逻辑组合逻辑与时序逻辑CMOS电路延迟电路延迟从从Verilog到到GDSII其它其它“0”和和“1”表示方法表示方法21计算机中数的表示二进制二进制最容易逻辑实现最容易逻辑实现自然界中的二值系统较多自然界中的二值系统较多“1”和和“0”的表示的表示用电压的高低表示,半导体工艺,用电压的高低表示,半导体工艺,CMOS用磁通量的有无表示,超导体工艺用磁通量的有无表示,超导体工艺用能级的高低表示,量子计算机用能级的高低表示,量子计算机用基因序列表示,用基因序列表示,A,G,C,T,DNA计算机,计算机,非二进制?非二进制?22定点数的表示(1)原码:原码:A=an-1 an-2.a1 a0表示表示最高位最高位an-1为符号位,为符号位,0表示正,表示正,1表示负。表示负。其它位其它位an-2.a1 a0表示数值。表示数值。原码的问题:加减法效率低,两个原码的问题:加减法效率低,两个“0”补码补码本质是取模运算,如本质是取模运算,如-2%12=10最高位最高位an-1为符号位,为符号位,0表示正,表示正,1表示负。表示负。A=an-1 an-2.a1 a0表示表示(-2n-1 an-1+an-2.a1 a0)an-1=0时,补码和原码一样,时,补码和原码一样,A表示正表示正an-2.a1 a0。an-1=1时,时,A表示表示(-2n-1+an-2.a1 a0)。原码与补码的转换原码与补码的转换最高位为最高位为0时,一样时,一样最高位为最高位为1时,最高位不变,其余位时,最高位不变,其余位“按位取反加一按位取反加一”。23定点数的表示(2)补码运算补码运算取负数,每一位取负数,每一位(包括符号位包括符号位)求补,即按位取反加一。求补,即按位取反加一。A-B=A+B的负数的负数=A+(B求补求补)加法溢出判断:加法溢出判断:A和和B的最高位一样,且结果的最高位与的最高位一样,且结果的最高位与A和和B的最高的最高位不一样。位不一样。1001+0101(-7+5)=1110,1100+0100(-4+4)=0000,0011+0100(3+4)=0111,1100+1111(-4-1)=1011,0101+0100(5+4)=1001,1001+1010(-7-6)=001124浮点数的表示(1)定点数的不足定点数的不足表示范围有限,太大或太小的数都不能表示表示范围有限,太大或太小的数都不能表示除法不精确除法不精确浮点数的表示:浮点数的表示:IEEE 754标准标准三部分组成:符号位,阶码三部分组成:符号位,阶码(exponent),尾数,尾数(fraction)最高位是符号位最高位是符号位阶码的移码表示,底为阶码的移码表示,底为2,2(阶码阶码-偏移值偏移值)规格化表示,尾数的最高位总为规格化表示,尾数的最高位总为1,因此可以不存,因此可以不存单精度和双精度单精度和双精度扩展的单双精度扩展的单双精度S Exp.(8)Fraction(23)SExp.(11)Fraction(52)25浮点数的表示(2)IEEE 754 浮点格式参数浮点格式参数261.定点数的表示定点数的表示分别给出分别给出64位定点原码和补码表示的数的范围;位定点原码和补码表示的数的范围;在在32位定点补码表示中,位定点补码表示中,0 x80000000表示什么数?表示什么数?2.按照以下要求将浮点数表示出来按照以下要求将浮点数表示出来把单精度数转化为十进制数:把单精度数转化为十进制数:0 x7ff0000,0 xbe400000,0 xff800000把双精度数转化为十进制数:把双精度数转化为十进制数:0 x4035000000000000,0 x8008000000000000把十进制数转化为单精度数:把十进制数转化为单精度数:-100.0,0.25把十进制数转化为双精度数:把十进制数转化为双精度数:1024.0,0.25271.解:(1)-(263-1),263-1和-263,263-1(2)-2312.解:(1)0 x7ff0000=0,0000 1111,111 1111 0000 0000 0000 0000=(1.1111111)2*2(15-127)=3.8368135610839464260099560574934e-34 0 xbe400000=1,0111 1100,100 0000 0000 0000 0000=-(1.1)2*2(124-127)=-0.1875 0 xff800000=1,1111 1111,000 0000 0000 0000 0000=-(2)0 x4035000000000000=0,10000000011,010100000000000000000000000000000000 0000 000000000000=(1.0101)2*2(1027-1023)=21 0 x8008000000000000=1,00000000000,1000000000000000000000000000000000000000000000000000 =-(0.1)2*2-1022=-2-1023(3)-100.0=-(1.100100)2*26=0b1 10000101 10010000000000000000000=0 xc2c80000 0.25=(1.0)*2-2=0b0 01111101 00000000000000000000000=0 x3e800000;(4)1024.0=(1.0)*210=0 x4090000000000000 0.25=(1.0)*2-2=0 x3fd000000000000028三.指令系统结构ISA指令系统结构的设计原则指令系统结构的设计原则影响指令系统结构的因素影响指令系统结构的因素指令系统的分类指令系统的分类指令系统的组成指令系统的组成RISC指令系统结构指令系统结构RISC系统结构的简史系统结构的简史不同不同RISC结构的比较结构的比较29指令系统的设计原则指令系统在计算机中的位置指令系统在计算机中的位置硬件和软件的界面硬件和软件的界面设计要求设计要求兼容性:在很长时间内保持不变,如兼容性:在很长时间内保持不变,如X86通用性:编译器或程序员觉得好用,有较多功能,通用性:编译器或程序员觉得好用,有较多功能,适合于各种应用适合于各种应用高效性:便于高效性:便于CPU设计的优化,不同的实现方法得设计的优化,不同的实现方法得到不同的性能到不同的性能安全性:支持通用操作系统,考虑不同的安全要求安全性:支持通用操作系统,考虑不同的安全要求30指令系统的分类从功能上分类从功能上分类算术与逻辑运算、转移、访存、系统指令算术与逻辑运算、转移、访存、系统指令从指令使用数据的方式从指令使用数据的方式堆栈型、累加器型、寄存器型堆栈型、累加器型、寄存器型.从指令编码从指令编码定长、变长定长、变长31指令系统的类型堆栈型(堆栈型(Stack):零地址指令):零地址指令操作数在栈顶,运算操作不用指定操作数操作数在栈顶,运算操作不用指定操作数累加器型(累加器型(Accumulator):单地址指令):单地址指令一个操作数总在累加器中,结果也写回累加器一个操作数总在累加器中,结果也写回累加器寄存器型(寄存器型(Register):多地址指令):多地址指令Register-Register型型Register-Memory型型Memory-Memory型型32指令系统的组成指令的主、谓、宾指令的主、谓、宾CPU、操作、操作数、操作、操作数操作数操作数数据类型:定点数据类型:定点/浮点,浮点,32位位/64位位访存对象:字节访存对象:字节/半字半字/字字/双字,大双字,大/小尾端小尾端寻址方式:寄存器、立即数、直接、间接寻址方式:寄存器、立即数、直接、间接.操作操作算术与逻辑运算、转移、访存、系统指令算术与逻辑运算、转移、访存、系统指令指令访问控制:转移指令指令访问控制:转移指令指令编码指令编码定长、变长定长、变长33寻址方式如何在指令中表示访存地址如何在指令中表示访存地址34寻址方式小结至少支持以下寻址方式至少支持以下寻址方式RegisterImmediateDisplacementRegister indirect指令中常数位数指令中常数位数地址偏移量位数地址偏移量位数12-16位位立即数位数立即数位数8-16位位35转移指令转移指令类型转移指令类型条件转移条件转移/无条件转移无条件转移过程调用过程调用/过程返回过程返回转移地址类型转移地址类型相对:相对:PC+偏移量偏移量绝对:指令中给出转移地址绝对:指令中给出转移地址间接:根据寄存器内容转移(编译器不知道目标地址),间接:根据寄存器内容转移(编译器不知道目标地址),如如Switch语句、函数指针、动态链接、过程返回等语句、函数指针、动态链接、过程返回等36指令编码需要考虑的因素需要考虑的因素操作码部分比较简单操作码部分比较简单操作数的个数、类型对指令长度影响很大操作数的个数、类型对指令长度影响很大变长指令程序代码短、定长指令实现简单变长指令程序代码短、定长指令实现简单编码方法编码方法定长:定长:RISC变长:变长:VAX的指令的指令1-53字节,其中字节,其中ADD指令指令3-19字节,字节,Intel的的X86指令指令1-17字节字节混合:混合:IBM 360/370,MIPS16,Thumb,TI TMS320C54x37MIPS指令类型访存指令(包括定点和浮点)访存指令(包括定点和浮点)运算指令运算指令(包括定点和浮点)(包括定点和浮点)比较和转移指令(包括定点和浮点)比较和转移指令(包括定点和浮点)系统管理指令系统管理指令TLB、CACHE、例外处理、例外处理TRAP、Breakpoint38常见RISC指令系统比较通过比较常见通过比较常见RISC处理器的指令系统加深对处理器的指令系统加深对RISC的了解的了解MIPS、PA-RISC、PowerPC、SPARC通过以下方面进行比较通过以下方面进行比较指令格式指令格式寻址方式寻址方式指令功能指令功能39指令格式比较指令格式比较OP(6)RS1(5)RS2(5)Const(16)MIPSOP(6)RD(5)RS1(5)Const(16)PowerPCOP(6)RS1(5)RS2(5)Const(11)OPX(6)PA-RISCRS1(5)1RD(5)OP(2)OPX(6)Const(13)SPARCOP(6)RS1(5)RS2(5)RD(5)SA(5)OPX(6)MIPSOP(6)RD(5)RS1(5)RS2(5)OPX(11)PowerPCOP(6)RS1(5)RS2(5)RD(5)OPX(11)PA-RISCRS1(5)RS2(5)0RD(5)OP(2)OPX(6)OPX(8)SPARCOP(6)RS1(5)OPX/RS2Const(14)MIPSOP(6)OPX(5)RS1(5)Const(16)PowerPCOP(6)RS1(5)RS2(5)Const(11)OPX(3)PA-RISCOP(2)OPX(11)Const(19)SPARCOPXO COP(6)Const(24)MIPSOP(6)Const(26)PowerPCOP(6)RS1(5)RS2(5)Const(14)PA-RISCOP(2)Const(30)SPARCOPXO CReg-RegReg-ImmBranchJump/Call40指令功能比较所有所有RISC处理器都有一些公共指令处理器都有一些公共指令load/store指令指令算术运算及逻辑指令算术运算及逻辑指令控制流指令控制流指令系统管理指令系统管理指令不同处理器在发展过程中形成的特色举例不同处理器在发展过程中形成的特色举例MIPS的非对齐访问的非对齐访问SPARC的寄存器窗口的寄存器窗口PowerPC的的Link和和Count寄存器寄存器HP的的Nullification411.给定下面的代码片段:A=B-C;D=A-C;B=D+A;a)分别写出上述代码片段在四种指令系统类型(堆栈型、累加器型、寄存器-存储器型、寄存器-寄存器型)下的汇编语言代码。b)假设操作码占用8位编码,内存地址和操作数都是16位,寄存器型结构有16个通用寄存器。对每种结构回答以下问题:1)需要读取多少指令字节?2)与内存交换的数据有多少字节?3)依据代码量衡量哪种结构最好?4)依据与内存交换的数据(指令和数据)量衡量哪种结构最好?2.16 进制数 0 x4C4F4F4E47534F4E 要存在 64 位双字中。a)假设存储是 假设存储是 8字节对齐的,请依据小尾端格式将此 16进制数写入内存中,并将每个 字节解释为一个 ASCII 字 符写在对应的字 节下边。b)按照大尾端的格式重做上题。3.假定在指令系统设计中需要考虑两种条件转移指令的设计方法,这两种方法如下。1)CPU A:先通过一条比较指令设置条件码A,再用一条分支指令检测条件码。2)CPU B:比较操作包含在分支指令中在两种CPU中,条件转移指令都需要两个时钟周期,所有其他指令都需要一个时钟周期。在CPU A 中,全部指令的25%是条件转移指令,因为每次条件转移都需要一次比较,所以比较指令约占所有指令的25%,因为CPU A 不需要在转移中包含分支,所以它的时钟频率是CPU B的1.2倍。请问哪一种CPU性能更高?如果CPU A的时钟频率只是CPU B 的1.1倍,结果又是多少?4.如果对通常的MIPS指令集增加寄存器-内存形式的指令,如下所示,可以减少一些load数量。Lw$1,0($n)add$2,$2,$1可以合并成一条指令:add$2,0($n)1)给出一段符合上述例子的代码(load得到的值立即作为运算指令的源操作数),但是编译器依然无法用寄存器-内存形式的指令消除这条load指令。2)假设这样的修改带来了5%的主频下降,同时没有CPI影响。如果load占所有指令的26%,最少要消灭load指令的百分之多少,才能使得新指令集不导致性能下降?3)在传统的静态5级流水线上,寄存器-内存形式的指令有何实现困难?5.根据MIPS指令的编码格式回答下列问题。1)条件转移指令的跳转范围是多少?2)直接跳转指令的跳转范围是多少?6.用MIPS的LWL/LWR/SWL/SWR指令编写一段程序,把内存单元10051008的值取到寄存器R1,再存到内存单元20052008中。7.用MIPS的LL/SC指令编写一段从内存单元100(R2)取数,把取出来的数加100并存回到100(R2)的原子操作代码,并说明如果在此过程中处理器发生中断或该单元被其他处理器修改时处理器如何保证上述操作的原子性。堆栈型堆栈型累加器型累加器型寄存器寄存器-存储器存储器型型寄存器寄存器-寄存寄存器型器型汇编代码Push B;Push CSub;Pop APush A;Push CSub;Pop DPush D;Push AAdd;Pop BLoad C;NegAdd B;Store ALoad C;NegAdd A;Store DAdd A;Store BLoad R1,BSub R1,CStore R1,ASub R1,CStore R1,DAdd R1,AStore R1,BLoad R1,BLoad R2,CSub R3,R1,R2Store R3,ASub R4,R3,R2Store R4,DAdd R5,R4,R3Store R5,B指令字节30262829内存交换字节48424239代码量衡量交换数据量衡量1.解(1)442.解:小尾端:Address 0 xxx000 0 xxx001 0 xxx010 0 xxx011 0 xxx100 0 xxx101 0 xxx110 0 xxx1110 x 4E 4F 53 47 4E 4F 4F 4C大尾端:Address 0 xxx000 0 xxx001 0 xxx010 0 xxx011 0 xxx100 0 xxx101 0 xxx110 0 xxx1110 x 4C 4F 4F 4E 47 53 4F 4E3.解:假设CPU A 总指令数为x,转移指令有0.25x,条件码指令0.25x,其它指令0.5xA 执行周期数2*0.25x+0.75x=1.25x则CPU B 总指令数为0.75x,其中转移指令0.25x,其它指令0.5x。B 执行周期数2*0.25x+0.5x=1x当CPU A 频率为1.2 倍时,性能是CPU B 的1.2/1.25=0.96 倍当CPU A 频率为1.1 倍时,性能是CPU B 的1.1/1.25=0.88 倍因此CPU A 两种情况下都差4.a)lw$1,0($n)add$2,$2,$1 bnez$1,1f/任何将$1 作为src 的指令都可以b)假设需要减少x 的load 指令。减少后,指令数为1-0.26x。则(1-0.26x)/0.95=1x=0.19%c)困难在于访存MEM 在EXE 之前就要进行,而add$2,0($n)需要先访存后EXE5.a)条件转移指令的跳转范围。16+2 位256KB(+-128KB)b)直接跳转指令的跳转范围。26+2 位256MB(+-128MB)6.解:小尾端下dli r2,1005lwr r1,0 x0(r2)lwl r1,0 x3(r2)dli r2,2005swr r1,0 x0(r2)swl r1,0 x3(r2)7.解:1:ll r1,100(r2)add r1,r1,100 sc r1,100(r2)beqz r1,1b nop如果在ll 和sc 之间(含ll 和sc),发生了中断或者其他处理器修改100(r2),则sc 之后r1 会变0,回到标号1 重新执行。四.指令流水线一个简单的一个简单的CPU数据通路数据通路控制逻辑控制逻辑时序控制时序控制指令流水线指令流水线指令相关和流水线冲突指令相关和流水线冲突流水线的前递技术流水线的前递技术流水线和例外流水线和例外多功能部件与多拍操作多功能部件与多拍操作47指令流水线:时序的改进上述时序的三个步骤上述时序的三个步骤指令地址送到指令地址送到PC、取指到、取指到IR、计算结果到、计算结果到GPR可以合并为两个可以合并为两个计算下一条指令的计算下一条指令的PC和指令执行重叠和指令执行重叠可以把计算下一拍可以把计算下一拍PC值作为指令执行的一部分(转移指令的值作为指令执行的一部分(转移指令的运算结果是运算结果是PC的值)的值)48 能否把取指和运算也重叠?大多数情况可以重叠大多数情况可以重叠第第n+1条指令执行时,第条指令执行时,第n条指令已经执行完,因此第条指令已经执行完,因此第n+1条指令可以用到第条指令可以用到第n条指令的结果。条指令的结果。但有一个例外但有一个例外如果第如果第n+1条指令的取指也要用到第条指令的取指也要用到第n条指令的结果,则第条指令的结果,则第n+1条指令的取指必须等到第条指令的取指必须等到第n条指令结束后才能执行。条指令结束后才能执行。正是正是Branch指令的情况,可以用指令的情况,可以用delay slot解决这个问题解决这个问题49上述流水线的进一步改进上述流水线是两级流水线上述流水线是两级流水线取指和执行取指和执行执行阶段做的事情较多执行阶段做的事情较多译码(包括读取寄存器的值)译码(包括读取寄存器的值)运算(运算(ALU操作)操作)访存(取数或存数)访存(取数或存数)写回到寄存器写回到寄存器时钟周期较长,一拍内必须做完上述四件事情时钟周期较长,一拍内必须做完上述四件事情可以把执行阶段再细分可以把执行阶段再细分执行阶段分成译码、运算、访存、写回执行阶段分成译码、运算、访存、写回50流水线的相关问题指令相关的概念指令相关的概念流水线变深了,相关问题更为突出。流水线变深了,相关问题更为突出。在流水线中,如果某指令的某个阶段必须等到它前面另一条指令的某个在流水线中,如果某指令的某个阶段必须等到它前面另一条指令的某个阶段后才能开始,则这两条指令存在相关阶段后才能开始,则这两条指令存在相关相关的指令要隔开足够远,否则后面的指令就必须等待相关的指令要隔开足够远,否则后面的指令就必须等待在我们的流水线中,可能发生如下相关在我们的流水线中,可能发生如下相关红线表示数据相关红线表示数据相关蓝线表示转移相关(从中可看出转移指令在译码阶段执行的必要性)蓝线表示转移相关(从中可看出转移指令在译码阶段执行的必要性)还有结构相关(在我们的例子中不存在)还有结构相关(在我们的例子中不存在)51指令流水线的相关数据相关:使用同一个寄存器引起的相关数据相关:使用同一个寄存器引起的相关如后面的指令用到前面指令的结果如后面的指令用到前面指令的结果控制相关:与控制相关:与PC有关的相关有关的相关每条指令取指用到每条指令取指用到PC,转移指令修改,转移指令修改PC结构相关:资源冲突结构相关:资源冲突多条指令同时使用一个功能部件多条指令同时使用一个功能部件相关引起流水线阻塞相关引起流水线阻塞52由访存引起的结构相关访存和取指都需要存储器端口访存和取指都需要存储器端口Havard结构结构loadinst1inst2inst3inst4loadinst1inst2inst3nopinst453数据相关RAW(Read After Write)后面指令用到前面指令所写的数据后面指令用到前面指令所写的数据WAW(Write After Write)两条指令写同一个单元两条指令写同一个单元在简单流水线中没有此类相关,因为不会乱序执行在简单流水线中没有此类相关,因为不会乱序执行WAR(Write After Read)后面指令覆盖前面指令所读的单元后面指令覆盖前面指令所读的单元在简单流水线中没有此类相关在简单流水线中没有此类相关在动态流水线中会有在动态流水线中会有WAR和和WAW相关相关54数据相关的例子add r1,r2,r3sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r1155控制相关PC相关相关转移指令计算的下一条指令地址在转移指令计算的下一条指令地址在EX阶段计算,下一条指令等阶段计算,下一条指令等2拍拍使用专门的地址运算部件把地址计算提前到译码阶段可以少等一拍使用专门的地址运算部件把地址计算提前到译码阶段可以少等一拍使用一个转移指令延迟槽(使用一个转移指令延迟槽(delay slot)可以不用等待可以不用等待转移条件相关转移条件相关如果在如果在ID阶段执行转移指令时转移阶段执行转移指令时转移指令的源操作数没有准备好指令的源操作数没有准备好还是要还是要等待等待56流水线的前递技术:解决RAW相关的前递(Forwarding)技术在执行(在执行(EX)阶段的运算结果出来后直接送到)阶段的运算结果出来后直接送到后续指令的后续指令的EX阶段阶段add r1,r2,r3sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r1157前递情况下的数据相关取数指令的结果在取数指令的结果在MEM阶段才有效,后续相关指令需阶段才有效,后续相关指令需要阻塞一拍要阻塞一拍lw r1,100(r2)sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r1158通过静态调度解决相关如下程序段的优化和非优化代码如下程序段的优化和非优化代码a=b+c;d=e-f;Fast code:LW Rb,bLW Rc,cLW Re,e ADD Ra,Rb,RcLW Rf,fSW a,Ra SUB Rd,Re,RfSWd,RdSlow code:LW Rb,bLW Rc,cADD Ra,Rb,RcSW a,Ra LW Re,e LW Rf,fSUB Rd,Re,RfSWd,Rd59Forwarding的相关处理逻辑以以ALU左端的输入为例左端的输入为例当当s1和前面两级的目标寄存器域和前面两级的目标寄存器域d1和和d2都不相等时,都不相等时,选择中间通路选择中间通路当当s1=d2时,选择右边通路时,选择右边通路当当s1=d1且当前操作不是且当前操作不是LD时,选择左边通路时,选择左边通路当当s1=d1且当前操作是且当前操作是LD时,后面流水线暂停,时,后面流水线暂停,往前面流水线送空操作往前面流水线送空操作60例外例外(Exception)与流水线与流水线例外原因例外原因I/O请求:外部中断请求:外部中断指令例外:用户请求例外指令例外:用户请求例外系统调用、断点、跟踪调试指令系统调用、断点、跟踪调试指令运算部件运算部件整数运算溢出、浮点异常整数运算溢出、浮点异常存储管理部件存储管理部件访存地址不对齐、用户访问系统空间、访存地址不对齐、用户访问系统空间、TLB失效、缺页、存储失效、缺页、存储保护错(写只读页)保护错(写只读页)保留指令错:未实现指令保留指令错:未实现指令硬件错硬件错等等等等61例外发生的流水阶段例外发生的流水阶段取指:访存例外取指:访存例外译码:保留指令、中断指令如译码:保留指令、中断指令如Trap、Syscall执行:整数溢出、浮点异常(如除零)等执行:整数溢出、浮点异常(如除零)等访存:访存例外访存:访存例外其它:外部中断,可能在任何时候发生其它:外部中断,可能在任何时候发生例外特征例外特征同步与异步同步与异步用户请求与系统强制用户请求与系统强制可屏蔽与不可屏蔽可屏蔽与不可屏蔽指令内与指令间指令内与指令间可恢复与结束可恢复与结束62在前述例外中,在前述例外中,指令内指令内可恢复可恢复例外的处理比较困难,例外的处理比较困难,条件转移指令的条件转移指令的delay slot又增加了例外处理的难度又增加了例外处理的难度精确例外:在处理例外时,发生例外指令前面的所精确例外:在处理例外时,发生例外指令前面的所有指令都执行完,例外指令后面的所有指令还未执有指令都执行完,例外指令后面的所有指令还未执行。精确例外是存储管理和行。精确例外是存储管理和IEEE运算规范的要求运算规范的要求发生例外指令前面的指令继续执行完发生例外指令前面的指令继续执行完后面的指令不能修改机器状态,对运算状态字的修改可后面的指令不能修改机器状态,对运算状态字的修改可能在能在EX阶段进行阶段进行多条指令发生例外多条指令发生例外63可以把每条指令的例外延迟到可以把每条指令的例外延迟到WB时再处理时再处理对机器状态的修改也在对机器状态的修改也在WB阶段进行阶段进行对状态寄存器的修改从对状态寄存器的修改从EX阶段延迟到阶段延迟到WB阶段阶段64简单流水线的例外处理简单流水线的例外处理任何一级流水发生例外时,在流水线中记录下发生例外的事任何一级流水发生例外时,在流水线中记录下发生例外的事件,直到件,直到WB阶段再处理阶段再处理如果在如果在EX阶段要修改机器状态(如状态寄存器),保存下阶段要修改机器状态(如状态寄存器),保存下来直到来直到WB阶段再修改。阶段再修改。指令的指令的PC值随指令流水前进到值随指令流水前进到WB阶段例外处理专用阶段例外处理专用外部中断作为外部中断作为IF的例外处理的例外处理指定通用寄存器中的一个(如最后一个)为例外处理时保存指定通用寄存器中的一个(如最后一个)为例外处理时保存PC值专用。值专用。当发生例外的指令在当发生例外的指令在WB阶段时:阶段时:保存该指令的保存该指令的PC(也在(也在WB阶段),有些机器还保存其它状态阶段),有些机器还保存其它状态置置PC值为例外处理程序入口地址值为例外处理程序入口地址651.假定某 假定某 RISC RISC处理器 处理器 为标准的五级流水线(IF/ID/EX/MEM/WB)结构,并且包含旁路硬件。对于下列指令序:LW R1,0(R0)LW R2,4(R0)ADD R3,R1,R2;a=b+eSW R3,12(R0)LW R4,8(R0)ADD R5,R1,R4;c=b+fSW R5,16(R0)分析上述指令序列之间的相关,并重排序执行列避免相关。指 令可以比原先并重排序执行列避免相关。重排指令序列可以比原先指令序列的执行减少多少拍?2.对于下面的计算A=+B;C=A-B写出 MIPSMIPS 程序代码,并且画出 5级静态流水线(无旁路)上的流水线状态。3.对于向量加法 X(i)=a*X(i)+Y(i),假设,假设 X,Y的首地址分别存在 R1,R2,a的值存 在 F0 中。a)试写出对应的 MIPS 汇编代码。b)假设单发射流水线结构为 IF/ID/EX/MEM/WB I,功能部件足够,Load、SStore 操作和整数 操作都 花费 1个时钟周期,加法操作为 4个周期,乘法操作为 10 个 周期。给出第一循环所有指令的流水线时空图。664.假定某 假定某 RISC 处理器为标准的五级流水线(IF/ID/EX/MEM/WB)结构,该静态流水线处理 器可配置包含硬件旁路电、延迟槽分支预测等技术,并假定所有的运算和访存操作均为 一拍完成。下面的代码在该处理器中执行Loop:LD R1,0(R2)DADDI R1,R1,#4;R1=R1+4 SD 0(R2),R1;将 R1 存入地址 0+R2处 DADDI R2,R2,#4;R2 R2+4 DSUB R4,R3,R2;R4=R3-R2 BNEZ R4,Loop;已知 R3 的初值R2+400 a)不使用 旁路硬件,但在同一个周期内寄存器的读和写能进行但预测采not taken 策略,如果猜测错误则刷新(flushing)流水线上的错误指 令,画出这个指序 列在 RISC 流水线上执行的时序,并计算执行这个循环需要多少时钟周期。b)使用 旁路硬件,采taken 策略进行分支预测,如果猜错误则刷新(flushing)流水 线上的错误指令,画出这个序列在 RISC 上执行的序列,并计算执行这个循环需要 多少个时钟周期。c)假设 RISC 流水线带有单拍的分支延迟和前递或旁路硬件,对包括槽在内指令序 列进行调度,可以重排指令序并修改某些的操作数但不能改变指令的数目和采用别的指令,画出该流水线时序图并计算整个循环需要钟周期数。5.许多指令集中 都会有一条空操作指令(例如 MIPS指令集中的 nop 指令),请给出设计空 指令的几个作用。671.解:解:LW R1,0(R0)LW R2,4(R0)ADD R3,R1,R2;a=b+eSW R3,12(R0)LW R4,8(R0)ADD R5,R1,R4;c=b+fSW R5,16(R0)123456789101112131415LWR1,0(R0)IFIDEXMEMWBLWR2,4(R0)IFIDEXMEMWBADD R3,R1,R2IFstallstallstallIDEXMEMWBSW R3,12(R0)stallstallstallIFIDEXMEMWBLWR4,8(R0)stallstallstallIFIDEXMEMWBADD R5,R1,R4stallStallstallIFIDstallEXMEMWBSW R5,16(R0)stallStallstallIFIDstallEXMEMWB68排序前共需要15 拍。重排后的指令序列为:LW R1,0(R0);LW R2,4(R0);LW R4,8(R0);ADD R3,R1,R2;ADD R5,R1,R4;SW R3,12(
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!