Дополнительные возможности процессора
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
— Дополнительные возможности процессора это функция, которая была добавлена к существующей конструкции центрального процессора (ЦП) после первоначального представления этой конструкции на рынке.
Дополнительные возможности повышают полезность конструкции процессора, позволяя ему более выгодно конкурировать с конкурентами и давая потребителям повод для обновления, сохраняя при этом обратную совместимость с исходной конструкцией.
Возможности дополнительных инструкций ЦП, как правило, не применимы к 8- или 16-разрядным ЦП, поскольку многие из этих ЦП используются в основном как микроконтроллеры. В современных 32- и 64-разрядных процессорах дополнительные возможности процессора не распространяются на модули с плавающей запятой (FPU) или модули управления памятью (MMU), поскольку они считаются фундаментальными функциями ядра. Однако расширения основных функций MMU и FPU можно считать расширениями ЦП.
Исторические рассуждения
[ редактировать ]Всегда предполагалось, что функция дополнительных инструкций означает фиксированные наборы инструкций, которые не являются обязательными для всех ЦП в семействе ЦП. Дополнительные инструкции просто невозможно найти на всех процессорах этого семейства. [ 1 ] Программист, желающий использовать дополнительную функцию ЦП, сталкивается с несколькими вариантами выбора.
Дополнительные возможности программирования инструкций
- Операционная система (ядро) и системный программист (программы) могут спроектировать системное программное обеспечение так, чтобы оно обязательно использовало эту функцию и, следовательно, могло запускаться только на более новых процессорах, имеющих эту функцию.
- С другой стороны, системный программист может написать или использовать существующие библиотеки программного обеспечения, чтобы определить, имеет ли процессор, на котором он работает, определенную функцию (или набор инструкций).
Если необходимых инструкций нет, можно использовать альтернативный метод (предположительно более медленный или менее желательный) или же программу можно настроить для работы с ограниченной функциональностью.
- В других случаях операционная система может имитировать новые функции старых процессоров, хотя часто с пониженной производительностью.
Используя стратегию наименьшего общего знаменателя (избегая использования дополнительных возможностей процессора), программы можно сохранять переносимыми на все машины одной и той же архитектуры. [ 2 ]
Затронутые семейства процессоров
[ редактировать ]В некоторых популярных процессорных архитектурах, таких как x86 , 68000 и MIPS , за несколько поколений конструкции появилось множество новых возможностей.
Некоторые из этих возможностей затем получили широкое распространение среди программистов, что стимулировало потребительские обновления и сделало предыдущие поколения процессоров устаревшими.
Флаги возможностей x86
[ редактировать ]УМЭ | виртуального режима 8086 Улучшение |
ИЗ | Отладка расширений |
ПОЧЕМУ | Расширения размера страницы |
ТСК | Счетчик отметок времени |
МСР | Поддержка RDMSR и WRMSR |
САЙТ | Расширения физических адресов |
МЦЕ | Исключение проверки машины |
CXS | Инструкция CMPXCHG8B (также см. разделы «Двойное сравнение и замена» и «Расширения синхронизации транзакций» ). |
АПИК | APIC на чипе (см. также APIC ) |
МТРР | Тип памяти Регистр диапазона |
ПГЕ | Глобальный бит PTE (см. также таблицу страниц ) |
МКА | Архитектура машинной проверки |
КМОВ | Инструкции условного перемещения и сравнения (см. также FCMOV ) |
Дополнительные возможности, не представленные флагами
[ редактировать ]Включите (не полный список):
- 3DСейчас!
- Таблица атрибутов страницы (PAT)
- ММХ
- SSE (и более поздние варианты до SSE5 )
- AVX
- AVX2
- AVX-512
Дополнительные инструкции процессора
[ редактировать ]Дополнительные инструкции процессора — это инструкции, которые были реализованы на определенных процессорах семейства, но присутствуют не на всех процессорах определенного семейства.
ИА-32
[ редактировать ]Следующие инструкции считаются дополнительными инструкциями процессора на архитектуре IA-32 . Эти инструкции были добавлены в более поздние процессоры и не являются частью исходного набора команд IA-32. Программы, содержащие эти инструкции, могут работать некорректно на всех машинах семейства IA-32:
замена | замена байтов |
смов | условный ход |
cmova | |
cmovae | |
cmovb | |
cmovbe | |
клецки | |
смдвигаться | |
cmovg | |
смовге | |
cmovl | |
cmovle | |
глиняная посуда | |
смовны | |
cmovnb | |
cmovnbe | |
cmovnc | |
перемещение | |
смовнге | |
cmovnl | |
cmovnle | |
грязный | |
cmovnp | |
cmovns | |
cmovnz | |
Цмово | |
cmovp | |
cmovpe | |
cmovpo | |
cmovs | |
смовз | |
идентификатор процессора | |
ФКМОВ | условное перемещение с плавающей запятой |
фкоми | |
нопл | |
РДПМК | прочитать счетчики монитора производительности |
рдтск | чтение счетчика меток времени |
системный вызов | |
швейный центр | |
системный выход | |
шипел | |
уд2 | неопределенная инструкция только для тестирования программного обеспечения |
xсохранить | сохранять расширенные состояния процессора |
xrstor | восстановить расширенные состояния процессора |
Возможности FPU и MMU
[ редактировать ]Возможность совместной обработки математических вычислений FPU (модуль с плавающей запятой) доступна на всех процессорах x86, начиная с серии 80486DX. Наборы инструкций FPU и MMU (для семейства x86) не считались дополнительными инструкциями с момента их появления из-за их важности для основных функций ЦП.
См. также
[ редактировать ]- списки инструкций x86
- идентификатор процессора
- Дополнительные инструкции по процессору для i686 [ постоянная мертвая ссылка ]