Дополнительные возможности процессора - Processor supplementary capability
Эта статья описывает только один узкоспециализированный аспект связанной с ним темы.Октябрь 2009 г.) ( |
Эта статья может содержать чрезмерное количество сложных деталей, которые могут заинтересовать только определенную аудиторию.Февраль 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
А дополнительные возможности процессора это функция, которая была добавлена к существующей центральное процессорное устройство (CPU) дизайн после первоначального вывода этого дизайна на рынок.
Дополнительная возможность увеличивает полезность конструкции процессора, позволяя ему конкурировать более выгодно с конкурентами и давая потребителям повод для обновления, сохраняя при этом обратную совместимость с исходной конструкцией.
Возможность дополнительных инструкций ЦП, как правило, не распространяется на 8- или 16-разрядные ЦП, так как многие из этих ЦП используются в основном как микроконтроллеры. На современных 32- и 64-битных процессорах дополнительные возможности процессора не распространяется на Модули с плавающей запятой (FPU) или же Единицы управления памятью (MMU), поскольку они считаются основными функциональными возможностями. Однако расширения основных функций MMU и FPU могут считаться расширениями ЦП.
Историческое рассуждение
Всегда предполагалось, что функция дополнительных инструкций означает фиксированные наборы инструкций, которые не являются обязательными для всех ЦП в семействе ЦП. Дополнительные инструкции можно найти не на всех процессорах этого семейства.[1] Программист, желающий использовать дополнительную функцию ЦП, сталкивается с несколькими вариантами выбора.
Опции программирования дополнительных инструкций
- В Операционная система (ядро) и системный программист (программы) могут спроектировать системное программное обеспечение таким образом, чтобы оно в обязательном порядке использовало эту функцию и, следовательно, могло работать только на более новых процессорах, которые имеют эту функцию.
- С другой стороны, системный программист может написать или использовать существующие программные библиотеки, чтобы определить, имеет ли процессор, на котором он работает, конкретную функцию (или набор инструкций).
Если необходимых инструкций нет, может быть инициирован откат к альтернативному методу (предположительно более медленному или менее желательному), или же программа может быть настроена на выполнение с ограниченной функциональностью.
- В остальных случаях Операционная система может имитировать новые функции для старых процессоров, хотя часто с пониженной производительностью.
Используя наименьший общий знаменатель Стратегия (отказ от использования дополнительных возможностей процессора) позволяет сохранять переносимость программ на все машины одной архитектуры.[2]
Затронутые семейства процессоров
Некоторые популярные архитектуры процессоров, такие как x86, 68000, и MIPS видели много новых возможностей, появившихся за несколько поколений дизайна.
Некоторые из этих возможностей затем получили широкое распространение среди программистов, что стимулировало потребительские обновления и сделало предыдущие поколения процессоров устаревшими.
флаги возможностей x86
VME | Виртуальный режим 8086 Улучшение |
DE | Отладка расширений |
PSE | Расширения размера страницы |
TSC | Счетчик отметок времени |
MSR | Поддержка RDMSR и WRMSR |
PAE | Расширения физических адресов |
MCE | Исключение проверки машины |
CXS | Инструкция CMPXCHG8B (см. Также Двойное сравнение и замена и Расширения транзакционной синхронизации ) |
APIC | APIC на чипе (см. Также APIC ) |
MTRR | Тип памяти Регистр диапазона |
PGE | PTE Global Bit (см. Также Таблица страниц ) |
MCA | Архитектура проверки машины |
CMOV | Инструкции по условному перемещению и сравнению (см. Также FCMOV ) |
Дополнительные возможности, не представленные флагами
Включить (не полный список):
Дополнительные инструкции процессора
Дополнительные инструкции процессора - это инструкции, реализованные на определенных процессорах в семействе, но не во всех процессорах в данном семействе.
IA-32
Следующие ниже инструкции считаются дополнительными инструкциями процессора для IA-32 архитектура. Эти инструкции были добавлены в более поздние производственные процессоры и не являются частью исходного набора инструкций IA-32. Программы, содержащие эти инструкции, могут работать некорректно на всех машинах семейства IA-32:
cmovnpbswap | обмен байтами |
cmov | условный ход |
cmova | |
cmovae | |
cmovb | |
cmovbe | |
cmovc | |
cmove | |
cmovg | |
cmovge | |
cmovl | |
cmovle | |
cmovna | |
cmovnae | |
cmovnb | |
cmovnbe | |
cmovnc | |
cmovng | |
cmovnge | |
cmovnl | |
cmovnle | |
cmovno | |
cmovns | |
cmovnz | |
cmovo | |
cmovp | |
cmovpe | |
cmovpo | |
cmovs | |
cmovz | |
cpuid | |
fcmov | условный ход с плавающей запятой |
fcomi | |
nopl | |
rdpmc | читать счетчики монитора производительности |
rdtsc | читать счетчик отметок времени |
системный вызов | |
сисентер | |
сисексит | |
sysret | |
ud2 | неопределенная инструкция только для тестирования программного обеспечения |
xsave | сохранить расширенные состояния процессора |
xrstor | восстановить расширенные состояния процессора |
Возможности FPU и MMU
Возможность совместной обработки математических данных FPU (Floating Point Unit) доступна на всех процессорах x86, начиная с серии 80486DX. Наборы инструкций FPU и MMU (для семейства x86) не считались дополнительными инструкциями с момента их появления из-за их важности для основных функций ЦП.