【问题标题】:Mapped memory and SSE映射内存和 SSE
【发布时间】:2011-12-22 11:00:28
【问题描述】:

我在英特尔开发者手册中找到了这一段:

来自“使用 SSE3、SSSE3、SSE4 和 AESNI 编程”一章

不得使用流式加载来引用内存地址 映射到具有副作用的 I/O 设备或读取这些设备时 设备具有破坏性。这是因为 MOVNTDQA 在 自然。

谁能澄清这个问题?

我问是因为我正在考虑将一些 SSE 程序集应用到 OpenGL mapped buffer objects,但我担心那个 破坏性 词。这个主题是否适用于映射内存?其实我不知道 glMapBuffer 调用的背后是什么。

我不认为我的显卡会被破坏 (:),但这个词肯定不好听。

【问题讨论】:

    标签: assembly intel sse memory-mapping


    【解决方案1】:

    此处的破坏性是指只能执行一次的读取,例如当设备提供内存映射方式从其队列中读取下一项时。在这种情况下,第二次从该位置读取将给出第二个结果。这很糟糕,因为 MOVNTDQA 是推测性的,因此即使由于错误预测的分支最终跳过了指令,也可能执行取指。第一次获取的数据将被不可挽回地破坏,但不会对硬件造成实际损害。

    由于您只是尝试访问不同设备上的普通 RAM,而不是 MMIO 寄存器,因此您无需担心。

    【讨论】:

      猜你喜欢
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 2014-05-08
      相关资源
      最近更新 更多