Первый однокристальный четырехбитный микропроцессор 4004 фирма Intel разработала в 1971 году с целью использования в качестве универсального контроллера для калькуляторов. Он содержал 2300 транзисторов на кристалле кремния площадью 12 мм2, был изготовлен по 10 мкм технологии и работал с тактовой частотой 750 кГц. Успех процессора 4004 вдохновил Intel на создание 8-битного микропроцессора 8008, а затем и 8080, который, в свою очередь, превратился в 16-битные процессоры 8086 (1978 год) и 80286 (1982 год). В 1985 году Intel представила процессор 80386, который расширил архитектуру 8086 и превратил ее в 32-битную, ознаменовав появление архитектуры Intel X86.
В таблице 3.5 показана эволюция микропроцессоров Intel X86. За 40 лет после создания 4004, линейные размеры транзисторов уменьшились в 160 раз, число транзисторов на кристалле увеличилось на пять порядков, а рабочая частота выросла почти на четыре порядка. Ни в одной другой области техники никогда не было такого удивительного прогресса в столь короткий промежуток времени.
Таблица 3.5Процессор
|
Процессор |
Год |
Технология (мкм) |
Число транз-ов (млн) |
Частота (Мгц) |
Микроархитектура |
|
80386 |
1985 |
1.5–1.0 |
0,275 |
16–25 |
Многотактная |
|
80486 |
1989 |
1.0–0.6 |
1,2 |
25–100 |
Конвейерная |
|
Pentium |
1993 |
0.8–0.35 |
3,2–4,5 |
60–300 |
Суперскалярная |
|
Pentium II |
1997 |
0.35–0.25 |
7,5 |
233–450 |
Внеочередная версия |
|
Pentium III |
1999 |
0.25–0.18 |
9,5–28 |
450–1400 |
Внеочередная версия |
|
Pentium 4 |
2001 |
0.18–0.09 |
42–178 |
1400–3730 |
Внеочередная версия |
|
Pentium М |
2003 |
0.13–0.09 |
77–140 |
900–2130 |
Внеочередная версия |
|
Core Duo |
2005 |
0.065 |
152 |
1500–2160 |
Двухядерная |
|
Core 2 Duo |
2006 |
0.065–0.045 |
167–410 |
1800–3300 |
Двухядерная |
|
Core i3-i7 |
2009 |
0.045–0.032 |
382–731 |
2530–3460 |
Многоядерная |
Intel 80386 был многотактный процессор. Программируемая логическая матрица (ПЛА), содержащая микрокод, использовалась устройством управления для того, чтобы определить порядок перехода между состояниями управляющего автомата. Блок управления памятью управлял доступом к внешней памяти.
У процессора Intel 80486 производительность значительно улучшилась благодаря использованию конвейерной обработки. По-прежнему выделяются тракт данных, устройство управления и ПЛА с микрокодом.
Процессор Pentium использовал суперскалярную архитектуру и мог запускать на выполнение две команды одновременно. Pentium использовал раздельные кэши команд и данных. Он также использовал предсказание переходов для уменьшения потерь производительности из-за команд условного перехода.
Процессоры Pentium Pro, Pentium II и Pentium III имели общую микроархитектуру под кодовым названием P6, обеспечивавшую внеочередное выполнение команд. Сложные команды IntelX86 разбивались на одну или несколько микроопераций (МОп), похожих на команды MIPS. Затем эти МОп выполнялись на быстром вычислительном ядре с 11-стадийным конвейером, обеспечивавшем внеочередное выполнение команд.
В Pentium III 32-битный тракт данных назван целочисленным функциональным блоком (ФБ). Тракт данных для операций над числами с плавающей запятой (ПЗ) назван блоком вычислений с ПЗ. В процессоре также имеется ФБ SIMD для пакетной арифметики с целыми числами и числами с ПЗ. Площадь кристалла для организации внеочередного запуска команд на выполнение, оказалась больше, чем площадь для самого выполнения команд. Кэши команд и данных были увеличены до 16 Кб каждый и на кристалл также была добавлена более большая, но и более медленная кэш-память второго уровня размером 256 Кб.
Процессор Pentium 4 был очередным процессором с внеочередным выполнением команд, но с конвейером очень большой длины (сначала конвейер имел 20 стадий, а в поздних версиях – 31 стадию), что позволило достичь частоты, превышающей 3 ГГц. Для дешифрации трех команд за один такт процессор проводил разбиение команд на простые микрооперации и сохранял их в кэш последовательностей микроопераций. Более поздние версии Pentium 4 также использовали многопоточность для увеличения пропускной способности процессора при выполнениее нескольких потоков. Процессор Pentium M был усовершенствован за счет увеличения размера кэш-памяти команд и данных до 32 Кбайт, а размера кэш-памяти второго уровня - до двух Мбайт.
Процессор Core Duo представлял собой многоядерный процессор, содержащий два ядра Pentium M, подключенных к общей кэш-памяти второго уровня размером 2 МБ. В 2009 году Intel представила новую микроархитектуру под названием Nehalem как модернизированную версию Core. Эти процессоры, включая Core i3, i5 и i7, реализуют поддержку 64-битных команд. Они имеют от двух до шести ядер, кэш-память 3 уровня размером 3–15 МБ и встроенный контроллер памяти. Некоторые модели поддерживают гиперпоточность (hyperthreading) – так Intel называет многопоточность с двумя активными потоками, которая, с точки зрения пользователя, удваивает количество ядер.
Пример: Пусть требуется описать этапы цикла процессора при реализации команды Аdd ax, Mem1, которая размещается в памяти в двух 16-битных словах в виде
|
КОП Add |
АХ, режим адресации 2-го операнда |
(K+0 |
|
15 8 7 0 Mem 1 |
(K+2 |
|
Опишем на уровне элементарных операций основные этапы выполнения команды, применительно к структурной схеме процессора с памятью, показанной на рис. 3.1.
Выборка и дешифрация первого слова команды.
ПСч РАП ; переслать значение программного счетчика в регистр адреса контроллера памяти
Код “Чт” КонтрЗУ ; загрузить код операции «Чтение» в контроллер памяти
“0” ГОТЗУ, пуск ЗУ ; сбросить флаг «Готовность ЗУ», запустить операцию в памяти
Проверить условие:
ГОТЗУ = 1
Если условие «ложно», то ожидать завершения операции в памяти, иначе продолжить дальше.
РДП РгКом ; переслать содержимое регистра данных контроллера памяти в регистр команд процессора;
(ПСч)+2 (ПСч) ; подготовить в ПСч адрес следующего слова команды;
РгКом.КОПДешКОП ; поле КОП (код опреации) регистра команд подать на вход дешифратора операций;
РгКом.РАДеш.РA ; поле РА (режим адресации) регистра команд подать на вход дешифратора режимов адресации.
Выборка второго слова команды.
ПСч РАП | Эту последовательность операций
Код “ЧТ” КонтрЗУ | обозначим в дальнейшем
“0” ГОТЗУ, пуск ЗУ | как “ЧТ”ЗУ
Ожидание ГОТЗУ = 1 |
РДП БуфРг ; переслать содержимое регистра данных контроллера памяти в БуфРг (буферный регистр процессора)
ПСч + 2 ПСч ; подготовить в ПСч адрес следующей команды.
3. Выборка операнда из Mem1.
БуфРг РАП
“ЧТ”ЗУ
РДП РгBх АЛУ ; переслать содержимое регистра данных контроллера памяти в РгBх – входной регистр АЛУ.
4. Исполнение операции.
РгAX +РгBх РгАХ ; суммирование аккумулятора РгАХ и РгBх АЛУ
Учет переносов
{Qi} РгССП ; установка флажков в регистре Слова Состояния Процессора по результату завершения операции.
Для описания элементарных операций, составляющих процесс выполнения команды, будем использовать язык межрегистровых передач (ЯМРП) [6], любой оператор которого описывается в следующем виде:
<ОП_ЯМРП> : : = [ метка ] условие : список _ действий
где: условие – булевское выражение, содержащее временную привязку списка действий к такту процессора; список действий – набор микроопераций, выполняемых параллельно в данном такте; микрооперация – действие, выполняемое аппаратными средствами за один такт генератора.
Совокупность микроопераций, выполняемых за один такт, называют микрокомандой.
Последовательность микрокоманд, реализующих всю команду, называют микропрограммой.
Примеры описания на языке МРП элементарных операций, использовавшихся выше при реализации этапов выполнения команды, приведены в табл. 4.1
Таблица 4.1.
|
Выполняемые операции |
Описание операций на ЯМРП |
|
1. ПCч РАП
|
ВЫБК.& ГОТЗУ & Т1: ПСч ША (У1) ША РАП (У2) |
|
2. Код “Чт.” Контр. ЗУ
0 ГОТЗУ |
ВЫБК.& ГОТЗУ & Т2: “Чт” ШУ (УЗ) ШУ РгУ КонтрЗУ (У4) “0” РгСостКонтрЗУ.ГОТЗУ (У5) |
|
3. РДП Рг ком.
ПСч + 2 ПСч Рг Ком. КОП ДешКОП Рг Ком.РежА ДешРА |
ВЫБК.& ГОТЗУ & Т3: РДП ШД (У6) ШД Рг Ком. (У7) ПСч + 2 ПСч. (У8) Рг Ком.КОП ДешКОП (У9) Рг Ком.РежА ДешРА (У10) |
В табл. 4.1, наряду с использовавшимися выше, применяются обозначения: ВЫБК – этап выборки команды, Тi – i-й такт генератора, Уi – i-й сигнал управления, ША – шина адреса, ШУ – шина управления, ШД – шина данных.
Для формирования сигналов Уi, управляющих выполнением элементарных операций в процессорах, используются два основных способа:
Аппаратный, реализуемый на основе жесткой логики (Wired Logic).
Микропрограммный, реализуемый на основе программируемой логики (Stored /Programmed Logic).
Аппаратный способ формирования управляющих сигналов (УС) основывается на использовании автомата управления и реализации его схемным (аппаратным) образом. Под автоматом понимается абстрактный дискретный процесс, который определяется тремя множествами и двумя функциями. К используемым множествам относятся:
Множество состояний процесса S = {S1, S2, . . . , Sk}.
Это множество конечно и поэтому автоматы также называются конечными.
Множество входных воздействий X = {X1, X2, . . . , Xn} автомата, поступающих в дискретные моменты времени ti . В качестве входных воздействий автомата для управления выполнением команд ВМ рассматриваются: коды операций, режимы адресации, тактовые сигналы Ti, состояния устройств Qi и т.п.
Множество выходных сигналов Y = {Y1, Y2, . . . , Ym} автомата, также формируемых в дискретные моменты времени ti .
Часто множество X называют входным алфавитом автомата, а множество Y – его выходным алфавитом.
Функциями, описывающими поведение автомата являются:
Функция переходов , определяющая правила перехода автомата из одного состояния в другое:
T: S x X S | S (t + ) = [s(t),x(t)], где > 0 – длительность такта.
Функция выходов , определяющая правила формирования выходных сигналов автомата:
| [s(t), x(t)], эта функция соответствует поведению
R: S x X Y | Y (t + ) = < автомата Мили (Mealy).
| [S (t + )], эта функция соответствует поведению
автомата Мура (Moore).
Вид функции выходов зависит от типа автомата управления – для автомата Мили сигнал управления вырабатывается в момент перехода автомата из одного состояния в другое и является импульсным, для автомата Мура – сигнал управления вырабатывается после перехода автомата в некоторое состояния и является потенциальным. Структурная схема синхронного автомата управления представлена на рис. 4.1.

Рис. 4.1
Комбинационная схема – это логическая схема, у которой выходные сигналы определяются входными сигналами в текущий момент времени. Элементы памяти обеспечивают задержку на один такт . Поэтому переменные следующего состояния S’i будут определять текущее состояние Si в следующий момент времени t + . Отметим основные преимущества и недостатки аппаратного способа формирования УС:
Основным достоинством аппаратного способа формирования УС является максимально достижимое быстродействие управления выполнением команд процессор.
Основной недостаток аппаратного способа формирования УС является жесткость структуры автомата управления, требующая его полного переконструирования даже при небольшом изменении состава входных или выходных сигналов, функций переходов или выходов.
Синтез и реализация автомата с большим количеством состояний является сложной научно-технической проблемой.
Нерегулярность структуры автомата затрудняет его реализацию с помощью серийно выпускаемых интегральных схем (ИС) и требует их выполнения в заказном варианте.