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

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

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

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

资源描述

计算机体系结构第7周第1节课授课教师:陈天洲课件下载控制竞争控制竞争造成的性能损失比数据竞争大最简单的处理方法——ID知道转移后,暂停流水线,直到MEM后PC确定下来IFIDEXMEMWBIFssIFID3拍若转移指令占30%,1+30%*3=1.9改进尽早知道转移是否成功将=0检测移入ID级尽早计算出目标地址在ID级计算目标地址,引入Adder3拍1拍图改进后的DLX流水线数据通路注意:若一条ALU指令后跟一条转移指令,可能引起数据竞争流水线级数越多,转移损失越大CPI越小,转移造成的性能损失所占比例越大表4-4修改后ID流水级工作过程1616流水级转移指令IFIF/ID.IR←Mem[PC];IF/ID.NPC,PC←(ifID/EX.cond{ID/EX.NPC}else{PC+4});IDID/EX.A←Regs[IF/ID.IR6..10];ID/EX.B←Regs[IF/ID.IR11..15];ID/EX.NPC←IF/ID.NPC+(IR16)##IR16..31;ID/EX.IR←IF/ID.IR;ID/EX.cond←(Regs[IF/ID.IR6..10]op0);ID/EX.Imm←(IR16)##IR16..31EXMEMWB一、转移行为特点条件转移使用频度无条件转移(据165图)intconditionbranch=16.6%82%jump=3.6%18%20.2%fpconditionbranch=8.4%86%jump=1.4%14%9.8%1%0%0%4%2%8%4%1%2%3%1%0%2%4%2%4%3%4%2%3%2%9%10%6%6%11%12%11%22%11%0%5%10%15%20%25%su2cormdljdphydro2deardoducligccespressoeqntottcompress无条件转移向后条件转移向前条件转移正向转移反向转移intfp综合80%正向13.4%正向6.6%10.0%20%反向3.2%反向1.8%2.5%正向转移成功率反向转移成功率80%*x=48%20%*y=19%x=60%y=95%P166:正向成功率:48%反向成功率:19%51%63%35%44%34%38%53%61%78%21%22%8%25%16%13%26%37%14%3%21%0%10%20%30%40%50%60%70%80%compresseqntottespressogcclidoducearhydro2dmdljdpsu2cor向前转移向后转移二、减少转移带来损失1、流水线冲洗(flush)2、硬件固定预测转移不成功(167/160)问题:在确定转移是否成功前不能修改机器状态实际转移不成功:无Stall实际转移成功:1Stall编译优化:将大概率分支放在不成功分支中3、硬件固定预测转移成功条件:转移目标地址形成早于转移条件码结果生成在DLX中这种方法对性能没有改善4、延时转移技术(168/161)延时槽:从条件转移指令进入流水线到能够成功按转移结果取指令之间间隔的时钟周期数硬件:无论转移成功与否都执行延时槽中的指令编译:在延时槽中插入有效指令三种延时槽调度方法(169/162)a.最理想条件:转移指令前的那条指令与转移指令无关b.转移成功概率大时有效-------循环时使用较多条件:转移分支指令插入延时槽后,不影响不成功分支的正确执行c.转移成功概率小时有效条件:不成功分支指令插入延时槽后,不影响成功分支的正确执行硬件的Canceling功能:当预测出错时,将延时槽内指令转换成nop延时技术的有效性171/1635.四种转移处理机制的性能评估在流水线实现的处理机中延时技术是编译程序员可见的特性利用编译调度可明显改善性能深度流水线时,延时槽大,实现代价很高额外硬件代价:多一个PC寄存器原因:当转移成功而延时槽指令发生中断时,保存当前中断指令PC+转移目标地址[例]回家作业:表173/164,数据如何计算?结果是否正确?[例]R4000三种转移处理技术的性能比较(174/164)6.静态转移预测技术延时转移效率:转移频度、预测的准确性例175利用实际程序的运行情况统计出错率10%~58%基于方向预测统计数据基于profile预测基本流水线的性能测试4%9%5%4%7%5%14%3%5%7%0%2%4%6%8%10%12%14%compresseqntottespressogccli程序中stall的比例BranchstallsLoadstalls12%22%18%11%12%5%6%9%10%15%0%5%10%15%20%25%compresseqntottespressogcclidoducearhydro2dmdljdpsu2cor失配率1061111141911111496561937605825015992113253050100150200250300compresseqntottespressogcclidoducearhydro2dmdljdpsu2cor预测失配之间的指令数转移预测分布预测3.6流水线实现难点一、中断处理中断的类型I/O设备请求、OS调用、指令执行跟踪、断点、整数运算溢出、FP操作出错缺页中断、不对齐访问、存储保护错、未定义指令、硬件错、电源故障中断性质同步/异步(由处理机、存储器以外其他设备引起)用户请求/强制中断(可预测/用户程序无法控制的硬件原因,不可预测)用户可屏蔽/不可屏蔽指令内/指令间(指令内往往是同步中断,若指令内中断为异步中断往往导致程序终止运行。)可恢复执行/不可恢复执行中断处理难点:指令内中断中断指令恢复执行restartable中断处理要求:关闭流水线保护处理器状态(恢复执行指令的PC值)处理中断恢复处理器状态,重执引起中断的指令保护处理机状态的步骤:强制在下一个IF级取入Trap指令;关闭故障指令极其后进入流水线的指令的写操作;操作系统的中断处理例程接管控制后,立即保存中断指令的PC值(可能需保存多个PC值)精确中断:能够停止流水线,并使得那些在故障指令之前的指令执行完毕,而故障指令及其后指令能在中断处理后恢复执行,称此流水线支持精确中断。流水级可能发生的异常中断IF取指时页管理失败;存储器访问没对齐;违反存储器保护ID非法指令代码EX算术溢出等MEM数据存取页面故障;存储器访问设对齐;违反存储器保护WBLWIFIDEXMEMWBADDIFIDEXMEMWBDLX中断处理(精确中断)各级可能发生的中断(184/169)中断处理顺序:与指令关联的状态向量关闭写操作:一旦状态向量有一位置位,则关闭写操作(寄存器写和存储器写)检测(状态向量):离开MEM前/进入WB时第I条指令引起的中断先于第I+1条指令的中断的处理指令中第I级发生的中断先于第I+1级的中断的处理二、指令集的复杂性指令交付:当指令保证能执行完毕时,称其为committed.1、交付前可能修改机器状态(如自增指令)非精确断点恢复重执很困难避免指令在交付前修改状态——硬件代价很高。一般做法:虽然在交付前允许状态修改,但提供回退功能。2、执行期间修改存储器状态(如字符串拷贝)为允许中断并重执此类指令,用通用Reg作为工作寄存器VAX在状态位中增加一位,在修改存储器状态前,先置位。3、产生其他流水线竞争或有需额外硬件Save/Restore的状态(如隐含设置条件码)4、当隐含设置条件码时编译调度受限5、当引入多周期操作时,数据竞争更为复杂。如VAX:微指令级用流水线实现3.7多周期操作的指令流水线根据操作EX级可以重复执行很多遍可以设置多个浮点功能部件发生结构竞争或数据竞争时插入Stall假设整数部件:整数指令+L/S+Branch乘法器:整数乘、浮点乘浮点加法器:浮点加减、数据转换除法器:整数除、浮点除执行级功能部件非流水实现指令按序发射一、多周期操作DLX流水线(188/172)二、描述FP流水线的两个参量启动间隔(initiationinterval/repeatinterval)两条同类型指令进入流水线而不发生结构竞争所必须保持的时间间隔部件延时(等待时间、latency)产生结果指令与使用结果的指令进入流水线而不发生数据竞争(用forwardingpath)所必须保持的时间间隔=部件功能时间1(p189/172)引入浮点操作的流水线三、竞争与ForwardingPath非完全流水引起的结构竞争同一时钟周期内的Reg写1指令执行所需时钟周期数不同,到达WB级顺序不同于发射次序,所以有WW竞争(无WAR竞争)指令完成顺序不同于发射顺序,所以中断会出现新的问题RAW竞争引起的Stall增多例p192/p1741、Reg写口结构竞争(192/174)在ID级跟踪Reg写口使用情况——移位寄存器代价:移位寄存器、写竞争检测逻辑优点:在ID级检测,控制简单缺点:操作功能部件推迟占用,使RAW竞争带来的延时更厉害在进入MEM或WB级前检测优点:竞争检测逻辑简单有两处检测竞争,插入Stall,控制复杂2、WAW数据竞争(192/174)WAW竞争解决方法:推迟发射LD,直到ADDD进入MEM级检测到竞争后,取消第一次写,立即发射LD(都在ID级检测)困难之处:如何知道LD在ADDD之前结束(各操作部件的流水级数+当前ADDD所在位置)简单处理方法:if本指令的目的Reg=已发射指令的目的Regthen暂停发射当前指令3、浮点指令和整数指令之间的竞争浮点寄存器+通用寄存器Load/Store指令与浮点指令之间FP-integer寄存器传送指令小结:(在发射前需作的竞争检测)检查是否有结构竞争(非完全流水引起)检查是否有RAW数据竞争检查是否有WAW数据竞争竞争检测逻辑与整数流水线类似四、精确中断困难之处:按序发射,乱序完成195/176可能的解决方法按不精确中断方法处理缓冲操作结果,直到所有先发射的指令都完成历史文件/未来文件允许中断在某种程度上不精确,但保持信息使自陷处理例程能生成精确中断的执行序列。196混合方法。当确定当前发射指令前的所有指令不会引起竞争而能顺利执行时才允许发射当前指令3.8指令集结构设计与指令流水线的关系指令可变长、指令执行时间可变流水级不均衡,使竞争检测、精确中断维护变复杂复杂的寻址方式修改Reg的寻址使冲突检测变复杂使指令重执变得困难需多次访存的指令使流水线控制复杂隐含置条件码增加转移延时调度的困难例MIPSR4000流水线8级流水线IF——取指的一半。PC选择,访指令Cache启动IS——完成指令Cache访问RF——译码.取Reg.竞争检测.ICache命中检测EX——执行((转移)地址计算、ALU、条件判断)DF——取数据,访数据Cache。DS——完成数据Cache访问TC——Tag匹配,命中检测WB——Load和R-RALU运算结果写回Load延时:2Stall(202)Branch延时:3Stall硬件预测untaken,延时转移调度:1slot指令+2nop转移成功:2Stall;不成功:0Stallfrowardingpath产生数据:EX/DF;DF/DS;DS/TC;TC/WB浮点流水线205浮点功能部件:DIVD,MULD,ADDD操作所需时钟周期数:2(取负)~112(开方)性能Load-----2stallBranch------成功转移有2个stallFP操作------RAW竞争引起的Stall------争用同一流水级引起的结构竞争3.9进一步开发指令级并行性指令级并行性(InstructionLevelParallelism)------指令间潜在的可重叠执行的特性三大途径减小数据竞争、控制竞争带来的影响提高处理器的并行处理能力

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

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

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

×
保存成功