Intel CPU 上原子 cmpxchg 指令的平均延迟

2023-11-25


我正在寻找有关各种英特尔处理器的锁定 cmpxchg 指令的平均延迟的一些参考。我无法找到有关该主题的任何好的参考资料,任何参考资料都会有很大帮助。

Thanks.


最好的 x86 指令延迟参考可能包含在Agner 的优化手册,基于对各种 Intel/AMD/VIA 芯片的实际经验测量,并针对市场上最新的 CPU 经常更新。

不幸的是,我没有看到CMPXCHG指令延迟表中列出了指令,但第 4 页确实指出:

带有 LOCK 前缀的指令具有较长的延迟,这取决于缓存组织和可能的 RAM 速度。如果有多个处理器或内核或直接内存访问 (DMA) 设备,则所有锁定指令将锁定高速缓存行以进行独占访问,这可能涉及 RAM 访问。即使在单处理器系统上,LOCK 前缀通常也会花费超过一百个时钟周期。这也适用于带有存储器操作数的 XCHG 指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Intel CPU 上原子 cmpxchg 指令的平均延迟 的相关文章

随机推荐

  • 身份 - 自定义用户验证器

    Helloes 我有一个 Net Core MVC 应用程序Identity并使用this指南我能够创建自定义用户验证器 public class UserDomainValidator
  • 如何在PHP中立即打印出echo?

    默认情况下 在整个页面执行完毕之前 它不会打印任何内容 有没有什么功能可以让它立刻冲出来 但不是通过调用ob end flush 多次 这不是我想要的 希望你们能抓住我吗 如果输出缓冲打开 那么刷新它是向浏览器输出任何内容的唯一方法 如果您
  • 在 Android 中存储 Facebook 凭据作为 Google Smart Lock 密码

    将 Facebook 凭证存储在 Google Smart Lock 密码中 我能够在 Smart Lock 密码中存储基本的用户名 密码凭据 有大量有关 Google 凭据的文档和示例 GoogleSignInAccount gsa si
  • “更新到 HEAD”的快捷方式

    有什么办法可以拥有 shortcut or icon for svn Update to HEADEclipse 中的一个项目 不是全部 这会让我的生活变得更加轻松 不过我的 php 项目很少 有时我会不小心点击 提交 在 OS X 上运行
  • 使用 lambda 表达式编译代码时出错

    我有以下代码 package com mongoDB import spark Spark public class HelloWorldSparkStyle public static void main String args Spar
  • 使用 matplotlib 绘制垂直线 [重复]

    这个问题在这里已经有答案了 我想用 Matplotlib 画一条垂直线 我正在使用axvline 但它不起作用 import sys import matplotlib matplotlib use Qt4Agg from ui courb
  • Java String.format 方法中的可变宽度

    我正在开发一个需要显示文本树的项目 我试图使用 Java 的 String format 方法来简化格式化过程 但在尝试应用可变宽度时遇到了麻烦 当前我有一个变量 一个 int 称为深度 我尝试执行以下操作 String format de
  • Javascript 类方法与属性

    我见过使用 Javascript 类的代码使用以下形式 例如 React class UserProfile extends Component state open false handleOpen gt this setState op
  • 如何使用 Karma Test Runner 显示渲染组件?

    我使用 cli 和默认值创建了一个新的 Angular 应用程序 v13 我替换了 app component html 文件以显示 4 个图像 这可以通过 npm start 很好地加载到浏览器中 当我运行 npm test 并运行检查这
  • 如何为ADFS配置Spring Boot Security OAuth2?

    有人成功配置 Spring Boot OAuth2 使用 ADFS 作为身份提供者吗 我成功地按照本教程操作了 Facebook https spring io guides tutorials spring boot oauth2 但 A
  • 如何找到 EventSystem.current.IsPointerOverGameObject 正在检测哪个对象?

    我在脚本中使用 EventSystem current IsPointerOverGameObject 并且 Unity 返回 True 即使我发誓指针下方没有 UI EventSystem 对象 如何找到有关 EventSystem 正在
  • Python:有没有办法用 Matplotlib 绘制“部分”曲面图?

    I wanted to plot a partial surface plot like the following one with Matplotlib 请注意 它不是 X Y 平面上的完整网格 而是在俯视图中缺少一个角 以下是我尝试过
  • 取消有关从多任务面板中删除应用程序的通知

    我管理一个ONGOING来自我的应用程序的通知 而不是来自服务 当我使用 结束 按钮从任务管理器终止应用程序时 通知消失 当我从多任务面板中删除应用程序时 应用程序被终止 但是通知仍然存在 我的问题是 如何捕获此事件以清除通知 当应用程序从
  • 当我使用 SUDS 来使用 Web 服务时绕过 SSL

    我正在使用 SUDS 来使用 Web 服务 我尝试如下 client Client wsdl url list of methods method for method in client wsdl services 0 ports 0 m
  • 奇怪的 for 循环语句[重复]

    这个问题在这里已经有答案了 我看到这个 for 循环 但不太明白为什么最后打印的是 2 为什么不是 3 a 0 1 2 3 for a 1 in a print a 1 out 0 1 2 2 The for循环使用a 1 as a 目标变
  • 你怎么称呼自 Unix 纪元以来的“天数”?

    我最初了解到Unix时间是自1970年1月1日00 00 00 UTC 以来经过的秒数 一天有24小时 这意味着unix时间戳每天都会增长86400 然后我听说了闰秒的概念 并认为这意味着也许在某些日子里 unix 时间戳会在一天内增长 8
  • 使用 JavaScript 和 jQuery 的简单长轮询示例

    我正在尝试创建一个实时网站分析仪表板 该仪表板使用 jQuery JavaScript 异步创建到服务器的开放 HTTP 连接 以便在数据发生更新时轮询服务器 显而易见的开始是使用XMLHttpRequest对象或 jQuery 的 aja
  • 访问另一个子类中基类的受保护成员

    为什么会这样编译 class FooBase protected void fooBase void class Foo public FooBase public void foo Foo fooBar fooBar fooBase 但这
  • WcfSvcHost 和 IIS WCF 主机遇到 BadImageFormatException

    引用 x86 DLL 时 在 Vista x64 上的 Visual Studio 2008 中创建 WCF 服务库很麻烦 调用 32 位 DLL 的服务需要具有 x86 平台目标才能在 64 位操作系统上运行 执行此操作时 当您尝试调试服
  • Intel CPU 上原子 cmpxchg 指令的平均延迟

    我正在寻找有关各种英特尔处理器的锁定 cmpxchg 指令的平均延迟的一些参考 我无法找到有关该主题的任何好的参考资料 任何参考资料都会有很大帮助 Thanks 最好的 x86 指令延迟参考可能包含在Agner 的优化手册 基于对各种 In