【计算机体系结构】流水线冲突

简介: 【计算机体系结构】流水线冲突

微信截图_20220519154037.png


流水线冲突


流水线冲突:由于相关等原因的存在,使得指令流中的吓一跳指令不能在指定的时钟周期执行。


分类


  1. 结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。
  2. 数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的重发。
  3. 控制冲突:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。


解决流水线冲突的基本方法是暂停部分指令执行。


结构冲突:某种指令组合因为资源冲突而不能正常执行


常见的导致结构冲突的原因:1. 功能部件不是完全流水。2.资源份数不够。


  • 一般解决方法:

① 通过拉开两条冲突指令在流水线之间的距离来避免冲突的发生的。
② 通过设置相互独立的存储器(分别存储指令和数据)


原理:通过增加资源数量,来避免访同一资源导致的冲突。


数据冲突:当相关的指令靠得足够近时-重叠执行、重新排序会导致指令的读写操作数的顺序。


可分为三个子类:写后读冲突、写后写冲突、读后写冲突


读后写冲突:


微信截图_20220519154646.png


而对于写后写冲突、读后写冲突


可用反相关与输出相关的解决方法:换名技术,来避免这两种相关的出现,也就能避免读后写、写后写冲突的发生。


着重解决读后写


定向技术是一种缓解数据冲突(介绍冲突引起的停顿时间)的典型方法。


定向技术并不能解决所有数据冲突。


定向:是基于硬件的运行时解决方案。


指令调度:通过让编译器重新组织指令顺序来消除冲突。


定向技术的关键思想是在计算结构尚未出来之前,后面等待使用该结果的指令并不真正立即需要该计算结果。如果能够将该计算结果从其产生的地方直接送到其他指令需要它的地方。这样,就可以避免停顿。


微信截图_20220519154707.png


微信截图_20220519154721.png


控制冲突:由分支指令引起的指令延迟。


  • 最简单的解决方法:冻结或排空流水线。
  • 控制冲突的改善 基于编译器的软件方法:① 总是预测分支失败 ② 预测分支总是成功 ③ 延迟分支



目录
相关文章
|
6月前
|
存储 缓存 Windows
软件体系结构 - 流水线技术
软件体系结构 - 流水线技术
94 0
|
存储
MOTOROLA VME172PA-652SE 复杂程度的计算机流水线指令
MOTOROLA VME172PA-652SE 复杂程度的计算机流水线指令
111 0
MOTOROLA VME172PA-652SE 复杂程度的计算机流水线指令
【计算机体系结构】流水线习题【4.19】
【计算机体系结构】流水线习题【4.19】
521 0
【计算机体系结构】流水线习题【4.19】
【计算机体系结构】流水线实现
【计算机体系结构】流水线实现
320 0
【计算机体系结构】流水线实现
【计算机体系结构】流水线的认识
【计算机体系结构】流水线的认识
365 0
【计算机体系结构】流水线的认识
|
3月前
|
弹性计算 运维 Serverless
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
81 1
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
|
3月前
|
敏捷开发 Java 测试技术
阿里云云效产品使用合集之如何下载流水线构建过程中生成的jar
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何限制在本地的构建主机创建的流水线的并发数
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 Java 测试技术
阿里云云效产品使用合集之怎么设置流水线中的全局参数
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
运维 Java Devops
阿里云云效操作报错合集之在流水线增加单元测试报错,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。