- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流水线技术;指令流水线;流水技术;(4) 流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;; DLX的基本流水线;2. 一条DLX指令最多需要以下5个时钟周期:;(2)指令译码/读寄存器周期(ID) A ← Regs[IR6 ..10] B ← Regs[IR11 ..15] Imm ← (IR16)16 ## IR16 ..31 操作
指令译码和读寄存器是并行进行的。之所 以能做到这一点,是因为在DLX指令格式中, 操作码在固定位置。这种技术也称为固定字段 译码。; ;◆ 存储器访问 ALUOutput ← A+Imm ;◆ 寄存器―寄存器 ALU 操作 ALUOutput ← A op B;◆ 寄存器―立即值 ALU 操作 ALUOutput ← A op Imm;◆ 分支操作 ALUOutput ← NPC+Imm Cond ← (A op 0);◆ 存储器访问 LMD ← Mem[ALUOutput] 或 Mem [ALUOutput] ← B ;◆ 分支操作 if(cond)PC ← ALUOutput else PC ← NPC ;(5)写回周期(WB) 不同指令在该周期完成的工作也不一样。;寄存器―寄存器型 ALU 指令 Regs[IR16 ..20] ← ALUOutput;寄存器―立即值型 ALU 指令 Regs[IR11 ..15] ← ALUOutput;Load 指令
Regs[IR11 ..15] ← LMD ;DLX的基本流水线;按时间错开的数据通路序列;采用流水技术还应解决好以下几个问题:;◆ 没有考虑 PC 问题;; 但分支指令也可能改变PC的值,而且是在MEM段进行,这会导致冲突。;;(2)每一流水段内的操作都必须在一个时钟周期 内完成;◆ 流水线寄存器的构成;DLX流水线的操作;流水段;流水段; 流水线中的相关;◆ 数据相关 当一条指令需要用到前面某条指令的结 果,从而不能重叠执行时,就发生了数据相 关。◆ 控制相关 当流水线遇到分支指令和其他能够改变 PC值的指令时,就会发生控制相关。;在本章中,我们约定:;流水线中的结构相关;4. 结构相关举例:访存冲突;引入暂停后的时空图;5. 避免结构相关:;MIPS R4000流水线计算机简介;载入延迟为两个时钟周期;流水线的数据相关;2. 利用定向技术减少数据相关引起的暂停 (1) 定向技术的主要思路:在发生上述 数据相关时,后面的指令并不是马 上就要用到前一条指令的计算结果。 如果能够将计算结果从其产生的地 方直接送到需要它的地方,就可以 避免暂停。
(2) 采用定向技术消除上例中的相关 工作过程演示
;3. 数据相关的分类;(1) 并非所有的数据相关都可以用定向技术解决 举例;(2) 增加流水线互锁硬件,插入“暂停”。 当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。;对数据相关的编译调度方法 ;(2) 编译器可以通过重新排列代码的顺序来消 除这种暂停,这种技术称为流水线调度或 指令调度。;流水线的控制相关; 在DLX流水线中,分支转移成功导致暂停3个时钟周期。
若分支指令的频度为30%,理想CPI=1,
则 实际CPI=1+30%×3≈2;3. 减少分支开销的两种途径;(2) 在ID段增设一个加法器,这样可以把分支 开销减少一拍。
改进后流水线的分支操作 ;表 3.5 改进后流水线的分支操作;二、程序中分支的行为特点;三、减少流水线分支损失的方法;◆ 在知道分支结果之前,分支指令后的指令不 能改变机器状态,或者改变了之后能够回退。◆ 若分支失败,则照常执行;否则,从转移目 标处开始取指令执行。
DLX流水线的处理过程
;3. 预测分支成功
◆ 假设分支转移成功,并开始从分支目标地址 处取指令执行。
◆ 起作用的前题:先知道分支目标地址,后知 道分支是否成功。;4. 延迟分支 (delayed branch)
(1) 基本概念
把分支开销为n 的分支指令看成是延迟长 度为n 的分支
文档评论(0)