标签: memory x86 intel
此示例来自64-IA-32架构软件开发人员手册。
我无法理解为什么其他处理器必须可以看到CPU#0的存储?在那个具体的例子中(当r1 = 1,r2 = 1时)我同意显然CPU#0的存储必须首先退出 - 我的意思是1值必须在内存/缓存中(实际上不在存储缓冲区中) )。
但是一般情况呢?是否可能出现以下情况:
CPU#0已存储:mov [_x], 1但存储在CPU#0的store buffer中,然后加载了CPU#1:mov r1, [_x]实际上r1相等到0?
mov [_x], 1
store buffer
mov r1, [_x]
r1