旧版本的 x64 处理器不支持用于执行原子 128 位内存交换的 cmpxchg16b 指令,但似乎新版本的处理器已经支持了好几年了。我遇到 64 位机器的旧处理器缺少此指令的可能性有多大?
您正在查看 Rev F 之前的早期 AMD 64 位处理器(即它们迁移到 DDR2 内存时)。我认为也有一些早期的步进 D Intel Noconas 不支持它,但这些很少见。
小智 6
我没有关于某些类型 CPU 流行的数据,所以我不能直接回答你的问题。但是可以CMPXCHG16B通过查看CPUID.01h.ECX.bit13是1(可用)还是0(不可用)来判断CPU是否支持。
另请注意,英特尔的手册建议要以原子方式执行此指令,您需要将其与LOCK前缀结合使用。
| 归档时间: |
|
| 查看次数: |
10050 次 |
| 最近记录: |