Сравнительные характеристики современных аппаратных платформ
Обычно, когда новая архитектура
создается одним архитектором или
группой архитекторов, ее отдельные
части очень хорошо подогнаны друг к
другу и вся архитектура может быть
описана достаточно связано. Этого
нельзя сказать об архитектуре 80x86,
поскольку это продукт нескольких
независимых групп разработчиков,
которые развивали эту архитектуру
более 15 лет, добавляя новые
возможности к первоначальному
набору команд.
В 1978 году была анонсирована
архитектура Intel 8086 как совместимое
вверх расширение в то время
успешного 8-бит микропроцессора 8080.
8086 представляет собой 16-битовую
архитектуру со всеми внутренними
регистрами, имеющими 16-битовую
разрядность. Микропроцессор 8080 был
просто построен на базе
накапливающего сумматора
(аккумулятора), но архитектура 8086
была расширена дополнительными
регистрами. Поскольку почти каждый
регистр в этой архитектуре имеет
определенное назначение, 8086 по
классификации частично можно
отнести к машинам с накапливающим
сумматором, а частично - к машинам с
регистрами общего назначения, и его
можно назвать расширенной машиной
с накапливающим сумматором.
Микропроцессор 8086 (точнее его
версия 8088 с 8-битовой внешней шиной)
стал основой завоевавшей в
последствии весь мир серии
компьютеров IBM PC, работающих под
управлением операционной системы
MS-DOS.
В 1980 году был анонсирован
сопроцессор плавающей точки 8087. Эта
архитектура расширила 8086 почти на 60
команд плавающей точки. Ее
архитекторы отказались от
расширенных накапливающих
сумматоров для того, чтобы создать
некий гибрид стеков и регистров, по
сути расширенную стековую
архитектуру. Полный набор стековых
команд дополнен ограниченным
набором команд типа регистр-память.
Анонсированный в 1982 году
микропроцессор 80286, еще дальше
расширил архитектуру 8086. Была
создана сложная модель
распределения и защиты памяти,
расширено адресное пространство до
24 разрядов, а также добавлено
небольшое число дополнительных
команд. Поскольку очень важно было
обеспечить выполнение без
изменений программ, разработанных
для 8086, в 80286 был предусмотрен режим
реальных адресов, позволяющий
машине выглядеть почти как 8086. В 1984
году компания IBM объявила об
использовании этого процессора в
своей новой серии персональных
компьютеров IBM PC/AT.
В 1987 году появился микропроцессор
80386, который расширил архитектуру
80286 до 32 бит. В дополнение к
32-битовой архитектуре с 32-битовыми
регистрами и 32-битовым адресным
пространством, в микропроцессоре
80386 появились новые режимы
адресации и дополнительные
операции. Все эти расширения
превратили 80386 в машину, по
идеологии близкую к машинам с
регистрами общего назначения. В
дополнение к механизмам
сегментации памяти, в
микропроцессор 80386 была добавлена
также поддержка страничной
организации памяти. Также как и 80286,
микропроцессор 80386 имеет режим
выполнения программ, написанных
для 8086. Хотя в то время базовой
операционной системой для этих
микропроцессоров оставалась MS-DOS,
32-разрядная архитектура и
страничная организация памяти
послужили основой для переноса на
эту платформу операционной системы
UNIX. Следует отметить, что для
процессора 80286 была создана
операционная система XENIX (сильно
урезанный вариант системы UNIX).
Эта история иллюстрирует эффект,
вызванный необходимостью
обеспечения совместимости с 80x86,
поскольку существовавшая база
программного обеспечения на каждом
шаге была слишком важной. К счастью,
последующие процессоры (80486 в 1989 и
Pentium в 1993 году) были нацелены на
увеличение производительности и
добавили к видимому пользователем
набору команд только три новые
команды, облегчающие организацию
многопроцессорной работы.
Что бы ни говорилось о
неудобствах архитектуры 80x86,
следует иметь в виду, что она
преобладает в мире персональных
компьютеров. Почти 80% установленных
малых систем базируются именно на
этой архитектуре. Споры
относительно преимуществ CISC и RISC
архитектур постепенно стихают,
поскольку современные
микропроцессоры стараются вобрать
в себя наилучшие свойства обоих
подходов.
Современное семейство
процессоров i486 (i486SX, i486DX, i486DX2 и i486DX4),
в котором сохранились система
команд и методы адресации
процессора i386, уже имеет некоторые
свойства RISC-микропроцессоров.
Например, наиболее употребительные
команды выполняются за один такт.
Компания Intel для оценки
производительности своих
процессоров ввела в употребление
специальную характеристику,
которая называется рейтингом iCOMP.
Компания надеется, что эта
характеристика станет стандартной
тестовой оценкой и будет
применяться другими
производителями микропроцессоров,
однако последние с понятной
осторожностью относятся к системе
измерений производительности,
введенной компанией Intel. Ниже в
таблице приведены сравнительные
характеристики некоторых
процессоров компании Intel на базе
рейтинга iCOMP.
Процессор |
Тактовая
частота (МГц) |
Рейтинг iCOMP |
386SX
386SL
386DX
386DX
i486SX
i486SX
i486SX
i486DX
i486DX2
i486DX
i486DX2
i486DX4
i486DX4
Pentium
Pentium
Pentium
Pentium
Pentium
Pentium |
25
25
25
33
20
25
33
33
50
50
66
75
100
60
66
90
100
120
133 |
39
41
49
68
78
100
136
166
231
249
297
319
435
510
567
735
815
1000
1200 |
Процессоры i486SX и i486DX - это
32-битовые процессоры с внутренней
кэш-па-мятью емкостью 8 Кбайт и
32-битовой шиной данных. Основное
отличие между ними заключается в
том, что в процессоре i486SX
отсутствует интегрированный
сопроцессор плавающей точки.
Поэтому он имеет меньшую цену и
применяется в системах, для которых
не очень важна производительность
при обработке вещественных чисел.
Для этих систем обычно возможно
расширение с помощью внешнего
сопроцессора i487SX.
Процессоры Intel OverDrive и i486DX2
практически идентичны. Однако
кристалл OverDrive имеет корпус,
который может устанавливаться в
гнездо расширения сопроцессора
i487SX, применяемое в ПК на базе i486SX. В
процессорах OverDrive и i486DX2
применяется технология удвоения
внутренней тактовой частоты, что
позволяет увеличить
производительность процессора
почти на 70%. Процессор i486DX4/100
использует технологию утроения
тактовой частоты. Он работает с
внутренней тактовой частотой 99 МГц,
в то время как внешняя тактовая
частота (частота, на которой
работает внешняя шина) составляет 33
МГц. Этот процессор практически
обеспечивает равные возможности с
машинами класса 60 МГц Pentium, являясь
их полноценной и доступной по цене
альтернативой.
Появившийся в 1993 году процессор
Pentium ознаменовал собой новый этап в
развитии архитектуры x86, связанный
с адаптацией многих свойств
процессоров с архитектурой RISC. Он
изготовлен по 0.8 микронной БиКМОП
технологии и содержит 3.1 миллиона
транзисторов. Первоначальная
реализация была рассчитана на
работу с тактовой частотой 60 и 66
МГц. В настоящее время имеются
также процессоры Pentium, работающие с
тактовой частотой 75, 90, 100, 120, 133, 150 и
200 МГц. Процессор Pentium по сравнению
со своими предшественниками
обладает целым рядом улучшенных
характеристик. Главными его
особенностями являются:
- двухпотоковая суперскалярная
организация, допускающая
параллельное выполнение пары
простых команд;
- наличие двух независимых
двухканальных
множественно-ассоциативных
кэшей для команд и для данных,
обеспечивающих выборку данных
для двух операций в каждом
такте;
- динамическое прогнозирование
переходов;
- конвейерная организация
устройства плавающей точки с 8
ступенями;
- двоичная совместимость с
существующими процессорами
семейства 80x86.
Блок-схема процессора Pentium
представлена на рисунке 6.1. Прежде
всего новая микроархитектура этого
процессора базируется на идее
суперскалярной обработки (правда с
некоторыми ограничениями).
Основные команды распределяются по
двум независимым исполнительным
устройствам (конвейерам U и V).
Конвейер U может выполнять любые
команды семейства x86, включая
целочисленные команды и команды с
плавающей точкой. Конвейер V
предназначен для выполнения
простых целочисленных команд и
некоторых команд с плавающей
точкой. Команды могут направляться
в каждое из этих устройств
одновременно, причем при выдаче
устройством управления в одном
такте пары команд более сложная
команда поступает в конвейер U, а
менее сложная - в конвейер V. Такая
попарная выдача команд возможна
правда только для ограниченного
подмножества целочисленных команд.
Команды арифметики с плавающей
точкой не могут запускаться в паре
с целочисленными командами.
Одновременная выдача двух команд
возможна только при отсутствии
зависимостей по регистрам. При
остановке команды по любой причине
в одном конвейере, как правило
останавливается и второй конвейер.
Остальные устройства процессора
предназначены для снабжения
конвейеров необходимыми командами
и данными. В отличие от процессоров
i486 в процессоре Pentium используется
раздельная кэш-память команд и
данных емкостью по 8 Кбайт, что
обеспечивает независимость
обращений. За один такт из каждой
кэш-памяти могут считываться два
слова. При этом кэш-память данных
построена на принципах
двухкратного расслоения, что
обеспечивает одновременное
считывание двух слов,
принадлежащих одной строке
кэш-памяти. Кэш-память команд
хранит сразу три копии тегов, что
позволяет в одном такте считывать
два командных слова, принадлежащих
либо одной строке, либо смежным
строкам для обеспечения попарной
выдачи команд, при этом третья
копия тегов используется для
организации протокола наблюдения
за когерентностью состояния
кэш-памяти. Для повышения
эффективности перезагрузки
кэш-памяти в процессоре
применяется 64-битовая внешняя шина
данных.
В процессоре предусмотрен
механизм динамического
прогнозирования направления
переходов. С этой целью на
кристалле размещена небольшая
кэш-память, которая называется
буфером целевых адресов переходов
(BTB), и две независимые пары буферов
предварительной выборки команд (по
два 32-битовых буфера на каждый
конвейер). Буфер целевых адресов
переходов хранит адреса команд,
которые находятся в буферах
предварительной выборки. Работа
буферов предварительной выборки
организована таким образом, что в
каждый момент времени
осуществляется выборка команд
только в один из буферов
соответствующей пары. При
обнаружении в потоке команд
операции перехода вычисленный
адрес перехода сравнивается с
адресами, хранящимися в буфере BTB. В
случае совпадения предсказывается,
что переход будет выполнен, и
разрешается работа другого буфера
предварительной выборки, который
начинает выдавать команды для
выполнения в соответствующий
конвейер. При несовпадении
считается, что переход выполняться
не будет и буфер предварительной
выборки не переключается,
продолжая обычный порядок выдачи
команд. Это позволяет избежать
простоев конвейеров при правильном
прогнозе направления перехода.
Окончательное решение о
направлении перехода естественно
принимается на основании анализа
кода условия. При неправильно
сделанном прогнозе содержимое
конвейеров аннулируется и выдача
команд начинается с необходимого
адреса. Неправильный прогноз
приводит к приостановке работы
конвейеров на 3-4 такта.
Рис. 6.1. Упрощенная блок
схема процессора Pentium
Следует отметить, что возросшая
производительность процессора Pentium
требует и соответствующей
организации системы на его основе.
Компания Intel разработала и
поставляет все необходимые для
этого наборы микросхем. Прежде
всего для согласования скорости с
динамической основной памятью
необходима кэш-память второго
уровня. Контроллер кэш-памяти 82496 и
микросхемы статической памяти 82491
обеспечивают построение такой
кэш-памяти объемом 256 Кбайт и работу
процессора без тактов ожидания. Для
эффективной организации систем Intel
разработала стандарт на
высокопроизводительную локальную
шину PCI. Выпускаются наборы
микросхем для построения мощных
компьютеров на ее основе.
В настоящее время компания Intel
разработалаи выпустила новый
процессор, продолжающий
архитектурную линию x86. Этот
процессор получил название P6 или
PentiumPro. Он работает с тактовыми
частотами 150: 166: 180 и 200 МГц. PentiumPro
обеспечивает полную совместимость
с процессорами предыдущих
поколений. Он предназначен главным
образом для поддержки
высокопроизводительных 32-битовых
вычислений в области САПР,
трехмерной графики и мультимедиа: а
также широкого круга коммерческих
приложений баз данных. По
результатам испытаний на тестах SPEC
(8.58 SPECint95 и 6.48 SPECfp95) процессор PentiumPro
по производительности
целочисленных операций в текущий
момент времени вышел на третье
место в мировой классификации,
уступая только 180 МГц HP PA-8000 и 400 МГц
DEC Alpha. Для достижения такой
производительности необходимо
использование технических решений,
широко применяющихся при
построении RISC-процессоров:
- выполнение команд не в
предписанной программой
последовательности, что
устраняет во многих случаях
приостановку конвейеров из-за
ожидания операндов операций;
- использование методики
переименования регистров,
позволяющей увеличивать
эффективный размер
регистрового файла (малое
количество регистров - одно из
самых узких мест архитектуры
x86);
- расширение суперскалярных
возможностей по отношению к
процессору Pentium, в котором
обеспечивается одновременная
выдача только двух команд с
достаточно жесткими
ограничениями на их
комбинации.
Кроме того, в борьбу за новое
поколение процессоров x86
включились компании, ранее
занимавшиеся изготовлением
Intel-совместимых процессоров. Это
компании Advanced Micro Devices (AMD), Cyrix Corp и
NexGen. С точки зрения
микроархитектуры наиболее близок к
Pentium процессор М1 компании Cyrix,
который должен появиться на рынке в
ближайшее время. Также как и Pentium он
имеет два конвейера и может
выполнять до двух команд в одном
такте. Однако в процессоре М1 число
случаев, когда операции могут
выполняться попарно, значительно
увеличено. Кроме того в нем
применяется методика обходов и
ускорения пересылки данных,
позволяющая устранить
приостановку конвейеров во многих
ситуациях, с которыми не
справляется Pentium. Процессор
содержит 32 физических регистра
(вместо 8 логических,
предусмотренных архитектурой x86) и
применяет методику переименования
регистров для устранения
зависимостей по данным. Как и Pentium,
процессор M1 для прогнозирования
направления перехода использует
буфер целевых адресов перехода
емкостью 256 элементов, но кроме того
поддерживает специальный стек
возвратов, отслеживающий вызовы
процедур и последующие возвраты.
Процессоры К5 компании AMD и Nx586
компании NexGen используют в корне
другой подход. Основа их
процессоров - очень быстрое RISC-ядро,
выполняющее высокорегулярные
операции в суперскалярном режиме.
Внутренние форматы команд (ROP у
компании AMD и RISC86 у компании NexGen)
соответствуют традиционным
системам команд RISC-процессоров. Все
команды имеют одинаковую длину и
кодируются в регулярном формате.
Обращения к памяти выполняются
специальными командами загрузки и
записи. Как известно, архитектура x86
имеет очень сложную для
декодирования систему команд. В
процессорах K5 и Nx586 осуществляется
аппаратная трансляция команд x86 в
команды внутреннего формата, что
дает лучшие условия для
распараллеливания вычислений. В
процессоре К5 имеются 40, а в
процессоре Nx586 22 физических
регистра, которые реализуют
методику переименования. В
процессоре К5 информация,
необходимая для прогнозирования
направления перехода, записывается
прямо в кэш команд и хранится
вместе с каждой строкой кэш-памяти.
В процессоре Nx586 для этих целей
используется кэш-память адресов
переходов на 96 элементов.
Таким образом, компания Intel больше
не обладает монополией на методы
конструирования
высокопроизводительных
процессоров x86, и можно ожидать
появления новых процессоров, не
только не уступающих, но и возможно
превосходящих по
производительности процессоры
компании, стоявшей у истоков этой
архитектуры. Следует отметить, что
сама компания Intel заключила
стратегическое соглашение с
компанией Hewlett-Packard на разработку
следующего поколения
микропроцессоров, в которых
архитектура x86 будет сочетаться с
архитектурой очень длинного
командного слова (VLIW -архитектурой).
Появление этих микропроцессоров не
ожидается до конца 1998 года.
[Предыдущая глава]
[Оглавление] [Следующая
глава]
|