Interested Article - Расширения архитектуры x86

Расширения архитектуры x86 (x86 extended features) — инженерные решения, разрабатываемые различными производителями микропроцессоров архитектуры x86 для собственных процессоров, которые, зачастую, присутствуют в одних моделях и отсутствуют в других. Разработчики программного обеспечения, прежде чем использовать их в собственных программах, должны выполнить специальную команду CPUID , которая сообщает о наличии тех или иных расширений. Если расширение не поддерживается, программа должна либо завершить работу, либо использовать другие алгоритмы, не использующие расширений.

Иногда расширения становятся часто используемыми в популярных программах, тогда их начинают включать в свои процессоры практически все производители.

Наиболее известные из расширений MMX , SSE , 3DNow! , Hyper-threading . В основном, новые расширения разрабатываются фирмой Intel и затем подхватываются другими производителями. Но иногда бывает так, что сама Intel включает в свои процессоры расширения, созданные иными фирмами. К примеру, так было с архитектурой x86-64 , впервые разработанной компанией AMD , а уже впоследствии реализованная Intel как Intel64/EM64T.

Стандартный набор расширений («от Intel»)

  • CPUID, EAX=00000001H
Расширение Флаг CPUID Описание
FPU EDX[0] Встроенное устройство с плавающей точкой
VME EDX[1] Расширение режима V86
EDX[2] Улучшенные средства отладки
PSE EDX[3] Большие страницы (4MiB/2MiB)
TSC EDX[4] Встроенный счетчик времени (машинных тактов)
MSR EDX[5] Моделезависимые регистры
PAE EDX[6] Расширение физического адреса
MCE EDX[7] Генерация исключения машинного контроля
CX8 EDX[8] Поддерживается инструкция CMPXCHG8B
APIC EDX[9] Встроенный локальный контроллер прерываний
EDX[11] Поддерживаются инструкции SYSENTER и SYSEXIT
MTRR EDX[12] Имеется возможность задавать тип кэша для определённых областей памяти в специальных регистрах
EDX[13] Поддерживается флаг глобальных страниц (не сбрасываемых в TLB при переключении контекстов)
EDX[14] Поддерживаются средства машинного контроля
EDX[15] Поддерживаются инструкции условной пересылки данных
EDX[16] Поддерживаются расширенные атрибуты кэширования для отдельных страниц
PSE36 EDX[17] Большие страницы (4MiB) по физическим адресам выше 4GiB
EDX[18] Имеется возможность чтения серийного номера процессора
EDX[19] Поддерживается инструкция CLFLUSH
EDX[21] Debug Trace and EMON Store MSRs
ACPI EDX[22] Имеются средства измерения температуры процессорного ядра
MMX EDX[23] Поддерживается набор инструкций технологии Intel MMX
EDX[24] Есть возможность сохранять/восстанавливать расширенный контекст
SSE EDX[25] Поддерживается набор инструкций технологии SSE
SSE2 EDX[26] Поддерживается набор инструкций технологии SSE2
EDX[27] Self-snoop
HTT EDX[28] Поддерживается технология HyperThreading .
EDX[29] Поддерживаются расширенные средства контроля температуры с генерацией прерывания
IA-64 EDX[30] Программа запущена в режиме эмуляции на процессоре Itanium
EDX[31] Pending break event
SSE3 ECX[0] Поддерживается набор инструкций технологии SSE3
ECX[1] Поддерживается инструкция PCLMUL
ECX[2] 64-bit Debug Trace and EMON Store MSRs
MON ECX[3] Поддерживаются инструкции MONITOR/MWAIT
ECX[4] CPL-qualified Debug Store
VMX ECX[5] Поддерживается технология виртуализации Intel VT (Vanderpool)
ECX[6] Поддерживается технология управления доверием Intel TXT (LaGrande)
EST ECX[7] Поддерживается Enhanced SpeedStep Technology
EDX[8] Поддерживаются расширенные средства контроля температуры с генерацией прерывания и регистр THERM2_CONTROL
SSSE3 ECX[9] Поддерживается набор инструкций технологии SSSE3
ECX[10] context ID: the L1 data cache can be set to adaptive or shared mode
FMA ECX[12] Поддерживается набор инструкций FMA
CX16 ECX[13] Поддерживается инструкция CMPXCHG16B
ECX[14] MISC_ENABLE.ETPRD
ECX[15] Performance Debug Capability MSR
ECX[18] Direct Cache Access (that is, the ability to prefetch data from MMIO)
SSE4.1 ECX[19] Поддерживается набор инструкций технологии SSE4.1
SSE4.2 ECX[20] Поддерживается набор инструкций технологии SSE4.2
ECX[21] Расширение локального APIC , 32-битный ID, регистры APIC доступны как MSR
ECX[22] Поддерживается инструкция MOVBE
POPCNT ECX[23] Поддерживается инструкция POPCNT
AES ECX[25] Поддерживается аппаратное ускорение для алгоритма шифрования AES
ECX[26] Расширенная поддержка полного или частичного сохранения/восстановления расширенных контекстов
ECX[27] Флаг, указывающий приложению, что операционная система способна сохранять/восстанавливать расширенные контексты (регистры XMM и т.п)
AVX ECX[28] Поддерживается набор векторных инструкций AVX и кодирование с помощью префикса VEX

Дополнительный набор расширений («от AMD»)

  • CPUID, EAX=80000001H
Расширение Флаг CPUID Описание
EDX[11] Поддерживаются инструкции SYSCALL и SYSRET
EDX[16] Поддерживаются инструкции условной пересылки данных с плавающей точкой (FPU) .
EDX[19] Поддерживаются многопроцессорные конфигурации
NX EDX[20] Поддерживается атрибут страницы, запрещающий исполнение программного кода.
EDX[22] Поддерживаются расширения технологии MMX от AMD
EDX[24] Поддерживаются расширения технологии MMX от Cyrix .
EDX[25] Поддерживается быстрое сохранение/восстановление расширенных контекстов
EDX[26] Гигантские страницы (1GiB)
EDX[27] Улучшенная поддержка встроенного счетчика времени
EDX[29] Длинный режим
EDX[30] Поддерживается расширение набора инструкций технологии 3DNow!
EDX[31] Поддерживается набор инструкций технологии 3DNow!
ECX[0] Инструкции LAHF/SAHF доступны из 64-битного режима
CMP ECX[1] HTT=1 indicates HTT (0) or CMP (1)
SVM ECX[2] Поддерживается технология виртуализации AMD-V (Pacifica)
EAS ECX[3] Поддерживается расширение APIC (APIC_VER.EAS, EXT_APIC_FEAT, и т.д.)
ECX[4] Регистр CR8 доступен из наследственного режима
ECX[5] Поддерживается инструкция LZCNT
SSE4A ECX[6] Поддерживается набор инструкций технологии SSE4A
ECX[7] Допустимо отсутствие выравнивания в SSE
3DNow! ECX[8] Поддерживается инструкция PREFETCH/PREFETCHHW
ECX[9] OS-visible workaround
ECX[10] instruction based sampling
ECX[12] Поддерживается технология управления доверием в AMD-V
WDT ECX[13] Поддерживается встроенный сторожевой таймер
Поддерживается аппаратное ускорение для алгоритма шифрования SHA

Примечания

  1. Некоторые флаги аналогичны флагам расширений из стандартного набора, они здесь не упомянуты.
  2. На процессорах K7 флаг свидетельствует о наличии расширения PAT из стандартного набора
  3. От Cyrix
  4. На не-Cyrix процессорах флаг свидетельствует о наличии расширения FXSR из стандартного набора

Ссылки

Источник —

Same as Расширения архитектуры x86