Микропроцессор Sun UltraSPARC III

Ожидание выпуска Merced, 64-разрядного "тяжеловеса" корпорации Intel, уже сейчас сказывается на производственных планах поставщиков профессиональных компьютерных систем, особенно в секторе рабочих станций и серверов на базе процессоров архитектуры RISC. Компания Hewlett-Packard, которая вместе с Intel работает над созданием Merced, планирует прекратить производство собственных микропроцессоров архитектуры PA-RISC. Вероятно, это произойдет после выпуска процессоров PA-8500 и PA-8700. Постепенно свернет разработку высокопроизводительных процессоров MIPS R10000 и - предположительно после выхода R12000 и R14000 - полностью переключится на Merced компания Silicon Graphics. Более того, корпорации HP, DEC, Sun и SGI единодушно объявили о намерении перенести свои варианты операционной системы Unix на платформу Merced. Вокруг первых трех из этих будущих диалектов Unix для Merced немедленно сложились мощные "группы поддержки" из числа крупнейших производителей компьютерных систем.

Причина подобных пертурбаций предельно проста: производители микропроцессоров архитектуры RISC и основанных на них компьютеров опасаются (либо почти уверены), что Merced превзойдет по производительности их собственные детища.

Сама же Intel уже возвестила закат эры микропроцессоров архитектуры RISC и наступление эпохи "пост-RISC".

Однако так ли страшен Mecred производителям конкурирующих архитектур, "как его малюют"? На фоне известия о задержке Merced до 2000 года характеристики не так давно выпущенного Alpha 21264, равно как и предварительные сведения о производительности нового поколения Sun UltraSPARC III, которое должно дебютировать в следующем году, свидетельствуют скорее о том, что соперники не собираются сдаваться без боя. Итак, посмотрим, что готовит своим пользователям компания Sun Microsystems в будущем микропроцессоре UltraSPARC III.

Микроархитектура UltraSPARC III

Общее строение UltraSPARC III представлено на рис. 1. Обзор архитектуры процессора мы начнем с кэш-памяти. В UltraSPARC III предусмотрены четырехканальный частично-ассоциативный D-кэш (кэш данных) первого уровня емкостью 64 Кбайт и четырехканальный частично-ассоциативный I-кэш (кэш инструкций) первого уровня емкостью 32 Кбайт; оба кэша неблокирующиеся.

Следует обратить внимание на большую емкость D-кэша, кстати равную емкости кэша Alpha 21264. В обоих случаях кэш данных первого уровня имеет двухтактный доступ, что обусловлено, по всей видимости, высокими частотами этих процессоров (предполагается, что UltraSPARC III будет 600-мегагерцевым).

Кроме кэш-памяти первого уровня, в UltraSPARC III имеется также кэш предварительной выборки (prefetch) емкостью 2 Кбайт, также являющийся четырехканальным частично-ассоциативным. В нем может поместиться до восьми результатов запросов на предварительную выборку. Использование механизма предварительной выборки позволяет избежать блокировки кэша первого уровня, которая могла бы возникнуть из-за превышения порога для числа непопаданий в кэш. Кэш предварительной выборки поддерживает одновременное выполнение двух команд загрузки регистров с общей задержкой всего три такта; за 14 тактов процессора из кэша второго уровня в кэш предварительной выборки можно записать 64 байт данных.

В обоих кэшах первого уровня содержатся также буферы быстрой переадресации (I-TLB и D-TLB соответственно), ускоряющие преобразование 64-разрядных виртуальных адресов в 43-разрядные физические. Емкость I-TLB составляет 128 строк, а D-TLB - 512 строк. Кроме 128-строчного буфера, I-TLB включает еще 16-строчный полностью ассоциативный буфер. Надо сказать, что в последнее время разработчики RISC-процессоров уделяют больше внимания буферам TLB; увеличение их емкости предусмотрено архитектурами HP PA-8x00, SGI/MIPS R1x000 и Alpha. В процессоре Alpha 21264 буферы I-TLB и D-TLB имеют емкость по 128 строк.

Еще один тип кэш-памяти UltraSPARC III - это четырехканальный частично-ассоциативный кэш записи емкостью 2 Кбайт. В рассматриваемом микропроцессоре команды записи в память перед выполнением помещаются в очередь записи длиной восемь строк. Запись может производиться либо в D-кэш первого уровня, либо в память более низкого уровня. В последнем случае данные как раз и помещаются сперва в кэш записи; в отличие от D-кэша, использующего алгоритм сквозной записи, здесь применяется алгоритм обратной записи.

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

Теги кэша второго уровня в UltraSPARC III расположены на основной микросхеме процессора. Как считают разработчики Sun Microsystems, если бы в кэш-памяти второго уровня использовались 200-мегагерцевые микросхемы SRAM, а память тегов размещалась непосредственно на микросхеме кэш-памяти, то задержка при непопадании в кэш второго уровня возросла бы на 10 тактов, а пропускная способность уменьшилась втрое.

Память тегов кэша второго уровня в UltraSPARC III достаточна для поддержки кэша емкостью до 8 Мбайт. Для современных процессоров это максимальная величина. Однако у интеграции в микропроцессор памяти тегов есть и оборотная сторона: память тегов занимает на кристалле почти такую же площадь, как I-кэш первого уровня.

Перейдем теперь к анализу исполнительных блоков UltraSPARC III. Большой неожиданностью для автора явилось то, что разработчики Sun чуть ли не единственные из числа создателей высокопроизводительных микропроцессоров отказались от сложных схем внеочередного спекулятивного (по предсказанию) выполнения команд. Вместо этого они предпочли более простую структуру ядра процессора, хотя, как мы увидим, элементы внеочередного выполнения команд присутствуют в UltraSPARC III непосредственно на стадии выполнения.

Полезно напомнить, что Digital, которая долгое время шла по пути повышения тактовой частоты при сохранении достаточно простой суперконвейерной архитектуры, в Alpha 21264 отказалась от этого подхода. Sun же в UltraSPARC III "решилась" на увеличение числа стадий конвейера до 14. Насколько мне известно, это самый длинный конвейер среди всех современных универсальных микропроцессоров архитектуры RISC. Общепризнанное слабое место подобного подхода - проблема заполнения длинных конвейеров. Так, связанная с неправильным предсказанием перехода задержка в UltraSPARC III составляет 7 тактов.

UltraSPARC III - суперскалярный микропроцессор, способный выполнять до шести команд за такт (поддерживаемое значение - четыре команды за такт). Команды выбираются из I-кэша первого уровня и помещаются в очередь команд длиной 20 строк. Выборка команд на выполнение осуществляется в порядке, заданном кодами программы, однако результат выполнения последующей команды может появляться раньше, чем предыдущей.

Непосредственно на стадии выполнения UltraSPARC III допускает внеочередное спекулятивное выполнение команд с применением известной техники переименования регистров. Для этого в UltraSPARC III предусмотрено два файла регистров: файл рабочих регистров (32 регистра) и файл обычных архитектурных регистров. Программист "видит" архитектурные регистры, устанавливаемые в соответствии с правилами архитектуры SPARC V9. Этот подход используется для организации точной обработки исключительных ситуаций.

За выполнение целочисленных операций отвечают два блока. Блок, обозначенный на рис. 1 как "I-АЛУ", содержит фактически два устройства, каждое из которых может выполнять все однотактные операции. Блок, обозначенный на рис. 1 как "АЛУ, загрузка", выполняет многотактные команды (умножение, деление) и рассчитывает адреса в командах предварительной выборки. В этот блок команды поступают на выполнение по одной, в то время как всего микропроцессор может выдавать на выполнение до четырех целочисленных команд за такт, одна из которых должна быть командой загрузки или условной пересылки. Функциональных устройств для операций с плавающей запятой тоже два; одна операция сложения и одна операция умножения могут выдаваться на выполнение в каждом такте. В этих устройствах выполняются также и "графические" команды UltraSPARC III.

Что касается предсказания переходов, то разработчики UltraSPARC III пошли по пути увеличения емкости таблицы предсказания переходов (ее размер - 16К строк). Это позволило добиться 95% точности предсказания на тестах SPEC95, что близко к аналогичным показателям для Alpha 21264 и AMD К6. Надо отметить, что в UltraSPARC III буфер адресов перехода отсутствует, поэтому при выполнении правильно предсказанного перехода возникает дополнительная задержка. Однако другой популярный механизм буферизации, стек адресов возврата, в UltraSPARC III представлен; он имеет емкость восемь строк и используется, как следует из названия, для запоминания адресов возврата при вызове подпрограмм.

Пожалуй, самое примечательное в UltraSPARC III - особенности интерфейсов процессоров c другими составляющими архитектуры компьютера (рис. 2). Кроме уже упомянутой интегрированной на кристалле поддержки кэша второго уровня, к ним следует отнести: 256-разрядную шину кэша второго уровня с пиковой пропускной способностью 6,4 Гбайт/с при тактовой частоте 200 МГц; 128-разрядную шину локальной оперативной памяти с пропускной способностью 2,4 Гбайт/с при рабочей частоте модулей SDRAM 150 МГц и системную шину. Интеграция процессора с контроллером оперативной памяти позволила уменьшить задержку при выборке на 80 нс.

Рассматривая многопроцессорную систему, не забудем и об удаленной оперативной памяти - локальной для "чужого процессора". Доступ к ней осуществляется по системной шине; последняя в UltraSPARC III состоит из управляющей шины, включая 43 линии физического адреса, и 128-разрядной шины данных. При тактовой частоте системной шины, равной 150 МГц, ее пиковая пропускная способность составит 2,4 Гбайт/с; столь широкая полоса пропускания присуща только UltraSPARC III. Системная шина поддерживает расщепленную обработку: можно запустить и выполнять одновременно до 15 запросов.

Реализация и перспективы

UltraSPARC III будет изготавливаться по разработанной компанией Texas Instruments 0,21-микронной технологии с шестислойной металлизацией, что и позволит добиться высокой тактовой частоты. На кристалле площадью 330 кв. мм будет располагаться около 16 млн. транзисторов (для сравнения: в Alpha 21264 -15,2 млн. транзисторов при площади порядка 300 кв. мм). Ожидаемое тепловыделение - 70 Вт (в 21264 - 72 Вт). Из-за широких внешних шин UltraSPARC III нуждается в корпусе с большим числом контактов. Он упаковывается в 1200-контактный корпус LGA (это еще один рекорд современной микропроцессорной индустрии). Cоответственно, высокой должна быть и себестоимость UltraSPARC III - 360 долл. против 300 долл. для Alpha 21264.

Запланированный на начало 1999 года выпуск UltraSPARC III при уровне производительности, который, как предполагается, составит SPECint95/SPECfp95 =35/60, что примерно соответствует уровню, достигнутому Alpha 21264, станет одним из главных факторов, определяющих ситуацию и в будущем, после появления Merced. Если исходить из этих оценок производительности UltraSPARC III, с одной стороны, и из цифр, которые называют для Merced представители Intel (SPECint95=40-50) - с другой, то в отношении перспектив лучших процессоров архитектуры RISC до 2000 года включительно можно выразить, скажем так, сдержанный оптимизм. Однако новая идеология, нашедшая отражение в Merced, несет в себе потенциальные преимущества, которые в будущем могут оказаться решающими. Поэтому огромное значение приобретает преимущество перед Intel во времени, которое получит Sun Microsystems после появления первых версий UltraSPARC III. Однако сумеет ли компания воспользоваться им и до дебюта Мerced еще увеличить производительность своих микропроцессоров?


Михаил Кузьминский - старший научный сотрудник Центра компьютерного обеспечения Института химических исследований РАН. С ним можно связаться по телефону (095) 135-6388.