Микропроцессоры IBM P2SC
В сегодняшней войне на рынке высокопроизводительных микропроцессоров мелькают изделия "большой пятерки" (DEC, HP, IBM, SGI и Sun) и Intel. Хотя, обсуждая в этом аспекте IBM, обычно говорят о PowerPC, лидерами производительности, особенно в расчетах с плавающей запятой, остаются микропроцессоры с архитектурой POWER2.
Эти микропроцессоры с самого начала имели ярко выраженные черты, резко выделяющие их среди других. В то время как пользователи и журналисты охали над очередным повышением тактовой частоты, скажем на 50 МГц, "медленные", с точки зрения тактовой частоты (всего "каких-то" 66-71,5 МГц), микропроцессоры POWER2 давным-давно достигли на тестах Linpack c векторами средней длины (N=100) уровня производительности порядка 130-140 MFLOPS, к которым другие фирмы еще только подбирались. Но, как и следовало ожидать, подобрались и превзошли. От корпорации IBM требовался адекватный ответ. И она его дала - объявив в конце прошлого года о поставках систем на базе новых микропроцессоров P2SC (POWER2 Super Chip).
Тактовая частота P2SC повышена почти вдвое относительно старого поколения POWER2: выпускаются процессоры с частотой 120 и 135 МГц. Казалось бы, такие средние, по современным меркам, величины! На самом деле все гораздо хитрее. POWER2 отличается очень высоким "уровнем суперскалярности" - сразу 6 команд может выполняться за один такт. Но у старых модификаций POWER2 была своя ахиллесова пята - эти микропроцессоры реализованы в виде набора аж из 8 микросхем! Такая сложная организация обуславливала и низкие величины достигнутых частот: синхронизовать 8 микросхем крайне сложно.
Поговаривали, что поднять тактовую частоту POWER2 вообще уже не удастся и что именно поэтому IBM считает главной линией развития PowerPC. Действительно, пик активного развития POWER2 пришелся на 1993-1994 гг. Однако инженерный гений IBM, как это уже не один раз бывало, решил и эту сверхсложную задачу - исходные 8 микросхем в P2SC были собраны воедино. О масштабах выполненных работ говорит и то, что конечное изделие, процессор P2SC, содержит около 15 млн. транзисторов.
Здесь на память приходит другой, противоположный пример. Известный микропроцессор R8000 от SGI/MIPS также реализован в виде набора микросхем (правда, их число вдвое меньше, чем в POWER2). Он также имеет скромные тактовые частоты - сначала было 75, а затем 90 МГц. SGI могла еще увеличить тактовую частоту, но после определенной доработки. Однако фирма предпочла сосредоточиться на развитии линии R10000, имеющей однопроцессорную реализацию. Отказ от развития R8000 представляется несколько поспешным, т. к. R10000 пока не сильно опережает R8000 на ряде тестов с плавающей запятой.
Но вернемся к IBM: пора приоткрыть завесу над P2SC и посмотреть, как IBM удалось справиться со сложнейшей задачей интеграции 8 микросхем в одну.
Архитектура P2SC
Можно сказать, что основу архитектуры микропроцессоров P2SC, как и предшествующих моделей POWER2, составляют 5 блоков. Блок, обозначенный на рисунке как кэш команд (I-кэш), фактически является устройством управления, отвечающим за диспетчеризацию команд и обработку переходов. Выполнением целочисленных операций занимается функциональное устройство для чисел с фиксированной запятой. Оно же выполняет декодирование соответствующих команд. Декодирование команд с плавающей запятой осуществляется в функциональном устройстве с плавающей запятой. Этот блок включает два одинаковых исполнительных устройства для работы с числами с плавающей запятой. Устройство управления оперативной памятью (ОП) отвечает за обмен данными не только с ОП, но и с подсистемой ввода-вывода - через контроллер шины MicroChannel. Наконец, блок кэш данных (D-кэш) включает кроме собственно кэш-памяти схемы управления этим кэшем.
Поддержка во всех микропроцессорах единого архитектурного построения сочетается с обеспечением совместимости снизу вверх в ряду микропроцессоров POWER-POWER2-P2SC. Все реализации POWER2, включая P2SC, могут выполнять 6 команд за такт, в том числе 2 целочисленные команды и 2 команды с плавающей запятой; все процессоры POWER2/P2SC выполняют одновременно две команды FMA - "умножить и сложить" - над операндами с плавающей запятой. FMA требует 2 такта на выполнение и осуществляется в конвейерном режиме. Таким образом, за один такт POWER2 может выдавать 4 результата с плавающей запятой, т. е. пиковая производительность всех микропроцессоров POWER2/P2SC вчетверо выше тактовой частоты. Такого рода особенностью обладают и упомянутые выше микропроцессоры MIPS R8000, а также HP PA-8x00. Все микропроцессоры POWER2/P2SC имеют первичный I-кэш емкостью 32 Кбайт.
Однако реализации различных версий POWER2/ P2SC сильно отличаются друг от друга, поэтому следует учесть, что для каждого приложения существует своя оптимальная модификация. В основном эти отличия, кроме собственно тактовой частоты, касаются ширины магистралей и емкости кэш-памяти. В таблице 1 приведены некоторые сравнительные характеристики микропроцессоров POWER2/ P2SC, используемых в различных рабочих станциях RS/6000 и в узлах популярного суперкомпьютерного кластера IBM SP2.
Таблица 1.
Сравнительные характеристики POWER2/P2SC.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Естественно, в этой таблице представлена только часть характеристик, отличающих конкретные версии микропроцессоров друг от друга. Например, приведены размеры строк D-кэша: в RS/6000 модели 390 - 64 байт, в модели 39H - 128 байт, а в моделях 59х, в том числе использующих P2SC, - даже 256 байт. Эта емкость строки кэша существенно выше, чем у микропроцессоров других фирм. Число строк в буфере TLB, который служит для ускорения преобразования виртуальных адресов в физические, также различно: 128 - в микропроцессорах модели 390, 512 - в моделях 39H, 590, и 591, и 256 - в модели 595. Наконец, отличаются разрядности интерфейса ОП (тракта из ОП в D-кэш) и процессорной шины (из D-кэша в блок с плавающей запятой): в микропроцессорах модели 390 - 64 бит и 128 бит, соответственно, в 39H - 128 и 256 бит, а в моделях 59x - включая чипы P2SC - обе эти шины имеют разрядность 256 бит. Приведенные показатели, по современным меркам, также весьма высоки. Данные, относящиеся к разрядности интерфейса ОП, предполагают наличие не менее 4 плат ОП для моделей от 590 и выше и аналогичных узлов IBM SP2. Об этом не следует забывать покупателям, особенно IBM SP2, для которых, очевидно, очень важна высокая производительность. Здесь же целесообразно отметить, что шина памяти во всех моделях, кроме построенных на P2SC, работает на тактовой частоте процессора (при использовании P2SC - на половинной частоте); это также способствует высокой пропускной способности.
Микропроцессоры POWER2/P2SC отличаются очень большой емкостью первичного D-кэша при более скромных размерах (до 1-2 Мбайт) D-кэша второго уровня в микропроцессорах моделей 390 и 39H и вообще отстутствием внешнего D-кэша в моделях 59x. Микропроцессоры RS/6000 моделей 590 и 591 имеют наибольшую (256 Кбайт) емкость первичного D-кэша, но в P2SC его емкость вдвое меньше.
Можно предположить, что большой первичный D-кэш при (в предельном случае) отсутствии D-кэша второго уровня будет определять потребность в быстрой доставке данных в процессор из ОП для приложений, которые плохо удается локализовать в первичной кэш-памяти. Действительно, не только IBM SP2, но и рабочие станции моделей 59x по этому параметру опережают всех конкурентов (на тестах STREAM, оценивающих ПС ОП, модель 590 опережает ближайших соперников в 2-3 раза). Для этого и понадобились широкие магистрали, большая длина строки кэша и т. д.
Сравнительные характеристики процессоров P2SC
Теперь можно попытаться сформулировать, какие приложения наиболее удачно вписываются в архитектуру POWER2/P2SC. Если удается разместить рабочее множество страниц в D-кэше первого уровня, все будет ОК. Если это не получается, то преимущество могут перехватить конкуренты, предлагающие D-кэш большой емкости. Напомним, что, например, в SGI R8000 первичный D-кэш, расположенный на отдельном чипе, имеет емкость 4 Мбайт; аналогичный кэш в PA-8000 обладает емкостью 1 Мбайт. А современные внешние кэши данных - емкостью до 4 (MIPS R10000) и даже 8 Мбайт (DEC Alpha 21164).
Однако в научной сфере, особенно при работе с суперкомпьютерными приложениями, часто складывается ситуация, при которой не спасает никакой кэш, и все решает производительность тракта процессор-ОП. Здесь POWER2/P2SC снова получает однозначные преимущества.
Для более наглядного представления о возможностях P2SC интересно сопоставить их производительность с другими микропроцессорами. Грубо говоря, P2SC-системы 135 МГц имеют производительность в 2 раза выше, чем RS/6000 модель 39Н. Это следует из того, у что P2SC/135 МГц тактовая частота в 2 раза выше при той же частоте шины памяти, ширина которой в 2 раза больше, чем в 39Н. Однако размер D-кэша P2SC - такой же, а размер TLB - в 2 раза ниже, чем в 39H.
Приведенные в таблице 1 данные о ПС для ОП включают, кроме пикового значения, оценку поддерживаемой величины. Она рассчитана как произведение длины строки кэша на частоту шины, деленное на число тактов, необходимое для выборки строки кэша из ОП. Это число включает задержку из-за непопадания в кэш (9 тактов для POWER2 в 39H, 18 тактов - для P2SC) плюс время на доставку строки из ОП в кэш (10 тактов для POWER2/39H, 20 тактов - для P2SC). Эта оценка показывает, что поддерживаемая ПС ОП для P2SC также примерно в 2 раза выше, чем для POWER2/39H. Суммарная задержка составляет 285 нс для POWER2/39H против 282 нс для P2SC. Поэтому для приложений, лимитируемых задержками из-за непопадания в кэш (т. е. для которых характерно более-менее случайное обращение к ОП), применение P2SC не дает существенного выигрыша перед моделью 39Н.
По сравнению с моделью 590, производительность с плавающей запятой в системах на базе P2SC c частотой 135 МГц более чем в 1,5 раза выше при примерно том же уровне поддерживаемой ПС ОП. Лишь уменьшение размеров D-кэша и TLB по сравнению с POWER2 в моделях 590 потенциально может вызвать более низкую производительность для некоторых приложений. Эту проблему можно снять, если переписать приложение с разбиением на блоки, хорошо помещающиеся в кэш.
В таблице 2 приведены данные тестов Linpack parallel для ряда современных многопроцессорных систем. Известно, что тесты Linpack неплохо поддаются подобным разбиениям на блоки. Представленные фирмой IBM результаты тестов Linpack при N=100 (134, 156, 234 и 262 MFLOPS для микропроцессоров RS/6000 моделей 590, 591, 595/120 МГц и 595/135 МГц, соответственно) говорят о том, что на средних векторах P2SC 120 МГц достигают уровня наиболее быстродействующих на сегодняшний день микропроцессоров DEC 21164/500 МГц - 235 MFLOPS. А чипы P2SC/135 МГц по этому показателю обгоняют всех конкурентов. Эти данные еще не попали в таблицу Дж. Донгарры.
Таблица 2.
Тесты Linpack.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Оценки ПС ОП для P2SC 120 МГц оказываются даже выше, чем для P2SC 135 МГц. Поэтому применение версии 120 МГц целесообразно для приложений, где эта ПС является лимитирующей. Стандартные оценки SPECint95/fp95 для 120 и P2SC 135 МГц составляют соответственно 5.6/16.6 и 6.2/17.6.
Таким образом, IBM предлагает сегодня на рынке ряд модификаций POWER2/P2SC. Знание их особенностей позволяет правильно сориентироваться при выборе компьютера в зависимости от решаемых приложений. А выбирать есть из чего - данная публикации подтверждает высокий уровень производительности микропроцессоров POWER2/P2SC.