作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当乱序处理器遇到类似
LOAD R1, 0x1337
LOAD R2, $R1
LOAD R3, 0x42
最佳答案
您的问题的答案取决于您的 CPU 的内存排序模型,这与允许乱序执行的 CPU 不同。如果 CPU 实现了 Total store ordering(例如 x86 或 Sparc),那么您的问题的答案是 0x42 将不会在 0x1337 之前加载
如果 cpu 实现了一个宽松的内存模型(例如 IA-64、PowerPC、alpha),那么在没有内存栅栏指令的情况下,所有的赌注都不会被首先访问。除非您正在执行 IO 或处理多线程代码,否则这应该无关紧要。
您应该注意到,某些 CPU(例如 Itanium)确实具有宽松的内存模型(因此读取可能会乱序)但没有任何乱序执行逻辑,因为它们希望编译器以最佳方式对指令和推测指令进行排序而不是在 OOE 上花费硅空间
关于x86 - 乱序执行会导致推测性内存访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12512929/
我是一名优秀的程序员,十分优秀!