R5000: пересадка сердца

Михаил Кузьминский

Рабочие станции INDY фирмы Silicon Graphics снискали себе признание как относительно дешевые компьютеры, которые широко используются в приложениях, требующих хороших графических возможностей, например при построении Web-серверов, проведении издательских работ и в других областях компьютерной графики, анимации и видеообработки. Эти рабочие станции выпускаются уже несколько лет. В начале нынешнего года SGI объявила о производстве микропроцессоров MIPS R5000, которыми стали комплектоваться компьютеры Indy. Пользователи активно обсуждали сравнительную производительность процессоров R5000 и R4400, которыми комплектовались более мощные рабочие станции SGI Indigo2.

В средине октября Silicon Graphics должна анонсировать новую компьютерную продукцию. По имеющимся у автора данным, в начале октября SGI планирует представить две новые серии рабочих станций. Одна из них будет использовать микропроцессоры R5000 и шину PCI для ввода-вывода.

Процессоры R5000 оказались очень удачными, и это "сердце" Indy, вероятно, будет пересажено в новую оболочку.

Архитектурные особенности R5000

В микропроцессорах R5000, как и в других наиболее мощных процессорах MIPS/SGI (R8000, R10000), реализована система команд MIPS-IV. Все названные микропроцессоры MIPS являются 64-разрядными.

Таблица 1. Сравнительные характеристики некоторых микропроцессоров
Характеристика
MIPS R5000
MIPS R4600
MIPS R4400
Intel Pentium Pro
Частота, МГц
200
133
250
200
Кэш L1 (I/O), Кбайт
32/32
16/16
16/16
8/8
Число ступеней конвейеров
5
5
8
14
Уровень суперскалярности
2
1
1
3
Площадь кристалла, кв.мм.
84
70
100
196
Число транзисторов, млн.шт.
3.6
1.8
2.3
5.5

Исполнительные устройства. В отличие от R4400 и R4600, R5000 является суперскалярным микропроцессором, способным выполнять две команды за такт - иными словами, его уровень суперскалярности равен 2. Он имеет раздельные блоки для выполнения операций с плавающей запятой и целочисленных операций, чего нет у его предшественника R4600. Операции блока для работы с плавающей запятой могут протекать параллельно с функционированием целочисленного блока или с выполнением команд загрузки регистров или записи в память. Одновременное выполнение целочисленных операций и инструкций с плавающей запятой существенно ускоряет работу приложений типа CAD, которым свойственны подобные смеси команд. Смеси операций с плавающей запятой и команд загрузки характерны для геометрических расчетов, которые, следовательно, будут также эффективно ускоряться в R5000.

Особенностью архитектуры MIPS-IV является наличие четырех команд, в которых объединены сразу две математические операции с плавающей запятой - умножение и сложение/вычитание. Это - команда MADD (a=b*c+d), а также команда MSUB, где сложение заменено вычитанием, и 2 команды NMADD и NMSUB: они аналогичны MADD и MSUB, но в них в регистр результата заносится число с противоположным знаком. Эти команды хорошо использовать для ускорения различных приложений, включая и геометрические вычисления. Все команды с плавающей запятой, кроме деления и извлечения квадратного корня (в т.ч. и команды типа MADD), в R5000 имеют время выполнения 1 такт. Команда MADD в R8000 также занимает 1 такт, но в R10000 она требует два такта.

При сравнении R5000 и R4400 следует отметить, что в R4400 операции с плавающей запятой выполняются не конвейерным, а итерационным способом. Кроме того, в R5000 конвейеры короче, чем в R4000/4400 и R4600/4700. Возможность выполнения команд типа MADD одновременно с операциями загрузки/записи обуславливает высокую производительность R5000 для графических, особенно для трехмерных, приложений. В частности, выполненная фирмой оптимизация библиотеки OpenGL подтвердила высокую эффективность R5000.

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

Кэш-память и буферизация. В R5000 большой объем кэш-памяти первого уровня (L1): 32 Кбайт для данных и 32 Кбайт для команд. Это в 4 раза больше, чем в Intel Pentium Pro, и в 2 раза выше, чем в R4400, R4600 и даже R8000. Только в R10000 кэш-память L1 имеет такую же емкость. Большой кэш L1 позволяет выполнять некоторые приложения, элиминируя обращения ко вторичной (L2) кэш-памяти или оперативной памяти (ОП).

Оба кэша L1 являются двуканальными частично-ассоциативными, что, как известно, увеличивает вероятность попадания в кэш по сравнению с прямоотображаемой (direct-mapped) схемой. Размер строки в кэше L1 составляет 32 байта. Эти строки могут записываться в ОП с применением алгоритмов сквозной записи или обратной записи, причем для каждой страницы памяти может устанавливаться свой алгоритм.

Оба кэша L1 имеют виртуальную индексацию. Это означает, что, как только сгенерирован виртуальный адрес, начинается обращение в кэш-память, без преобразования виртуального адреса в физический. Оба кэша имеют еще и т.н. физические теги. После вычисления физического адреса он сравнивается с тегом кэша команд или данных. Если операция сравнения прошла успешно, данные выбираются из кэш-памяти. Если же информация с запрашиваемым адресом в кэше L1 отсутствует, фиксируется непопадание в кэш. Кроме того, наличие физических тегов позволяет обеспечивать когерентность кэшей L1 и L2. В кэше L1 используется оригинальное решение: он содержит избыточные битовые столбцы. В процессе тестирования кэша сначала проверяется целостность битовых столбцов, и, если найдены дефектные столбцы, они логически заменяются исправными. В результате повышается и надежность микропроцессора, и "выход годных".

R5000 обладает встроенной поддержкой кэша L2 - специальным интерфейсом. Это свойство "стандартно" для современных высокопроизводительных микропроцессоров, но оно отсутствует, например, в R4600 и Pentium. Кэш L2 может иметь объемы 512 байт, 1 или 2 Мбайт и работать в режимах сквозной или обратной записи. Доступ в кэш L2 происходит по 64-разрядной системной шине, которая, следовательно, разделяется при обращении к оперативной памяти и к кэшу L2. В этом недостаток R5000. Однако следует отметить, что в таком высокопроизводительном микропроцессоре, как Alpha 21164, доступ к внешнему кэшу также происходит через системную шину. Некэшируемые операции, например модификация образа (экрана) при обработке видеоинформации, могут передавать данные непосредственно на шину без дополнительных задержек из-за работы схем вторичной кэш-памяти.

Для повышения пропускной способности при обращении в ОП доступ инициируется одновременно со сравнением тега кэша L2. Если в нем находится требуемый адрес, обращение в память завершается. В противном случае экономится общее время доступа.

Для ускорения процесса преобразования виртуальных адресов памяти в физические в R5000 применяется буфер TLB. В R5000 он является полностью ассоциативным и содержит 48 парных строк. Каждая такая пара содержит 2 номера физических страниц в ОП, четных и нечетных. Младший бит строки TLB указывает на то, какая из физических страниц используется. Поскольку в программах часто происходит обращение к последовательным адресам памяти, существует большая вероятность, что при обращении к TLB сначала понадобится одна страница, а потом еще одна, смежная с ней. В некотором смысле можно считать, что емкость буфера TLB в R5000 эквивалентна 96 строкам. Такое же число строк имеет TLB в R4600 и R4400, а в R10000 TLB содержит 64 строки. Конструкция TLB в виде парных строк упрощает схему и позволяет реализовать процессор в меньшем объеме оборудования, т.е. в конечном счете уменьшить площадь чипа. Совместимость TLB c семейством R4x00 обеспечивает совместимость их двоичных кодов с соответствующей версией Windows NT.

Важной архитектурной особенностью R5000 является наличие специального буфера записи емкостью в одну строку кэша. Он позволяет записать данные в процессор без обращения к системной шине. Содержимое буфера записи может быть передано в ОП позднее. Графические приложения, требующие модификации образа (экрана), используют некэшируемую запись. Аналогично кэшируемой записи, такой буфер позволяет процессору записать туда данные и сразу продолжить работу по записи следующих данных. Запись в R5000 проходит гораздо эффективнее, чем в R4400. Дело в том, что в R5000 запись конвейеризована, а в R4400 между последовательными циклами записи встраиваются два холостых такта.

По сравнению с R4400 и R4600, в R5000 упрощена схема синхронизации. Она основывается на одном внешнем синхросигнале, при этом внутренняя тактовая частота R5000 может быть в 2, 3 или 4 раза больше. Максимальная тактовая частота системного интерфейса равна 100 МГц. Анонсированы варианты R5000 c тактовыми частотами 150, 180 МГц (эти чипы используются в рабочих станциях INDY) и 200 МГц. К концу нынешнего года планировался выпуск R5000 с частотой 250 МГц, а в начале 1997 г. - более быстродействующей версии R5000A.

Таблица 2. Данные тестов SPEC95
Параметр
R5000PC
R5000SC
R5000SC
R5000
R5000
R4400
Pentium Pro
Alpha21064A
Alpha21064A
Частота, МГц
150
150
180
200
250
250
200
233
300
SPECint95
3.0
3.7
4.1
5.5
6.8
4.4
8.6
4.3
5.2
SPECfp95
3.6
4.2
4.4
5.5
6.8
-
6.5
5.1
5.8
Примечания:
1. PC-процессор без кэша L2,SC-процессор c кэшем L2.
2. Для R5000 с частотами 200 и 250 МГц приведены оценки SPEC96.
3. Для R4400 результат приведен для станции RM600-420 от SNI.
4. Для DEC Alpha21064A даны значения в рабочих станциях модели 255.

Технология и производительность

Стремление по возможности упростить архитектуру R5000 привело к тому, что площадь чипа оказалась рекордно низкой. Она составляет 80-90 кв.мм (84 кв. мм для 200 МГц версии) в зависимости от изготовителя. В R5000 используется 0,35 мкм-технология, при этом чип содержит 3,5 или 5 млн. транзисторов, смотря по тому, сколько ячеек SRAM в кэш-памяти. NEC объявила о планах производства собственной версии VR5000, которую затем планируется выпускать уже на базе 0,25 мкм-технологии. Малая площадь кристалла, простота изготовления, надежность кэш-памяти способствуют большому "выходу годных" и дешевизне микропроцессора. При базовом напряжении 3,3 В и тактовой частоте 200 МГц пиковое рассеяние тепла составляет всего 10 Вт, что гораздо ниже, чем в R10000.

R5000 может быть упакован в дешевый 223-штырьковый корпус PGA. Для сравнения, число контактов в Pentium Pro существенно больше - аж 387. Для чипов с тактовой частотой системного интерфейса в 100 МГц используется 272-контактный корпус BGA. SGI произвела очень дешевый микропроцессор при достаточно хорошей производительности. Он предназначен в первую очередь для рынка относительно недорогих компьютеров, ориентированных на графические двумерные, а особенно трехмерные приложения. Стоимость Pentium Pro/200 МГц почти в два раза выше R5000. Это кажется дорого даже на фоне традиционно считающихся дорогими микропроцессоров DEC Alpha. При этом R5000 не особенно уступает им на тестах SPEC95.

Архитектура R5000 хорошо пойдет как раз для графических приложений. Она обеспечивает высокую производительность при работе с числами с одинарной точностью, что характерно для геометрических вычислений. Разработчики R5000 утверждают, что тесты SPEC95 не отражают его реального быстродействия. Например, в тестах известного программного продукта ProENGINEER фирмы Parametric Technology рабочая станция Indy R5000SC/180 МГц под ОС IRIX затратила 221 секунду, а Pentium Pro/200 МГц под Windows NT - 333 секунды. R5000SC/150 МГц опережает R4400/200 МГц в расчетах с одинарной точностью, но уступает на двойной точности. Аналогично, R5000SC/180 МГц близка по производительности к R4400/250 МГц.

Пиковая производительность R5000 при частоте 200 МГц благодаря однотактовой реализации команд типа MADD составляет 400 MFLOPS, что выше, чем в R8000/90 МГц, и равно производительности R10000/200 МГц. Конечно, простая архитектура R5000 не позволяет достичь такого уровня производительности, как в R8000 и R10000. Однако неудивительно, что сердце рабочих станций Indy - микропроцессор R5000 - может быть пересажено и в компьютеры SGI нового поколения. Ориентированные в первую очередь на рынок графических приложений, компьютеры на базе R5000 стоить 10 тыс. долл. и развернуть "наступление вниз" - на позиции ПК на базе Pentium Pro. Пожалуй, единственными серьезными конкурентами для них могут быть младшие модели рабочих станций Digital. Однако прекрасный мультимедийный, прежде всего графический инструментарий - основной козырь SGI, который позволяет ей надеяться на предпочтительное внимание пользователей. Возможности наращивания тактовой частоты R5000, заложенные в его архитектуру средств поддержки мультипроцессирования (насколько известно автору, в выпускаемых чипах пока не реализованные), создают для этого надежную базу.

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