#assembly #x86 #cpu #x86-64
# #сборка #x86 #процессор #x86-64
Вопрос:
Процессоры, реализующие набор команд IA-32 (который представляет собой 32-разрядный набор команд x86), не имеют одинаковых инструкций и регистров, например, Intel Pentium III имеет регистры и инструкции SSE, которых нет в Intel Pentium II.
Но как насчет процессоров, которые реализуют набор команд AMD64 (который представляет собой 64-разрядный набор команд x86), имеют ли эти процессоры одинаковые инструкции и регистры (я имею в виду: есть ли какой-нибудь процессор AMD64, у которого больше инструкций и регистров, чем у другого процессора AMD64, точно так же, как естьявляются ли процессоры IA-32, которые имеют больше инструкций и регистров, чем другие процессоры IA-32)?
Комментарии:
1. Нет, расширения ISA продолжают существовать в AMD64.
2. @Margaret Bloom Извините, мой вопрос был не очень ясен, я отредактировала его, чтобы сделать более понятным.
Ответ №1:
Все процессоры AMD64 имеют следующие функции:
- полный набор команд i686
- полностью совместимый с Pentium Pro процессор x87 FPU с MMX
- SSE и SSE2
Некоторые ранние процессоры AMD64 пропускают sahf
lahf
инструкции и в длительном режиме.
Поддержка дополнительных расширений набора команд, таких как SSE3, AVX, fisttp и BMI, не гарантируется.
Комментарии:
1. Извините, что мой вопрос был не очень ясен, я отредактировал его, чтобы сделать более понятным.
2. @user247763 На ваш обновленный вопрос: ответ — да. Например, последние процессоры amd64 имеют инструкции AVX или
popcnt
инструкцию, все из которых отсутствуют в базовой спецификации AMD64.3. @user247763: AVX512F — самый яркий пример расширения, которое добавляет новые регистры: регистры маски k0 ..k7 и x / y / zmm16..31, доступные только с инструкциями AVX512F (с использованием кодировки EVEX). AVX512VL (длина вектора) требуется для xmm / ymm16 ..31 только с AVX512F вы можете использовать только 512-битные регистры zmm. (Или используйте VEX или устаревший SSE для xmm / ymm 0..15). Конечно, верхняя половина zmm0.. 15 — это также новое архитектурное состояние, которого не было у AVX.
4. Есть и другие расширения, такие как добавленный MPX
bnd0
..bnd3
новое архитектурное состояние, а также новые инструкции по их использованию.
Ответ №2:
Не все одинаково:
Процессоры Intel x86 поддерживают sysenter
инструкции в 64-разрядном режиме, процессоры AMD (по крайней мере, более старые) — нет.
С другой стороны, процессоры AMD поддерживают syscall
32-разрядный режим, а 64-разрядные процессоры Intel (по крайней мере, более старые) — нет.
Я уверен, что это не единственное различие в существующих и / или будущих процессорах AMD64.