浅析流水线冲突及项目解决方案.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅析流水线冲突及解决方案 目录 1、流水线的概念 2、流水线的分类 3、经典的5段流水线 4、指令相关 5、流水线冲突与解决方案 1、流水线的概念 流水线:把一个重复的过程分解为若干子过程,每个子过程由专门的功能部件来实现。将多个处理过程在时间错开,依次通过各功能段,每个子过程就可以与其他子过程并行进行。 2、流水线的分类 (1)按照流水线完成的功能来分类 ①单功能流水线 ②多功能流水线 (2)按照流水线中是否有反馈回路分类 ①线性流水线 ②非线性流水线 2、流水线的分类 (3)按照任务流入流出的顺序是否相同分类 ①顺序流水线 ②乱序流水线 (4)按照流水线级别分类 ①部件级流水线 ②处理机级流水线 ③处理机间流水线 3、经典5段流水线 IM Reg DM Reg ALU IF段 ID段 EX段 MEM段 WB段 流水寄存器 (1)取指令周期(IF):根据PC指示的地址从存储器中取出指令并放入指令寄存器IR,同时PC值加4,指向顺序的下一条指令。 (2)指令译码/读寄存器周期(ID):对指令进行译码,并用IR中的寄存器编号去访问通用寄存器组。 (3)执行/有效地址计算周期(EX):AUL对在上一周期准备好的操作数进行运算或处理。 3、经典5段流水线 (4)存储器访问/分支完成周期(MEM) ①load和store指令 Load指令:用上一周期计算出的有效地址从存储器中读取相应数据。 Store指令:把指定数据写入此有效地址所指出的存储单元。 ②分支指令 若前一周期判定该分支成功,就把转移目标地址送入PC。 (5)写回周期(WB):ALU运算指令和load指令在这个周期会把结果数据写入通用寄存器。 4、指令相关 相关:指两条指令之间存在某种依赖关系。 3种类型:数据相关、名相关、控制相关 (1)数据相关 依次存在两条指令i(在前)和j(在后),若指令j使用指令i产生的结果或指令j与k数据相关,而k又与指令i数据相关,则称j与i数据相关。 4、指令相关 (2)名相关 名:指指令所访问的寄存器或存储单元名称。 名相关:指两条指令使用的名相同,但没有数据流动,则称它们名相关。 4、指令相关 (3)控制相关 控制相关是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后续指令是否执行。一般说来,为确保程序应有的执行顺序,必须严格按控制相关确定的顺序执行 5、流水线冲突及解决方案 流水线冲突:指对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在特定的时钟周期执行。 流水线冲突有三种类型:结构冲突、数据冲突、控制冲突。 5、流水线冲突及解决方案 (1)结构冲突 定义:因硬件资源满足不了指令重叠执行的要求而发生的冲突。 解决方案: a、可以在前一个指令访问存储器时,将流水线停顿一个时钟,推迟后面取指令的操作。停顿周期称为“流水线气泡”。 b、在流水线处理机中设置相互独立的指令。存储器和数据存储器 5、流水线冲突及解决方案 指令编号 时钟周期 1 2 3 4 5 6 7 8 9 10 指令i IF ID EX MEM WB 指令i+1 IF ID EX MEM WB 指令i+2 IF ID EX MEM WB 指令i+3 stall IF ID EX MEM WB 指令i+4 IF ID EX MEM 指令i+5 IF ID EX MEM 指令停顿表 5、流水线冲突及解决方案 (2)数据冲突 定义:当指令在流水线重叠执行时,因需要用到前面的执行结果而发生的冲突。 分类:写后读冲突、写后写冲突、读后写冲突。 解决方案: ①通过定向技术减少数据冲突引起的停顿。 ②设置流水线互锁机制。 5、流水线冲突及解决方案 ③依靠编译器解决数据冲突 5、流水线冲突及解决方案 (3)控制冲突 定义:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。 解决方案:最简单的方法是“冻结”或者“排空”。就是一旦在流水线的译码段ID检测到分支指令,就暂停执行后的所有指令,直到分支指令达到MEM段、确定是否成功并计算出新的pc值为止。 谢谢大家 知识回顾Knowledge Review 祝您成功!

文档评论(0)

smdh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档