notes:循环并行技术【流水线】
指令相关 ——指令之间的相互依赖关系
解决办法:1消除相关 、2保持相关但避免发生冲突。
由于相关存在,程序必须顺序执行
做到数据相关和控制相关才会保证程序的正确性
DADDU R2,R3,R4
BEQZ R2,L1
LW R1,0(R2)
这里只是做到数据相关,如果有多条分支指令则必须做到控制相关才能保证程序的正确性。
但如果数据流明确,可以不用控制相关而不产生异常。
循环展开和指令调度的基本方法
循环代码执行
高级语言->汇编语言->编译器【展开循环,消除空等待】
通过循环展开、寄存器重命名、指令调度可以有效提升指令并行性