Все ли процессоры, реализующие набор команд AMD64, имеют одинаковые инструкции и регистры?

#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.