博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流水线中数据相关的理解(RAW、WAR和WAW)
阅读量:2085 次
发布时间:2019-04-29

本文共 644 字,大约阅读时间需要 2 分钟。

计算机组成原理一书中指出流水线中有三种数据相关:写后读(RAW)相关、读后写(WAR)相关、写后写(WAW)相关。

那么这里该怎么理解这个A(after)呢?比如说第一条指令中读取了X,第二条指令中要写X,本来应该先读再写,但是由于流水线的存在,发生了第二条指令写完后第一条才读的情形,也就是发生了先写后读,称之为读后写(WAR)相关。

这里的重点是:前后有两条指令,分为三种情况:

  1. 第一条指令是读操作,第二条指令是写操作,那么只可能发生读后写(WAR)相关
  2. 第一条指令是写操作,第二条指令是读操作,那么只可能发生写后读(RAW)相关
  3. 第一条指令是写操作,第二条指令也是写操作,那么只可能发生写后写(WAW)相关

举三个例子:

  1. LDA R1, A    ;M(A)->R1,M(A)是存储单元
    ADD R2, R1   ;(R2)+(R1)->R2
    分析:第一条指令向R1中写入了新值,第二条指令读取了R1中的值,先写后读,写后读(RAW)相关。
  2. ADD R3, R4    ;(R3)+(R4)->R3
    MUL R4, R5    ;(R4)*(R5)->R4
    分析:第一条指令读取了R4中的内容,第二条指令向R4中写入了新值,先读后写,读后写(WAR)相关。
  3. LDA R6, B    ;M(B)->R6,M(B)是存储单元
    MUL R6, R7    ;(R6)*(R7)->R6
    分析:第一条指令向R6中写入了新值,第二条指令也向R6中写入了新值,先写后写,写后写(WAW)相关。

转载地址:http://pmiqf.baihongyu.com/

你可能感兴趣的文章
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
为什么在优化算法中使用指数加权平均
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>