История 32-разрядных процессоров Intel началась с процессора 80386. Он вобрал в себя все черты своих 16-разрядных предшественников 8086/88 и 80286 для обеспечения совместимости с громадным объемом ПО, существовавшего на момент его появления. Однако в процессорах 80386 преодолено жесткое ограничение на длину непрерывного сегмента памяти — 64 Кбайт.
Существенным дополнением является Virtual 8086 Mode — режим виртуального процессора 8086. Этот режим является особым состоянием задачи защищенного режима, в котором процессор функционирует как 8086. На одном процессоре в таком режиме может параллельно исполняться несколько задач с изолированными друг от друга ресурсами. Процессоры могут оперировать с 8-, 16- и 32-битными операндами, строками байт, слов и двойных слов, а также с битами, битовыми полями и строками бит.
Математический сопроцессор предназначен для расширения вычислительных возможностей центрального процессора — выполнения арифметических операций, вычисления основных математических функций (тригонометрических, экспоненты, логарифма) и т. д. В разных поколениях процессоров он назывался по-разному — FPU (Floating Point Unit — блок чисел с плавающей точкой) или NPX (Numeric Processor extension — числовое расширение процессора). Сопроцессор поддерживает семь типов данных: 16-, 32-, 64-битные целые числа; 32-, 64-, 80-битные числа с плавающей точкой (FP-форматы) и 18-разрядные числа в 3 двоично-десятичном (BCD) формате. Применение сопроцессора повышает производительность вычислений в сотни раз. Блок FPU содержит стек из восьми 80-битных регистров и несколько вспомогательных регистров.
Технология ММХ ориентирована на приложения мультимедиа, 2D/3D-rpaфику и коммуникации. Это расширение базовой архитектуры появилось только после выхода второго поколения процессоров Pentium. Основная идея ММХ заключается в одновременной обработке нескольких элементов данных за одну инструкцию — так называемая технология SIMD (Single Instruction — Multiple Data). Расширение ММХ использует новые типы упакованных 64-битных целочисленных данных:
- упакованные байты (Packed byte) — восемь байт;
- упакованные слова (Packed word) — четыре слова;
- упакованные двойные слова (Packed doubleword) — два двойных слова;
- учетверенное слово (Quadword) — одно 64-битное слово.
Эти типы данных могут специальным образом обрабатываться в 64-битных регистрах ММХО—ММХ7, представляющих собой младшие биты стека 80-битных регистров FPU. Каждая инструкция ММХ выполняет действие сразу над всем комплектом операндов (8, 4, 2 или 1), размещенных в адресуемых регистрах.
Процессоры Pentium III и 4 имеют так называемое потоковое расширение SSE (Streaming SIMD Extensions), реализованное на дополнительном независимом блоке из восьми 128-битных регистров, названных ХММ0...ХММ7. В каждый из регистров ХММ помещаются четыре 32-битных числа в формате с плавающей точкой одинарной точности. Блок позволяет выполнять векторные (они же пакетные) и скалярные инструкции. Векторные инструкции реализуют операции сразу над четырьмя комплектами операндов. Скалярные инструкции работают с одним комплектом операндов — младшим 32-битным словом.
Расширение 3Dnow!, введенное фирмой AMD процессорах К6, расширяет возможности MMX. Оно позволяет оперировать с новым типом данных – парой упакованных чисел в формате с плавающей точкой. Данная технология дает заметный результат при обработке графики.