热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么是WAW危害?

如何解决《什么是WAW危害?》经验,为你挑选了2个好方法。

两种操作都会影响R2。如果i2写回发生在的写回之前i1,但i1最终发生的写回,R2则将得到结果R4 + R7而不是的值R1 + R3

WAW危害是关于结果值将被后续的写入所覆盖,而该写入不应覆盖该值。



1> Thomas Jager..:

两种操作都会影响R2。如果i2写回发生在的写回之前i1,但i1最终发生的写回,R2则将得到结果R4 + R7而不是的值R1 + R3

WAW危害是关于结果值将被后续的写入所覆盖,而该写入不应覆盖该值。



2> Peter Cordes..:

问题不是执行,而是执行。这只是防止这些指令无序执行的写回(如果您未进行寄存器重命名)。

的最终结果R2(如该对之后的其他后续指令所示)必须匹配程序顺序,因此它必须具有第二条指令的结果。


这就是为什么现代乱序执行CPU使用寄存器重命名(Tomasulo算法)而不仅仅是记分板的原因:它完全消除了WAW和WAR的危害。请参阅我的答案的第一部分,“ 为什么mulss在Haswell上只需要3个周期,而不同于Agner的指令表?从理论上讲,关于寄存器重命名如何使同一寄存器重用于不同结果的另一种解释不成问题。

另请参阅在Intel Sandybridge系列CPU中为管道优化程序,在此我还解释了WAW和WAR的反依赖性不会导致现代乱序执行CPU停顿。

对于写入内存(而不是寄存器),存储缓冲区负责隐藏WAW和WAR危害。


推荐阅读
  • 一.什么是openGLOpenGL被定义为“图形硬件的一种软件接口”。从本质上说,它是一个3D图形和模型库,具有高度的可移植性,具有非常快的速度。二.管线管线这个术语描述了open ... [详细]
  • Pipeline支持两种语法:Declarative(在Pipeline2.5中引入)和ScriptedPipeline语法:pipeline{*insertDeclarative ... [详细]
  • Redis本身是一个cs模式的tcpserver,client可以通过一个socket连续发起多个请求命令。这篇文章带领大家学习redis为什么要提供pipeline功能,需要的朋友可以参考下 ... [详细]
  • 如何解决《powershell在什么条件下展开管道中的项目?》经验,为你挑选了1个好方法。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文讨论了在iOS平台中的Metal框架中,对于if语句中的判断条件的限制和处理方式。作者提到了在Metal shader中,判断条件不能写得太长太复杂,否则可能导致程序停留或没有响应。作者还分享了自己的经验,建议在CPU端进行处理,以避免出现问题。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • Jenkins 持续集成 Pipeline 简易入门教程
    为什么选择JeknkinsPipeline?团队目前使用Jekinks进行项目sdk库的发布,但是如果要修改Jenkins项目配置完成对工程编译的配置的时候,学习曲线瞬间变得陡峭。 ... [详细]
  • golang redis中Pipeline通道的使用详解-目录一、pipeline出现的背景二、pipeline的用法pipeline命令的使用goredis库连接客户端packa ... [详细]
  • 如何解决《Python社交authDjango管道非类型错误》经验,为你挑选了1个好方法。 ... [详细]
author-avatar
gaoming1009_422
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有