计算机系统结构第6章.ppt

计算机系统结构第6章.ppt

ID:52395458

大小:1.00 MB

页数:89页

时间:2020-04-05

计算机系统结构第6章.ppt_第1页
计算机系统结构第6章.ppt_第2页
计算机系统结构第6章.ppt_第3页
计算机系统结构第6章.ppt_第4页
计算机系统结构第6章.ppt_第5页
资源描述:

《计算机系统结构第6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章指令级并行的开发——软件方法6.1基本指令调度及循环展开6.2跨越基本块的静态指令调度6.3静态多指令流出:VLIW技术6.4显式并行指令计算EPIC6.5开发更多的指令级并行6.6实例:IA-64体系结构指令调度:找出不相关的指令序列,让它们在流水线上重叠并行执行。制约编译器指令调度的因素程序固有的指令级并行流水线功能部件的延迟6.1基本指令调度及循环展开6.1.1指令调度的基本方法表6.1本节使用的浮点流水线的延迟6.1基本指令调度及循环展开产生结果的指令使用结果的指令延迟(cycles)浮点

2、计算另一个浮点计算3浮点计算浮点store(S.D)2浮点Load(L.D)浮点计算1浮点Load(L.D)浮点store(S.D)0例6.1对于下面的源代码,转换成MIPS汇编语言,在不进行指令调度和进行指令调度两种情况下,分析其代码一次循环所需的执行时间。for(i=1000;i>0;i--)x[i]=x[i]+s;解:先把该程序翻译成MIPS汇编语言代码Loop:L.DF0,0(R1)ADD.DF4,F0,F2S.DF4,0(R1)DADDIUR1,R1,#-8BNER1,R2,Loop6.1基本

3、指令调度及循环展开在不进行指令调度的情况下,根据表中给出的浮点流水线中指令执行的延迟,程序的实际执行情况如下:指令流出时钟Loop:L.DF0,0(R1)1(空转)2ADD.DF4,F0,F23(空转)4(空转)5S.DF4,0(R1)6DADDIUR1,R1,#-87(空转)8BNER1,R2,Loop9(空转)106.1基本指令调度及循环展开在用编译器对上述程序进行指令调度以后,程序的执行情况如下:指令流出时钟Loop:L.DF0,0(R1)1DADDIUR1,R1,#-82ADD.DF4,F0,F

4、23(空转)4BNER1,R2,Loop5S.DF4,8(R1)66.1基本指令调度及循环展开进一步分析:编译时指令调度是怎样减少整个指令序列在流水线上的执行时间的?指令调度能否跨越分支边界?怎样提高整个执行过程中有效操作的比率?循环展开把循环体的代码复制多次并按顺序排放,然后相应调整循环的结束条件。开发循环级并行的有效方法例6.2将例6.1中的循环展开3次得到4个循环体,然后对展开后的指令序列在不调度和调度两种情况下,分析代码的性能。假定R1的初值为32的倍数,即循环次数为4的倍数。消除冗余的指令,并

5、且不要重复使用寄存器。6.1.2循环展开6.1基本指令调度及循环展开展开后没有调度的代码如下(需要分配寄存器)指令流出时钟Loop:L.DF0,0(R1)1(空转)2ADD.DF4,F0,F23(空转)4(空转)5S.DF4,0(R1)6L.DF6,-8(R1)7(空转)8ADD.DF8,F6,F29(空转)10(空转)11S.DF8,-8(R1)12L.DF10,-16(R1)13(空转)14指令流出时钟ADD.DF12,F10,F215(空转)16(空转)17S.DF12,-16(R1)18L.DF

6、14,-24(R1)19(空转)20ADD.DF16,F14,F221(空转)22(空转)23S.DF16,-24(R1)24DADDIUR1,R1,#-3225(空转)26BNER1,R2,Loop27(空转)2850%是空转周期!调度后的代码如下:指令流出时钟Loop:L.DF0,0(R1)1L.DF6,-8(R1)2L.DF10,-16(R1)3L.DF14,-24(R1)4ADD.DF4,F0,F25ADD.DF8,F6,F26ADD.DF12,F10,F27ADD.DF16,F14,F28S.

7、DF4,0(R1)9S.DF8,-8(R1)10DADDIUR1,R1,#-3212S.DF12,16(R1)11BNER1,R2,Loop13S.DF16,8(R1)14没有空转周期!结论:通过循环展开、寄存器重命名和指令调度,可以有效开发出指令级并行。6.1基本指令调度及循环展开循环展开和指令调度的注意事项保证正确性注意有效性使用不同的寄存器删除多余的测试指令和分支指令,并对循环结束代码和新的循环体代码进行相应的修正。注意对存储器数据的相关性分析注意新的相关性概述目标:在保持原有数据相关和控制相关不

8、变的前提下,尽可能地缩短包含分支结构的代码段的总执行时间。单流出处理器——减少指令数多流出处理器——缩短关键路径长度基本思想:在循环体内的多个基本块间移动指令,扩大那些执行频率较高的基本块的体积。6.2跨越基本块的静态指令调度6.2.1全局指令调度6.2跨越基本块的静态指令调度实例分析由于分支条件为true(转移)的概率大,全局指令调度时会将语句1、2、3、5合并为一个更大的基本块。一个分支结构的代码段如何保证分支条件为false时结果依然

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。