已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(第五讲),2011年4月16日,程旭,VLIW/EPIC基于静态调度的ILP,高等计算机系统结构,复习:先进超标量技术,简单的转移预测技术也会有不错的效果基于路径(Path-based)的预测器可取得95%的正确率BTB可以在流水线的前期就改变控制流,BHT的每个表项成本小,但需要等到指令译码转移错误预测的恢复需要使用流水线的快照(snapshots)以减少损失统一物理寄存器堆的设计,可以避免从不同地方(ROB+archregfile)读取数据超标量处理器可以在一个时钟周期对多条相关指令进行重命名需要采用推测式存储缓冲器(speculativestorebuffer)来避免等待存储操作的确认,Fetch,Decodefor(i=0,inox-operationRAWcheckNodatausebeforedataready=nodatainterlocks,TwoIntegerUnits,SingleCycleLatency,TwoLoad/StoreUnits,ThreeCycleLatency,TwoFloating-PointUnits,FourCycleLatency,VLIW编译器的职责,编译器:调度成最大并行执行确保指令内的并行性避免数据冒险(无互锁)通常用显式的NOP指令来分隔实际操作,早期VLIW机器,FPSAP120B(1976)scientificattachedarrayprocessorfirstcommercialwideinstructionmachinehand-codedvectormathlibrariesusingsoftwarepipeliningandloopunrollingMultiflowTrace(1987)commercializationofideasfromFishersYalegroupincluding“tracescheduling”availableinconfigurationswith7,14,or28operations/instruction28operationspackedintoa1024-bitinstructionwordCydromeCydra-5(1987)7operationsencodedin256-bitinstructionwordrotatingregisterfile,循环的执行,for(i=0;iN;i+)Bi=Ai+C;,Int1,Int2,M1,M2,FP+,FPx,loop:,HowmanyFPops/cycle?,ld,addr1,fadd,sd,addr2,bne,1fadd/8cycles=0.125,loop:ldf1,0(r1)addr1,8faddf2,f0,f1sdf2,0(r2)addr2,8bner1,r3,loop,Compile,Schedule,循环展开(LoopUnrolling),for(i=0;iN;i+)Bi=Ai+C;,for(i=0;iN;i+=4)Bi=Ai+C;Bi+1=Ai+1+C;Bi+2=Ai+2+C;Bi+3=Ai+3+C;,Unrollinnerlooptoperform4iterationsatonce,NeedtohandlevaluesofNthatarenotmultiplesofunrollingfactorwithfinalcleanuploop,循环展开后代码的调度,loop:ldf1,0(r1)ldf2,8(r1)ldf3,16(r1)ldf4,24(r1)addr1,32faddf5,f0,f1faddf6,f0,f2faddf7,f0,f3faddf8,f0,f4sdf5,0(r2)sdf6,8(r2)sdf7,16(r2)sdf8,24(r2)addr2,32bner1,r3,loop,Schedule,Int1,Int2,M1,M2,FP+,FPx,loop:,Unroll4ways,ldf1,ldf2,ldf3,ldf4,addr1,faddf5,faddf6,faddf7,faddf8,sdf5,sdf6,sdf7,sdf8,addr2,bne,HowmanyFLOPS/cycle?,4fadds/11cycles=0.36,软件流水(SoftwarePipelining),loop:ldf1,0(r1)ldf2,8(r1)ldf3,16(r1)ldf4,24(r1)addr1,32faddf5,f0,f1faddf6,f0,f2faddf7,f0,f3faddf8,f0,f4sdf5,0(r2)sdf6,8(r2)sdf7,16(r2)addr2,32sdf8,-8(r2)bner1,r3,loop,Unroll4waysfirst,HowmanyFLOPS/cycle?,4fadds/4cycles=1,软件流水与循环展开,time,performance,time,performance,LoopUnrolled,SoftwarePipelined,Startupoverhead,Wind-downoverhead,LoopIteration,LoopIteration,Softwarepipeliningpaysstartup/wind-downcostsonlyonceperloop,notonceperiteration,如果没有循环,怎么办?,转移指令限制了控制流敏感的非规则代码中基本块的大小很难从单独的基本块中发现ILP,踪迹调度(TraceScheduling)Fisher,Ellis,Pickstringofbasicblocks,atrace,thatrepresentsmostfrequentbranchpathUseprofilingfeedbackorcompilerheuristicstofindcommonbranchpathsSchedulewhole“trace”atonceAddfixupcodetocopewithbranchesjumpingoutoftrace,“典型”VLIW的问题,目标代码的兼容性需要针对每种机器重新编译所有代码,甚至对于同一代中的两种不同机器也需要如此目标代码的大小指令填充浪费指令存取空间(存储器/cache)循环展开/软件流水将复制代码需要调度访存延迟可变的操作caches和/或主存块的冲突可能产生静态时刻不可预知的变化确认转移发生概率动态剖视(Profiling)需要增加巨大的一步来进行静态转移预测对于静态时刻不可预测的转移进行调度根据转移路径的不同,最佳调度策略也不同,VLIW指令的编码,SchemestoreduceeffectofunusedfieldsCompressedformatinmemory,expandonI-cacherefillusedinMultiflowTraceintroducesinstructionaddressingchallengeMarkparallelgroupsusedinTMS320C6xDSPs,IntelIA-64Provideasingle-opVLIWinstructionCydra-5UniOpinstructions,Group1,Group2,Group3,RotatingRegisterFiles,Problems:Scheduledloopsrequirelotsofregisters,Lotsofduplicatedcodeinprolog,epilog,Solution:Allocatenewsetofregistersforeachloopiteration,RotatingRegisterFile,RRB=3,+,R1,RotatingRegisterBase(RRB)registerpointstobaseofcurrentregisterset.Valueaddedontologicalregisterspecifiertogivephysicalregisternumber.Usually,splitintorotatingandnon-rotatingregisters.,RotatingRegisterFile(PreviousLoopExample),Cydra-5:存储延迟寄存器(MemoryLatencyRegister:MLR),问题:装入操作可能出现时延变化解决方案:让软件选择所需时延编译对代码进行调度以满足最大装入-使用(load-use)距离软件将MLR设置为机器代码调度的延迟硬件保证装入操作在MLR要求的周期将所需数值返回给处理器流水线硬件将缓存提前返回的装入数值如果装入没有按时返回数值,硬件将暂停处理器,IntelEPICIA-64,与传统CISC和RISC相比,EPIC是一种新型的体系结构ExplicitlyParallelInstructionComputingIA-64是Intel最新采用的一种ISAIA-64=IntelArchitecture64-bit一种目标代码兼容的VLIWItanium(最早称为Merced)是采用IA-64的第一种处理器1995年预计第一种产品在1997问世(实际上为2001)McKinley是2002年推出的第二类产品,IA-64的指令格式,TemplatebitsdescribegroupingoftheseinstructionswithothersinadjacentbundlesEachgroupcontainsinstructionsthatcanexecuteinparallel,128-bitinstructionbundle,groupi,groupi+1,groupi+2,groupi-1,bundlej,bundlej+1,bundlej+2,bundlej-1,IA-64中的寄存器,128个通用64位定点寄存器128个通用64/80位浮点寄存器64个1位预测寄存器GPR可以旋转(rotate)以减小软件流水化循环的代码大小,IA-64PredicatedExecution,Problem:MispredictedbrancheslimitILPSolution:EliminatehardtopredictbrancheswithpredicatedexecutionAlmostallIA-64instructionscanbeexecutedconditionallyunderpredicateInstructionbecomesNOPifpredicateregisterfalse,PredicateSoftwarePipelineStages,SingleVLIWInstruction,SoftwarepipelinestagesturnedonbyrotatingpredicateregistersMuchdenserencodingofloops,IA-64SpeculativeExecution,Problem:Branchesrestrictcompilercodemotion,Inst1Inst2bra=b,b2,Loadr1User1Inst3,Cantmoveloadabovebranchbecausemightcausespuriousexception,Particularlyusefulforschedulinglonglatencyloadsearly,Solution:Speculativeoperationsthatdontcauseexceptions,IA-64DataSpeculation,Problem:Possiblememoryhazardslimitcodescheduling,Requiresassociativehardwareinaddresschecktable,Solution:Hardwaretocheckpointerhazards,集群化VLIW(ClusteredVLIW),将机器划分成具有局部寄存器堆和局部功能部件的集群集群间采用低带宽/高时延的互联由软件负责进行计算划分,以实现最小化通讯
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省保定市物理高一下学期期末巩固要点详解
- 2026年橡胶半成品制造工专项题库(附答案与解释)
- 美容美发渠道销售合作框架协议2026
- 家族企业投资合作协议书
- 远程医疗诊断合作协议2026年
- 网络内容分发与版权保护合同
- 网络效应平台用户隐私保护协议2026
- 茶艺师培训学员考核协议
- 2026年化工添加剂制造工专项题库(附答案与解释)
- 2026年插入圈子测试题及答案
- 2026年高一历史学业水平考试知识点归纳总结(复习必背)
- 设备管理年度总结
- 甲减危象的急诊救治
- 初中初一到初三英语单词表
- 4马克思主义宗教观
- 2023年二阶系统阶跃响应实验报告
- 汉语言文学学术论文写作课件
- 独立基础土方开挖方案范本
- 健康评估习题+参考答案1
- 高新技术产业开发区洪水影响区域评估报告
- 特殊岗位护理人员准入申请表
评论
0/150
提交评论