ПРОЦЕССОРЫ INTEL
ARCHITECTURE
История процессоров IA
Архитектура Intel Architecture стала стандартом «де-факто»
современной компьютерной индустрии после того, как в 1981 г. компания IBM
выбрала для своего первого персонального компьютера IBM PC процессор Intel
8088. Основополагающими факторами такой популярности Intel считает полную
совместимость программного обеспечения, разработанного под Intel Architecture
процессоры, и вс э более серьезные увеличения производительности,
предлагавшиеся с выходом новых поколений процессоров.
Родоначальниками процессорной архитектуры Intel Architecture
являлись 16-разрядные процессора 8088 и 8086, причем объектный код,
разработанный в расчете на них в 1978 г., и поныне без проблем исполняется на
самых госледних процессорах 32-разрядной архитектуры IA-32.
Процессор 8086 имел 16-разрядные регистры общего
назначения, 16-разрядную шину данных и 20-разрядную шину адреса, что
позволяло ему оперировать адрес ным пространством в 1 МБ. Отличие процессора
8088 заключалось в 8-разрядной шине данных.
Эти процессоры привнесли сегментацию в архитектуру IA-32.
Память разделялась на сегменты размером до 64 КБ. Оперируя четырьмя
сегментными регистрами одновременно, процессор имел возможность адресации до
256 КБ памяти без переключения между сегментами. При этом 20-разрядные адреса
получались путем добавления 16-разря.!шого адреса к указателю сегментного
регистра.
Процессор 80286 привнес в архитектуру (Д-32 защищенный режим.
В нем содержимое сегментных регистров используется в качестве указателей на
таблицы дескрипторов, которые давали возможность 24-разрядной адресации, что
составляло 16 МБ адресного пространства. К тому же появилась возможность
проверки границ сегментов, опций read и execute-only для сегментов и 4 уровня
защиты кода операционной системы от приложений и защита приложений друг от
друга.
Intel 80386 стал первым 32-разрядным процессором в
архитектуре IA-32. В архитектуру введены 32-разрядные регистры общего
назначения (GP — general purpose), подходящие как для хранения адресов, так и
для операндов. Нижняя и верхняя половины сохранили возможность работы в
качестве самостоятельных регистров для обеспечения совместимости с
предыдущими процессорами. Для обеспечения эффективного выполнения кода,
созданного под ранние процесс эры, на 32-разрядных процессорах был введен
виртуальный х86-режим.
Имея 32-разрядную шину адреса, 80386 процессор поддерживал
адресацию до 4 ГБ памяти. При этои была возможность использования как
сегментированной ламяти, так и «плоской», при которой все сегментные регистры
содержали указатель на один и тот же адрес, и в каждом сегменте доступно все
4-гигабайтное адресное пространство. Для виртуального управления памятью
вводится страничный метод, при котором адресное пространство делится на
фиксированные страницы размером по 4 КБ, эффективность которого значительно
превышала использование сегментов, 16-разрядные инструкции, доставшиеся в
наследство от предыдущих процессоров, получили возможность работы с
32-разрядными операндами и адресами, а также был добавлен ряд новых
32-разрядных инструкций.
В архитектуре процессоров Intel поддерживается обратная
совместимость с объектным кодом для сохранения совместимости программного
обеспечения, но в то ЖР время в каждом новом поколении используются все более
эффективные микропроцессорные архитектуры и технологии конструирования. Intel
работала по внедрению и соединению сложной техники архитектуры mainframe в
микропроцессорную архитектуру. Многие модели параллельной обработки намного
усиливали производительность техники, и процессор 80386 был первым
процессором IA, в который включили шесть параллельных стадий. Это
интерфейсный блок шины (доступ к памяти и устройству ввода/вывода других
блоков), блок предварительного кода (получает объектный код из блока шины и
помещает его в 16 байтную очередь), блок декодирования инструкции (декодирует
объектный код из предварительного блока в микрокод), блок выполнения
(выполняет инструкции микрокода), сегментный блок (переводит логические
адреса в линейные адреса и выполняет проверку защиты) и страничный блок
(переводит линейные адреса в физические, выполняет проверку страничной защиты
и содержит кэш с информацией о 32 наиболее часто используемых страницах).
В процессор i486 добавлена возможность параллельного
выполнения с помощью расширения блока декодирования инструкции и блока
выполнения процессора 80386 в пять конвейерных стадий, где каждая стадия
(если нужно) работает параллельно с другими и одновременно может выполняться
до пяти инструкций в разных стадиях. Каждая стадия может выполнить свою
работу над одной инструкцией за один такт, то есть процессор i486 может
выполнить работу над одной инструкцией за один такт CPU. Также к процессору
i486 был добавлен 8-килобайтный кэш L1 для увеличения процента инструкций,
которые могут быть выполнены за один такт: инструкции доступа в память (если
операнд находился в кэше L1). В Процессоре i486 впервые на чип с CPU был
интегрирован блок арифметического устройства с плавающей запятой (FPU) и
добавлены новые контакты, биты и инструкции для поддержки более сложных и
мощных систем (поддержку Ь2-кэша и мультипроцессорное™).
Позже Intel добавила в процессор i486 SL Enhanced
(расширенный) функции поддержки энергосбережения и другие возможности
системного управления. Эти функции были развиты в процессорах 80386 SL и i486
SL, которые были специализированы для быстро растущего рынка ноутбуков PC,
работающих от батарей. Эти функции включали новый режим управления системой,
запускаемый собственным выделенным контактом прерывания, который позволяет
управлять системой (такой, как управление энергосбережением) и добавляется к
системе прозрачно для других операционных систем И всех приложений. Функции
стоп таймер и автоматическая остановка позволяют CPU работать на пониженной
частоте (для сохранения энергии) или остановиться (с сохранением текущего
состояния).
Процессор Pentium стал первым процессором, в котором была
применена суперскалярная архитектура — два конвейера, называвшиеся U и V, позволяли
выполнять 2 инструкции за такт Количество Ll-кэша удвоилось — теперь на
команды и данные приходилось по 8 КБ, причем кэш данных использовал более
эффективную схему с обратной записью. Для эффективного предсказания переходов
в циклических конструкциях применялась встроенная таблица ветвлений.
В виртуальном х86-режиме в дополнение к 4-килобайт-ным
страницам появилась поддержка 4-мегабайтных страниц. Регистры остались
32-разрядными, но некоторые внутренние шины расширились до 64 и даже 128
разрядов. Также 64-разрядной стала внешняя шина данных.
Последний процессор этого поколения, Pentium MMX, привнес
в архитектуру расширенный набор команд, позволявший эффективно оперировать
упакованными целочисленными данными, находящимися в 64-разрядных ММХ-регист-рах.
В 1995 г. было представлено семейство процессоров Р6,
имевшее уже 3 независимых конвейера. Первым процессором этого семейства был
процессор Pentium Pro.
Принципиальное отличие этого семейства состоит в том, что
Р6 преобразует команды х86 во внутренние, RISC-подобные команды, называемые
микрокомандами (micro-ops). Это позволяет устранить многие ограничения,
свойственные набору команд х86: нерегулярность кодирования команд, операции
целочисленных пересылок типа «регистр—память» и переменная длина
непосредственных операндов.
Шина адреса процессоров Р6 расширилась до 36 разрядов, что
позволяет использовать адресное пространство размером до 64 ГБ.
В процессор Pentium II к архитектуре процессора Pentium Pro
добавлены команды ММХ. Для процессора Pentium II вводится новая спецификация
установки в материнскую плату слота 1 и слота 2. В этой новой спецификации
кэш L2 выносится из кристалла. Для слота 1 и слота 2 используется ножевое
соединение вместо сокета. В процессоре Pentium II увеличен кэш данных L1 и
кэш инструкций L1 до 16 КБ каждый. В процессоре Pentium П размер кэша L2
может быть 256 КБ, 512 КБ и 1 МБ или 2 МБ (только для слота 2). Процессоры
слота 1 используют «половинную тактовую частоту» шины, а процессоры слота 2
используют «полную тактовую частоту» шины.
Процессор Pentium !!!, выпущенный в 1999 г., привнес в
архитектуру IA-32 расширения SSE (Streaming SIMD (Single Instruction Multiple
Data) Extensions) — стали доступны новые 128-разрядные регистры и
SIMD-операции над упакованными операндами с плавающей запятой с одинарной
точностью.
|