gpt4 book ai didi

assembly - 优化 x86 CPU 上的隔离内存存储

转载 作者:行者123 更新时间:2023-12-04 15:30:00 24 4
gpt4 key购买 nike

mov 0x0ff, 10
sfence
mov 0x0ff, 12
sfence

它可以由 x86-CPU 执行为:
 mov 0x0ff, 12
sfence

?

最佳答案

是的,某些 CPU 可能会按照您的建议执行它。

即使你放了像mfence这样更坚固的栅栏在那里,或者使用锁定指令,当然不能保证第一次写入不会被优化掉。

这在一般情况下是正确的:排序和隔离规则基本上告诉您哪些执行是不允许的,因此保证永远不会发生,但是考虑到允许发生的一组补充执行,通常不能保证任何特定的执行实际上可以观察到的。

也就是说,我很确定在当前的 x86 芯片上,您总是能够观察到偶尔的 10 值(即使完全省略了围栏),尽管有任何存储缓冲区合并,因为您偶尔会在两者之间遇到中断商店,让您阅读 10。

尽管如此,这并不能保证——人们当然可以想象像 Denver 或 Transmeta 这样的动态优化的 x86 架构可以压缩上述序列,移除栅栏和第一个商店,使 20 成为唯一可观察的值。

关于assembly - 优化 x86 CPU 上的隔离内存存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com