Микропроцессоры Alpha 21364
Когда компании Intel и Hewlett-Packard взялись за создание Merced, они явно рассчитывали потеснить мировых лидеров производительности — микропроцессоры Alpha. Разработчики IA-64 объявили о начале новой эры развития процессорной архитектуры — «пост-RISC». Однако задержки с выпуском этих процессоров дали шанс конкурентам устоять перед мощным напором IA-64. Обозреватели полагали, что реальными конкурентами могут оказаться Alpha и, возможно, микропроцессор IBM, также способной осуществить революционные изменения в архитектуре. Задержка Merced способна несколько изменить соотношение сил. Во-первых, близка к завершению российская разработка — процессор Эльбрус E2k, архитектура которого близка к IA-64. Во-вторых, насколько можно судить по скудным предварительным данным, все другие конкуренты предпочли «асимметричный» ответ.
Известно, что IA-64 представляет собой архитектуру с явным параллелизмом внутри микропроцессора (EPIC), но и конкуренты — производители RISC-процессоров также ориентированы на аппаратную поддержку распараллеливания. Однако они нацелены, похоже, не на коренную ломку всего и вся, как IA-64, а на естественное расширение RISC-архитектуры поддержкой мультипроцессирования на микроуровне.
Собственно, это во многом лишь догадки об истинных планах производителей, основанные на полученной автором тематике докладов на предстоящем в октябре форуме Microprocessor Forum и, грубо говоря, слухах. Так, IBM сообщит о «двухпроцессорном» Power4, а Sun Microsystems — о параллельном SPARC V c тактовой частотой 1,5 ГГц, ожидаемом, по некоторым данным, в 2002 году. Отметим также завершившуюся разработку многонитевого микропроцессора MTA компании Tera Computer (об этом процессоре мы писали в Computerworld № 37 за 1997 год), что также способно самым радикальным образом повлиять на процессорный рынок. С нашей точки зрения, у всех перечисленных новых разработок одна общая особенность — ориентация на распараллеливание.
Флагман сегодняшних микропроцессоров — Alpha — имеет наиболее предсказуемое «архитектурное» будущее: лишь для нового Alpha 21364 доступна некоторая информация о его архитектуре. Ее предварительному анализу и посвящена эта статья.
Архитектурный портрет Alpha 21364
Единственным открытым источником информации об Alpha 21364 является, насколько мне известно, сообщение представителя Compaq Питера Бэннона на Microprocessor Forum. Эти данные и положены в основу последующего изложения.
Если бы меня попросили одной фразой охарактеризовать Alpha 21364, я бы сказал что-то вроде «эволюционная модернизация ядра Alpha 21264 плюс аппаратная поддержка мультипроцессирования на микроуровне». Некоторое общее представление о микроархитектуре Alpha 21364 и его отличиях от Alpha 21264 дает рис. 1, показывающий, что основу ядра 21364 составляет модернизированное ядро 21264, к которому добавлен ряд буферов, интегрированный на основной микросхеме кэш второго уровня и «сетевой интерфейс».
Прежде чем обсудить ставшие известными особенности строения новейшего микропроцессора, сразу сопоставим принципиальные черты этой микроархитектуры с IA-64. Сопоставляя Alpha 21364 c EPIC, Бэннон отметил, что EPIC ориентируется на векторизацию программ, которая возлагается на компилятор. Само по себе это утверждение достаточно нетривиально, однако можно отметить, что архитектура IA-64 действительно должна быть весьма эффективна для векторизуемых алгоритмов. Интересно, что в близком по архитектуре к IA-64 процессоре E2k имеются явные аппаратные средства, ускоряющие работу c векторами в циклах.
Производительность новейших микропроцессоров | |||
Процессор | Частота, МГц | SPEC | |
int95 | fp95 | ||
21264 | 667 | 32,1 | 53,7 |
21364 | 1000 | 70 | 120 |
Merced* | 800 | 45 | 70 |
Напротив, Alpha 21364, как указал Бэннон, ориентированы на скалярную обработку. На примере трансляции конструкции языка Си
if((b[j]==true) && (a[i+j]==true) && (c[i-j+7]==true)) ...
он показал, что применение команды условной пересылки cmove в Alpha 21364 (подобные команды имеются и в ряде других RISC-процессоров) приводит к более короткой и эффективной последовательности команд, чем использование мощной техники предикатов и спекулятивной загрузки в IA-64. В качестве еще одной иллюстрации эффективности новейшего процессора Alpha приводится ставшая типичным тестом задача о расстановке ферзей на шахматной доске. Однако, с моей точки зрения, вряд ли можно отрицать, что в целом система команд IA-64 представляет более богатые возможности для генерации оптимальных машинных кодов для мощных процессоров с большим числом функциональных исполнительных устройств. Это косвенно подтверждается высокими оценками производительности близкого по архитектуре процессора E2k. Другой вопрос, что для извлечения из этого «реальной прибыли» необходимо разработать крайне сложные компиляторы.
Преимуществом суперскалярного процессора Alpha, c точки зрения автора, является то, что внеочередное и спекулятивное выполнение команд обеспечивает эффективное использование ресурсов процессора благодаря «заботам» самого процессора. Причем это делается динамически при выполнении самой программы, в то время как в IA-64 это происходит статически при компиляции программы. Таким образом, в IA-64 за эффективность отвечает программист, будь то разработчик компилятора или пользователь, пишущий на языке Ассемблера.
Это преимущество характерно для любых суперскалярных процессоров с внеочередным спекулятивным выполнением команд. Однако именно Alpha 21364 наиболее продвинут в этом отношении. По сравнению с Alpha 21264, ядро 21364 позволяет более эффективно загружать работой функциональные исполнительные устройства микропроцессора за счет возможности одновременного исполнения на свободных устройствах команд другой нити в многонитевых процессах. В этом же направлении проведены усовершенствования кэш-памяти Alpha 21364.
Однако вернемся собственно к микроархитектуре Alpha 21364. Схематически изображенная на рис. 1, она включает модернизированное ядро своего предшественника — Alpha 21264, вмещающее 64 Кбайт кэш команд первого уровня, 64 Кбайт кэш данных первого уровня и другие основные элементы суперскалярного процессора, поддерживающего внеочередное спекулятивное выполнение команд (очередь целочисленных команд длиной 20 элементов, очередь команд с плавающей запятой длиной 15 элементов), и переименование регистров. Имеется 80 целочисленных регистров и 72 регистра с плавающей запятой. Основной конвейер имеет длину семь тактов (в предположении одного такта на стадии выполнения). Процессор Alpha 21264 способен выдавать два результата с плавающей запятой за такт. (За деталями микроархитектуры 21264, в частности динамического предсказания переходов, мы отсылаем к публикации в журнале «Открытые системы», №1 за 1998 год.)
Первое из основных усовершенствований Alpha 21364 по сравнению с 21264 — это интеграция на микросхеме кэш-памяти второго уровня большой емкости. Подобный подход показал свою эффективность в процессоре НР PA-8500, который на тестах SPECint95 cумел даже чуть-чуть обогнать Alpha 21264. В Alpha 21364 кэш второго уровня имеет ту же емкость, что и суммарная емкость кэша первого уровня в PA8500, — 1,5 Мбайт. Преимущество Alpha 21364 обусловливается тем, что кэш второго уровня является шестиканальным частично-ассоциативным. Он имеет пропускную способность чтения-записи, равную 10 Гбайт/с. Задержка при обращении в кэш второго уровня равна 12 нс. Кроме того, в архитектуру Alpha 21364 добавлены так называемые буферы «жертв» (victim), повышающие эффективность обмена данными между кэшами первого и второго уровня и между кэшем второго уровня и оперативной памятью.
Другое принципиальное усовершенствование в Alpha 21364 — интеграция контроллера оперативной памяти, которая будет базироваться на технологии Rambus. Это обещает настоящий прорыв в области пропускной способности оперативной памяти: при тактовой частоте 800 МГц она составит 6 Гбайт/с.
Наконец, третье усовершенствование, носящее уже революционный характер, — интеграция на микросхеме сетевого интерфейса. Конечно, речь не идет о том, что разработчики решили интегрировать контроллер, скажем, Fast Ethernet. Речь идет о прямом высокоскоростном соединении процессор-процессор с задержкой всего 15 нс и пропускной способностью в 10 Гбайт/с. Это межсоединение характеризуется поддержкой адаптивной маршрутизации с внеочередным выполнением транзакций. Важно, что обеспечивается когерентность кэш-памяти процессора, так что Бэннон заявил об аппаратной поддержке симметричной многопроцессорности в процессоре. По всей видимости, правильнее было бы говорить о ccNUMA, что хорошо соответствует архитектурным идеям будущих серверов Wildfire. Однако дополнительная задержка при обращении к локальной памяти другого процессора очень мала, поэтому можно сказать, что это «почти SMP».
Наконец, процессоры Alpha 21364 имеют еще и интегрированный интерфейс ввода/вывода с пропускной способностью 3 Гбайт/с.
Перспективы
Что касается изготовления, то процессоры Alpha 21364 будут выпускаться по 0,18-микронной технологии с шестислойной металлизацией. Данный процессор площадью 3,5 кв. см содержит 100 млн. транзисторов (в том числе 8 млн. — под логику и 92 млн. — под память) и при тактовой частоте не меньше 1 ГГц и напряжении 1,5 В потребляет около 100 Вт. Процессор должен быть готов в четвертом квартале этого года. Иными словами, Alpha 21364 появится почти одновременно с Merced и с процессором MTA компании Tera. Все эти разработки являются революционными в плане архитектуры. Преимущество Alpha 21364 в том, что старые программы, оптимизированные для 21264, будут с высокой степенью эффективности выполняться и на 21364.
Оценки производительности приведены в таблице; если они окажутся верными, Alpha 21364 заметно опередит Merced.
Как бы то ни было, цели, которые декларировали разработчики Alpha 21364, судя по всему, достигнуты: cтруктура процессора выглядит проще, чем у Merced, и соответственно сам процессор дешевле. При этом повышается и надежность. Конечно, многопроцессорные системы на Alpha 21364 будут гораздо дороже однопроцессорных. Впрочем, не будем гадать, а подождем реальных результатов этого соревнования.
Михаил Кузьминский — старший научный сотрудник Центра компьютерного обеспечения химических исследований Института органической химии РАН. С ним можно связаться по телефону (095) 135-6388.
(*) Эти данные, возможно, устарели. По более новым данным, тактовая частота Merced составит 1 ГГц.