欢迎来到天天文库
浏览记录
ID:1468554
大小:1.39 MB
页数:115页
时间:2017-11-11
《高等计算机系统结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高等计算机系统结构(第三讲)2011年3月21日程旭Tomasulo算法上一讲小结软件或硬件的指令级并行(ILP)循环级并行最容易判定软件并行性取决于程序,如果硬件不能支持就出现冒险软件相关性/编译器复杂性决定编译中是否能展开循环存储器相关是最难判定的硬件开采ILP—动态调度(dynamicscheduling)在编译时有些相关情况不能真正判定,可以简化编译器。针对某一机器产生的代码可以在另一机器上有效运行记分板的核心思想:允许暂停之后的指令提前处理(译码=>发射指令&读取操作数)允许乱序执行=>乱序完成ID段检测所有的结构冒险复习相
2、关和冒险PipelineCPI=IdealpipelineCPI+Structuralstalls+Datahazardstalls+Controlstalls数据相关和冒险数据相关(Datadependences)名称相关(Namedependences)反相关(antidependence)输出相关(outputdependence)数据冒险RAW冒险(由数据相关引起)WAR冒险(由反相关引起)WAW冒险(由输出相关引起)存储器(Memory-included)相关和冒险控制相关BranchExceptionandInterrup
3、tion复习FunctionalUnitsRegistersFPMultFPMultFPDivideFPAddIntegerMemorySCOREBOARD记分板体系结构复习记分板控制的四级发射—指令译码并检测结构冒险(ID1)按照程序的次序发射指令(进行冒险检测)如果存在结构冒险暂停发射如果带发射的指令与已发射但尚未完成的指令之间存在输出相关,则暂停发射(无WAW冒险)读操作数—等待到没有数据冒险,再读取操作数(ID2)由于将等待未完成指令写回其结果,因而在该阶段,可解决所有的真数据相关(RAW冒险)在该模型中,无数据前递!记分板控
4、制的四级(续一)执行—对操作数进行操作(EX)接收到操作数之后,功能部件开始执行。当产生结果之后,它通报记分板:已经完成执行。写结果—完成执行(WB)暂停直到与以前的指令没有WAR冒险:示例:DIVDF0,F2,F4ADDDF10,F0,F8SUBDF8,F8,F14CDC6600的记分板将暂停SUBD指令,直到ADDD指令读取了操作数。记分板的三个主要组成部分1.Instructionstatus—whichof4stepstheinstructionisin2.Functionalunitstatus—Indicatesthes
5、tateofthefunctionalunit(FU).9fieldsforeachfunctionalunitBusy—IndicateswhethertheunitisbusyornotOp—Operationtoperformintheunit(e.g.,+or–)Fi—DestinationregisterFj,Fk—Source-registernumbersQj,Qk—FunctionalunitsproducingsourceregistersFj,FkRj,Rk—FlagsindicatingwhenFj,Fkarer
6、eady3.Registerresultstatus—Indicateswhichfunctionalunitwillwriteeachregister,ifoneexists.Blankwhennopendinginstructionswillwritethatregister复习CDC6600的记分板来自编译的加速比1.7;手编代码的加速比2.5,但是由于存储速度慢(没有Cache)限制了加速比的提高6600记分板的局限性:没有前递硬件指令调度局限于基本块内(指令窗口小)功能部件少(结构冒险),特别是integer/loadsto
7、re部件存在结构冒险,就暂停发射指令等待到WAR冒险解决防止WAW冒险复习ReadoperandsExecutioncompleteInstructionstatusWriteresultIssueBookkeepingRjNo;RkNof(ifQj(f)=FUthenRj(f)Yes);f(ifQk(f)=FUthenRj(f)Yes);Result(Fi(FU))0;Busy(FU)NoBusy(FU)yes;Op(FU)op;Fi(FU)`D’;Fj(FU)`S1’;Fk(FU)`S2’;QjRes
8、ult(‘S1’);QkResult(`S2’);RjnotQj;RknotQk;Result(‘D’)FU;RjandRkFunctionalunitdoneWaituntilf((Fj(f)≠Fi(FU)
此文档下载收益归作者所有