Введение в архитектуру компьютеров

Особенности архитектуры POWER


Существенное развитие RISC-архитектуры в компании IBM произошли при разработке архитектуры POWER в конце 80-х. Архитектура POWER (и ее поднаправления POWER2 и PowerPC) в настоящее время являются основой семейства рабочих станций и серверов RISC System /6000 компании IBM.

Развитие архитектуры шло в следующих направлениях: воплощение концепции суперскалярной обработки; улучшение архитектуры как целевого объекта компиляторов; сокращение длины конвейера и времени выполнения команд и, наконец, приоритетная ориентация на эффективное выполнение операций с плавающей точкой.

Архитектура POWER во многих отношениях придерживается наиболее важных отличительных особенностей RISC: фиксированной длины команд, архитектуры регистр – регистр, простых способов адресации, простых (не требующих интерпретации) команд, большого регистрового файла и трехоперандного (неразрушительного) формата команд. Однако архитектура POWER имеет также несколько дополнительных свойств, которые отличают ее от других RISC-архитектур.

Во-первых, набор команд был основан на идее суперскалярной обработки. В базовой архитектуре команды распределяются по трем независимым исполнительным устройствам: устройству переходов, устройству с фиксированной точкой и устройству с плавающей точкой. Команды могут направляться в каждое из этих устройств одновременно, где они могут выполняться одновременно и заканчиваться не в порядке поступления. Для увеличения уровня параллелизма, который может быть достигнут на практике, архитектура набора команд определяет для каждого из устройств независимый набор регистров. Это минимизирует связи и синхронизацию, требуемые между устройствами, позволяя тем самым исполнительным устройствам настраиваться на динамическую смесь команд. Любая связь по данным между устройствами должна анализироваться компилятором, который может ее эффективно спланировать. Но это только концептуальная модель. Любой конкретный процессор с архитектурой POWER может рассматривать любое из концептуальных устройств как множество исполнительных устройств для поддержки дополнительного параллелизма команд.


Но существование модели приводит к согласованной разработке набора команд, который, естественно, поддерживает степень параллелизма, по крайней мере равную трем.

Во-вторых, архитектура POWER расширена несколькими "смешанными" командами для сокращения времен выполнения. Возможно, единственным недостатком технологии RISC по сравнению с CISC, является то, что иногда она использует большее количество команд для выполнения одного и того же задания. Было обнаружено, что во многих случаях увеличения размера кода можно избежать путем небольшого расширения набора команд, которое вовсе не означает возврат к сложным командам, подобным командам CISC. Например, значительная часть увеличения программного кода была обнаружена в кодах пролога и эпилога, связанных с сохранением и восстановлением регистров во время вызова процедуры. Чтобы устранить этот фактор, IBM ввела команды "групповой загрузки и записи", которые обеспечивают пересылку нескольких регистров в память – из памяти с помощью единственной команды. Соглашения о связях, используемые компиляторами POWER, рассматривают задачи планирования, разделяемые библиотеки и динамическое связывание как простой, единый механизм. Это было сделано с помощью косвенной адресации посредством таблицы содержания (TOC – Table Of Contents), которая модифицируется во время загрузки. Команды групповой загрузки и записи были важным элементом этих соглашений о связях.

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

Третьим фактором, который отличает архитектуру POWER от многих других RISC-архитектур, является отсутствие механизма "задержанных переходов". Обычно этот механизм обеспечивает выполнение команды, следующей за командой условного перехода, перед выполнением самого перехода.


Этот механизм эффективно работал в ранних RISC-машинах для заполнения "пузыря", появляющегося при оценке условий для выбора направления перехода и выборки нового потока команд. Однако в более продвинутых суперскалярных машинах этот механизм может оказаться неэффективным, поскольку один такт задержки команды перехода может привести к появлению нескольких "пузырей", которые не могут быть покрыты с помощью одного архитектурного слота задержки. Архитектура переходов POWER была организована для поддержки методики "предварительного просмотра условных переходов" (branch-lockahead) и методики "свертывания переходов" (branch-folding).



Методика реализации условных переходов, используемая в архитектуре POWER, является четвертым уникальным свойством по сравнению с другими RISC-процессорами. Архитектура POWER определяет расширенные свойства регистра условий. Проблема архитектур с традиционным регистром условий заключается в том, что установка битов условий как побочного эффекта выполнения команды ставит серьезные ограничения на возможность компилятора изменить порядок следования команд. Кроме того, регистр условий представляет собой единственный архитектурный ресурс, создающий серьезное затруднение в машине, которая параллельно выполняет несколько команд или выполняет команды не в порядке их появления в программе. Некоторые RISC-архитектуры обходят эту проблему путем полного исключения из своего состава регистра условий и требуют установки кода условий с помощью команд сравнения в универсальный регистр либо путем включения операции сравнения в саму команду перехода. Последний подход потенциально перегружает конвейер команд при выполнении перехода.

Архитектура POWER предусматривает: a) специальный бит в коде операции каждой команды, что делает модификацию регистра условий дополнительной возможностью, и тем самым восстанавливает способность компилятора реорганизовать код, и б) (восемь) регистров условий для того, чтобы обойти проблему единственного ресурса и обеспечить большее число имен регистра условий так, что компилятор может разместить и распределить ресурсы регистра условий, как он это делает для универсальных



регистров.

Другой причиной выбора модели расширенного регистра условий является то, что она согласуется с организацией машины в виде независимых исполнительных устройств. Концептуально регистр условий является локальным по отношению к устройству переходов. Следовательно, для оценки направления выполнения условного перехода не обязательно обращаться к универсальному регистровому файлу. Для той степени, с которой компилятор может заранее спланировать модификацию кода условия (и/или загрузить заранее регистры адреса перехода), аппаратура может заранее просмотреть и свернуть условные переходы, выделяя их из потока команд. Это позволяет освободить в конвейере временной слот (такт) выдачи команды, обычно занятый командой перехода, и дает возможность диспетчеру команд создавать непрерывный линейный поток команд для вычислительных исполнительных устройств.

Первая реализация архитектуры POWER появилась на рынке в 1990 г. Затем компания IBM представила на рынок еще две версии процессоров POWER2 и POWER2+, обеспечивающих поддержку кэш-памяти второго уровня и имеющих расширенный набор команд.

По данным IBM, процессор POWER требует менее одного такта для выполнении одной команды по сравнению с примерно 1,25 такта у процессора Motorola 68040, 1,45 такта у процессора SPARC, 1,8 такта у Intel i486DX и 1,8 такта Hewlett Packard PA-RISC. Тактовая частота архитектурного ряда в зависимости от модели меняется от 25 до 62 МГц.

Процессоры POWER работают на частоте 33, 41,6, 45, 50 и 62,5 МГц. Архитектура POWER включает раздельную кэш-память команд и данных (за исключением рабочих станций и серверов рабочих групп начального уровня, которые имеют однокристальную реализацию процессора POWER и общую кэш-память команд и данных), 64- или 128-битовую шину памяти и 52-битовый виртуальный адрес. Она также имеет интегрированный процессор плавающей точки, что очень важно для научно-технических приложений с интенсивными вычислениями, хотя текущая стратегия RS/6000 нацелена и на коммерческие приложения.


RS/ 6000 показывает хорошую производительность на плавающей точке: 134.6 SPECp92 для POWERstation/POWERserver 580. Это меньше, чем уровень моделей Hewlett Packard 9000 Series 800 G/H/I-50, которые достигают уровня 150 SPECfp92.

Для реализации быстрой обработки ввода-вывода в архитектуре POWER используется шина Micro Channel, имеющая пропускную способность 40 или 80 Мб/с. Шина Micro Channel включает 64-битовую шину данных и обеспечивает поддержку работы нескольких главных адаптеров шины. Такая поддержка позволяет сетевым контроллерам, видеоадаптерам и другим интеллектуальным устройствам передавать информацию по шине независимо от основного процессора, что снижает нагрузку на процессор и соответственно увеличивает системную производительность.

Многокристальный набор POWER2 состоит из восьми полузаказных микросхем (устройств):

· блока кэш-памяти команд (ICU) – 32 Кб, имеет два порта с 128-битовыми шинами;

· блока устройств целочисленной арифметики (FXU) – содержит два целочисленных конвейера и два блока регистров общего назначения (по 32 32-битовых регистра). Выполняет все целочисленные и логические операции, а также все операции обращения к памяти;

· блока устройств плавающей точки (FPU) – содержит два конвейера для выполнения операций с плавающей точкой двойной точности, а также 54 64-битовых регистра плавающей точки;

· четырех блоков кэш-памяти данных – максимальный объем кэш-памяти первого уровня составляет 256 Кб. Каждый блок имеет два порта. Устройство реализует также ряд функций обнаружения и коррекции ошибок при взаимодействии с системой памяти;

· блока управления памятью (MMU).

Набор кристаллов POWER2 содержит порядка 23 млн транзисторов на площади 1217 мм2 и изготовлен по технологии КМОП с проектными нормами 0,45 мк. Рассеиваемая мощность на частоте 66,5 МГц составля-

ет 65 Вт.

Компания IBM распространяет влияние архитектуры POWER в направлении малых систем с помощью платформы PowerPC. Архитектура POWER в этой форме может обеспечивать уровень производительности и масштабируемость, превышающие возможности современных персональных компьютеров.


PowerPC базируется на платформе RS/6000 в простой конфигурации. В архитектурном плане основные отличия этих двух разработок состоят лишь в том, что системы PowerPC используют однокристальную реализацию архитектуры POWER, изготавливаемую компанией Motorola, в то время как большинство систем RS/6000 используют многокристальную реализацию. Первым на рынке был объявлен процессор 601, предназначенный для использования в настольных рабочих станциях компаний IBM и Apple. За ним последовали кристаллы 603 для портативных и настольных систем начального уровня и 604 для высокопроизводительных настольных систем. Наконец, процессор 620 разработан специально для серверных конфигураций, и ожидается, что со своей 64-битовой организацией он обеспечит исключительно высокий уровень производительности.

При разработке архитектуры PowerPC для удовлетворения потребностей трех различных компаний (Apple, IBM и Motorola) при сохранении совместимости с RS/6000 в архитектуре POWER были сделаны изменения в следующих направлениях:

· упрощение архитектуры в целях приспособления ее для реализации дешевых однокристальных процессоров;

· устранение команд, которые могут стать препятствием повышения тактовой частоты;

· устранение архитектурных препятствий суперскалярной обработке и внеочередному выполнению команд;

· добавление свойств, необходимых для поддержки симметричной многопроцессорной обработки;

· добавление новых свойств, считающихся необходимыми для будущих прикладных программ;

· обеспечение длительного времени жизни архитектуры путем ее расширения до 64-битовой.

Архитектура PowerPC поддерживает ту же базовую модель программирования и назначение кодов операций команд, что и архитектура POWER. В тех местах, где были сделаны изменения, которые могли потенциально препятствовать процессорам PowerPC выполнять существующие двоичные коды RS/6000, были расставлены "ловушки", обеспечивающие прерывание и эмуляцию с помощью программного обеспечения.

Микропроцессор PowerPC 601 выпускает как компания IBM, так и компания Motorola.


Он представляет собой процессор среднего класса и предназначен для использования в настольных вычислительных системах малой и средней стоимости. Двоичные коды RS/6000 выполняются на нем без изменений, что дало дополнительное время разработчикам компиляторов для освоения архитектуры PowerPC, а также разработчикам прикладных систем, которые должны перекомпилировать свои программы, чтобы полностью использовать возможности архитектуры PowerPC. Процессор 601 базировался на однокристальном процессоре IBM, который был разработан к моменту создания альянса трех ведущих фирм. В Power 601 реализована суперскалярная обработка, позволяющая выдавать на выполнение в каждом такте три команды, возможно, не в порядке их расположения в программном коде.

PowerPC 603 является первым микропроцессором в семействе PowerPC, полностью поддерживающим архитектуру PowerPC (рис. 4.11).

Рис 4.11. Блок-схема процессора PowerPC 603

Он включает пять функциональных устройств: устройство переходов; целочисленное устройство; устройство плавающей точки; устройство загрузки-записи и устройство системных регистров. Поскольку PowerPC 603 – суперскалярный микропроцессор, он может подавать в исполнительные уст-

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

В процессоре команды распределяются по пяти исполнительным устройствам в порядке, заданном программой. Если отсутствуют зависимости по операндам, команды выполняются немедленно. Целочисленное устройство выполняет большинство команд за один такт. Устройство плавающей точки имеет конвейерную организацию и выполняет операции с плавающей точкой, как с одинарной, так и с двойной точностью. Команды условных переходов обрабатываются в устройстве переходов. Если условия перехода доступны, то решение о направлении перехода принимается немедленно, иначе выполнение последующих команд продолжается условно.


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

В случае промаха при обращении к кэш-памяти обращение к основной памяти осуществляется с помощью 64-битовой высокопроизводительной шины, подобной шине микропроцессора MC 88110. Для максимизации пропускной способности кэш-память взаимодействует с основной памятью главным образом посредством групповых операций, которые позволяют заполнить строку кэш-памяти за одну транзакцию.

Результаты выполнения команды направляются в буфер завершения команд (completion buffer) и затем последовательно записываются в соответствующий регистровый файл по мере изъятия команд из буфера завершения. Для минимизации конфликтов по регистрам в процессоре PowerPC 603 предусмотрены отдельные наборы из 32 целочисленных регистров общего назначения и 32 регистров плавающей точки.

Суперскалярный процессор PowerPC 604 обеспечивает одновременную выдачу до четырех команд. При этом параллельно в каждом такте может завершаться выполнение до шести команд. Процессор включает шесть исполнительных устройств, которые могут работать параллельно:

· устройство плавающей точки (FPU);

· устройство выполнения переходов (BPU);

· устройство загрузки-записи (LSU);

· три целочисленных устройства (IU):

· два однотактных целочисленных устройства (SCIU);

·

одно многотактное целочисленное устройство (MCIU).

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



и обеспечивают реализацию модели точного прерывания.

В процессоре 604 имеются отдельные устройства управления памятью и отдельные по 16 Кб внутренние кэши для команд и данных. В нем реализованы два буфера преобразования виртуальных адресов в физические TLB (отдельно для команд и для данных), содержащие по 128 строк. Оба буфера являются двухканальными множественно-ассоциативными и обеспечивают переменный размер страниц виртуальной памяти. Кэш-памяти и буфера TLB используют для замещения блоков алгоритм LRU.

Процессор 604 обеспечивает как одиночные, так и групповые пересылки данных при обращении к основной памяти.

Процессор PowerPC 620 в отличие от своих предшественников полностью 64-битовый процессор. При работе на тактовой частоте 133 МГц его производительность оценивается в 225 единиц SPECint92 и 300 единиц SPECfp92, что соответственно на 40 % и 100 % больше показателей процессора PowerPC 604.

Подобно другим 64-битовым процессорам, PowerPC 620 содержит 64-битовые регистры общего назначения и плавающей точки и обеспечивает формирование 64-битовых виртуальных адресов. При этом сохраняется совместимость с 32-битовым режимом работы, реализованным в других моделях семейства PowerPC.


Содержание раздела