Read-after-Write (RAW) hazard和Write-after-Read (WAR) hazard命名

在计算机体系结构中,Read-after-Write (RAW) hazard 之所以叫“读后写”,是因为它描述的是逻辑上的依赖关系,而不是指令执行的物理顺序。我们来看一下这个命名的逻辑:

  1. 依赖关系:RAW冒险描述的是一个指令“必须在”另一指令写入完成之后再读取数据的依赖关系。因此,我们称之为“读在写之后”(Read-after-Write),因为这个读取操作必须发生在写入操作之后才能获得正确的数据。

  2. 物理顺序与逻辑顺序:在流水线或并行执行的情况下,指令可能同时在不同阶段执行。因此,如果在写入操作完成之前,读取操作已经开始,就会出现数据不一致的情况。这就是RAW冒险的产生原因。

  3. 示例

    • 假设有两个指令:
      • 指令1:r3 ← r1 op r2(将计算结果写入 r3
      • 指令2:r5 ← r3 op r4(从 r3 中读取数据)
    • 这里,指令2依赖于指令1的结果,即 指令2的读取需要在指令1写入 r3 之后进行
    • 如果指令2在指令1写入 r3 之前就尝试读取 r3,会得到错误的数据,导致RAW冒险。
    • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值