Вы смотрите на ранние 64-битные процессоры AMD, до Rev F (то есть когда они перешли на память DDR2). Я думаю, что есть некоторые ранние степпинги D Intel Noconas, которые не поддерживают его, но они встречаются реже.
Насколько распространены старые процессоры x64 без инструкции cmpxchg16b?
Инструкция cmpxchg16b для выполнения атомарных 128-битных обменов памяти не поддерживается на старых версиях процессора x64, но кажется, что она поддерживается новыми версиями процессора уже несколько лет. Насколько вероятно, что я столкнусь с 64-битной машиной со старым процессором, в котором отсутствует эта инструкция?
3 ответа на вопрос
У меня нет данных о распространенности некоторых типов процессоров, поэтому я не могу напрямую ответить на ваш вопрос. Однако вы можете узнать, поддерживает ли ЦП CMPXCHG16B
, проверив, CPUID.01h.ECX.bit13
есть 1
(доступно) или 0
(не доступно).
Также обратите внимание, что в руководствах Intel предлагается, чтобы эта инструкция выполнялась атомарно, вам необходимо объединить ее с LOCK
префиксом.
Support in the CPU may not actually be enough as some Core 2 users found out on the launch of Windows 8.1, particularly those having an Intel DP35DP motherboard. I'm not yet sure what in the motherboard could prevent CMPXCHG16B from working. Probably the feature detection bits can be disabled by BIOS. To summarize what Yuhong Bao's blog says on this, there was a processor errata in early Core 2 chips (E0/R0 steppings of the 45nm Core 2) that caused their features to be misreported via CPUID. It was possible to work around this via BIOS/microcode update, as far as I can tell.
Похожие вопросы
-
4
Какова максимальная адресуемая память?
-
1
IDE для сборки на Pendrive
-
1
linux и сборка - блокировка
-
-
1
Как назначить строгое имя для сборки?
-
1
Windows -> Папка сборки типичный размер: он же GAC
-
2
Понимание кодировки инструкций 8086
-
3
Почему мы не можем понять содержимое двоичного файла после компиляции?
-
5
Старые технологии о дискете
-
1
Узнайте, какие сектора представляют собой файлы на жестком диске?
-
1
"nop; jmp short" против "jmp short; nop"