x86 (Intel 80x86) — общее название семейства микропроцессоров, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей (AMD, VIA, Transmeta, WinChip и т. д.).
Такое имя закрепилось за семейством этих микропроцессоров, так как названия ранних моделей процессоров Intel заканчивались на число 86 — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). Более поздние модели стали называть именами собственными (например, Pentium), чтобы иметь возможность зарегистрировать их как торговую марку.
Другое название для архитектуры этого типа — IA (англ.) (Intel Architecture) или же IA-32.
Основные особенности архитектуры
x86 — это CISC-архитектура. Доступ к памяти происходит по «словам». «Слова» размещаются по принципу little-endian. Современные процессоры включают в себя декодеры команд x86 для преобразования их в упрощённый внутренний формат с последующим их выполнением, тем самым они являются RISC и CISC одновременно.
Реальный режим
Классический режим, использованный в ранних IBM PC. Позволяет адресовать 1 мегабайт памяти и не имеет встроенных средств для защиты памяти и переключения задач, что, впрочем, не мешает реализовать программную многозадачность.
Расширения
24-битный защищённый режим
Реализован только в микропроцессоре 80286 — первом микропроцессоре фирмы Intel, имеющем защищенный режим (protected mode). Он имел 24-разрядную архитектуру и позволял адресовать до 16 Мбайт ОЗУ.
Задачи имели пока ещё общее адресное пространство.
32-битный защищённый режим
32-разрядная архитектура позволяет адресовать до 4 Гбайт ОЗУ.
В 32-битном режиме появилось понятие линейного адресного пространства. Теперь каждая задача может иметь отдельное адресное пространство и использовать до 4 Гбайт памяти независимо от количества установленной физической памяти (ОЗУ).
В более поздних 32-разрядных процессорах появилось PAE (Physical Address Extend) — расширение адресов физической памяти до 36 бит (возможность адресации 64 Гбайт ОЗУ). Это изменение не затронуло разрядности задач — они остались 32-битными.
MMX
Дополнительный «мультимедийный» (англ. Multi-Media eXtensions) набор инструкций, выполняющих по несколько характерных для процессов кодирования/декодирования потоковых аудио/видео-данных действий за одну машинную инструкцию. Впервые появился в процессорах Pentium MMX. Обеспечивает только целочисленные вычисления.
SSE
SSE (англ. Streaming SIMD Extensions — потоковое SIMD-расширение) — это SIMD (англ. Single Instruction, Multiple Data — «одна инструкция — множество данных») набор инструкций, разработанный Intel и впервые представленный в процессорах серии Pentium III. Поддерживает вычисления с плавающей точкой.
SSE2
Улучшенное расширение SSE. Появилось в процессорах Pentium 4. Производит потоковые вычисления с вещественными числами двойной точности (2 числа в одном регистре SSE). Кроме того, добавлены инструкции, аналогичные расширению MMX, работающие с регистрами SSE (16 байт, 8 слов, 4 двойных слова или 2 учетверённых слова в одном регистре).
SSE3
Продолжение SSE и SSE2, появилось в процессорах Prescott.
SSSE3
Дополнение к SSE3 для работы с упакованными целыми.
SSE4
Новый набор команд Intel, впервые реализованный в процессорах серии Penryn.
SSE4 состоит из 54 инструкций, 47 из них относят к SSE4.1 (они есть только в процессорах Penryn). Ожидается, что полный набор команд (SSE4.1 и SSE4.2, то есть 47 + оставшиеся 7 команд) будет доступен в процессорах Nehalem. Ни одна из SSE4 инструкций не работает с 64-битными mmx регистрами, только со 128-битными xmm0-15. Может оказаться, что не будет выпущено 32-битных процессоров с SSE4, только 64-битные — с EM64T.
3DNow!
Набор инструкций для потоковой обработки вещественных чисел одинарной точности. Поддерживается процессорами AMD начиная с K6-2. Процессорами Intel не поддерживается.
Инструкции 3DNow! используют регистры MMX в качестве операндов (в один регистр помещается два числа одинарной точности), поэтому, в отличие от SSE, при переключении задач не требуется отдельно сохранять контекст 3DNow!.
64-битный режим
К началу 2000-х годов стало очевидно, что 32-битное адресное пространство архитектуры x86 ограничивает производительность приложений, работающих с большими объёмами данных. 32-разрядное адресное пространство позволяет процессору осуществлять непосредственную адресацию лишь 4 Гб данных, этого может оказаться недостаточным для некоторых приложений, связанных, например, с обработкой видео или обслуживанием баз данных.
Для решения этой проблемы Intel разработала новую архитектуру IA-64 — основу семейства процессоров Itanium. Для обеспечения обратной совместимости со старыми приложениями, использующими 32-разрядный код, в IA-64 был предусмотрен режим эмуляции. Однако на практике данный режим работы оказался чрезвычайно медленным. Компания AMD предложила альтернативное решение проблемы увеличения разрядности процессора. Вместо того, чтобы изобретать совершенно новую систему команд, было предложено ввести 64-разрядное расширение к уже существующей 32-разрядной архитектуре x86. Первоначально новая архитектура называлась x86-64, позже она была переименована в AMD64. Первоначально новый набор инструкций поддерживался процессорами семейств Opteron, Athlon 64 и Turion 64 компании AMD. Успех процессоров, использующих технологию AMD64, наряду с вялым интересом к архитектуре IA-64, побудили Intel лицензировать набор инструкций AMD64. При этом был добавлен ряд специфических инструкций, не присутствовавших в изначальном наборе AMD64. Новая версия архитектуры получила название EM64T.
В литературе и названиях версий своих продуктов компании Microsoft и Sun используют объединенное именование AMD64/EM64T, когда речь заходит о 64-разрядных версиях их операционных систем Windows и Solaris соответственно. В то же время, поставщики программ для операционных систем GNU/Linux, BSD используют метки «x86-64» или «amd64», Mac OS X использует метку «x86_64», если необходимо подчеркнуть, что данное ПО использует 64-разрядные инструкции.
80486 DX2
Материал из Википедии