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

Architecture x86如何处理存储条件指令?,architecture,x86,intel,processors,Architecture,X86,Intel,Processors,我试图找出x86处理器在遇到存储条件指令时会做什么。例如,它是否会暂停管道前端并等待ROB缓冲区变空,然后停止暂停前端并执行SC?基本上,它会迫使处理器变得非推测性 谢谢一个(通用)x86处理器不做你提到的任何事情。它只是获取一条又一条指令并执行它们 其他一切都是透明处理的,并且在很大程度上取决于您正在查看的处理器,因此您的问题没有通用的答案 如果您对解决延迟问题的方法感兴趣,您应该从wikipedia页面开始(注册重命名以提及其中一个。只需扔掉非执行分支的结果)。一个(通用)x86处理器不做您

我试图找出x86处理器在遇到存储条件指令时会做什么。例如,它是否会暂停管道前端并等待ROB缓冲区变空,然后停止暂停前端并执行SC?基本上,它会迫使处理器变得非推测性

谢谢

一个(通用)x86处理器不做你提到的任何事情。它只是获取一条又一条指令并执行它们

其他一切都是透明处理的,并且在很大程度上取决于您正在查看的处理器,因此您的问题没有通用的答案

如果您对解决延迟问题的方法感兴趣,您应该从wikipedia页面开始(注册重命名以提及其中一个。只需扔掉非执行分支的结果)。

一个(通用)x86处理器不做您提到的任何事情。它只是获取一条又一条指令并执行它们

其他一切都是透明处理的,并且在很大程度上取决于您正在查看的处理器,因此您的问题没有通用的答案


如果你对解决延迟问题的方法感兴趣,你应该从wikipedia页面开始(注册重命名,提到一个。扔掉非执行分支的结果)。

我猜你指的是
CMOVcc
说明

我不知道较旧的x86处理器,但现代的处理器(从它们成为投机性的和无序的)实现了条件存储:

old value = mem[dest address]
if (condition) 
    mem[dest address] = new value
else
    mem[dest address] = old value
条件部分可以在如下硬件中实现:

      cond
    |\ |
----| \|
new |  \
    |   |    dest
    |   |---------
    |   |     |
  __|  /      |
 |  | /       |
 |  |/        |
 |____________|

因此,没有必要打破猜测。事实上,一家商店将会出现。该条件确定要写入的数据是旧值还是新值。

我猜您指的是
CMOVcc
说明

我不知道较旧的x86处理器,但现代的处理器(从它们成为投机性的和无序的)实现了条件存储:

old value = mem[dest address]
if (condition) 
    mem[dest address] = new value
else
    mem[dest address] = old value
条件部分可以在如下硬件中实现:

      cond
    |\ |
----| \|
new |  \
    |   |    dest
    |   |---------
    |   |     |
  __|  /      |
 |  | /       |
 |  |/        |
 |____________|
因此,没有必要打破猜测。事实上,一家商店将会出现。该条件确定要写入的数据是旧值还是新值