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

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

微信截图_20220519154037.png


流水线冲突


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


分类


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


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


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


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


  • 一般解决方法:

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


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


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


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


读后写冲突:


微信截图_20220519154646.png


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


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


着重解决读后写


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


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


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


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


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


微信截图_20220519154707.png


微信截图_20220519154721.png


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


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



目录
相关文章
|
2月前
|
存储 缓存 Windows
软件体系结构 - 流水线技术
软件体系结构 - 流水线技术
48 0
|
存储
MOTOROLA VME172PA-652SE 复杂程度的计算机流水线指令
MOTOROLA VME172PA-652SE 复杂程度的计算机流水线指令
93 0
MOTOROLA VME172PA-652SE 复杂程度的计算机流水线指令
【计算机体系结构】流水线习题【4.19】
【计算机体系结构】流水线习题【4.19】
479 0
【计算机体系结构】流水线习题【4.19】
【计算机体系结构】流水线实现
【计算机体系结构】流水线实现
286 0
【计算机体系结构】流水线实现
【计算机体系结构】流水线的认识
【计算机体系结构】流水线的认识
328 0
【计算机体系结构】流水线的认识
|
4天前
|
敏捷开发 Cloud Native 测试技术
阿里云云效产品使用问题之配置了多流水线源之后,如何在两个工作目录之间复制文件
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
监控 Kubernetes 测试技术
阿里云云效产品使用问题之一个模块分别有三个环境,如何通过一条流水线完成
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
安全 API 持续交付
阿里云云效产品使用问题之如何从流水线访问内网平台的HTTP接口
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
敏捷开发 API 持续交付
阿里云云效产品使用问题之流水线编译docker时,如何把已经定义好的token传入编译参数
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
阿里云云效产品使用问题之流水线编译docker时,如何把已经定义好的token传入编译参数
|
4天前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。