x86如何处理存储条件指令?

ez.*_*ez. 2 architecture x86 intel processors

我试图找出x86处理器遇到存储条件指令时的作用.例如,它是否会停止管道的前端并等待ROB缓冲区变为空,然后停止前端停止并执行SC?基本上它会迫使处理器变得非投机性......

谢谢

Nat*_*man 5

我猜你在指的是指示.CMOVcc

我不知道旧的x86处理器,但现代的(自从它们变得投机和乱序)实现条件存储:

old value = mem[dest address]
if (condition) 
    mem[dest address] = new value
else
    mem[dest address] = old value
Run Code Online (Sandbox Code Playgroud)

条件部分可以用硬件实现,如下所示:

      cond
    |\ |
----| \|
new |  \
    |   |    dest
    |   |---------
    |   |     |
  __|  /      |
 |  | /       |
 |  |/        |
 |____________|
Run Code Online (Sandbox Code Playgroud)

所以没有必要打破猜测.实际上会有一家商店.条件确定要写入的数据是旧值还是新值.