- Расширения архитектуры 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] Поддерживается встроенный сторожевой таймер - ↑ Некоторые флаги аналогичны флагам расширений из стандартного набора, они здесь не упомянуты.
- ↑ На процессорах K7 флаг свидетельствует о наличии расширения PAT из стандартного набора
- ↑ От Cyrix
- ↑ На не-Cyrix процессорах флаг свидетельствует о наличии расширения FXSR из стандартного набора
Ссылки
Наборы расширения базовых инструкций процессоров семейства x86 MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES Категория:- Расширения архитектуры x86
Wikimedia Foundation. 2010.