ОБЗОРЫ

Эти кристаллы более 15 лет успешно применяются в серверах и рабочих станциях

В 1983 г. в корпорации Hewlett-Packard (www.hp.com) было принято решение начать рискованный проект по объединению различных процессоров и операционных систем, используемых в трех компьютерных линейках (HP1000, HP3000 и HP9000). Его результат сегодня хорошо известен: это семейство процессоров PA-RISC (Precision Architecture Reduced Instruction Set Computing) и ОС UP-UX, которые совместно применяются в высокопроизводительных рабочих станциях и Unix-серверах (классов N, V, L и A).

Свой первый компьютер на базе PA-RISC корпорация представила уже в 1985 г. Схемотехнически новый кристалл был построен на базе транзисторно-транзисторной логики (ТТЛ) и синхронизировался тактовой частотой 8 МГц. За прошедшие годы реализовано 16 различных технологических решений, выполненных с использованием биполярных и комплементарных МОП-структур. Основное внимание разработчики всегда уделяли тактовой частоте, степени интеграции и архитектурным улучшениям. В настоящее время частота синхронизации кристаллов PA-RISC превысила 500 МГц отметку, а в этом году она достигнет значения 800 МГц. В перспективных моделях ожидается увеличение частоты до 1 ГГц и выше.

Микропроцессор PA-RISC 7000 носил кодовое название “Мустанг”

Как известно, высокий уровень интеграции микросхем дает несколько преимуществ: повышение надежности и производительности, снижение энергопотребления. Первый продукт PA-RISC был реализован на шести платах с использованием микросхем средней степени интеграции. Процессор на СБИС тогда требовал только восьми соответствующих микросхем. А вот все компоненты современного процессора PA-RISC, включая кэш-память большого объема, выполнены на одном кристалле. Это стало возможным благодаря повышению степени интеграции: количество транзисторов на одном кристалле увеличилось за прошедшее время почти на три порядка.

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

Hewlett-Packard внесла в архитектуру процессоров PA-RISC два значительных изменения. Первоначальный дизайн продуктов был основан на спецификации PA-RISC 1.0, но примерно десять лет назад была разработана следующая версия спецификации - PA-RISC 1.1. Наиболее значительными ее отличиями стали увеличение размера страницы с 2 до 4 Кб, добавление 16 регистров с плавающей точкой и повышение эффективности внутренних прерываний. Стоит отметить, что все изменения обладали обратной совместимостью, т. е. программы, написанные для машин PA-RISC 1.0, могли успешно работать на системах, отвечающих версии 1.1.

В 1996 г. Hewlett-Packard представила спецификацию PA-RISC 2.0, впервые использованную в семействе процессоров PA-8х00. Главным ее нововведением стали 64-разрядная целочисленная арифметика и 64-разрядная адресация (хотя для обеспечения обратной совместимости был сохранен и 32-разрядный режим). Версия 2.0 также добавила страницы переменного размера, несколько новых операций с плавающей точкой и ряд других усовершенствований. При этом все новые процессоры PA-RISC сохраняют полную двоичную совместимость со своими предшественниками.

Эволюция PA-RISC

В сентябре 1992 г. Hewlett-Packard объявила о создании своего 32-разрядного суперскалярного процессора PA-7100, который лег в основу семейства рабочих станций HP 9000 Series 700 и серверов HP 9000 Series 800. При соблюдении проектных норм 0,8 мкм на кристалле размерами 14,2ґ14,2 мм было размещено 850 тыс. транзисторов. Выпускались 33-, 50- и 99-мегагерцовые версии кристалла PA-7100. В 1993 г. были выпущены модифицированная версия PA-7100LC с тактовыми частотами 64, 80 и 100 МГц и PA-7150 с частотой 125 МГц. Через год появился кристалл PA-7200 с тактовыми частотами 90, 100 и 120 МГц.

Особенностью архитектуры PA-7100 являлась внекристальная сверхоперативная память, позволявшая реализовать различные объемы кэш-памяти и оптимизировать конструкцию в зависимости от условий применения. Команды и данные хранились в раздельных кэшах, причем процессор соединялся с ними с помощью высокоскоростных 64-разрядных шин. Кэш-память была построена на быстродействующих кристаллах статической памяти, синхронизация которых осуществлялась непосредственно на тактовой частоте процессора. Процессор на аппаратном уровне поддерживал различные объемы кэш-памяти: кэш команд мог иметь объем от 4 Кб до 1 Мб, кэш данных - от 4 Кб до 2 Мб. Конструктивно на кристалле PA-7100 были размещены устройства для выполнения целочисленных операций, для обработки чисел с плавающей точкой, для управления кэш-памятью, а также унифицированный буфер, устройство управления, ряд интерфейсных схем.

По сравнению с PA 7100 процессор PA 7200 имел ряд архитектурных усовершенствований, главными из которых являлись добавление второго целочисленного конвейера, построение внутрикристального вспомогательного кэша данных и реализация нового 64-разрядного интерфейса с шиной памяти. Для производства кристаллов стали использоваться проектные нормы 0,55 мкм, что позволило увеличить количество транзисторов до 1,3 млн.

Процессор PA-7200, как и его предшественник, обеспечивал суперскалярный режим работы с одновременной выдачей до двух команд в одном такте. Все его команды можно разделить на три группы: целочисленные операции, операции загрузки-записи и операции с плавающей точкой. PA-7200 осуществлял одновременную выдачу двух команд, принадлежащих разным группам, или двух целочисленных команд (последнее было возможно благодаря наличию второго целочисленного конвейера с АЛУ и дополнительных портов чтения и записи в регистровом файле). Команды перехода выполнялись в целочисленном конвейере, причем они могли составлять пару для одновременной выдачи на выполнение только с предшествующей командой.

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

Семейство PA-8x00

Новую эру микропроцессоров PA-RISC ознаменовал выпуск 64-разрядного процессора PA-8000, который был анонсирован в марте 1995 г. Промышленный выпуск кристаллов был начат в 1996-м. Тактовые частоты составляли 160 и 180 МГц. При соблюдении проектных норм 0,5 мкм на кристалле размерами 17,7ґ19,6 мм удалось разместить 4,5 млн. транзисторов. По мнению разработчиков, новый кристалл по сравнению с процессором PA-7200, работающим на той же тактовой частоте, позволял увеличить производительность на 30% и даже больше. Высокая производительность PA-8000 во многом определялась наличием большого количества функциональных устройств (в том числе 10 исполнительных: два арифметико-логических устройства для выполнения целочисленных операций, два устройства для выполнения операций сдвига-слияния данных, два устройства для выполнения умножения-сложения чисел с плавающей точкой, два устройства деления и вычисления квадратного корня и два устройства выполнения операций загрузки-записи). Таким образом, суперскалярный процессор PA-8000 обладал полным набором средств для выполнения 64-разрядных операций, включая адресную арифметику, а также арифметику с фиксированной и плавающей точками. При этом обеспечивалась полная совместимость с 32-разрядными приложениями. Отметим, что PA-8000 вобрал в себя все известные методы ускорения работы. В его основе лежит концепция “интеллектуального выполнения” (intelligent execution), которая базируется на принципе внеочередного выполнения команд. Это свойство позволяло PA-8000 достигать пиковой производительности, благодаря широкому использованию механизмов автоматического разрешения конфликтов аппаратными средствами. В частности, на частоте 180 МГц PA-8000 показал производительность 720 MFLOPS (за счет выполнения четырех операций с плавающей точкой за один такт). Это был первый процессор, в котором реализована архитектура PA-RISC 2.0.

В мае 1997 г. был анонсирован процессор PA-8200. Одной из основных задач, стоящих перед разработчиками, было увеличение тактовой частоты со 180 до 200 и 240 МГц, а, учитывая применение проектных норм 0,5 мкм, сделать это было далеко не просто. Процессор PA-8200 включал несколько архитектурных особенностей. В частности, в нем использовались раздельная первичная кэш-память команд и данных объемом 2 Мб каждая. Кэш-память второго уровня процессором не использовалась. Как и в PA-8000, было задействовано 10 независимых функциональных устройств. Благодаря буферу переупорядочения инструкций процессор мог постоянно работать в суперскалярном режиме. Устройство считывания инструкций доставляло в буфер четыре инструкции за один такт. Встроенная программируемая аппаратура мониторинга производительности позволяла отслеживать такие события, как кэш-попадания (промахи), ошибки в предсказании ветвлений и т. д. Как уже отмечалось, PA-8200 поддерживал 64-разрядное адресное пространство, хотя чип экспортировал 40-разрядные физические адреса, что соответствует 1 Тб непосредственно адресуемой памяти.

Чтобы обеспечить непрерывную работу конвейера и загрузку всех функциональных устройств, необходим надежный механизм предсказания ветвлений. Встроенная аппаратура процессора PA-8200 использует два различных алгоритма предсказания. В статическом режиме обычно действует следующая стратегия: для команд условного перехода назад предсказывается “переход”, для команд условного перехода вперед - “отсутствие перехода”. Компиляторы с помощью эвристических методов могут в код инструкции вставлять подсказки процессору о наиболее вероятном исходе проверки условия. В динамическом режиме для предсказания используется 1024-строчная таблица (Branch History Table, BHT). Каждая ее строка соответствует команде условного перехода и содержит три бита, установленные в трех предыдущих случаях выполнения данной инструкции: каждый бит устанавливается в единицу, если переход имел место, и в нуль, если его не было. Если два или три бита содержат единицу, предсказывается переход.

Значительное повышение производительности обеспечил новый член семейства PA-8x00 - процессор PA-8500, который был объявлен в 1998 г. На кристалле размерами 21,3ґ22 мм при соблюдении проектных норм 0,25 мкм было размещено 140 млн. транзисторов. При этом тактовые частоты кристалла составили 360, 440 и 500 МГц.

Кардинальным изменением в РА-8500 по сравнению с РА-8200 стал отказ от внешней кэш-памяти в пользу ее интеграции на основном кристалле. Кэш-память команд имеет объем 512 Кб, а кэш-память данных - 1 Мб. Очевидно, что это стало возможным лишь благодаря уменьшению базовых размеров элементов. Столь большая емкость кэш-памяти на основном чипе - явление тоже уникальное, поскольку она занимает 75% площади всего кристалла.

В отличие от предыдущих моделей семейства PA-8x00, кэш-память РА-8500 является 4-канальной частично-ассоциативной. Сегодня многие разработчики высокопроизводительных микропроцессоров часто предпочитают этот тип памяти прямого отображения. Это обусловлено тем, что обычно частично-ассоциативная кэш-память обеспечивает более высокую вероятность нахождения в ней данных по сравнению с памятью прямого отображения той же емкости. Однако следует иметь в виду, что при прямом отображении можно получить более низкое время доступа.

Ввиду больших временных задержек, которые могут возникнуть при неверном предсказании переходов в случае внеочередного спекулятивного исполнения команд, разработчики кристалла уделили этому вопросу самое пристальное внимание. В PA-8500 предложено интересное усовершенствование, позволяющее объединить преимущества динамического и статического предсказания переходов. Следует отметить, что в 1999 г. новый процессор получил награду как лучший RISC-процессор (Best RISC Processor) такого авторитетного издания, как Microprocessor Report.

Тогда же корпорация объявила о новом процессоре - PA-8600, промышленный выпуск которого начался год назад. Он работает с тактовыми частотами 550 и 600 МГц и является модернизированной версией кристалла PA-8500. Согласно комментариям Hewlett-Packard, процессор PA-8600 можно применять в тех же системах, что и PA-8500, однако он позволяет разрабатывать более отказоустойчивые серверы. Так, для ускорения доступа к кэш-памяти в нем использованы новые алгоритмы, а сама она построена как память с обнаружением и исправлением ошибок (ECC).

Ближайшие перспективы

В прошлом году Hewlett-Packard уже сообщила подробности о своем 64-разрядном процессоре PA-8700, которым в скором времени будут оснащаться серверы и рабочие станции корпорации. Новая модель предназначена для работы на частотах 800 МГц и выше. Она будет производиться по КМОП-технологии с соблюдением проектных норм 0,18 мкм и использованием методики “кремний на изоляторе”, а также семи слоев медных межсоединений. Это позволит разместить на кристалле 2,25 Мб кэш-памяти - больше, чем на любом другом процессоре, и на 50% больше, чем на PA-8600. Процессор будет поддерживать 44-разрядные физические адреса, что позволит работать с физической памятью объемом до 16 Тб. Кроме того, в РА-8700 удалось понизить напряжение питания, что уменьшило потребляемую мощность и теплоотдачу при работе на высоких частотах. Благодаря меньшим размерам стало возможно повышение рабочей частоты. По утверждению представителей корпорации, процессор выполняет примерно 3,2 млрд. операций в секунду. Согласно предварительным оценкам, производительность PA-8700 на целочисленных и вещественных вычислениях на 64 и 14% соответственно будет превосходить показатели, опубликованные Sun Microsystems для своего новейшего процессора UltraSPARC III.

Hewlett-Packard заявила о своем намерении продолжить развитие линейки PA-RISC. “Прилагая все усилия для развития IA-64, корпорация по-прежнему будет поставлять лучшие в отрасли решения на базе PA-RISC, по крайней мере вплоть до модели PA-8900. Планы развития двойных систем, поддерживающих как PA-RISC, так и IA-64, позволят нашим клиентам сохранить уже существующие инфраструктуры и самостоятельно выбрать время для перехода на IA-64”, - заявил Скотт Столлард (Scott Stallard), вице-президент и генеральный директор подразделения корпоративных систем и технологий Hewlett-Packard. По предварительным данным, в следующем году можно ожидать выпуска PA-8800 с тактовой частотой не менее 1 ГГц, а за ним - PA-8900 с еще более высокой частотой (1,2-1,3 ГГц).