加载和存储是唯一被重新排序的指令吗?

加载和存储是唯一被重新排序的指令吗?

我读过许多关于内存排序的文章,它们都只说CPU重新排序加载和存储。

CPU(我对x86 CPU特别感兴趣)是否只重新排序加载和存储,而不重新排序它所拥有的其余指令?


炎炎设计
浏览 494回答 3
3回答

哔哔one

在可能的、可行的、有利于性能的情况下,无序处理器通常可以重新排序所有指令。由于注册重命名,这对机器代码是透明的,除非在加载和存储的情况下。†这就是为什么人们通常只谈论负载和存储的重新排序,因为这是唯一可以观察到的重新排序。†通常,FPU异常也是可以观察到重新排序的东西。大多数无序处理器不精确例外因为这个原因,但不是x86。在x86上,处理器确保报告异常,就好像浮点操作没有重新排序一样。

慕标5832272

大多数OOO CPU一般都有精确的异常!否则,页面错误将无法在正确的位置恢复。也许你的意思是说大多数Ooo架构都不精确。FP例外?(有趣的是,我不知道这一点,但很有意义,因为许多微体系结构将FP指令与整数核分开调度。例如,PowerPC甚至会对整型负载重新加载最近的FP存储进行惩罚。) 
打开App,查看更多内容
随时随地看视频慕课网APP