Насколько распространены старые процессоры x64, не имеющие инструкции cmpxchg16b?

инструкция cmpxchg16b для выполнения атомарных 128-битных обменов памятью не поддерживается на старых версиях процессора x64, но кажется, что это поддерживается более новыми версиями процессора в течение нескольких лет. Какова вероятность того, что я столкнусь с 64-разрядной машиной со старым процессором, которому не хватает этой инструкции?

12
задан Hennes
21.01.2023 13:46 Количество просмотров материала 2909
Распечатать страницу

3 ответа

вы смотрите на ранних AMD 64-разрядных процессоров, до Rev F (который, когда они переехали в память DDR2). Есть некоторые ранние шаги D Intel Noconas тоже, которые не поддерживали его, я думаю, но это реже.

5
отвечен Yuhong Bao 2023-01-22 21:34

у меня нет данных о распространенности некоторых типов процессоров, поэтому я не могу напрямую ответить на ваш вопрос. Тем не менее, вы можете узнать, поддерживает ли процессор CMPXCHG16B ли CPUID.01h.ECX.bit13 is 1 () или 0 (отсутствует).

Также обратите внимание, что руководства Intel предполагают, что для выполнения этой инструкции атомарно, вы должны объединить его с LOCK префикс.

3
отвечен 2023-01-22 23:51

поддержка процессора может не хватить, как некоторые Core 2 пользователи узнали о запуске Windows 8.1, особенно те, которые имеют материнскую плату Intel DP35DP. Я еще не уверен, что в материнской плате может помешать CMPXCHG16B работать. Вероятно, биты обнаружения функций могут быть отключены BIOS. подводя итог, что блог Юхун Бао говорит об этом, в ранних чипах Core 2 (E0/R0 steppings ядра 45nm 2) были ошибки процессора, которые вызвали их особенности должны быть неправильно представлены через CPUID. Насколько я могу судить, можно было обойти это с помощью обновления BIOS/микрокода.

3
отвечен Fizz 2023-01-23 02:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх