Parallel processing 为什么ILP体系结构中的名称依赖(WaR、WaW)有问题?

Parallel processing 为什么ILP体系结构中的名称依赖(WaR、WaW)有问题?,parallel-processing,dependencies,instruction-set,vliw,superscalar,Parallel Processing,Dependencies,Instruction Set,Vliw,Superscalar,假设同时执行以下两条指令: addi $t0, $t1, 4 addi $t1, $t2, 4 这是一种反依赖,即读后写。假设它们同时执行,在第二条指令写回$t1之前,第一条指令是否仍会读取正确的值 对于输出依赖,或一次又一次写入: addi $t0, $t1, 4 addi $t0, $t2, 4 我明白为什么这是有问题的,我无法想象谁会“赢”,如果有的话。我的意思是我们说的是指令级并行,所以理论上我认为在第二条指令可以写入$t0之前会有一个NOP?在这种情况下,我只看到另一条指令在第二条

假设同时执行以下两条指令:

addi $t0, $t1, 4
addi $t1, $t2, 4
这是一种反依赖,即读后写。假设它们同时执行,在第二条指令写回
$t1
之前,第一条指令是否仍会读取正确的值

对于输出依赖,或一次又一次写入:

addi $t0, $t1, 4
addi $t0, $t2, 4
我明白为什么这是有问题的,我无法想象谁会“赢”,如果有的话。我的意思是我们说的是指令级并行,所以理论上我认为在第二条指令可以写入
$t0
之前会有一个NOP?在这种情况下,我只看到另一条指令在第二条指令再次写入$t0之前读取$t0时出现问题,当然还有“丢失”循环

所以说真的,我的问题是:为什么读后写有问题?是否因为在指令解码期间,不同的地址可能会加载到$t1中