计算机系统结构-第3章(2015年-second).pptVIP

  • 23
  • 0
  • 约9.15千字
  • 约 60页
  • 2018-10-15 发布于浙江
  • 举报
计算机系统结构-第3章(2015年-second).ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.3 流水线的相关与冲突 有时流水线设计者允许结构冲突的存在 主要原因:减少硬件成本 如果把流水线中的所有功能单元完全流水化,或者 重复设置足够份数,那么所花费的成本将相当高。 (2)数据冲突 当相关的指令靠得足够近时,它们在流水线中 的重叠执行或者重新排序会改变指令读/写操作数 的顺序,使之不同于它们非流水实现时的顺序, 则发生了数据冲突。 3.3 流水线的相关与冲突 举例: DADD R1,R2,R3 DSUB R4,R1,R5 XOR R6,R1,R7 AND R8,R1,R9 OR R10,R1,R11 3.3 流水线的相关与冲突 流水线的数据冲突举例 3.3 流水线的相关与冲突 根据指令读访问和写访问的顺序,可以将数据冲 突分为3种类型。 考虑两条指令i和j ,且i在j之前进入流水线, 可能发生的数据冲突有: 写后读冲突(RAW) 在 i 写入之前,j 先去读。 j 读出的内容是错误的。 这是最常见的一种数据冲突,它对应于真数据相关。 3.3 流水线的相关与冲突 写后写冲突(WAW) 在 i 写入之前,j 先写。 最后写入的结果是 i 的。错误! 这种冲突对应于输出相关。 写后写冲突仅发生在这样的流水线中: 流水线中不只一个段可以进行写操作。 当先前某条指令停顿时,允许其后续指令继续前进。 前面介绍的5段流水线不会发生写后写冲突。 (只在WB段写寄存器) 3.3 流水线的相关与冲突 读后写冲突(WAR) 在 i 读之前,j 先写。 i 读出的内容是错误的! 由反相关引起。 这种冲突仅发生在这样的情况下: 有些指令的写结果操作提前了,而且有些指令 的读操作滞后了。 指令被重新排序了。 读后写冲突在前述5段流水线中不会发生。 (读操作(在ID段)在写结果操作(在WB段)之前) 3.3 流水线的相关与冲突 流水线的数据冲突举例 3.3 流水线的相关与冲突 通过定向技术减少数据冲突引起的停顿 (定向技术也称为旁路或短路) 关键思想:在某条指令产生计算结果之前,其他指 令并不真正立即需要该计算结果,如果能够将该计 算结果从其产生的地方直接送到其他指令需要它的 地方,那么就可以避免停顿。 采用定向技术消除上例中的相关 3.3 流水线的相关与冲突 采用定向技术后的流水线数据通路 3.3 流水线的相关与冲突 当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。 结果数据不仅可以从某一功能部件的输出定向到其自身的输入,而且还可以定向到其他功能部件的输入。 举例: DSUB R1,R2,R3 LD R5,0(R1) SD R5,12(R1) 3.3 流水线的相关与冲突 更多的定向路径 3.3 流水线的相关与冲突 需要停顿的数据冲突 并不是所有的数据冲突都可以用定向技术来解决。 举例: LD R1,0(R2) DADD R4,R1,R5 AND R6,R1,R7 XOR R8,R1,R9 增加流水线互锁硬件,插入“暂停”。 作用:检测发现数据冲突,并使流水线停顿,直至 冲突消失。 举例:演示A 演示B 3.3 流水线的相关与冲突 无法将LD指令的结果定向到DADD指令 3.3 流水线的相关与冲突 流水线互锁机制插入气泡后的执行过程 3.3 流水线的相关与冲突 LD R1,0(R2) IF ID EX MEM WB DADD R4,R1,R5 IF ID EX MEM WB AND R6,R1,R7 IF ID EX MEM WB XOR R8,R1,R9 IF ID EX MEM WB LD R1,0(R2) IF ID EX MEM WB DADD R4,R1,R5 IF ID stall EX MEM WB AND R6,

文档评论(0)

1亿VIP精品文档

相关文档