41指令级并行的概念内容摘要:
6 LD F6,8(R1) 7 (空转) 8 ADDD F8,F6,F2 9 (空转) 10 (空转) 11 SD 8(R1),F8 12 LD F10,16(R1) 13 (空转) 14 流出时钟 ADDD F12,F10,F2 15 (空转) 16 (空转) 17 SD 16(R1),F12 18 LD F14,24(R1) 19 (空转) 20 ADDD F16,F14,F2 21 (空转) 22 (空转) 23 SD 24(R1),F16 24 SUBI R1,R1,32 25 (空转) 26 BNEZ R1,Loop 27 (空转) 28 指令级并行的概念 16/ 31 结果分析 : 这个循环每遍共使用了 28个时钟周期 有 4个 循环体,完成 4个 元素的操作 平均每个元素使用 28/4=7个时钟周期 原始循环的每个元素需要 10个时钟周期 节省的时间 :从减少循环控制的开销中获得的 在整个展开后的循环中,实际指令只有 14条,其它 13个周期都是空转。 效率并不高 指令级并行的概念 17/ 31 (2) 对指令序列进行优化调度 指令流出时钟 Loop: LD F0,0(R1) 1 LD F6,8(R1) 2 LD F10,16(R1) 3 LD F14,24(R1) 4 ADDD F4,F0,F2 5 ADDD F8,F6,F2 6 ADDD F12,F10,F2 7 ADDD F16,F14,F2 8 SD 0(R1),F4 9 SD 8(R1),F8 10 SUBI R1,R1,32 12 SD 16(R1),F12 11 BNEZ R1,Loop 13 SD 8(R1),F16 14 指令级并行的概念 18/ 31 结果分析: 没有数据相关引起的空转等待 整个循环仅仅使用了 14个时钟周期 •平均每个元素的操作使用 14/4= •循环展开 和 指令调度 可以有效地提高循环级并行性。 这种循环级并行性的提高实际是通过实现指令级并行来达到的。 可以使用编译器来完成,也可以通过硬件来完成。 指令级并行的概念 19/ 31 4. 循环展开和指令调度时要注意的问题 (1) 保证正确性 (2) 注意有效性 (3) 使用不同的寄存器 (4) 尽可能减少循环控制中的测试指令和分支指令 (5) 注意对存储器数据的相关性分析 (6) 注意新的相关性 5. 实现循环展开的关键 分析清楚代码中指令的相关性,然后通过 指令调度来消除相关 . 指令级并行的概念 20/ 31 相关性 开发指令级并行的 关键 • 存在相关的两条指令,不能改变它们的顺序。 • 相关是否导致流水线的空转,还与流水线的组织与结构有关。 程序中的相关主要有以下三种 • 数据相关 • 名相关 • 控制相关 指令级并行的概念 21/ 31。41指令级并行的概念
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
424过程定义伪指令proc、endp
符串: DATA SEGMENT STR1 DB ‘HELLO,WORLD!$’ DATA ENDS。 在代码段中进行显示输出 MOV AH,9 LEA DX,STR1 INT 21H 完整的程序 : 18 附: BIOS功能调用 BIOS:基本输入输出系统,是固化在 EPROM中的一组实现基本输入输出功能的子程序。 BIOS调用通过多个软中断提供,调用方法为 : MOV AH, 功能号
4-1转动惯量和转动定律-第四章刚体的转动
10 NF y O h y x Addy100mh 10 00 mL ddM y F0d [ ( ) ] dM y p g h y L y 2301126p Lh g Lh00 [ ( ) ] dhM y p g h y L y 代入数据,得 122. 14 10 N mM 对通过点 Q 的轴的力矩 dFy Q O h y dydF0d [ (