例 LOOP. LDF0,0(R1)(1) ADDD F4,F0.F2 (2) sD0(R1),F4(3) 结论 指令(1)和指令(2)数据相关,指令(2)和指令(3)数据 相关=)指令(1)和指令(3)数据相关 例 SUBI RI R18 (4) BNEZ RI LOOP (5) 结论 指令(4)和指令(5)数据相关
例 LOOP: LD F0,0(R1) (1) ADDD F4,F0,F2 (2) SD 0(R1),F4 (3) 结论 指令(1)和指令(2)数据相关,指令(2)和指令(3)数据 相关=〉指令(1)和指令(3)数据相关 例 SUBI R1,R1,8 (4) BNEZ R1,LOOP (5) 结论 指令(4)和指令(5)数据相关
分析数据相关的主要工作: (1)确定指令的相关性 (2)确定数据的计算顺序 (3)确定最大并行性 数据相关是程序相关性中最本质的相关性之 2名相关 两条指令使用相同的寄存器或内存单元(称为名),但 它们之间没有数据流
分析数据相关的主要工作: (1)确定指令的相关性 (2)确定数据的计算顺序 (3)确定最大并行性 数据相关是程序相关性中最本质的相关性之一。 2.名相关 两条指令使用相同的寄存器或内存单元(称为名),但 它们之间没有数据流
篑 指和据令它包的名相关有以下两神 体 的名(读后写相关) (2)输出相关:指令和指令写的是同一个寄存器或内 存单元(写后写相关 LOOP. 狗 LDF0,0(R1) ADDD F4,F0.F2 sD0(R1),F4 LDF0,-8(R1) ADDD F4,F0.F2 SD-8(R1),F4 @
指令j和指令i之间的名相关有以下两种: (1)反相关: 指令i先执行,指令j写的名是指令i读 的名(读后写相关)。 (2)输出相关:指令i和指令j写的是同一个寄存器或内 存单元(写后写相关)。 LOOP: LD F0,0(R1) ADDD F4,F0,F2 SD 0(R1),F4 LD F0,-8(R1) ADDD F4,F0,F2 SD -8(R1),F4
名相关不能改变指令顺序,但由于没有数据流,但可以 通过改变操作数名来消除名相关,称为重命名 ( renaming)技术: LOOP. LDF0,0(R1) ADDD F4,F0.F2 sD0(R1),F4 LDF8-8(R1) ADDD F12F8.F2 sD-8(R1)F12
名相关不能改变指令顺序,但由于没有数据流,但可以 通过改变操作数名来消除名相关 , 称为重命名 (renaming)技术: LOOP: LD F0,0(R1) ADDD F4,F0,F2 SD 0(R1),F4 LD F8,-8(R1) ADDD F12,F8,F2 SD -8(R1),F12
3.控制相关 分支指令引起的相关,如果一条指令是否执行的情况 依赖于一条分支指令,则称它与该分支指令控制相关。 例 if pl t SI 2{ s2 s1控制相关于p1,s2控制相关于p2 s1与p2、52与p1控制无关
3. 控制相关 分支指令引起的相关,如果一条指令是否执行的情况 依赖于一条分支指令,则称它与该分支指令控制相关。 例 if p1 { s1 }; if p2 { s2 }; => s1控制相关于p1, s2控制相关于p2 s1与p2、s2与p1控制无关