Общие тенденции развития МП DEC Alpha
Построение кэш-памяти
Функциональные исполнительные устройства
Переходы
Системная шина и оценки производительности
Выводы
Литература

В ближайшие 2-3 года должно стать ясно, останется ли RISC-технология основой для построения наиболее высокопроизводительных микропроцессоров (МП), или на их смену придет другая парадигма. В качестве такой серьезной альтернативы может выступить EPIC (Explicitly Parallel Instruction Computing), - технология, предложенная Intel и HP и реализуемая в МП Merced [1]. EPIC можно рассматривать и как некую "пост-RISC" технологию. Однако смогут ли будущие МП Merced обогнать RISC? Традиционные лидеры производительности среди МП - DEC Alpha, и именно с ними наиболее часто пытаются сопоставить Merced. По мнению ряда специалистов, ожидаемый в 1999 г. процессор Alpha 21364 будет существенно опережать Merced по производительности. Сегодняшние лидеры 700 МГц Alpha 21164 - в начале следующего года должны уступить лидерство МП следующего поколения (EV6), Alpha 21264, микроархитектуре которых и посвящена данная статья.

Развитие RISC-МП шло в двух основных направлениях: увеличение тактовой частоты и совершенствование (усложнение) микроархитектуры. Примечательным является то, что высокие тактовые частоты сложная микроархитектура суперскалярных МП, поддерживающих внеочередное (out-of-order) выполнение команд, приводят к возникновению принципиально новых проблем. Они связаны, в частности, с конечной скоростью распространения сигнала, вызывающей проблемы взаимного расположения различных функциональных блоков. Поэтому анализ микроархитектуры Alpha 21264 представляет интерес и с точки зрения общих подходов к преодолению трудностей, с которыми еще придется столкнуться разработчикам суперcкалярных МП: в них на сегодня достигнуты частоты не более 300-350 МГц, в то время как DEC Alpha уже работают на частотах в интервале 500-700 МГц.

Общие тенденции развития МП DEC Alpha

Нетрудно видеть, что развитие МП Alpha сначала шло в направлении первоочередного роста тактовой частоты при относительно простой микроархитектуре МП. Наиболее ярко это выразилось в Alpha 21064 [2]. Микроархитектура 21164 сильно усложнилась [3], а сам МП далеко обогнал всех оппонентов по тактовой частоте и пиковой производительности (Пт) при работе с вещественной арифметикой (таблица 1). При этом это процессор имеет существенно более простое внутреннее строение, чем суперскалярные микропроцессоры конкурентов с внеочередным выполнением команд - HP PA-8x00 [4,5] или SGI/MIPS R10000 [6]. Однако, в Alpha 21264 разработчики также обратилась к внеочередному суперскалярному выполнению команд.

Таблица 1. Пиковая производительность некоторых выпускаемых и перспективных микропроцессоров
Микропроцессор Частота МГц Производительность, MFLOPS
DEC Alpha 21164 700 1400
DEC Alpha 21264 600 1200
800 1600
1000 2000
HP PA-8000 180 720
HP PA-8200 236 944
HP PA-8500 400 1600
SGI/MIPS R10000 200 400
250 500
SGI/MIPS R12000 300 600
Sun UltraSPARC II 300 600
Sun UltraSPARC III 600 1200
IBM P2SC 160 640

Это подтверждает, что наиболее перспективна сложная микроархитектура МП, а не простой суперконвейерный подход, при котором проще поднимать тактовую частоту. Из современных процессоров RISC (таблица 1), если не считать IBM P2SC с сильно отличным от других строением, только UltraSPARC и Alpha 21164 не поддерживают внеочередное выполнение команд. С другой стороны, нельзя сказать, что компания DEC шла по неверному пути, когда стремилась в первую очередь увеличивать тактовую частоту, сохраняя относительно более простую архитектуру МП Alpha. Доказательством этого служит тот факт, что Alpha все это время была лидером производительности. И сегодня, вероятно, самый "быстрый" МП - Alpha 21164 c тактовой частотой 700 МГц, выпускаемый компанией Samsung.

Единственное известное автору подробное описание МП 21264 дано в работе [7], являющейся на сегодня основным доступным источником технической информации об этом МП. Основой для рис.1, на котором представлена микроархитектура 21264, также послужила эта работа.

Picture 1.

Рисунок 1.
Упрощенная логическая схема МП Alpha 21264

Собственно, ключевые особенности, с которыми "играют" разработчики современных высокопроизводительных RISC-процессоров, относятся к трем основным областям: кэш-память; внеочередное выполнение в ФИУ; алгоритмы предсказания переходов.

Построение кэш-памяти

Очевидно, что при высоких тактовых частотах возникают проблемы как для внутренней, так и для внешней кэш-памяти. Что касается внутреннего кэша, то в Alpha 21164 это привело к созданию уникального интегрированного на чипе двухуровневого кэша, включающего прямоадресуемые I- и D-кэши L1 емкостью 8 Кбайт каждый, плюс 3-канальный частично-ассоциативный кэш L2 емкостью 96 Кбайт (таблица 2). Подобную конструкцию не повторили ни в одном из других известных микропроцессоров. Размер кэша L1 ограничен требованиями доступа к нему за 2 нс (для 21164/500 МГц). Процент непопаданий в такой кэш L1 относительно велик (следует учесть, что он прямоадресуемый, что несколько увеличивает вероятность непопадания по сравнению с многоканальным частично-ассоциативным кэшем), а для обращения в кэш L2 требуется уже 6 тактов. Кроме кэшей L1 и L2, для достижения высокой производительности применяется внешний кэш L3 большой емкости.

Таблица 2. Сравнительные характеристики Alpha 21164 и 21264
  21164 21264
Тактовая частота, МГц 600 600
Кэш L1: емкость,Кбайт 8(I)+8(D) 64(I)+64(D)
тип прямоадресуемый,плюс 3-канальный частично-ассоциативный кэш L2 емкостью 96 КБ 2-канальный частично ассоциативный 2-портовый с 2-тактным доступом
Блокируется при числе непопаданий, равном 2 8
Число ФИУ 4 6
Емкость файла 32(I) 80(I),2 копии
регистров 32(FP) 72 (FP)
Переименование регистров нет да
Внеочередное выполне- ние команд нет да
Динамическое предска- зание переходов да усовершенствованное
Шина внешнего кэша системная выделенная
Поддержка мультимедиа нет да
SPECint95/SPECfp95 18.4/21.3 30/50
Число транзисторов 9.3 млн 15.2 млн
Площадь, мм2 298 302
Корпус/контакты PGA/499 PGA/588

В Alpha 21264 применены 2-канальные частично-ассоциативные I- и D-кэши емкостью 64 Кбайт каждый. Очевидно, что вероятность попадания в такой кэш гораздо выше. Элиминируется и обмен данными между кэшами внутри чипа 21164. Емкость этого кэша в 2 раза больше, чем в SGI/MIPS R10000. Наибольшую емкость кэша на чипе сегодня имеет IBM P2SC - 128 Кбайт данных плюс 32 Кбайт для команд. Однако этот микропроцессор вообще не имеет вторичного кэша [8]. DEC добралась до таких частот, когда скорость распространения сигнала вызывает серьезные ограничения: cтановится необходимым, чтобы непосредственно взаимодействующие блоки микропроцессора располагались рядом [7]. D-кэш должен работать как с целочисленными ФИУ и ФИУ с плавающей запятой, так и с системной шиной. За увеличение емкости первичного кэша в 21264 пришлось заплатить увеличением времени доступа до 2 тактов. Двухтактный кэш L1 используется и в HP PA-8000, но в качестве внешнего. В HP PA-8500 планируется интеграция кэша L1 на чип (0.5 Мбайт I-кэш, 1 Мбайт D-кэш) с сохранением двухтактного доступа.

Очевидно, что увеличение в Alpha 21264 по сравнению с Alpha 21164 на 1 такт времени доступа в кэш L1 "c лихвой" компенсируется его большей емкостью и одноуровневой организацией. DEC оценивает уменьшение общей Пт из-за этого дополнительного такта в 4%. Альтернативные подходы привели бы к большему снижению Пт. D-кэш L1 в Alpha 21264 является двухпортовым и позволяет получать 2 независимых 64-разрядных результата за такт. Это достигается путем запуска нового доступа каждые полтакта - D-кэш работает на частоте 1 ГГц (в предположении 500 МГц частоты самого 21264). До 8 непопаданий в кэш L1 чипа 21264 не блокируют его работу.

В отличие от Alpha 21164, в Alpha 21264 внешний кэш (L2) использует выделенную (собственную) шину, подобно MIPS R10000, HP PA-8000/8200 или Intel Pentium Pro/Pentium II. Это очень важное усовершенствование. В Аlpha 21164 внешний кэш применяет для передачи данных 128-разрядную системную шину, что повышает нагрузку на шину в многопроцессорных системах и может отрицательно сказываться на масштабируемости. Кэш L2 в 21264 может работать на частотах 2/3, 1/2, 1/3 и 1/4 от тактовой частоты процессора, но не выше 333 МГц.

Общей проблемой высокочастотных микропроцессоров на сегодня является отсутствие микросхем SRAM для кэшей с большой тактовой частотой. Дешевые системы на базе 21264 будут использовать 133 МГц-кэш SRAM, подобный применяемому в Intel Pentium II/266. Однако пропускная способность кэша L2 в Alpha 21264 в 2 раза выше (до 2.1 Гбайт/с), чем у Pentium II - разрядность шины равна 128 против 64 в Pentium II. К моменту начала поставок Alpha 21264 на рынке ожидаются SRAM с частотой 200-250 МГц, чему отвечает пропускная способность кэша 3.2-4.0 Гбайт/с. Отметим, что SGI/MIPS R10000 работает с 200 МГц внешним кэшем как раз на 128-разрядной выделенной шине.

DEC совместно с фирмами Motorola и Samsung участвовала в разработке нового типа SRAM - "dual data". Они аналогичны 5 нс- SRAM, но за 1 такт через выходные шины отсылают данные сразу в 2 транзакции. Работа на частоте 167 МГц в этом случае эквивалентна 333 МГц-передаче данных. Такой кэш позволит достигнуть максимальной для 21264 пропускной способности - 5.3 Гбайт/с. Большее значение, 5.8 Гбайт/с, имеет cегодня только HP PA-8000.

По оценкам DEC, использование дешевого кэша с частотой в 1/4 от процессорной понижает целочисленную Пт на 5%, а Пт с плавающей запятой - не менее чем на 20 %. Задержка при обращении во внешний кэш составляет 12 тактов, а для 133 МГц кэша - 14 тактов. При этом, как и внутренний кэш, кэш L2 является неблокирующимся.

Одновременно с доступом в D-кэш L1 в Alpha 21264 осуществляется преобразование виртуальных адресов в физические с использованием буфера TLB емкостью 128 строк, что в 2 раза больше, чем в SGI/MIPS R10000; HP PA-8000 имеет TLB на 96 строк, PA-8200 - на 120 строк.

Функциональные исполнительные устройства

Пожалуй, самое главное отличие Alpha 21264 от 21164 - это применение в 21264 внеочередного выполнения команд (не в соответствии с порядком команд в коде программы) и переименование регистров на лету. Если Alpha 21164 имеет 32 целочисленных регистра и 32 регистра с плавающей запятой, то в 21264 есть 80 целочисленных физических регистров (имеется даже 2 копии этого файла) и 72 физических регистра с плавающей запятой. Внеочередное выполнение команд может иметь место как для очереди целочисленных команд, так и для очереди команд с плавающей запятой.

Чип Alpha 21264 способен выполнять до 6 команд за такт (поддерживаемый уровень - 4 команды за такт). В это число включены также команды загрузки регистров/записи в память. Команды выбираются из I-кэша, куда они попадают частично декодированными. Предварительное декодирование создает 3-разрядное поле, по которому определяется, к какому ФИУ cледует направить команду: целочисленному ФИУ общего назначения, (целочисленному) адресному АЛУ или ФИУ с плавающей запятой. Это 3-разрядное поле хранится вместе с командами в I-кэше.

Alpha 21264 имеет 6 ФИУ, из них 4 целочисленных: 2 - общего назначения, и 2 - адресных АЛУ. Последние отвечают за выполнение всех команд загрузки/записи в память и могут также выполнять простые арифметические и логические целочисленные операции. 2 ФИУ общего назначения производят арифметические и логические операции над целыми числами, операции сдвига и перехода. Одно из них умеет умножать, а другое - выполнять новые команды из мультимедийного расширения набора команд MVI (Motion-Video Instructions).

После окончательного декодирования "целочисленные" команды отправляются в очередь емкостью 20 строк. Простые целочисленные операции, например, сложение, могут выполняться в любых целочисленных ФИУ. С целью упрощения логики уже при постановке в очередь решается, направлять ли команду в целочисленные ФИУ общего назначения или в адресные АЛУ. Каждый такт команды из очереди, операнды которых доступны, арбитрируются на предмет направления в ФИУ. Выборка команд осуществляется не обязательно в соответствии с их расположением в программе.

Одновременно может выполняться 4 операции над целыми числами. Это требует файла целочисленных регистров с 8 портами чтения и 6 портами записи. Вместо этого разработчики по технологическим причинам продублировали файл целочисленных регистров. Каждая копия файла имеет 4 порта чтения и 6 портов записи. Каждому файлу ставится в соответствие свое целочисленное ФИУ общего назначения и АЛУ. Такой комплект оборудования DEC называла "кластером". Файлы регистров остаются синхронизированными, но это требует одного дополнительного такта для записи из АЛУ одного кластера в файл регистров другого кластера. По оценкам DEC, кластеризация понижает Пт в среднем на 1%. Последовательность взаимозависимых команд имеет тенденцию попадать в один и тот же кластер благодаря "сдвигу" доступности операндов на 1 такт.

ФИУ c плавающей запятой в Alpha 21264 всего 2. Их конвейеры имеют длину 4 такта, что больше, чем у HP PA-8000 (3 такта) и MIPS R10000 (2 такта). Представление об основных стадиях конвейеров МП 21264 можно получить из рис.2 [7]. Alpha 21264 может поддерживать одновременное выполнение 4 команд с плавающей запятой за такт в смеси из 50% операций загрузки регистров/записи в память, 25% умножений и 25% сложений. Как и MIPS R10000, Alpha 21264 может выдавать 2 результата с плавающей запятой (FLOP) за такт. Лишь микропроцессоры HP PA-8x00 и IBM Power2/P2SC способны выдавать 4 FLOP за такт. Операции деления и извлечения квадратного корня не конвейеризованы и занимают 16 и 33 такта соответственно.

Picture 2.

Рисунок 2.
Основные конвейеры МП Alpha 21264

Переходы

Важнейшим компонентом современных суперскалярных микропроцессоров является предсказание переходов. Неправильное предсказание заметно ухудшает Пт. Так, средняя задержка при неправильном предсказании в Alpha 21264 составляет свыше 11 тактов. Особенно важным является предсказание переходов для программ, ориентированных на решение коммерческих задач, для которых характерен большой процент команд условного перехода. Алгоритмы предсказания быстро развиваются; одни методы предсказания переходов оказываются точнее других, но разные алгоритмы хорошо работают на разных типах переходов. Попытка скомбинировать статическое и динамическое предсказания переходов предпринята в HP PA-8500 [5]. В Alpha 21264 реализована оригинальная комбинация двух методов динамического предсказания [7,9]. При этом комбинируются оценки двух таблиц: двухуровневой таблицы "локальных предсказаний" (1024 cтроки по 10 бит плюс 1024 трехразрядных строки в "сводной" таблице второго уровня), индексом в которой является счетчик команд, и одноуровневой таблицы глобальной истории предсказаний с 2-разрядными полями истории. В третьей таблице ведется "история" обоих предсказаний, на основании которой для каждого перехода динамически выбирается лучший алгоритм. Эта таблица имеет емкость 4096 двухразрядных полей.

Оценка точности предсказания переходов для тестов SPECint95 составляет порядка 95% [7]. О столь высоком значении среди ныне "действующих" чипов сообщалось только для МП AMD K6.

Даже в случае правильно предсказанного перехода в Alpha 21264 из-за двухтактного доступа к I-кэшу приходится предпринимать особые меры по уменьшению задержек, связанных с переходом [7]. Каждая строка в I-кэше содержит 4 команды вместе с дополнительными полями, относящимися к предсказанию, какая строка будет выбираться следующей. Преимуществом 21264 является то, что выборка команд происходит относительно автономно (от работы остальных блоков МП), при этом в декодер направляется по 4 команды за такт.

Подобно многим другим МП, Alpha 21264 имеет стек адресов возврата, применяемый для организации эффективного выхода из вызванных подпрограмм. Этот стек больше, чем в других МП, и позволяет аккуратно отслеживать до 32 уровней вызова подпрограмм.

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

Системная шина и оценки производительности

64-разрядная системная шина Alpha 21264 может работать на частотах до 333 МГц, чему соответствует пиковая пропускная способность 2.7 Гбайт/с (поддерживаемое значение - 2.0 Гбайт/с). Это выше, чем в славящихся своей высокой пропускной способностью чипах IBM Power2/P2SC (максимальная пиковая величина - для 77 МГц Power2 - равна 2.5 Гбайт/с). Как и для внешнего кэша, для системной шины могут применяться делители тактовой частоты процессора.

Фактически эта шина осуществляет соединение "точка-точка", что говорит об ориентации на применение коммутаторов вместо традиционной системной шины. Коммутаторы используются в известных многопроцессорных cc: NUMA-системах SGI Origin 2000, cерверах cерии SPP от Convex/HP и др. Можно предположить, что подобное строение будет применяться и в будущих мультипроцессорных системах DEC/Compaq с кодовым названием Wildfire, которые должны базироваться на Alpha 21264.

В многопроцессорной системе каждый процессор 21264 имеет свой канал в оперативную память, хотя пропускная способность самой системы памяти разделяется процессорами. Системная шина использует протокол с расщеплением транзакций; до 16 ссылок к памяти могут обрабатываться одновременно. Каждый процессор должен иметь собственное соединение с реализующим интерфейс системной шины набором микросхем "Цунами". Нельзя просто добавить на шину второй процессор - это нарушает связь "точка-точка". Цунами поддерживает соединение с двумя процессорами; возможно создание "4-процессорной" версии. Набор микросхем Цунами позволяет демультиплексировать 64-разрядные данные шины в 128-, 256- и даже 512-разрядный интерфейс оперативной памяти на SDRAM, а также подсоединять до 2 64-разрядных шин PCI. Ширина тракта к оперативной памяти и число шин PCI определяется количеством используемых микросхем разного типа из набора Цунами.

Alpha 21264 создается на базе 0.35 мкм-технологии и имеет 15.2 млн транзисторов против 9.3 млн транзисторов в 21164 и 7.5 млн транзисторов в Pentium II. Ожидаемая площадь нового МП - около 302 мм2, что очень близко к площади Alpha 21164 (298 мм2); рассеяние тепла составит около 60 ватт при тактовой частоте 500 МГц (около 72 ватт при тактовой частоте 600 МГц). Cтоимость производства этого МП, упакованного в 588-контактный корпус PGA, оценивается около 300 долл., - ниже, чем когда-то оценивали себестоимость 21164. Возможный диапазон частот этого МП - от 500 до 667 МГц [10]. Поставки Alpha 21264 ожидаются в начале 1998 г; в середине 1998 г. можно ожидать появление 21264А на технологии 0.25 мкм. Тактовая частота может быть увеличена при этом до 800 МГц, а рассеяние тепла немного возрастет. Наконец, фирма Samsung объявила недавно о планах производства 21264 по технологии 0.18 мкм (EV68); тактовая частота при этом будет увеличена до 1 ГГц.

Кроме того, планируется также появление 21264РС, который будет дешевле, чем 21264А, благодаря уменьшенному в 2 раза размеру кэш-памяти и более простому интерфейсу памяти. 21264РС мог бы составить конкуренцию будущему МП Intel Willamette (развитие линии Pentium Pro) при построении однопроцессорных систем под Windows NT.

Оценки производительности для 500 МГц Alpha 21264 cоставляют SPECint95/fp95= 30/50, что почти в 2 раза выше, чем сегодняшние рекордные показатели. Поддерживаемая пропускная способность оперативной памяти на тестах STREAMS составит при этом около 1.6 Гбайт/с против примерно 300 Мбайт/с для МП 21164 с частотой 500 МГц. Производительность МП 21264 на тестах Linpack (N=1000) ожидается порядка 900 MFLOPS против 680 MFLOPS для МП 21164 с частотой 500 МГц. Для 600 МГц МП 21264 SPECint95/fp95 = 40/60. По некоторым оценкам, Alpha 21264 c частотой 1 ГГц будет иметь SPECint95 около 100, а SPECfp9S - порядка 150.

Выводы

Приведенные в статье данные показывают, что Alpha 21264 имеет реальные шансы сильно обогнать своих конкурентов по производительности, и эта позиция вряд ли может быть поколеблена в 1998 г. Единственным потенциальным конкурентом может оказаться PA-8500, обладающий уникальным интегрированным на чипе D-кэшем емкостью 1 Мбайт. Его преимущества могут проявиться для приложений, рабочее множество страниц которых не помещается в D-кэш L1 Alpha 21264, но помещается в первичный кэш PA-8500. Другие фирмы смогут конкурировать с Alpha 21264, только полностью оптимизировав свои новые чипы под 0.25 мкм-технологию [7].

Известно, что уже начались разработки процессора Alpha 21364, появление которого ожидается в 1999 г. Его тактовая частота может достигнуть 1 ГГц [10], а производительность превысит 100 SPECint95 (по некоторым данным - достигнет 150). В то время как ожидаемое значение SPECint95 для первого поколения Intel/HP Merced - порядка 40-50. Следует отметить, что реализация этих планов во многом может зависеть от ряда маркетинговых факторов: складывающихся после продажи производства МП Alpha фирме Intel новых взаимоотношений DEC c этой компанией, возможной коррекции планов с учетом слияния DEC и Compaq, успехов Samsung по продвижению на рынок компьютеров на базе наиболее мощных МП Alpha и др.

Развитие линии МП DEC Alpha во многом представляется принципиальным вообще для развития МП RISC-архитектуры. Это предопределяет и повышенный интерес к новым МП ALpha 21264.

Работа проводилась в рамках проекта РФФИ 98-07-90290.)


Литература

  1. М.Кузьминский, СomputerWorld/Russia, # 47 , 1997
  2. А.Шадский, Открытые системы, # 3, 1994, c.12
  3. М.Кузьминский, ComputerWorld/Russia, # 2, 1995 21164
  4. М.Кузьминский, Открытые системы, # 5, 1995, c.15
  5. М.Кузьминский, Открытые системы, # 3, 1997, c.6
  6. В.Аваков, Открытые системы, # 3, 1995, c.62
  7. М.Кузьминский, СomputerWorld/Russia, # 14, 1997
  8. L.Gwennapp, Microprocessor Report, v14, # 10, 1997, p.18
  9. S.McFarling, "Combining Branch Predictors", DEC Technical Note TN-36, June 1993
  10. N.Novakovich, http://www.byte.com/art/9706/sec18/art8.htm