版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高性能计算机系统结构1转移转移指令程序的转移行为解决硬件动态转移相关常见处理器的转移猜测2转移指令3相关转移指令计算的下一条指令地址在EX阶段计算,下一条指令等2拍使用专门的地址运算部件把地址计算提前到译码阶段 可以少等一拍使用一个delay slot可以不用等待多发射情况下延迟槽成为需要专门照顾的负担第 1 条第 1 条第 2 条第 2 条第第第 4 条第 4 条第第IFIDEXMEMWB5 条IFIDEXMEMWBIFIDEXMEMWB5 条IFIDEXMEMWB4IFIDEXMEMWB3 条IFIDEXMEMWBIFIDEXMEMWB3 条IFIDEXMEMWBIFIDEXMEMWBIF
2、IDEXMEMWB转移指令对性能的影响分支指令的影响是开发指令级并行性的重要一条指令流中,平均每5-7条指令中就有一条是分支指令,也即基本块大小为5-7条指令。增大发射宽度在发射宽度为n的处理器中,遇到分支指令的速度也快了n倍增加流水线深度流水线越深,处理分支指令所需要的时钟周期数就越多5一个例子假设平均每8条指令中有一条转移指令,某处理器采用4发 射结构,第10级流水解决转移地址相关(即第10级流水算出转移方向和目标)在A系统中不进行转移36/(36+8)=82%;在B系统中进行简单的转移,遇到转移指令就等待,指令带宽浪费,转移猜错率为50%,那么平均每16条指令错误一次,指令带宽浪费36/
3、(36+16)=75%在C系统中,转移指令猜错率为10%,那么平均每80条指令误一次,指令带宽浪费36/(36+80)=31%;错在D系统中,转移指令猜错率为4%,平均每200条指令次,取指令带宽浪费36/(36+200)=15%。错误一6转移指令的属性条件转移与无条件转移指令:branch条件转移:需等待条件的确定后才能取指,数转移指令是条件转移指令多无条件转移:不用条件就转移,如call/return直接转移与间接转移直接转移:转移目标根据指令内容直接得出间接转移:转移目标在寄存器中相对转移与绝对转移相对转移:转移目标为当前PC值加上偏移量绝对转移:转移目标由指令或寄存器内容直接给出7MI
4、PS指令系统的转移指令条件转移都是直接、相对转移,如BEQ,BGEZ无条件直接转移转移目标为PC31:28,IR25:0,2b0J与JAL无条件间接转移转移目标为寄存器内容JR与JALRMIPS转移指令特点likely与非likely,如BEQL,BGEZL没有Call/Return,通过link类转移指令实现call功能,如JAL8程序的转移行为9SPEU2000转移指令统计(1)龙芯2号统计结果10程序名语言程序功能动态无条件分支频度(%)动态条件分支频度(%)SPECint2000gzipC压缩3.056.73vprCFPGA 电路布局布线2.668.41gccCC 程序语言编译器0.7
5、74.29craftyC:象棋2.798.34parserC字处理4.7810.64perlbmkCperl 编程语言4.369.64gapC群论,翻译1.415.41vortexC面向对象数据库5.7310.22bzip2C压缩1.6911.41twolfC布局布线模拟器1.9510.23平均2.9198.532SPEU2000转移指令统计(2)龙芯2号统计结果11程序名语言程序功能动态无条件分支频度(%)动态条件分支频度(%)SPECfp2000wupwiseF77物理:量子色动学2.027.87swimF77浅水模拟0.001.29mgridF77多网格求解器:3 维势场0.000.28
6、appluF77差分方程0.010.42mesaC3 维图形库2.915.83artC图像识别/神经0.3910.91equakeC波传导模拟6.5110.66facerecF90图像处理:脸部识别1.032.45ammpC计算化学2.6919.51lucasF90数论/素数测试0.000.74fma3dF90有限元碰撞模拟4.2513.09apsiF77气象学:污染分布0.512.12平均1.696.26转移指令间距离统计(1)发射宽度增加,分支间的动态距离就会越小,分支预测的延迟对性能的影响就越大,当要求更高的发射宽度时,需要每个周期做不止一个12转移指令间距离统计(2)Inter-bra
7、nch distance(cycles)模拟环境:4发射乱序SPECint200013不同分支类型静态分布1是间接分支指令,采用BTB10是返回指令,返回地址栈RAS17是无条件立即跳转指令,跳转地址在指令中72%是条件分支,大量的工作是进行条件分支。分支指令执行的频率分布大部分条件分支在程序运行过程中,仅仅执行几次平均来说所有分支指令的53%仅仅执行99次或者更少只有11的分支执行了超过10000次或者。15不同分支类型的动态分布说明了不同分支指令执行在整个程序分支总数的权重执行99次或者更少的分支指令有53%,这53%的指令在spec程序分支执 行比重中只占0.2%,在图上显示不出来所示的
8、占11的分支指令(10000次以上)占据了所有分支执行的87,也就是10的指令占据了程序90的运行时间。6分支率权重分布分支率是分支指令跳转除以整个程序的分支总数大概28%的指令总是跳转或者总不跳转,32%的指令跳转的几率总少于5%或者多于95%总跳转,也就是说60的分支指令具有强烈的一个跳转方向其余40%的分支跳转具有性的工作是17分支的可性利用单个转移指令的重复性基于模式的利用不同转移指令之间的基于相关的方向相关、路径相关18利用单个转移指令重复性循环型分支for型循环:TTTN(n次后跟一次不)while型循环:NNNT(不n次后跟一次周期重复模式型分支定长重复模式类分支:patq个分支
9、模式就重复一次),|pat|=k(每隔k块模式类分支:Tn如此循环Nmqn次,不m次,19利用转移指令之间的方向相关两个分支的条件(完全或部分)基于相同或相关的信息第二个分支的结果基于第一个分支的结果产生20Example:Y:if (cond1)Z:if (cond1)Y:if (cond1) a = 2MMMX:if (cond1 AND cond2)Y:if (cond2)X:if (a = = 0)MX:if (cond1 AND cond2)利用转移指令之间的路径相关如果一个分支是通向当前分支的前n条分支之一,则称该分支处在当前分支的路径之上。处在当前分支路径上的分支与当前分支结果之
10、间的相关称为路径相关Example:Z: if (NOT (cond1) Y:else if (NOT(cond2) V:else if (cond3)MX:if (cond1 AND cond2)21分支指令行为小结分支指令是很频繁的分支指令有较好的局部性分支指令具有可性22解决相关23解决转移条件相关的阻塞等待直到转移条件确定用延迟槽延迟延迟槽指令来源编译器优化循环:循环展开减少转移指令、软流水减少阻塞分支:全局代码调度(越过分支调度指令) 函数调用:inline转换为数据相关条件指令、谓词硬件转移转移条件未确定时静态与动态转移是否24利用延迟槽延迟槽指令的来源来自转移指令前:肯定执行来自
11、转移目标地址:转移才执行来自转移不地址:转移不才执行单延迟槽的编译效果能为 60% 左右的转移延迟槽找到有效操作大约80%的延迟槽指令用于有效计算因此大约50% (60% x 80%) 的延迟槽操作用于有效计算延迟槽的限制超流水情况下一条延迟槽不够多发射情况下延迟槽反而成为需要特殊照顾的兼容负担25循环展开消除相关展开两个循环循环展开寄存器重命名变换次序循环展开的不足有些循环不好展开(如循环次数不定的循环)增加指令CACHE的负担26LDF00R1LDF60R1MUF4F0F2MUF8F6F2SDF40R1SDF80R1LDF00R1MUF4F0F2SDF40R1LDF60R1MUF8F6F2
12、SDF80R1LDF00R1MUF4F0F2SDF40R1LDF00R1MUF4F0F2SDF40R1循环的数据相关循环内相关:S2使用同一次循环中S1计算的Ai+1.循环间(loop-carried)相关:本次循环计算的Ai+1/Bi+1将被下一次循环使用。循环内相关导致一个循环体内的多条指令不能并行执行,循环间相关导致多个循环体不能并行执行27A0 = A0 + B0; For (i=0;i99;i+)Bi+1 = Ci + Di;Ai+1 = Ai+1 + Bi+1;B100 = C100 + D100;For (i=0;i100;i+)Ai = Ai + Bi;Bi+1 = Ci +
13、Di;For (i=0;i100;i+)Ai+1 = Ai + Ci; /S1Bi+1 = Bi + Ai+1; /S2循环展开的条件数组元素相关的仿射(Affine)和非仿射(nonaffine)Xa*i+b XYi最大公约数法Xa*j+b = Xc*k+d(a,c)整除(d-b)则有相关名字相关的消除重命名技术指针相关的只有一些经验的28For (i=0;i100;i+)Ti = Xi / c;X1i = Xi + c;Zi = Ti + c;Yi = c Ti;For (i=0;i100;i+)Yi = Xi / c;Xi = Xi + c;Zi = Yi + c;Yi = c Yi;F
14、or (i=0;i 设计好的器精度越高,能抽取的并行性就越多正确所付的代价:转到目标地址处执行所需的延迟译码时根据IR内容指令的延迟槽:有一拍的延迟槽,在4发射情况下有4条取指时根据PC:没有延迟槽,需要BTB/Trace Cache等机制MIPS R10000无BTAC,MIPS R12000有32项BTAC错所付的代价尽量提前执行转移操作Pentium II/III和Alpha 21264重新刷新流水线需要11周期以上35转移如何保证准确的:根据的历史进行如何转移历史,哪些转移历史多少转移历史何时更新:更新太早,转移指令也可能被取消;更新太晚,导致转移历史确如何在取消猜测执行的操作时保证现
15、场精确性增加提交流水级,在提交时修改寄存器和内存I/O指令的猜测执行难以取消如何识别流水线中的指令哪些需要取消,哪些不要取消例外取消一般在提交时,取消所有后续指令转移取消一般在执行后,只取消部分指令延迟槽指令的处理每个周期多个分支每周期1个,基本可满足4-6 发射需要的取指带宽36静态/动态转移静态动态:总是转移或总是转移不转移转移不:较精确,计算转移地址需要delay slot:直接用PC+4:根据转移指令执行历史进行复杂技术:精确、复杂混合:利用编译器的提示,结合动态和静态37局部转移考虑单个循环的历史,寻找其中的重复性规律,并根据该规律未来的转移行为对于重复性特征明显的转移指令(如循环)
16、效果好例子for (I=0, I10; I+) 转移模式为(1111111110)n38利用单个分支的重复性-BHT转移历史表BHT(Branch History Table)用PC的低位索引,每项1位同一项上次转移是否,表示是否转移不进行地址比较检查(cache tag用于地址比较检查)对循环进行猜测时,1位 BHT引起两次猜错循环时,转移方向不一致进入循环时,和上次时的转移方向不一致for (i=0;i10;i+) for (j=0; j2)与2位效果差不多40减少猜测延迟-BTB在取指阶段根据当前PC值转移方向和转移地址需要进行地址全相等比较直接PC值而不是根据指令内容计算失效时进行替换
17、41返回地址栈返回地址栈(Return Addresses Stack)返回地址函数调用时压栈,返回时从栈顶弹出作为返回地址函数调用有很高的准确率42转移指令的相关性2位分支主要之后,正确率难以提高是分支指令的相关性If (d =10)d = 12;If (d =12)d = 2/分支1/分支2依靠分支143Yeh和Patt分类当前的转移依赖于两种情况:该指令的过去m次转移:PHT(Pattern History Table)所有转移指令过去m次的转移Register):BHR(Branch HistoryBHR的组织“PA”表示per address BHR“GA”表示global addr
18、ess BHR “SA”表示set address BHRPHT的组织只用历史索引PHT表,用“g”表示一起索引PHT表,用“p”表示用全地址和历史一起索引PHT表,用“s”表示使用部分地址和历史44两层自适应器组合情况BHR: Branch History RegisterPHT: Pattern History Table45Global PHTper-address PHTsper-set PHTsGlobal BHRGAgGApGAsper-address BHRPAgPApPAsper-set BHRSAgSApSAsGAg结构BHR和PHT都是全局的,全局的BHR又称为GHR(Gl
19、obal History Rigster)。其中GHR历史,并用GHR的k位值去索引2k个过去k次转移的PHT,PHT每项利用2位饱和计数器进行。46GAs结构其中BHR表还是全局的,只有k位;PHT表用k位的GHR和PC的低n位进行索引,因此一共有2k+n项。47SAg(k)的结构PHT是全局的,BHR寄存器一共有2n个,每个BHR为 k位。先用PC的低n位索引GHR,然后再用GHR的值索引PHT表。48PAp(4)结构每个PC值一个BHR寄存器,每个BHR为k位。先用PC索HR,然后再用BHR的值和PC一起索引PHT表。49分支别名干扰无论BHR和PHT表如何增大,效果也不是很明显同一个P
20、HT,造成分支干扰主要是不同分支地址50分支别名干扰的消除Gselect: 全局历史m位和地址n位组合寻址Gshare: 部分地址和全局历史异或寻址性能分析结果表明:gshare稍微好于gselect51Agree分支在指令Cache或转移目的地址缓存(BTB)中为每一个转移都加上一个偏向位,偏向位中保存的是这条指令最常见的转移方向。2位计数器不是用来转移方向的,而是用来决定是否按照偏向位来转移的。当转移的实际结果与偏向位一致时,计数器加一,否则减一52Agree分支2条分支正确率分别为 85%和15%,使用同一项PHT传统- 两条分支结果相反(分支)的概率:(br1taken, br2not
21、taken) + (br1nottaken, br2taken)= (85% * 85%) + (15% * 15%) = 74.5%Agree两条分支结果相反(分支)的概率:(br1agree, br2disagree) + (br1disagree, br2disagree)= (85% * 15%) + (15% * 85%) = 25.5%优点2条不同方向的分支可以偏向位不变,只改变 PHT倒同一表项gcc误在64k的PHT下减少8.6%, 1K的PHT误减少33.3%HP的PA-8700处理器中得到应用53Bi-Mode器Bi-mode 和Agree 分支的思想一致,不过它是把容易发
22、生跳转和不跳转的分支放入不同的PHT。它由3 部分组成,一部分用来选择PHT,另外两部分表示PHT 的方向,分别为跳转和不跳转,PHT 的方向被全局历史索引。由于对器的选择,达到了每条转移的程度,因此命中率又有所提高。54组合分支器不同的分支不同分支只能对某类的分组合起来,根据分为有效为选不同分支器55动态转移猜测小结转移的重复性和偏向性BHT转移指令的相关性两层转移分支别名干扰Gshare等混合器不同的分支只能对某类的分为有效不要执着于具体办法,关键是抓住应用程序的特点56常见处理器的转移57一些典型商品处理器的分支机制58Alpha 21264的分支器ediction)Local hist
23、ory predictionSAg(10)59Global PHT Global history prGAg(12k = 12Selector(1r12)Global BHRper-set BHTglobal PHTk =10n=10Alpha 21264分支器举例程序(a)中,假设第一个条件语句的转移模式为“语句的转移模式为“NNNNNN”。NTN”,第二个条件简单的PHT表就可以准确猜测第二个条件语句的跳转方向,但对第一个条件语句为力。Alpha 21264的两级局部器中“局部历史表”相应的表项有的猜测就两个可能的值“1010101010”和“0101010101”,这两个值分别指向“局部表”中的两个表项,前者跳转,后者不跳转。程序段(b)中,第一个和第二个条件都成立时第三个条件也成立。当全局转移历史为“过训练后的选择x11”时,全局“if (a=b)”指令跳转。经表将表也会根据在全局转移历史最后两位为“11”时选择全局表而不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西培贤国际职业学院单招职业技能测试题库附参考答案详解(综合题)
- 2026年常德科技职业技术学院单招综合素质考试题库含答案详解(精练)
- 2026年平凉职业技术学院单招职业适应性测试题库带答案详解
- 2026年山西省阳泉市单招职业适应性测试题库含答案详解(完整版)
- 2026年广西制造工程职业技术学院单招职业技能考试题库附答案详解(基础题)
- 2026年广东省惠州市单招职业倾向性测试题库及1套完整答案详解
- 2026年广西农业职业技术大学单招职业适应性测试题库带答案详解(新)
- 2026年广西工业职业技术学院单招职业技能考试题库附答案详解ab卷
- 2026年广州卫生职业技术学院单招综合素质考试题库含答案详解
- 2026年山西药科职业学院单招职业技能测试题库及参考答案详解(新)
- 2026年湖南安全技术职业学院单招综合素质考试题库及答案解析
- GB/T 4699.2-2025铬铁、硅铬合金、氮化铬铁和高氮铬铁铬含量的测定过硫酸铵氧化滴定法和电位滴定法
- 道路绿化养护投标方案(技术方案)
- 品牌策划与推广(第3版 数字教材版) 课件全套 人大 第1-9章 品牌的本质及其定位决策-营销活动策划与管理
- 爆破作业人员教育培训制度
- 辊道窑作业标准指导书
- GB/T 24421.1-2023服务业组织标准化工作指南第1部分:总则
- 井巷用全自动全液压凿岩台车设计书
- 蚕桑产业建设汇报材料(四)
- 借调人员协议-三方协议
- 2022版化学检验工高级工考核题库(全真题库)
评论
0/150
提交评论