计算机体系结构 week5 浙江大学 石教英 陈天洲(主讲)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机体系结构第5周第1节课授课教师:陈天洲课件下载流水线障碍——流水线竞争3.4数据竞争3.5控制竞争3.6流水线实现难点3.7多周期操作的指令流水线3.8指令集结构设计与指令流水线的关系3.9进一步开发指令级并行性3.1流水线基本概念一、什么是流水线例1“摩登时代”中的装配生产线例2浮点加法流水线二、流水线分类按处理级别操作级流水操作重叠指令级流水指令执行重叠处理器级(宏流水线)任务重叠按完成功能单功能流水线多功能流水线静态流水线、动态流水线按处理的数据类型标量流水线向量流水线按流水线结构线性流水线非线性流水线按流水方式顺序流水方式:指令流出顺序=指令流入顺序异步流水方式:指令流出顺序指令流入顺序1234567S1S2S3S4非线性流水线的调度策略预约表禁止表{3,4,6}状态图10110011111011011111111111011012521=.75=.75=.7三、指令流水线——是使得多条指令重叠执行的一种处理器实现技术图流水线的基本结构1、特点指令执行分成若干个阶段——流水级;每个流水级由各自独立的功能部件(流水功能部件)完成,任一时刻各流水级并行地对不同指令作不同阶段的操作;各流水级在同一时钟控制下在同一时刻将本级的输出数据(信号)送到下一流水级;两次传送时间间隔称为:机器周期;各流水级完成功能的时间不同,机器周期由最慢的流水级决定;一条指令按序经过各流水级,从最后一级流出才算执行完成。2、指令流水线的目的提高指令处理速度——提高吞吐率:单位时间内完成的指令数不用流水线技术程序执行时间Speedup=———————————————用流水线技术程序执行时间CPUtime=IC*CPI*CC平均每条指令的执行时间(CPI)ToldTold/流水级数时钟周期缩短(CC)CCold=ToldTold/流水级数=CCnew提高CPU内各功能部件的利用率3、指令流水线的描述流水状态图流水线时空图四、非流水线实现的DLX处理器每条指令可以在5个时钟周期内完成。1、取指令周期(IF)IRMem[PC]NPCPC+42、译码/读寄存器周期(ID)AReg[IR6..10]BReg[IR11..15]Imm((IR16)16##IR16..31)3、执行/有效地址计算(ALU)Load/Store:ALUoutputA+ImmR-RALU:ALUoutputAfuncBR-IALU:ALUoutputAopImmBranch:ALUoutputNPC+Imm;CondAop04、存储器访问/转移完成(MEM)Load/Store:LMDMem[ALUoutput]Mem[ALUoutput]BBranch:if(Cond)thenPCALUoutputelsePCNPC5、写回周期(WB)R-RALU:Regs[IR16..20]ALUoutputR-IALU:Regs[IR11..15]ALUoutputLoad:Regs[IR11..15]LMD(1)实现方案一:一条指令用多个时钟周期转移指令:(16%+8%)/2=12%4其他指令:88%5CPI=412%+588%=4.88改进1:ALU:4个时钟周期CPI=4(12%+44%)+544%=4.44改进2:减小硬件冗余度Add、ALU合用一个ALU指令memory与数据memory合用一个memory(2)实现方案二:一条指令用一个长时钟周期CPI=1CC2CC1临时寄存器可省去一般不采用的原因:低效率指令要执行的操作总量变化较大重复设置功能部件(方案一中可共享)3.2DLX基本指令流水线非流水线实现的DLX一条指令5个时钟周期一个流水级花一个时钟周期每个时钟周期启动一条指令关键:同一时钟周期里,不同指令不会使用同一数据通路资源IM与DM不能用单一memoryIM:指令CacheDM:数据Cache存储器带宽要提高5倍2次/5个时钟周期2次/1个时钟周期ID的读Reg与WB的写Reg2个Reg读+1个Reg写/时钟周期2个读口,一个写口Reg读=Reg写数据竞争PC非流水:IF读PC,MEM写PC流水:IF完成PC+4PC前面的Branch指令可能要写PC流水线锁存器(在两级之间传递值和控制信号)某一值在后续流水级中要用到,就必须送入Latch如:IF/ID中有IRID中要译码MEM/WB中有IRALU(IR16..20)或Load(IR11..15)的目的域段ID/EX中有IRALU:PC增值1个Adder算术逻辑部件ALU不访存有效地址计算访存指令不做ALU操作1个ALU控制信号(MUX)1.EX级的MUX:由指令类型控制是:NPCALU是Branch?否:IR6..10ALU是:IR11..15ALU是R-RALU指令?否:立即数/位移量ALU2.IF级的MUX:由Cond判断控制3.WB级的MUX:由指令类型控制(Load/ALU)4.ALU级的MUX:由指令类型控制ALUR-R(IR11..15)ALUR-I(IR16..20)五级流水线的每一级的具体操作(P136)二、流水线性能提高吞吐率,但不减少单条指令的执行时间程序执行快,总时间减少理想Speedup=流水级数流水级数的限制:流水线延时流水线开销(流水周期latch开销+时钟上升沿和下降沿)流水级间的不平衡性t=max{ti}Earlelatch:对时钟上升延敏感、latch延时是常数、可在latch中实现二级逻辑[例1]P137/140unpipeline:CC=10ns,ALU(40%)、Branch(20%)4CCLoad/Store(40%)5CCpipelineCC=(10+1)=11ns问:用流水线,执行速度提高几倍?单条指令执行时间=CC平均CPI=10(60%4+40%5)=44ns平均指令执行时间CCpipeline=11nsSpeedup=44/11=4[例2]P138/141已知CPI=1。设各流水级的执行时间分别为:IF:10ns;ID:8ns;ALU:10ns;MEM:10nsWB:7ns平均指令执行时间=10+8+10+10+7=45ns流水线时平均指令执行时间=11nsSpeedup=45/11=4.13.3流水线障碍——流水线竞争一、流水线竞争种类结构竞争:资源冲突(不支持某些指令组合)数据竞争:后续指令的执行依赖于前面指令的执行结果控制竞争:因转移或修改PC引起的竞争流水线停顿(stall):若i指令引起竞争,在I指令之前进入流水线的指令继续执行,而在I指令之后进入流水线或尚未进入流水线的指令停下来等待竞争消除二、考虑停顿时的流水线性能平均指令执行时间unpipelineSpeedup=----------------------------------------平均指令执行时间pipelineCPIun*CCun=----------------------CPIp*CCpCPIpipeline=CPIideal+流水线stall周期=1+流水线stall周期a.unpipeline时多时钟周期完成CCun=CCpCPIunCPIunSpeedup=-----------=-----------------------CPIp1+流水线stall周期最简单情况:所有指令的执行周期数相等,均为流水级数CPIun=流水级流水级Speedup=--------------------------------1+流水线stall周期b.unpipeline时单时钟周期完成CPIun=11CCunSpeedup=-------------------------*-----------1+流水线stall周期CCp若流水线各级完成时间均衡,且无其他开销,则CCun----------=流水级CCp流水级Speedup=--------------------------------1+流水线stall周期三、结构竞争——如果流水线因资源冲突不能支持某些指令组合的重叠执行,则称之为结构竞争。原因功能部件非完全流水硬件资源数量不足结构竞争例结构竞争解决办法[例1]结构竞争对性能的影响144/144已知CPIideal=1,数据访存占40%,CRhazard=1.05CRideal平均指令执行时间=IC*CPIhazard*CChazard=IC*(1+0.4*1)*CCideal/1.05=1.3*IC*CCidealCPIidealCPIhazard设计有hazard机器的原因:降低成本降低部件延时非流水不见延时不完全流水部件完全流水部件[例2]非流水线浮点部件对性能的影响很多机器都没有完全流水的浮点运算部件。设DLX的浮点乘法有5个时钟周期的延时,且未用流水线实现。已知测试程序mdljdp中浮点乘法的使用频度为14%。问因浮点乘法引起的结构竞争对程序执行性能影响大吗?一条要使用该条指令结果的指令需要隔多少时钟周期才能进入流水线,以保证得到正确的执行结果。或一条浮点乘法必须和前一条指令隔几个时钟周期才不会与前一条浮点乘法指令冲突(1)最好情况:完全均匀分布指令流水线最多能处理17%的浮点乘法17%14%(2)最坏情况:分布最不均匀因结构竞争造成CPI增加:14%*5=0.7(3)实测结果:用流水线实现仅使执行时间减少3%浮点乘法使用频度低因数据竞争引起的Stall避免了结构竞争

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功