4、流水线数据相关处理教学课件_第1页
4、流水线数据相关处理教学课件_第2页
4、流水线数据相关处理教学课件_第3页
4、流水线数据相关处理教学课件_第4页
4、流水线数据相关处理教学课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、流水线数据相关处理谭志虎1指令流水线的相关、冲突、冒险(hazard)n 资源相关p 争用主存:IF段取指令、ID段取操作数p 争用ALU:多周期方案中计算PC、分支地址,运算指令 p 解决方案:增加部件消除n 分支相关p 控制IF段进行分支跳转p 提前取出的指令作废,流水线清空n 数据相关p 指令操作数依赖于前一条指令的执行结果 ADD $s1, $s2, $s3p 引起流水线停顿直到数据写回 ADD $s4, $s1, $s32数据相关CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR

2、指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultRD1RD2add $3,$1,$2or $1,$1,$2lw $1,4($2)n ID段所需数据可能还未及时写回,涉及EX、MEM、WB段3条指令MEM.ReadData译码ID执行EX访存MEM写回WB取指令IFand $1,$1,$23数据相关处理机制u软件方法(编译器完成)u 插入空指令u 调整程序顺序,使相关性在流水线中消失u硬件方法u 插入气泡(空操作)p 向后段插入气泡(接口信号清零)

3、p 向前给出阻塞信号(流水线停顿)避免当前指令被新指令取代u 数据重定向bypass(数据旁路)u将后端处理后的数据(还没来得及写回)重定向u数据在哪就从哪送到运算器4ID段与WB段数据相关消除先写后读,寄存器文件下跳沿写入,流水接口上跳沿有效CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultR

4、D1RD2add $3,$1,$2lw $1,4($2)MEM.ReadData译码ID执行EX访存MEM写回WB取指令IF5ID段与MEM段数据相关IF段,ID段暂停等待数据写回,EX段插入气泡CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultRD1RD2add $3,$1,$2lw $2,4

5、($2)MEM.ReadData译码ID执行EX访存MEM写回WB取指令IFand $1,$1,$2or $3,$1,$2暂停stall插入气泡正确数据6ID段与MEM段数据相关下一时刻数据相关变成与WB段相关CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultRD1RD2add $3,$1,$2

6、MEM.ReadData译码ID执行EX访存MEM写回WB取指令IFand $1,$1,$2or $3,$1,$2nop7ID段与EX段数据相关IF段,ID段暂停等待数据写回,EX段插入气泡CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultRD1RD2add $3,$1,$2lw $2,4($2

7、)MEM.ReadData译码ID执行EX访存MEM写回WB取指令IFand $3,$1,$2or $1,$1,$2暂停stall插入气泡正确数据8ID段与EX段数据相关CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultRD1RD2add $3,$1,$2MEM.ReadData译码ID执行EX

8、访存MEM写回WB取指令IFand $3,$1,$2or $1,$1,$2暂停stallnop下一时刻相关变成与MEM段相关插入气泡正确数据9ID段与EX段数据相关CLKCLKCLKIF/IDID/EXALUZeroResultADDADDR1#寄存器文件RD1DinR2#RD2W#MUX01符号扩展MUX01ADDR指令存储器RD4PCEX/MEMMEM/WB左移2位ADDR数据存储器RDWD立即数Write Reg#1632CLKCLKCLKCLK指令MUX01ALU.ResultPC+4ALU.ResultRD1RD2add $3,$1,$2MEM.ReadData译码ID执行EX访存M

9、EM写回WB取指令IFor $1,$1,$2nop再下一时刻相关变成与WB段相关nop10I4数据相关流水线时空图I1I2I3I4I5I5I5I6I7I1I2I3I4I5I6I1I2I4I5I1I2I4I1I2I3时间tIFIDEXMEM空间sWBI2I3流水线暂停两个时钟周期T2T3T4T5T6T7T8T9T0I4I3I3I1I7I6I5I4I8I411数据相关处理总结n ID段与WB段相关p 寄存器文件先写后读(下跳沿写入)n ID段与EX、MEM段数据相关p 在ID段增加数据相关检测逻辑p IF段,ID段暂停,应该给出PC和ID/EX的阻塞信号stall(低电平有效,流水线停顿)u控制P

10、C写使能,IF/ID流水接口写使能u需要增加IF/ID流水接口的写使能接口p ID向EX段插入一个气泡 (给出ID/EX接口同步清零信号)p 下一时刻如果相关解除,暂停信号,气泡信号也自然解除12数据相关检测逻辑n 相关检测逻辑p ID段当前指令读寄存器与后续2条指令写寄存器相同u(ID.ReadReg# = EX.WriteReg#) & ( EX.RegWrite=1)u(ID.ReadReg# = MEM.WriteReg#) & (MEM.RegWrite=1)u0号寄存器不考虑相关性n ID段包括02个源寄存器:R1,R2 是否使用标识:R1_Used,R2_Used

11、p R型指令u运算指令2个源操作数R1#=rs, R2#=rtusyscall指令 2个源操作数 R1#=$v0, R2#=$a0uJr 指令1个源操作数 R1#=rsp I型指令 12两个源操作数 R1#=rs, R2#=rtn 不同类型指令包含写入01个写入寄存器13数据相关处理实验n 实现数据相关检测逻辑p 构建源寄存器使用情况子电路u输入:OP,Funct,输出:R1_Used, R2_Used,可利用控制器真值表自动生成p 构建数据相关检测逻辑子电路u输入:R1 _Used, R2 _Used,R1#,R2#,EX.WriteReg#, MEM.WriteReg#,RegWriteu输出:数据相关信号n 实现IF,ID段暂停逻辑p 利用数据相关信号控制对应部件写使能,低电平有效n 实现EX段插入气泡逻辑p 利用数据相关信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论