流水线中的相关

上传人:子 文档编号:52045050 上传时间:2018-08-18 格式:PPT 页数:63 大小:1.09MB
返回 下载 相关 举报
流水线中的相关_第1页
第1页 / 共63页
流水线中的相关_第2页
第2页 / 共63页
流水线中的相关_第3页
第3页 / 共63页
流水线中的相关_第4页
第4页 / 共63页
流水线中的相关_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《流水线中的相关》由会员分享,可在线阅读,更多相关《流水线中的相关(63页珍藏版)》请在金锄头文库上搜索。

1、秦杰 郑丽萍 张庆辉1633.3流水线中的相关1相关的概念流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原指定的时钟周期开始执行。 结构相关当硬件资源满足不了同时重叠执行的指令的要求,而发生资源冲突时,就发生了结构相关。2相关的分类第三章 流水线技术秦杰 郑丽萍 张庆辉263 数据相关当一条指令需要用到前面某条指令的结果,从而不能重叠执行时,就发生了数据相关。 控制相关当流水线遇到分支指令和其他能够改变PC值的指令时,就会发生控制相关。3几个问题 相关有可能会使流水线停顿。3.3 流水线中的相关秦杰 郑丽萍 张庆辉363在本章中,我们约定:当一条指令被暂停时,暂停在其后

2、发射(流出)的指令,但继续执行在其前发射的指令。 消除相关的基本方法:让流水线中的某些指令暂停,而让其它指令继续执行。3.3 流水线中的相关秦杰 郑丽萍 张庆辉4633.3.1 流水线中的结构相关2. 如果某种指令组合因资源冲突而不能顺利重叠执行,则称该机器具有结构相关。1. 在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要把功能部件流水化,并把资源重复设置。3. 常见的导致结构相关的原因: 功能部件不是全流水 重复设置的资源的份数不够3.3 流水线中的相关秦杰 郑丽萍 张庆辉5634. 结构相关举例:访存冲突当数据和指令存在同一存储器中时,访存指令会导致访存冲突。解决办法: 插入暂停

3、周期(“流水线气泡”或“气泡”)3.3 流水线中的相关秦杰 郑丽萍 张庆辉863引入暂停后的时空图3.3 流水线中的相关秦杰 郑丽萍 张庆辉9635. 避免结构相关:6. 有些设计方案允许有结构相关 所有功能单元完全流水化 设置足够的硬件资源硬件代价很大。 降低成本 减少部件的延迟解决方法: 设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。3.3 流水线中的相关秦杰 郑丽萍 张庆辉10633.3.2 流水线的数据相关1. 数据相关简介当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据相关。数据

4、相关举例3.3 流水线中的相关秦杰 郑丽萍 张庆辉12632. 利用定向技术减少数据相关引起的暂停(1) 定向技术的主要思路:在发生上述数据相关时,后面的指令并不是马上就要用到前一条指令的计算结果。如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。(2) 采用定向技术消除上例中的相关工作过程演示3.3 流水线中的相关秦杰 郑丽萍 张庆辉1563(3) 当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。(4) 一个功能单元的输出不仅可以定向到其自身 的输入,而且还可以定向到其它单元的输入

5、。举例3.3 流水线中的相关秦杰 郑丽萍 张庆辉16633.3 流水线中的相关秦杰 郑丽萍 张庆辉1763(5) 在DLX中,任何流水寄存器到任何功能单元的输入都可能需要定向路径。(6) 当两条指令对存储器同一单元进行读写时,也可能发生数据相关。但本章仅讨论有关寄存器的数据相关。3. 数据相关的分类按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型: (考虑两条指令i和j , 假设i 先进入流水线)3.3 流水线中的相关秦杰 郑丽萍 张庆辉1963(2) 写后写相关 (WAW)在 i 写入之前,j 先写。最后写入的结果是 i 的,错误!(1) 写后读相关 (RAW) (命名规则) 在

6、i 写入之前,j 先去读。j 读出的内容是错误的。这是最常见的相关。 这种相关仅出现在这样的流水线中: 流水线中有多个段可以进行写操作 当某条指令在流水线中暂停时,允许其后的指令继续向前流动。3.3 流水线中的相关 DLX整数流水线中不会发生这种相关(仅在WB段进行写操作) 若对DLX作以下修改,则会发生WAW相关: 把ALU操作指令的“写回”移到MEM段 假设访问数据存储器需占用两拍举例秦杰 郑丽萍 张庆辉2163(3) 读后写相关 (WAR)在 i 读之前,j 先写。 i 读出的内容是错误的! 这种相关仅出现在这样的流水线中:有些指令是在流水线的后部读源操作数,而有些指令则是在流水线的前部

7、写结果。 DLX流水线中不会发生这种相关;(读在先(ID),写在后(WB)) 这种相关很少发生;(因为流水线一般是先读操作数,后写结果) 复杂指令可能导致这种相关。3.3 流水线中的相关秦杰 郑丽萍 张庆辉2263(1) 并非所有的数据相关都可以用定向技术解决举例4. 需要暂停的数据相关3.3 流水线中的相关秦杰 郑丽萍 张庆辉2463(2) 增加流水线互锁硬件,插入“暂停”。当互锁硬件发现这种相关时,就暂停流水线,直到相关消失。举例:演示A 演示B 3.3 流水线中的相关秦杰 郑丽萍 张庆辉26633.3 流水线中的相关秦杰 郑丽萍 张庆辉2763例3.5 假设某指令序列中20的指令是Loa

8、d指令, 并且紧跟在Load指令之后的半数指令需要使用到载 入的结果,如果这种数据相关将产生一个时钟周期 的延迟。理想流水线(没有任何延迟,CPI为1)的 指令执行速度要比这种真实流水线的快多少?解:我们可以利用CPI作为衡量标准。对于真实的流 水线而言,由于Load指令之后的半数指令需要暂停 ,所以这些被暂停指令的CPI是2。又知Load指令占 全部指令的20,所以真实流水线的实际CPI为: (0.91+0.12)=1.1,这表示理想流水线的指令执 行速度是其执行速度的1.1倍。 3.3 流水线中的相关秦杰 郑丽萍 张庆辉28635对数据相关的编译调度方法 (1) 流水线中常常会遇到许多种类

9、型的暂停例如,按通常的代码生成模式,表达式ABC的代码会导致暂停3.3 流水线中的相关ABC的代码会导致暂停秦杰 郑丽萍 张庆辉3063(3) 举例:例3.6 请为下列表达式生成没有暂停的DLX指令序列:abc ;def ;假设载入延迟为1个时钟周期。题解(2) 编译器可以通过重新排列代码的顺序来消除这种暂停,这种技术称为流水线调度或指令调度。3.3 流水线中的相关秦杰 郑丽萍 张庆辉3263(1) 指令发射(issue):指令从译码段(ID)进入执行段(EX)。相应的指令称为已发射的指令。 (2) DLX整数流水线中,可以在ID段检测所有的数据相关;若数据相关,则在指令流出前,让其暂停。 (

10、3) 可以在ID段确定需要什么样的定向,并设置相应的控制;这样能减少硬件复杂度(因为不必挂起已改变了机器状态的指令)。6. 对DLX流水线控制的实现3.3 流水线中的相关秦杰 郑丽萍 张庆辉3363(4) 也可以在需要用到操作数的那个时钟周期检测相关或定向; (5) 举例说明: 由Load指令引起的RAW相关的互锁(简称Load 互锁)可以通过ID段的检测来实现; 到ALU输入的定向可以在EX段实现。Load互锁 流水线相关硬件可以检测到的各种相关情况可以看出,仅需把Load指令的目的寄存器地址与Load指令后的两条指令的源寄存器地址进行比较。3.3 流水线中的相关 在ID段检测是否需要启动L

11、oad互锁需要进行三种比较秦杰 郑丽萍 张庆辉3663 当检测到相关后,控制部件必须在流水线中插入暂停周期,并使IF和ID段中的指令停止前进。l 将ID/EX中的控制部分清“O”。l IF/ID内容回送到其自身入口。定向逻辑 有更多的情况要考虑 关键思路:流水线寄存器不仅包含数据,而且包含源寄存器和目的寄存器地址(字段)3.3 流水线中的相关秦杰 郑丽萍 张庆辉3763 所有的定向发生在: ALU或DM输出 ALU输入,DM输入,“O”检测部件(图示)秦杰 郑丽萍 张庆辉3863秦杰 郑丽萍 张庆辉39633.3.3 流水线的控制相关1. 分支指令的执行结果一、分支引起的暂停及减少分支开销的方

12、法 转移失败:PC值加4 转移成功:将PC值改变为转移目标地址到MEM段的末尾才改变一旦检测到分支指令(在ID段),就暂停执行其后的指令,直到分支指令到达MEM段,确定出新的PC值为止。2. 处理分支指令最简单的方法3.3 流水线中的相关在DLX流水线中,分支转移成功导致暂停3个时钟周期。若分支指令的频度为30,理想CPI1,则 实际CPI13032秦杰 郑丽萍 张庆辉41633. 减少分支开销的两种途径 在流水线中尽早判断分支转移是否成功; 转移成功时,尽早计算出转移目标地址。两者应同时采用,缺一不可。对于DLX作如下改进:(1) 把“0?”测试移至ID段;3.3 流水线中的相关秦杰 郑丽萍

13、 张庆辉4363(2) 在ID段增设一个加法器,这样可以把分支开销减少一拍。改进后流水线的分支操作 (表3.5)3.3 流水线中的相关流 水 段分 支 指 令 操 作IFIDEXIF/ID.IR MemPC; IF/ID.NPC,PC (if ID/EX.cond ID/EX.NPC else PC+4);ID/EX.A RegsIF/ID.IR610; ID/EX.B RegsIF/ID.IR1115; ID/EX.NPC IF/ID.NPC + (IR16)16#IR1631; ID/EX.IR IF/ID.IR; ID/EX.cond (RegsIF/ID.IR610 op 0; ID/

14、EX.Imm (IR16)16#IR1631;MEMWB表 3.5 改进后流水线的分支操作(动画演示)(动画演示)秦杰 郑丽萍 张庆辉4563二、程序中分支的行为特点1. 各种能改变PC值的指令的执行频度(SPEC基准程序,DLX上执行) 条件分支整数程序:1415浮点程序:312向前分支与向后分支的比:31 无条件分支绝大多数:43.3 流水线中的相关秦杰 郑丽萍 张庆辉47632条件分支转移成功的概率 平均值整数程序向前:13 无条件:4向后:3浮点程序向前:7 无条件:1向右:3所有条件分支:67 向前:60 向后:85(向后分支一般形成循环)3.3 流水线中的相关秦杰 郑丽萍 张庆辉4

15、8633.3 流水线中的相关秦杰 郑丽萍 张庆辉4963三、减少流水线分支损失的方法(种简单的静态方法,编译时预测)1. “冻结”或“排空”流水线在流水线中停住或删除分支后的指令,直到知道转移目标地址。优点:简单。2预测分支失败 流水线继续照常流动,就像没发生什么似的。3.3 流水线中的相关秦杰 郑丽萍 张庆辉5063 在知道分支结果之前,分支指令后的指令不能改变机器状态,或者改变了之后能够回退。 若分支失败,则照常执行;否则,从转移目标处开始取指令执行。DLX流水线的处理过程3.3 流水线中的相关秦杰 郑丽萍 张庆辉52633. 预测分支成功 假设分支转移成功,并开始从分支目标地址处取指令执行。 起作用的前题:先知道分支目标地址,后知道分支是否成功。 对DLX流水线没有任何好处。3.3 流水线中的相关秦杰 郑丽萍 张庆辉53634. 延迟分支 (delayed branch)(1) 基本概念把分支开销为n 的分支指令看成是延迟长度为n 的分支指令,其后紧跟有n 个延迟槽。流水线遇到分支指令时,按正常方式处理,顺带执行延迟槽中的指令,从而减少分支开销。延迟分支以及指令的执行顺序3.3 流水线中的相关秦杰 郑丽萍 张庆辉5563(2) 具有一个分支延迟槽的DLX流水线的执行过程分支延迟槽中的指令“掩盖”了流水线原来必需插入的暂停周期。3.3 流水线中的相关秦杰 郑丽萍 张庆辉

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号