Краткое описание процессоров

Краткая информация по процессорам в сведена в таблицу 1.


Таблица 2 Эволюция процессоров х86.

Поколение Наименование Год выпуска Разрядность шины адреса Разрядность шины данных (разрядность процессора) Тактовая частота Количество элементов на кристалле (Техпроцесс) Нововведения
Intel 8086 5-10 МГц 29 000 (3 мкм) 16 разрядные регистры, 20 разрядная шина адреса, реальный режим адресации.
Intel 80286 6-12 МГц 134 000 (1.5 мкм) 24 разрядная шина адреса, защищенный режим адресации.
Intel 80386   275 000 (1 мкм) 32 разрядные регистры, 32 разрядная шина адреса, 32 разрядный защищенный режим адресации, улучшенная поддержка многозадачности и защиты, встроенная кэш-память
I486     RISC-ядро, конвейер, умножение тактовой частоты системной платы.
Pentium 64 (32) 60-200 МГц 3,1 млн (800) Суперскалярная архитектура, 64-битная шина данных, Механизм предсказания адресов ветвления, Раздельное кэширование программного кода и данных.
Pentium MMX 64 (32) 166, 200, 233 МГц 3,3 млн (350) Технология ММХ
Pentium Pro 64 (32) 150- 200 МГц 5,5 млн (350) Динамическое (спекулятивное) исполнение инструкций. Двухуровневый кэш. 36 разрядная шина адреса
Pentium II 64 (32) 233-400 МГц 27,4 млн (180)  
Pentium III 64 (32) 450-1400 МГц 44 млн (130) Набор инструкций SSE
Pentium IV 64 (32) 1,4 – 3,8 ГГц 125 млн (90) Гиперконвейеризация
Core 2 64 (64) 1,8-3,1 ГГц (45)  
Core i7 64 (64) 2,6 – 3,3 ГГц (45) Контроллер памяти находится в самом процессоре

 

 


 

Intel 8086 – первый 16-битный микропроцессор компании Intel. Процессор имел набор команд, который применяется и в современных процессорах, именно от этого процессора берёт своё начало известная на сегодня архитектура x86.

Размер шины адреса был увеличен до 20 бит, что позволило адресовать 1 Мбайт памяти. Для доступа к этому мегабайту потребовалось изменить способ адресации памяти, этот метод назвали реальным режимом адресации процессора. Процессор не умел выполнять операции над числами с плавающей запятой, для выполнения таких операций был необходим математический сопроцессор.

Intel 80286 (также известный как i286) – 16-битный x86-совместимый микропроцессор второго поколения фирмы Intel, выпущенный в 1982 году. Данный процессор представляет собой усовершенствованный вариант процессора Intel 8086 и был в 3-6 раз быстрее него. Процессор применялся, в основном, в IBM PC совместимых ПК.

В новом процессоре было увеличено количество регистров, добавлены новые инструкции. Шина адреса увеличена до 24 бит, таким образом объем ОЗУ может составлять 16 Мбайт, для доступа к этому адресному пространству добавлен новый режим работы процессора – защищённый режим (реализовано два режима работы – защищённый режим и реальный режим,которые будут рассмотрены в главе посвященной памяти).

Intel 80386 (i386)32-битный x86-совместимый процессор третьего поколения фирмы Intel выпущенный в 1985 году. Данный процессор был первым 32-разрядным процессором для IBM PC-совместимых ПК. Применялся, преимущественно, в настольных ПК и портативных ПК (ноутбуки и лэптопы).

Вся архитектура x86 была расширена до 32 бит — все регистры стали 32-битными, адресация в защищенном режиме также стала 32-битной. В i386 механизмы защиты и многозадачности были значительно расширены и улучшены.

i386 первым из процессоров x86 имеет встроенную кэш-память, обеспечивающую меньшее количество обращений в память при последовательном чтении и обращении к одним и тем же данным (кэш-память будет рассмотрена в главе посвященной памяти).

 

Intel486 (i486) – 32-битный скалярный x86-совместимый процессор четвёртого поколения, построенный на гибридном CISC-RISC ядре, и выпущенный фирмой Intel в 1989 году. Архитектура процессора не является повторением или улучшением i386, а представляет совершенно оригинальное решение. Это был первый микропроцессор со встроенным математическим сопроцессором (FPU). Intel продолжает производить его до настоящего времени (2009) для использования во встраиваемых системах.

Intel486 имел расположенную на кристалле кеш-память объёмом 8 Кбайт, позднее – 16 Кбайт, работающую на частоте ядра. Наличие кеша позволило существенно увеличить скорость выполнения операций.

В Intel486 был усовершенствован механизм выполнения инструкций в несколько этапов. Конвейер процессоров серии Intel486 состоял из 5 ступеней: выборка инструкции, декодирование инструкции, декодирование адресов операндов инструкции, выполнение команды, запись результата выполнения инструкции.

Увеличение количества транзисторов привело к существенному увеличению рассеиваемой мощности. По этой причине процессоры Intel486 старших моделей уже требовали принудительного (активного) охлаждения.

Начиная с четвертого поколения производители нашли способ увеличения частоты процессора при помощи так называемого коэффициента умножения. Этот параметр указывает процессору, сколько тактов работы необходимо провести за один такт системной шины. Таким образом, появилась возможность увеличить частоту процессора, не увеличивая частоту системной шины. Это было важно, поскольку частота системной шины влияла также на частоты работы шин PCI и шины памяти, а они были связаны с гораздо более медленными, чем процессор, устройствами.

Раскроем подробнее понятия, введенные в архитектуру процессора начиная с 4 –го поколения.

Конвейер (pipeline) –механизм, который позволяет обрабатывать более одной команды одновременно.

Каждая команда программы выполняется процессором за несколько этапов или шагов, назовем их микрокомандами. Начинается все с чтения команды, ее декодирования и превращения в инструкции процессора и кончается записью результата. Для ускорения исполнение инструкции выполняется в виде конвейера. Именно, для каждого шага в конвейере выделяется свой исполнительный узел, и команда выполняется, проходя последовательно узлы. После освобождения узла он не простаивает, а на него поступает следующая команда. Таким образом, одновременно устройство обрабатывает не одну команду, а несколько - в идеале столько, сколько узлов конвейера и в среднем каждая команда выполняется за такт (после заполнения конвейера).

Каждая часть устройства называется ступенью конвейера, а общее число ступеней – длиной конвейера.

RISC (англ. Reduced Instruction Set Computing) – вычисления с сокращённым набором команд, противопоставляется архитектуре CISC –– вычисления с полным набором команд (англ. Complex Instruction Set Computing).

Это концепция проектирования процессоров, которая во главу ставит следующий принцип: более компактные и простые инструкции выполняются быстрее. Основанием использования этого принципа является правило 80/20, по которому в 80% работы процессора используется только часть 20% общего набора команд микропроцессора, при этом чаще всего исполняются простые инструкции. Сложные операции используются редко, они, как правило, медленнее, чем те же действия, выполняемые набором простых команд. Простая архитектура позволяет удешевить процессор, поднять тактовую частоту, а также распараллелить исполнение команд между несколькими блоками исполнения (т.н. суперскалярные архитектуры процессоров).

Сравнительный анализ RISC и CISC архитектуры показан в таблице 2

Таблица 3

Характерные особенности RISC-процессоров Характерные особенности СISC-процессоров
Фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды. Нефиксированное значение длины команды, т.е. различные команды занимают в памяти различное количество байт
Равное время выполнения всех машинных команд. Разные команды выполняются за разное время
Большое количество регистров общего назначения (32 и более).   Небольшое число регистров, каждый из которых выполняет строго определённую функцию

Так как скорость чтения данных из оперативной памяти в регистр и записи данных из регистра в оперативную память на порядок ниже скорости пересылки данных между регистрами, по этой причине интенсивная работа с оперативной памятью, свойственная CISC-архитектуре снижала производительность программ. Увеличение количества регистров общего назначения позволило минимизировать обращения к медленной оперативной памяти, оставив для работы с RAM только операции чтения данных из оперативной памяти в регистр и запись данных из регистра в оперативную память, все остальные машинные команды используют в качестве операндов регистры общего назначения.

Все процессоры x86, начиная с Intel486DX, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC. Одна инструкция в формате x86, заменяется несколькими (до 4-х) RISC-инструкциями.

 

Pentium – торговая марка нескольких поколений микропроцессоров семейства x86, выпускаемых корпорацией Intel.

Pentium (P5) является процессором Intel пятого поколения и пришёл на смену Intel 80486 в 1993 году. Он имеет следующие основные отличия от 486-го процессора.

- Суперскалярная архитектура. Благодаря использованию суперскалярной архитектуры процессор может выполнять несколько команд за 1 такт. Такая возможность существует благодаря наличию нескольких конвейеров. Pentium является первым CISC процессором использующим многоконвейерную архитектуру. Процессоры, оснащённые механизмом параллельного исполнения нескольких команд, принято называть «суперскалярными». Разумеется, степень параллелизма не бесконечна: команды могут быть выполнены параллельно только в том случае, когда на данный момент времени есть в наличии соответствующее количество свободных от работы блоков, причём именно таких, которые «понимают» рассматриваемые команды.

- 64-битная шина данных. Позволяет процессору Pentium обмениваться вдвое большим объёмом данных с оперативной памятью, чем 486 за один шинный цикл (при одинаковой тактовой частоте).

- Механизм предсказания адресов ветвления (предсказания переходов). Применяется для сокращения времени простоя конвейеров, вызванного задержками выборки команд при изменении счетчика адреса во время выполнения команд ветвления. Для этого в процессоре используется буфер адреса ветвления BTB (Branch Target Buffer), использующий алгоритмы предсказания адресов ветвления.

- Раздельное кэширование программного кода и данных. В процессорах Pentium используется кэш-память первого уровня (кэш L1) объёмом 16Кб, разделенная на 2 сегмента: 8Кб для данных и 8Кб для инструкций. Это улучшает производительность и позволяет делать двойное кэширование доступным чаще, чем это было возможно раньше. Кроме того, изменён механизм кэширования.

- Улучшенный блок вычислений с плавающей запятой (FPU, сопроцессор).

Из перечисленных нововведений требует разъяснения идея предсказания адресов ветвления.

Вспомним пример использования команд переходов. Еще раз приведем программу на паскале