Расширения архитектуры 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
DE 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] Встроенный локальный контроллер прерываний
SEP EDX[11] Поддерживаются инструкции SYSENTER и SYSEXIT
MTRR EDX[12] Имеется возможность задавать тип кэша для определённых областей памяти в специальных регистрах
PGE EDX[13] Поддерживается флаг глобальных страниц (не сбрасываемых в TLB при переключении контекстов)
MCA EDX[14] Поддерживаются средства машинного контроля
CMOV EDX[15] Поддерживаются инструкции условной пересылки данных
PAT EDX[16] Поддерживаются расширенные атрибуты кэширования для отдельных страниц
PSE36 EDX[17] Большие страницы (4MiB) по физическим адресам выше 4GiB
PSN EDX[18] Имеется возможность чтения серийного номера процессора
CLFL EDX[19] Поддерживается инструкция CLFLUSH
DTES EDX[21] Debug Trace and EMON Store MSRs
ACPI EDX[22] Имеются средства измерения температуры процессорного ядра
MMX EDX[23] Поддерживается набор инструкций технологии Intel MMX
FXSR EDX[24] Есть возможность сохранять/восстанавливать расширенный контекст
SSE EDX[25] Поддерживается набор инструкций технологии SSE
SSE2 EDX[26] Поддерживается набор инструкций технологии SSE2
SS EDX[27] Self-snoop
HTT EDX[28] Поддерживается технология HyperThreading.
TM1 EDX[29] Поддерживаются расширенные средства контроля температуры с генерацией прерывания
IA-64 EDX[30] Программа запущена в режиме эмуляции на процессоре Itanium
PBE EDX[31] Pending break event
SSE3 ECX[0] Поддерживается набор инструкций технологии SSE3
PCLMUL ECX[1] Поддерживается инструкция PCLMUL
DTES64 ECX[2] 64-bit Debug Trace and EMON Store MSRs
MON ECX[3] Поддерживаются инструкции MONITOR/MWAIT
DSCPL ECX[4] CPL-qualified Debug Store
VMX ECX[5] Поддерживается технология виртуализации Intel VT (Vanderpool)
SMX ECX[6] Поддерживается технология управления доверием Intel TXT (LaGrande)
EST ECX[7] Поддерживается Enhanced SpeedStep Technology
TM2 EDX[8] Поддерживаются расширенные средства контроля температуры с генерацией прерывания и регистр THERM2_CONTROL
SSSE3 ECX[9] Поддерживается набор инструкций технологии SSSE3
CID ECX[10] context ID: the L1 data cache can be set to adaptive or shared mode
FMA ECX[12] Поддерживается набор инструкций FMA
CX16 EDX[13] Поддерживается инструкция CMPXCHG16B
ETPRD ECX[14] MISC_ENABLE.ETPRD
PDCM ECX[15] Performance Debug Capability MSR
DCA 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
x2APIC ECX[21] Расширение локального APIC, 32-битный ID, регистры APIC доступны как MSR
MOVBE ECX[22] Поддерживается инструкция MOVBE
POPCNT ECX[23] Поддерживается инструкция POPCNT
AES ECX[25] Поддерживается аппаратное ускорение для алгоритма шифрования AES
XSAVE ECX[26] Расширенная поддержка полного или частичного сохранения/восстановления расширенных контекстов
OSXSAVE ECX[27] Флаг, указывающий приложению, что операционная система способна сохранять/восстанавливать расширенные контексты (регистры XMM и т.п)
AVX ECX[28] Поддерживается набор векторных инструкций AVX и кодирование с помощью префикса VEX

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

  • CPUID, EAX=80000001H
Расширение Флаг CPUID[1] Описание
SYSCALL EDX[11] Поддерживаются инструкции SYSCALL и SYSRET
FCMOV EDX[16] Поддерживаются инструкции условной пересылки данных с плавающей точкой (FPU)[2].
MP EDX[19] Поддерживаются многопроцессорные конфигурации
NX EDX[20] Поддерживается атрибут страницы, запрещающий исполнение программного кода.
MMX+ EDX[22] Поддерживаются расширения технологии MMX от AMD
MMX+[3] EDX[24] Поддерживаются расширения технологии MMX от Cyrix[4].
FFXSR EDX[25] Поддерживается быстрое сохранение/восстановление расширенных контекстов
PG1G EDX[26] Гигантские страницы (1GiB)
TSCP EDX[27] Улучшенная поддержка встроенного счетчика времени
LM EDX[29] Длинный режим
3DNOW+ EDX[30] Поддерживается расширение набора инструкций технологии 3DNow!
3DNOW EDX[31] Поддерживается набор инструкций технологии 3DNow!
AHF64 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, и т.д.)
CR8D ECX[4] Регистр CR8 доступен из наследственного режима
LZCNT ECX[5] Поддерживается инструкция LZCNT
SSE4A ECX[6] Поддерживается набор инструкций технологии SSE4A
MSSE ECX[7] Допустимо отсутствие выравнивания в SSE
3DNow! ECX[8] Поддерживается инструкция PREFETCH/PREFETCHHW
OSVW ECX[9] OS-visible workaround
IBS ECX[10] instruction based sampling
SKINIT ECX[12] Поддерживается технология управления доверием в AMD-V
WDT ECX[13] Поддерживается встроенный сторожевой таймер
SHA Поддерживается аппаратное ускорение для алгоритма шифрования SHA

Примечания

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

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.