流水线中的相关.ppt
《流水线中的相关.ppt》由会员分享,可在线阅读,更多相关《流水线中的相关.ppt(63页珍藏版)》请在三一办公上搜索。
1、3.3流水线中的相关,1相关的概念,流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原指定的时钟周期开始执行。,结构相关 当硬件资源满足不了同时重叠执行的指 令的要求,而发生资源冲突时,就发生了结 构相关。,2相关的分类,第三章 流水线技术,数据相关 当一条指令需要用到前面某条指令的结 果,从而不能重叠执行时,就发生了数据相 关。控制相关 当流水线遇到分支指令和其他能够改变 PC值的指令时,就会发生控制相关。,3几个问题,相关有可能会使流水线停顿。,3.3 流水线中的相关,在本章中,我们约定:,当一条指令被暂停时,暂停在其后发射(流出)的指令,但继续执行在其前发射的 指令
2、。,消除相关的基本方法:让流水线中的某些指令暂停,而让其它 指令继续执行。,3.3 流水线中的相关,3.3.1 流水线中的结构相关,2.如果某种指令组合因资源冲突而不能顺利重 叠执行,则称该机器具有结构相关。,1.在流水线机器中,为了使各种指令组合能顺 利地重叠执行,需要把功能部件流水化,并 把资源重复设置。,3.常见的导致结构相关的原因:功能部件不是全流水 重复设置的资源的份数不够,3.3 流水线中的相关,4.结构相关举例:访存冲突,当数据和指令存在同一存储器中时,访存指令会导致访存冲突。解决办法:插入暂停周期(“流水线气泡”或“气泡”),3.3 流水线中的相关,引入暂停后的时空图,3.3
3、流水线中的相关,5.避免结构相关:,6.有些设计方案允许有结构相关,所有功能单元完全流水化 设置足够的硬件资源硬件代价很大。,降低成本 减少部件的延迟,解决方法:设置相互独立的指令存储器和 数据存储器或设置相互独立的 指令Cache和数据Cache。,3.3 流水线中的相关,3.3.2 流水线的数据相关,1.数据相关简介 当指令在流水线中重叠执行时,流水线有 可能改变指令读/写操作数的顺序,使之不同 于它们在非流水实现时的顺序,这将导致数据 相关。数据相关举例,3.3 流水线中的相关,2.利用定向技术减少数据相关引起的暂停(1)定向技术的主要思路:在发生上述 数据相关时,后面的指令并不是马 上
4、就要用到前一条指令的计算结果。如果能够将计算结果从其产生的地 方直接送到需要它的地方,就可以 避免暂停。(2)采用定向技术消除上例中的相关 工作过程演示,3.3 流水线中的相关,(3)当定向硬件检测到前面某条指令的结果寄存 器就是当前指令的源寄存器时,控制逻辑会 将前面那条指令的结果直接从其产生的地方 定向到当前指令所需的位置。(4)一个功能单元的输出不仅可以定向到其自身 的输入,而且还可以定向到其它单元的输入。举例,3.3 流水线中的相关,3.3 流水线中的相关,(5)在DLX中,任何流水寄存器到任何功能单元的 输入都可能需要定向路径。,(6)当两条指令对存储器同一单元进行读写时,也可能发生
5、数据相关。但本章仅讨论有关寄 存器的数据相关。,3.数据相关的分类,按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型:(考虑两条指令i和j,假设i 先进入流水线),3.3 流水线中的相关,(2)写后写相关(WAW)在 i 写入之前,j 先写。最后写入的结果是 i 的,错误!,(1)写后读相关(RAW)(命名规则)在 i 写入之前,j 先去读。j 读出的内容是错误的。这是最常见的相关。,这种相关仅出现在这样的流水线中:,流水线中有多个段可以进行写操作 当某条指令在流水线中暂停时,允许其后 的指令继续向前流动。,3.3 流水线中的相关,DLX整数流水线中不会发生这种相关(仅在WB段进行写
6、操作),若对DLX作以下修改,则会发生WAW相关:把ALU操作指令的“写回”移到MEM段 假设访问数据存储器需占用两拍 举例,(3)读后写相关(WAR),在 i 读之前,j 先写。i 读出的内容是错误的!,这种相关仅出现在这样的流水线中:有些指令是在流水线的后部读源操作数,而有些指令则是在流水线的前部写结果。,DLX流水线中不会发生这种相关;(读在先(ID),写在后(WB)),这种相关很少发生;(因为流水线一般是先读操作数,后写结果),复杂指令可能导致这种相关。,3.3 流水线中的相关,(1)并非所有的数据相关都可以用定向技术解决 举例,4.需要暂停的数据相关,3.3 流水线中的相关,(2)增
7、加流水线互锁硬件,插入“暂停”。当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。举例:演示A 演示B,3.3 流水线中的相关,3.3 流水线中的相关,例3.5 假设某指令序列中20的指令是Load指令,并且紧跟在Load指令之后的半数指令需要使用到载入的结果,如果这种数据相关将产生一个时钟周期的延迟。理想流水线(没有任何延迟,CPI为1)的指令执行速度要比这种真实流水线的快多少?解:我们可以利用CPI作为衡量标准。对于真实的流水线而言,由于Load指令之后的半数指令需要暂停,所以这些被暂停指令的CPI是2。又知Load指令占全部指令的20,所以真实流水线的实际CPI为:(0.91+0.
8、12)=1.1,这表示理想流水线的指令执行速度是其执行速度的1.1倍。,3.3 流水线中的相关,5对数据相关的编译调度方法,(1)流水线中常常会遇到许多种类型的暂停 例如,按通常的代码生成模式,表达式 ABC的代码会导致暂停,3.3 流水线中的相关,ABC的代码会导致暂停,(3)举例:例3.6 请为下列表达式生成没有暂停的DLX 指令序列:abc;def;假设载入延迟为1个时钟周期。题解,(2)编译器可以通过重新排列代码的顺序来消除这种暂停,这种技术称为流水线调度或 指令调度。,3.3 流水线中的相关,(1)指令发射(issue):指令从译码段(ID)进入 执行段(EX)。相应的指令称为已发射
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水线 中的 相关
链接地址:https://www.31ppt.com/p-5289492.html