План:
1. Введение
2. Процессоры с архитектурой 80x86 и Pentium, Pentium II, Pentium III
3. Особенности архитектуры POWER компании IBM и PowerPC компаний Motorola, Apple и IBM.
4. Процессоры семейства R4000 архитектуры MIPS компании MIPS Technology
5. Процессоры с архитектурой SPARC компании Sun Microsystems
6. Процессоры с архитектурой PA-RISC компании Hewlett-Packard,
7. Список литературы.
1. Введение.
Итак, в данной контрольной работе необходимо осветить следующий вопрос.
Современные микропроцессоры
1. Процессоры с архитектурой 80x86 и Pentium, Pentium II, Pentium III
2. Особенности архитектуры Alpha компании DEC
3. Особенности архитектуры POWER компании IBM и PowerPC компаний Motorola, Apple и IBM.
Однако, освещая этот вопрос, нельзя обойти вниманием:
- Процессоры семейства R4000 архитектуры MIPS компании MIPS
Technology
- Процессоры с архитектурой SPARC компании Sun Microsystems
- Процессоры с архитектурой PA-RISC компании Hewlett-Packard, хотя в данной работе эти процессыре подробно рассматриваться не будут.
В данной работе будет предоставлена аналитическая информация по процессорам указанных архитектур.
Данная работа не претендует на абсолютность взглядов и мнений.
2. Процессоры с архитектурой 80x86 и Pentium, Pentium II, Pentium III.
Итак, сначала немного истории: архитектура Intel 8086 – 1978г.
В 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 на 286 не юзали (по-крайней мере «на моей памяти»).
Эта история иллюстрирует эффект, вызванный необходимостью обеспечения совместимости с 80x86, поскольку существовавшая база программного обеспечения на каждом шаге была слишком важной. К счастью, последующие процессоры (80486 в 1989 и Pentium в 1993 году) были нацелены на увеличение производительности и добавили к видимому пользователем набору команд только три новые команды, облегчающие организацию многопроцессорной работы. Что бы ни говорилось о неудобствах архитектуры 80x86, следует иметь в виду, что она преобладает в мире персональных компьютеров. Почти 80% установленных малых систем базируются именно на этой архитектуре. Споры относительно преимуществ CISC и RISC архитектур постепенно стихают, поскольку современные микропроцессоры стараются вобрать в себя наилучшие свойства обоих подходов. Уже давно устаревшее, но тем не менее активно используемое, семейство процессоров i486 (468SX, 486DX, 486DX2 и 486DX4), в котором сохранились система команд и методы адресации процессора i386, уже имеет некоторые свойства RISC-микропроцессоров. Например, наиболее употребительные команды выполняются за один такт. Компания Intel для оценки производительности своих процессоров ввела в употребление специальную характеристику, которая называется рейтингом iCOMP. Компания надеялась, что эта характеристика станет стандартной тестовой оценкой и будет применяться другими производителями микропроцессоров, однако последние с понятной осторожностью отнеслись к системе измерений производительности, введенной компанией Intel, и не без оснований.
Если сравнивать i486SX-25 и Pentium-133, то их производительность, согласно рейтингу iCOMP соотносилась как 1:12. Что, само собой, говорило о том что повышение производительности достигнуто не повышением тактовой частот работы процессора и «косметическим облизыванием» ядра. Так чт разберем их чуть подробнее.
Процессоры 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,
233 МГц. Процессор Pentium по сравнению со своими предшественниками
обладает целым рядом улучшенных характеристик. Главными его особенностями
являются:
двухпотоковая суперскалярная организация, допускающая параллельное
выполнение пары простых команд;
наличие двух независимых двухканальных множественно-ассоциативных кэшей для
команд и для данных, обеспечивающих выборку данных для двух операций в
каждом такте;
динамическое прогнозирование переходов;
конвейерная организация устройства плавающей точки с 8 ступенями;
двоичная совместимость с существующими процессорами семейства 80x86.
Блок-схема процессора Pentium представлена на рисунке 1. Прежде всего
новая микроархитектура этого процессора базируется на идее суперскалярной
обработки (правда с некоторыми ограничениями). Основные команды
распределяются по двум независимым исполнительным устройствам (конвейерам U
и V). Конвейер U может выполнять любые команды семейства x86, включая
целочисленные команды и команды с плавающей точкой. Конвейер V предназначен
для выполнения простых целочисленных команд и некоторых команд с плавающей
точкой. Команды могут направляться в каждое из этих устройств одновременно,
причем при выдаче устройством управления в одном такте пары команд более
сложная команда поступает в конвейер U, а менее сложная - в конвейер V.
Такая попарная выдача команд возможна правда только для ограниченного
подмножества целочисленных команд. Команды арифметики с плавающей точкой не
могут запускаться в паре с целочисленными командами. Одновременная выдача
двух команд возможна только при отсутствии зависимостей по регистрам. При
остановке команды по любой причине в одном конвейере, как правило
останавливается и второй конвейер, после чего компьютер радостно повисает.
Рис.1.
Остальные устройства процессора предназначены для снабжения
конвейеров необходимыми командами и данными. В отличие от процессоров i486
в процессоре Pentium используется раздельная кэш-память команд и данных
емкостью по 8 Кбайт, что обеспечивает независимость обращений. За один такт
из каждой кэш-памяти могут считываться два слова. При этом кэш-память
данных построена на принципах двухкратного расслоения, что обеспечивает
одновременное считывание двух слов, принадлежащих одной строке кэш-памяти.
Кэш-память команд хранит сразу три копии тегов, что позволяет в одном такте
считывать два командных слова, принадлежащих либо одной строке, либо
смежным строкам для обеспечения попарной выдачи команд, при этом третья
копия тегов используется для организации протокола наблюдения за
когерентностью состояния кэш-памяти. Для повышения эффективности
перезагрузки кэш-памяти в процессоре применяется 64-битовая внешняя шина
данных
В процессоре УЖЕ предусмотрен механизм динамического прогнозирования
направления переходов. С этой целью на кристалле размещена небольшая кэш-
память, которая называется буфером целевых адресов переходов (BTB), и две
независимые пары буферов предварительной выборки команд (по два 32-битовых
буфера на каждый конвейер). Буфер целевых адресов переходов хранит адреса
команд, которые находятся в буферах предварительной выборки. Работа буферов
предварительной выборки организована таким образом, что в каждый момент
времени осуществляется выборка команд только в один из буферов
соответствующей пары. При обнаружении в потоке команд операции перехода
вычисленный адрес перехода сравнивается с адресами, хранящимися в буфере
BTB. В случае совпадения предсказывается, что переход будет выполнен, и
разрешается работа другого буфера предварительной выборки, который начинает
выдавать команды для выполнения в соответствующий конвейер. При
несовпадении считается, что переход выполняться не будет и буфер
предварительной выборки не переключается, продолжая обычный порядок выдачи
команд. Это позволяет избежать простоев конвейеров при правильном прогнозе
направления перехода. Окончательное решение о направлении перехода
естественно принимается на основании анализа кода условия. При неправильно
сделанном прогнозе содержимое конвейеров аннулируется и выдача команд
начинается с необходимого адреса. Неправильный прогноз приводит к
приостановке работы конвейеров на 3-4 такта. Следует отметить, что
возросшая производительность процессора Pentium требовала и соответствующей
организации системы на его основе. Компания Intel разработала и поставляет
все необходимые для этого наборы микросхем. Прежде всего для согласования
скорости с динамической основной памятью необходима кэш-память второго
уровня. Контроллер кэш-памяти 82496 и микросхемы статической памяти 82491
обеспечивают построение такой кэш-памяти объемом 256 Кбайт и работу
процессора без тактов ожидания. Для эффективной организации систем Intel
разработала стандарт на высокопроизводительную локальную шину PCI.
Выпускаются наборы микросхем для построения мощных компьютеров на ее
основе.
Следующим процессором, продолжающим лиию Pentium, был выпущен P6 или
PentiumPro. Он работает с тактовыми частотами 150: 166: 180 и 200 МГц.
PentiumPro обеспечивает полную совместимость с процессорами предыдущих
поколений. Он предназначен главным образом для поддержки
высокопроизводительных 32-битовых вычислений в области САПР, трехмерной
графики и мультимедиа: а также широкого круга коммерческих приложений баз
данных. По результатам испытаний на тестах SPEC (8.58 SPECint95 и 6.48
SPECfp95) процессор PentiumPro по производительности целочисленных операций
в текущий момент времени вышел на третье место в мировой классификации,
уступая только 180 МГц HP PA-8000 и 400 МГц DEC Alpha (рис.2.). Для
достижения такой производительности необходимо использование технических
решений, широко применяющихся при построении RISC-процессоров:
Рис.2. выполнение команд не в предписанной программой последовательности, что устраняет во многих случаях приостановку конвейеров из-за ожидания операндов операций; использование методики переименования регистров, позволяющей увеличивать эффективный размер регистрового файла (малое количество регистров - одно из самых узких мест архитектуры 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 –архитектурой.
А теперь мы плавненько перейдем на Pentium II.
Для компаний Intel и Hewlett-Packard не существовало "проблемы 2000
года" - для них это был год новых возможностей. В конце 1999 года Intel
представила Merced - первый процессор, построенный с использованием
архитектуры нового поколения, совместно разработанной двумя компаниями.
Хотя эта 64-разрядная архитектура основана на многолетних исследованиях
Intel, HP, других компаний и университетов, она радикально отличается от
всего, что было представлено на рынке до нее.
Эта архитектура, известная под названием Intel Architecture-64 (IA-
64), полностью "порвала с прошлым". IA-64 не является как 64-разрядным
расширением 32-разрядной архитектуры х86 компании Intel, так и переработкой
64-разрядной архитектуры PA-RISC компании HP. IA-64 представляет собой
нечто абсолютно новое - передовую архитектуру, использующую длинные слова
команд (long instruction words -- LIW), предикаты команд (instruction
predication), устранение ветвлений (branch elimination), предварительную
загрузку данных (speculative loading) и другие ухищрения для того, чтобы
"извлечь больше параллелизма" из кода программ.
По поводу совместимости, стоит заметить, что но в Merced на самом деле существует два режима декодирования команд VLIW и старый CISC. Т.е. программы переключаются в необходимый режим исполнения. В архитектуре х86 были добавлен ряд команд для перехода в новый режим, а также для передачи данных. В IA-64 такие команды есть изначально. Перед тем, как углубиться в технические детали, попробуем понять, почему Intel и HP рискнули пойти на столь кардинальные перемены. Причина сводится к следующему: они считают, что как CISC, так и RISC-архитектуры исчерпали себя.
Небольшой экскурс в прошлое. Архитектура х86 компании Intel - CISC архитектура, появившаяся в 1978 году. В те времена процессоры представляли собой скалярные устройства (то есть могли в каждый момент времени выполнять только одну команду), при этом конвейеров практически не было. Процессоры содержали десятки тысяч транзисторов.
PA-RISC компании HP была разработана в 1986 году, когда технология суперскалярных (с возможностью выполнения нескольких команд одновременно) конвейеров только начала развиваться. Процессоры содержали сотни тысяч транзисторов. В конце 90-х наиболее совершенные процессоры содержали миллионы транзисторов. К моменту начала выпуска Merced компания Intel перешла на 0.18-микронную технологию вместо нынешней 0.25-микронной. Уже первые чипы архитектуры IA-64 содержали десятки миллионов транзисторов.
Проблему ещё осложняет тот факт, что микросхемы памяти не успевают за
тактовой частотой процессоров. Когда Intel разработала архитектуру х86,
процессор мог извлекать данные из памяти с такой же скоростью, с какой он
их обрабатывал. Сегодня процессор тратит сотни тактов на ожидание загрузки
данных из памяти, даже несмотря на наличие большой и быстрой кэш-памяти.
Команды в формате IA-64 упакованы по три в 128-битный пакет для быстрейшей
обработки. Обычно это называют "LIW encoding". (Русский аналог подобрать
сложно. Наиболее адекватно, на мой взгляд, перевести как "кодирование в
длинные слова команд".) Однако компания Intel избегает такого названия,
заявляя, что с ним связаны "негативные ассоциации" (negative connotation).
По той же причине Intel не любит называть сами команды RISC-подобными (RISC-
like), даже несмотря на то, что они имеют фиксированную длину и
предположительно оптимизированы для исполнения за один такт в ядре, не
нуждающемся в микрокоде. Intel предпочитает называть свою новую LIW-
технологию Explicitly Parallel Instruction Computing или EPIC (Вычисления с
Явной Параллельностью Инструкций, где "явной" означае явно указанной при
трансляции). В любом случае формат команд IA-64 не имеет ничего общего с
х86. Команды х86 могут иметь длину от 8 до 108 бит, и процессор должен
последовательно декодировать каждую команду после определения её границ.
Каждый 128-битный пакет содержит шаблон (template) длиной в несколько бит,
помещаемый в него компилятором, который указывает процессору, какие из
команд могут выполняться параллельно. Теперь процессору не нужно будет
анализировать поток команд в процессе выполнения для выявления "скрытого
параллелизма". Вместо этого наличие параллелизма определяет компилятор и
помещает информацию в код программы. Каждая команда (как для целочисленных
вычислений, так и для вычислений с плавающей точкой) содержит три 7-битных
поля регистра общего назначения (РОН). Из этого следует, что процессоры
архитектуры IA-64 содержат 128 целочисленных РОН и 128 регистров для
вычислений с плавающей точкой. Все они доступны программисту и являются
регистрами с произвольным доступом (programmer-visible random-access
registers). По сравнению с процессорами х86, у которых всего восемь
целочисленных РОН и стек глубины 8 для вычислений с плавающей точкой, IA-64
намного "шире" и, соответственно, будет намного реже простаивать из-за
"нехватки регистров".
Компиляторы для IA-64 будут использовать технологию "отмеченных команд"
(predication) для устранения потерь производительности из-за неправильно
предсказанных переходов и необходимости пропуска участков кода после
ветвлений. Когда процессор встречает "отмеченное" ветвление в процессе
выполнения программы, он начинает одновременно выполнять все ветви. После
того, как будет определена "истинная" ветвь, процессор сохраняет
необходимые результаты и сбрасывает остальные.
Компиляторы для IA-64 будут также просматривать исходный код с целью поиска
команд, использующих данные из памяти. Найдя такую команду, они будут
добавлять пару команд - команду предварительной загрузки (speculative
loading) и проверки загрузки (speculative check). Во время выполнения
программы первая из команд загружает данные в память до того, как они
понадобятся программе. Вторая команда проверяет, успешно ли произошла
загрузка, перед тем, как разрешить программе использовать эти данные.
Предварительная загрузка позволяет уменьшить потери производительности из-
за задержек при доступе к памяти, а также повысить параллелизм.
3. Особенности архитектуры Alpha компании DEC
В настоящее время семейство микропроцессоров с архитектурой Alpha
представлено несколькими кристаллами, имеющими различные диапазоны
производительности, работающие с разной тактовой частотой и рассеивающие
разную мощность. Первым на рынке появился 64-разрядный микропроцессор Alpha
(DECchip 21064) . Он представляет собой RISC-процессор в однокристальном
исполнении, в состав которого входят устройства целочисленной и плавающей
арифметики, а также кэш-память емкостью 16 Кб. Кристалл проектировался с
учетом реализации передовых методов увеличения производительности, включая
конвейерную организацию всех функциональных устройств, одновременную выдачу
нескольких команд для выполнения, а также средства организации симметричной
многопроцессорной обработки. В кристалле имеются два регистровых файла по
32 64-битовых регистра: один для целых чисел, второй - для чисел с
плавающей точкой. Для обеспечения совместимости с архитектурами MIPS и VAX
архитектура Alpha поддерживает арифметику с одинарной и двойной точностью
как в соответствии со стандартом IEEE 754, так и в соответствии с
внутренним для компании стандартом арифметики VAX. Самая мощная модель
процессора 21064 работает на частоте 200 МГц. В конце 1993 года появилась
модернизированная версия кристалла - модель 21064А, имеющая на кристалле
кэш-память удвоенного объема и работающая с тактовой частотой 275 МГц.
Затем были выпущены модели 21066 и 21068, оперирующие на частоте 166 и 66
МГц. Отличительной особенностью этой ветви процессоров Alpha является
реализация на кристалле шины PCI. Это существенно упрощает и удешевляет как
проектирование, так и производство компьютеров. Отличительная особенность
модели 21068 - низкая потребляемая мощность (около 8 ватт). Основное
предназначение этих двух новых моделей - персональные компьютеры и
одноплатные ЭВМ. На рисунке 3. представлена блок-схема микропроцессора
21066. Основными компонентами этого процессора являются: кэш-память команд,
целочисленное устройство, устройство плавающей точки, устройство выполнения
команд загрузки/записи, кэш-память данных, а также контроллер памяти и
контроллер ввода/вывода.
Рис. 3.
Кэш-память команд представляет собой кэш прямого отображения емкостью
8 Кбайт. Команды, выбираемые из этой кэш-памяти, могут выдаваться попарно
для выполнения в одно из исполнительных устройств. Кэш-память данных
емкостью 8 Кбайт также реализует кэш с прямым отображением. При выполнении
операций записи в память данные одновременно записываются в этот кэш и в
буфер записи. Контроллер памяти или контроллер ввода/вывода шины PCI
обрабатывают все обращения, которые проходят через расположенные на
кристалле кэш-памяти первого уровня. Контроллер памяти прежде всего
проверяет содержимое внешней кэш-памяти второго уровня, которая построена
на принципе прямого отображения и реализует алгоритм отложенного обратного
копирования при выполнении операций записи. При обнаружении промаха
контроллер обращается к основной памяти для перезагрузки соответствующих
строк кэш-памяти. Контроллер ввода/вывода шины PCI обрабатывает весь
трафик, связанный с вводом/выводом. Под управлением центрального процессора
он выполняет операции программируемого ввода/вывода. Трафик прямого доступа
к памяти шины PCI обрабатывается контроллером PCI совместно с контроллером
памяти. При выполнении операций прямого доступа к памяти в режиме чтения и
записи данные не размещаются в кэш-памяти второго уровня. Интерфейсы памяти
и PCI были разработаны специально в расчете на однопроцессорные
конфигурации и не поддерживают реализацию мультипроцессорной архитектуры.
На рисунке 4. показан пример системы, построенной на базе микропроцессора
21066. В представленной конфигурации контроллер памяти выполняет обращения
как к статической памяти, с помощью которой реализована кэш-память второго
уровня, так и к динамической памяти, на которой построена основная память.
Для хранения тегов и данных в кэш-памяти второго уровня используются
кристаллы статическая памяти с одинаковым временем доступа по чтению и
записи.
Рис. 4.
Высокоскоростная шина PCI имеет ряд привлекательных свойств. Помимо
возможности работы с прямым доступом к памяти и программируемым
вводом/выводом она допускает специальные конфигурационные циклы,
расширяемость до 64 бит, компоненты, работающие с питающими напряжениями
3.3 и 5 В, а также более быстрое тактирование. Базовая реализация шины PCI
поддерживает мультиплексирование адреса и данных и работает на частоте 33
МГц, обеспечивая максимальную скорость передачи данных 132 Мбайт/с. Шина
PCI непосредственно управляется микропроцессором. На рисунке 4 показаны
некоторые высокоскоростные периферийные устройства: графические адаптеры,
контроллеры SCSI и сетевые адаптеры, подключенные непосредственно к шине
PCI. Мостовая микросхема интерфейса ISA позволяет подключить к системе
низкоскоростные устройства типа модема, флопа и т.д. Позже, на смену
процессору пришла его модернизированная версия. Как и его предшественник,
новый кристалл Alpha 21066A помимо интерфейса PCI содержит на кристалле
интегрированный контроллер памяти и графический акселератор. Эти
характеристики позволяют значительно снизить стоимость реализации систем,
базирующихся на Alpha 21066A, и обеспечивают простой и дешевый доступ к
внешней памяти и периферийным устройствам. Alpha 21066A имеет две
модификации в соответствии с частотой: 100 МГц и 233 МГц. Модель с 233 МГц
обеспечивает производительность 94 и 100 единиц, соответственно, по тестам
SPECint92 и SPECfp92. Микропроцессор Alpha 21164 представляет собой вторую
полностью новую реализацию архитектуры Alpha. Микропроцессор 21164,
представленный в сентябре 1994 года, обеспечивает производительность 330 и
500 единиц, соответственно, по шкалам SPECint92 и SPECfp92 или около 1200
MIPS и выполняет до четырех инструкций за такт. На кристалле
микропроцессора 21164 размещено около 9,3 миллиона транзисторов,
большинство из которых образуют кэш. Кристалл построен на базе 0.5
микронной КМОП технологии компании DEC. Он собирается в 499-контактные
корпуса PGA (при этом 205 контактов отводятся под разводку питания и земли)
и рассеивает 50 Вт при питающем напряжении 3.3 В на частоте 300 МГц.
Переход в 1996 году на 0.35 микронную КМОП технологию привел к возможности
дальнейшего увеличения тактовой частоты и производительности процессора.
Процессоры 21164 выпускались с тактовой частотой 366 МГц (11.3 SPECint95,
15.4 SPECfp95) и 433 МГц (13.3 SPECint95, 18.3 SPECfp95). В конце 1996 года
начались массовые поставки 21164 с тактовой частотой 500 МГц (15.4
SPECint95, 21.1 SPECfp95). Таким образом, в 1996г. компания DEC имела самые
мощные процессоры, пиковая производительность которых составляла 2
миллиарда операций в секунду.
Ключевыми моментами для реализации высокой производительности
является суперскалярный режим работы процессора, обеспечивающий выдачу для
выполнения до четырех команд в каждом такте, высокопроизводительная
неблокируемая подсистема памяти с быстродействующей кэш-памятью первого
уровня, большая, размещенная на кристалле, кэш-память второго уровня и
уменьшенная задержка выполнения операций во всех функциональных
устройствах. На рисунке 5 представлена блок-схема процессора, который
включает пять функциональных устройств: устройство управления потоком
команд (IBOX), целочисленное устройство (EBOX), устройство плавающей точки
(FBOX), устройство управления памятью (MBOX) и устройство управления кэш-
памятью и интерфейсом шины (CBOX). На рисунке также показаны три
расположенных на кристалле кэш-памяти. Кэш-память команд и кэш-память
данных представляют собой первичные кэши, реализующие прямое отображение.
Множественно-ассоциативная кэш-память второго уровня предназначена для
хранения команд и данных. Длина конвейеров процессора 21164 варьируется от
7 ступеней для выполнения целочисленных команд и 9 ступеней для реализации
команд с плавающей точкой до 12 ступеней при выполнении команд обращения к
памяти в пределах кристалла и переменного числа ступеней при выполнении
команд обращения к памяти за пределами кристалла. Устройство управления
потоком команд осуществляет выборку и декодирование команд из кэша команд и
направляет их для выполнения в соответствующие исполнительные устройства
после разрешения всех конфликтов по регистрам и функциональным устройствам.
Оно управляет выполнением программы и всеми аспектами обработки
исключительных ситуаций, ловушек и прерываний. Кроме того, оно обеспечивает
управление всеми исполнительными устройствами, контролируя все цепи обхода
данных и записи в регистровый файл. Устройство управления содержит 8 Кбайт
кэш команд, схемы предварительной выборки команд и связанный с ними буфер
перезагрузки, схемы прогнозирования направления условных переходов и буфер
преобразования адресов команд (ITB). Целочисленное исполнительное
устройство выполняет целочисленные команды, вычисляет виртуальные адреса
для всех команд загрузки и записи, выполняет целочисленные команды
условного перехода и все другие команды управления. Оно включает в себя
регистровый файл и несколько функциональных устройств, расположенных на
четырех ступенях двух параллельных конвейеров. Первый конвейер содержит
сумматор, устройство логических операций, сдвигатель и умножитель. Второй
конвейер содержит сумматор, устройство логических операций и устройство
выполнения команд управления.
Рис. 5.
Устройство плавающей точки состоит из двух конвейерных исполнительных
устройств: конвейера сложения, который выполняет все команды плавающей
точки, за исключением команд умножения, и конвейер умножения, который
выполняет команды умножения с плавающей точкой. Два специальных конвейера
загрузки и один конвейер записи данных позволяют командам загрузки/записи
выполняться параллельно с выполнением операций с плавающей точкой.
Аппаратно поддерживаются все режимы округления, предусмотренные стандартами
IEEE и VAX.
Устройство управления памятью выполняет все команды загрузки, записи
и барьерные операции синхронизации. Оно содержит полностью ассоциативный 64-
строчный буфер преобразования адресов (DTB), 8 Кбайт кэш-память данных с
прямым отображением, файл адресов промахов и буфер записи. Длина строки в
кэше данных равна 32 байтам, он имеет два порта по чтению и реализован по
принципу сквозной записи. Он индексируется разрядами физического адреса и в
тегах хранятся физические адреса. В устройство управления памятью в каждом
такте может поступать до двух виртуальных адресов из целочисленного
устройства. DTB также имеет два порта, поэтому он может одновременно
выполнять преобразование двух виртуальных адресов в физические. Команды
загрузки обращаются к кэшу данных и возвращают результат в регистровый файл
в случае попадания. При этом задержка составляет два такта. В случае
промаха физические адреса направляются в файл адресов промахов, где они
буферизуются и ожидают завершения обращения к кэш-памяти второго уровня.
Команды записи записывают данные в кэш данных в случае попадания и всегда
помещают данные в буфер записи, где они ожидают обращения к кэш-памяти
второго уровня. Отличительной особенностью микропроцессора 21164 является
размещение на кристалле вторичного трехканального множественно-
ассоциативного кэша, емкостью 96 Кбайт. Вторичный кэш резко снижает
количество обращений к внешней шине микропроцессора. Кроме вторичного кэша
на кристалле поддерживается работа с внешним кэшем третьего уровня.
Сочетание большого количества вычислительных устройств, более быстрого выполнения операций с плавающей точкой (четыре такта вместо шести), более быстрого доступа к первичному кэшу (два такта вместо трех) обеспечивала этому микропроцессору рекордную по тем временам производительности.
4. Особенности архитектуры POWER компании IBM и PowerPC компаний
Motorola, Apple и IBM.
Как уже было отмечено, одним из разработчиков фундаментальной
концепции RISC-архитектуры был Джон Кук из Исследовательского центра IBM
им. Уотсона, который в середине 70-х проводил исследования в этом
направлении и построил миникомпьютер IBM 801, который так никогда и не
появился на рынке. Дальнейшее развитие этих идей в компании IBM нашло
отражение при разработке архитектуру POWER в конце 80-х. Архитектура POWER
(и ее поднаправления POWER2 и PowerPC) в настоящее время являются основой
семейства рабочих станций и серверов RISC System /6000 компании IBM.
Развитие архитектуры IBM 801 в направлении POWER шло в следующих
направлениях: воплощение концепции суперскалярной обработки, улучшение
архитектуры как целевого объекта компиляторов, сокращение длины конвейера и
времени выполнения команд и, наконец, приоритетная ориентация на
эффективное выполнение операций с плавающей точкой.
Архитектура POWER
Архитектура POWER во многих отношениях представляет собой
традиционную RISC-архитектуру. Она придерживается наиболее важных
отличительных особенностей RISC: фиксированной длины команд, архитектуры
регистр-регистр, простых способов адресации, простых (не требующих
интерпретации) команд, большого регистрового файла и трехоперандного
(неразрушительного) формата команд. Однако архитектура POWER имеет также
несколько дополнительных свойств, которые отличают ее от других RISC-
архитектур.
Во-первых, набор команд был основан на идее суперскалярной обработки.
В базовой архитектуре команды распределяются по трем независимым
исполнительным устройствам: устройству переходов, устройству с
фиксированной точкой и устройству с плавающей точкой. Команды могут
направляться в каждое из этих устройств одновременно, где они могут
выполняться одновременно и заканчиваться не в порядке поступления. Для
увеличения уровня параллелизма, который может быть достигнут на практике,
архитектура набора команд определяет для каждого из устройств независимый
набор регистров. Это минимизирует связи и синхронизацию, требуемые между
устройст