流水线中数据相关的理解(RAW、WAR和WAW)

计算机组成原理一书中指出流水线中有三种数据相关:写后读(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)相关。
  • 76
    点赞
  • 217
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
├─WAW在线考试系统源码WAWExam_ │ │ │ │ from.gif │ │ 在线考试系统.sln │ │ │ │ │ ├─DB_51aspx │ │ Exam.mdf │ │ Exam_log.ldf │ │ │ ├─在线考试系统 │ │ │ Client.cs │ │ │ EditTest.cs │ │ │ EditTest.Designer.cs │ │ │ EditTest.resx │ │ │ Login.cs │ │ │ Login.Designer.cs │ │ │ Login.resx │ │ │ Management.cs │ │ │ Management.Designer.cs │ │ │ Management.resx │ │ │ Program.cs │ │ │ TestManagement.cs │ │ │ TestManagement.Designer.cs │ │ │ TestManagement.resx │ │ │ TestPaperManagement.cs │ │ │ TestPaperManagement.Designer.cs │ │ │ TestPaperManagement.resx │ │ │ UserManagement.cs │ │ │ UserManagement.Designer.cs │ │ │ UserManagement.resx │ │ │ 在线考试系统.csproj │ │ │ │ │ ├─App_Data │ │ │ Exam.mdf │ │ │ Exam_log.ldf │ │ │ │ │ ├─bin │ │ │ ├─Debug │ │ │ │ 在线考试系统.exe │ │ │ │ 在线考试系统.pdb │ │ │ │ 在线考试系统.vshost.exe │ │ │ │ 在线考试系统.vshost.exe.manifest │ │ │ │ │ │ │ └─Release │ │ ├─obj │ │ │ └─x86 │ │ │ └─Debug │ │ │ │ DesignTimeResolveAssemblyReferences.cache │ │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ GenerateResource.read.1.tlog │ │ │ │ GenerateResource.write.1.tlog │ │ │ │ ResolveAssemblyReference.cache │ │ │ │ 在线考试系统.csproj.FileListAbsolute.txt │ │ │ │ 在线考试系统.csproj.GenerateResource.Cache │ │ │ │ 在线考试系统.EditTest.resources │ │ │ │ 在线考试系统.exe │ │ │ │ 在线考试系统.Login.resources │ │ │ │ 在线考试系统.Management.resources │ │ │ │ 在线考试系统.pdb │ │ │ │ 在线考试系统.Properties.Resources.resources │ │ │ │ 在线考试系统.TestManagement.resources │ │ │ │ 在线考试系统.TestPaperManagement.resources │ │ │ │ 在线考试系统.UserManagement.resources │ │ │ │ │ │ │ └─TempPE │ │ │ Properties.Resources.Designer.cs.dll │ │ │ │ │ ├─Properties │ │ │ AssemblyInfo.cs │ │ │ Resources.Designer.cs │ │ │ Resources.resx │ │ │ Settings.Designer.cs │ │ │ Settings.settings │ │ │ │ │ └─Resources │ │ 016.jpg │ │ 54.jpg │ │ │ ├─学生端 │ │ │ 学生端.sln │ │ │ │ │ └─学生端 │ │ │ Exam.cs │ │ │ Exam.Designer.cs │ │ │ Exam.resx │ │ │ Exam.zu.resx │ │ │ Form1.cs │ │ │ Form1.Designer.cs │ │ │ Form1.resx │ │ │ Login.cs │ │ │ Login.Designer.cs │ │ │ Login.resx │ │ │ Program.cs │ │ │ 学生端.csproj │ │ │ 学生端.csproj.user │ │ │ │ │ ├─bin │ │ │ ├─Debug │ │ │ │ │ 学生端.exe │ │ │ │ │ 学生端.pdb │ │ │ │ │ 学生端.vshost.exe │ │ │ │ │ 学生端.vshost.exe.manifest │ │ │ │ │ │ │ │ │ └─zu │ │ │ │ 学生端.resources.dll │ │ │ │ │ │ │ └─Release │ │ ├─imag │ │ │ 22.jpg │ │ │ │ │ ├─obj │ │ │ └─x86 │ │ │ └─Debug │ │ │ │ DesignTimeResolveAssemblyReferences.cache │ │ │ │ DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ GenerateResource.read.1.tlog │ │ │ │ GenerateResource.write.1.tlog │ │ │ │ ResolveAssemblyReference.cache │ │ │ │ 学生端.csproj.FileListAbsolute.txt │ │ │ │ 学生端.csproj.GenerateResource.Cache │ │ │ │ 学生端.Exam.resources │ │ │ │ 学生端.Exam.zu.resources │ │ │ │ 学生端.exe │ │ │ │ 学生端.Form1.resources │ │ │ │ 学生端.Login.resources │ │ │ │ 学生端.pdb │ │ │ │ 学生端.Properties.Resources.resources │ │ │ │ │ │ │ ├─TempPE │ │ │ │ Properties.Resources.Designer.cs.dll │ │ │ │ │ │ │ └─zu │ │ │ 学生端.resources.dll │ │ │ │ │ ├─Properties │ │ │ AssemblyInfo.cs │ │ │ Resources.Designer.cs │ │ │ Resources.resx │ │ │ Settings.Designer.cs │ │ │ Settings.settings │ │ │ │ │ └─Resources │ │ 016.jpg │ │ 0161.jpg │ │ 未命名.jpg │ │ │ └─教师端 │ │ 教师端.sln │ │ │ └─教师端 │ │ AddTest.cs │ │ AddTest.Designer.cs │ │ AddTest.resx │ │ AlterPwd.cs │ │ AlterPwd.Designer.cs │ │ AlterPwd.resx │ │ Login.cs │ │ Login.Designer.cs │ │ Login.resx │ │ Program.cs │ │ ScoreSelect.cs │ │ ScoreSelect.Designer.cs │ │ ScoreSelect.resx │ │ Teacher.cs │ │ Teacher.Designer.cs │ │ Teacher.resx │ │ 教师端.csproj │ │ │ ├─bin │ │ ├─Debug │ │ │ 教

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyril_KI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值