Системы на базе микропроцессоров POWER4, в частности, серверы IBM pSeries 690 —одни из наиболее широко представленных в списке TOP500, а характеристики их производительности вполне сопоставимы с альтернативными предложениями других производителей. Особенности архитектур на основе этих микропроцессоров, а также вопросы построения высоконадежных компьютерных систем на их базе представляют значительный интерес.
В свежем списке TOP500 чаще всего можно встретить системы HP Superdome и IBM pSeries 690. Правда, IBM здесь представлена по большей части кластерами, но это никак не умаляет популярности систем на базе POWER4. Микропроцессоры POWER4, применяемые в pSeries 690, — одни из лидеров по производительности, и являются, пожалуй, главным «RISC-оппонентом» стремительно набирающих силу микропроцессоров семейства Intel Itanium, обладающих архитектурой пост-RISC [1]. Остановимся на общих особенностях построения SMP-систем на базе POWER4, которые во многом определяются основными микросхемами (POWER4, кэш третьего уровня и др.), обратившись для их иллюстрации к pSeries 690.
Иерархия памяти
Структура микропроцессора POWER4 обладает рядом интересных отличительных черт [1], включая двухуровневую интегрированную кэш-память. Однако характерной особенностью вычислительных систем на базе POWER4 является наличие кэша третьего уровня с рекордной емкостью. Контроллеры кэша третьего уровня, как и его память тегов, интегрированы в микросхемы POWER4, располагаемые по четыре штуки на «многомикросхемных» модулях МСМ (multi-chip module). А вот сам кэш третьего уровня находится вне МСМ, на отдельных модулях, которые вставляются в слоты на системной плате CEC (Central Electronic Complex).
Кэш третьего уровня соединен с основной микросхемой POWER4 двумя однонаправленными 16-байтными шинами, работающими на одной трети частоты процессора. Данные кэша третьего уровня располагаются в двух микросхемах eDRAM, смонтированных в общем модуле, который соединен с оперативной памятью. Кэш, являющийся 8-строчным наборно-ассоциативным, логически организован в виде блоков по 512 байт. Кэш третьего уровня может использоваться и как «одиночный» кэш емкостью 32 Мбайт, и в комбинации с другими кэшами третьего уровня того же процессорного модуля, образуя пары или четверки емкостью 64 Мбайт или 128 Мбайт соответственно. При этом возрастает не только общая емкость кэша третьего уровня, но и его пропускная способность: при таком объединении реализуется расслоение, или чередование адресов в кэше на уровне 512-байтных блоков.
В иерархии кэш-памяти поддержка когерентности осуществляется для кэшей второго и третьего уровней. В кэше второго уровня, разделяемом парой микропроцессорных ядер, применена расширенная версия известного протокола MESI (особенность этой версии — четыре, а семь состояний). В кэше третьего уровня используется иная модель с пятью состояниями когерентности, причем ее поддержка осуществляется на уровне 128-байтных секторов. Хотя сам кэш третьего уровня имеет длину строки в 4 раза больше, когерентность на уровне 128-байтных секторов обеспечивает совместимость с кэшем второго уровня, у которого длина строки равна как раз 128 байт. (Детали механизмов поддержания когерентности описаны в [2, 3].)
Каждая микросхема POWER4 может иметь выделенный контроллер оперативной памяти, подсоединяемый «за» кэшем третьего уровня. Этот контроллер, поддерживающий две из четырех процессорных микросхемы модуля МСМ, может обладать одним или двумя портами в памяти. Контроллер оперативной памяти подсоединяется к микросхемам eDRAM, которые имеют по две 8-байтные шины данных — по одной в каждом направлении (рис. 1). Эти шины работают на частоте, втрое меньшей частоты процессора. Каждый порт данных контроллера оперативной памяти объединяет четыре двунаправленные 400-мегагерцевые шины шириной 4 байта, которые связывают буферы загрузки/записи этого контроллера с четырьмя микросхемами SMI (System Memory Interface), используемыми для собственно чтения и записи данных в память. Контроллер оперативной памяти содержит три буфера — команд чтения и записи по 64 строки каждый, а также очередь записи емкостью 16 строк.
Рис. 1. Организация подсистемы оперативной памяти |
Нетрудно подсчитать, что подобная схема построения памяти позволяет получить пиковую пропускную способность оперативной памяти на тракте с кэшем третьего уровня, равную 12,8 Гбайт/с в дуплексном режиме передачи (1,6 Гбайт/с на шину, 8 шин на два порта памяти), — и это, несмотря на применение модулей DIMM с рабочей частотой всего 200 МГц. Значение этого показателя крайне важно для производительности: пропускная способность памяти лимитирует производительность едва ли не на большинстве сегодняшних высокопроизводительных приложений. Для сравнения, в Madison два процессора разделяют общую шину оперативной памяти с пропускной способностью 6,4 Гбайт/с, а в POWER4 два ядра разделяют вдвое большую «полосу пропускания». Это отвечает традициям обеспечения высокой пропускной способности памяти в компьютерах на базе POWER [4]. (Наиболее высокочастотные микропроцессоры POWER4 в состоянии «выбрать» даже большую пропускную способность: при частоте процессора 1,7 ГГц его шина к кэшу третьего уровня способна пропустить около 18,1 Гбайт/с в двух направлениях.)
При анализе иерархии памяти необходимо также упомянуть аппаратуру предварительной выборки данных, позволяющую прозрачно для программного обеспечения выбирать данные в D-кэш первого уровня. Подобные средства, предусмотренные рядом современных высокопроизводительных процессоров, хорошо зарекомендовали себя. В POWER4 эти средства охватывают четыре уровня иерархии памяти (кэши трех уровней и оперативная память). В случаях, когда команды загрузки регистров сталкиваются с ситуацией промаха в последовательных строках кэша, аппаратура предварительной выборки следующих строк кэша запускается еще до того, как к ним будет произведено реальное обращение в выполняемой команде загрузки.
SMP-системы на базе POWER4
Основной строительный блок SMP-cистем на базе POWER4 — модуль МСМ, содержащий четыре процессорные микросхемы; учитывая их «двухядерность», это дает 8-процессорную SMP-конфигурацию (рис. 2). В свою очередь, несколько модулей МСМ могут быть связаны между собой, образуя конфигурации с 16, 24 или 32 процессорами.
Рис. 2. Логическая структура модуля МСМ и его внешние связи |
Рассмотрим строение модуля MCM с четырьмя микросхемами POWER4, расположенными на четырех логических «шинах». В действительности, аппаратная основа соединения микросхем МСМ — контроллеры фабрики в микросхемах POWER4. И, хотя логически каждая такая микросхема как бы имеет свою шину, однако на уровне МСМ уместно говорить уже о некоем распределенном коммутаторе, который образуют четыре контроллера фабрики [2, 3].
Каждая микросхема отправляет данные на собственную логическую шину, которая осуществляет арбитраж между кэшем второго уровня, контроллером ввода-вывода и контроллером кэша третьего уровня. Каждая из микросхем POWER4 отслеживает (snoop) все транзакции, однако транзакции, требующие данные, относящиеся к ведению этого процессора, будут переданы запросившему агенту. При этом отрабатываются запросы на данные из кэша второго и третьего уровней, или из оперативной памяти, подсоединенной «за» кэшем третьего уровня (рис. 1).
Максимальной является конфигурация, содержащая четыре модуля МСМ (16 микросхем POWER4, или 32 процессорных ядра). Связывающие модули МСМ между собой шины, замкнутые в кольцо, выступают в качестве повторителей, которые пересылают запросы и ответы от одного модуля к другому. Опять-таки, каждая микросхема POWER4 направляет запросы, команды и данные на свою шину, но отслеживает посылки всех шин.
Микросхемы кэша третьего уровня и оперативной памяти конструктивно расположены вне МСМ, в собственных модулях, монтируемых на системной плате. Оперативная память расположена на отдельных платах (от нуля до двух плат на модуль MCM). Если этих плат две, то они не обязаны иметь одинаковую емкость. Четыре блока кэша третьего уровня, отвечающих одному модулю МСМ, могут логически объединяться в один общий кэш емкостью 128 Мбайт.
Если в компьютере только один модуль МСМ, то в каждом из 4 блоков кэша третьего уровня кэшируются данные из «своей» оперативной памяти, подсоединенной за соответствующим блоком кэша третьего уровня. Если же модулей МСМ несколько, а источником данных является память другого модуля МСМ, делается попытка кэширования соответствующих данных в запросившем модуле — кэше третьего уровня, cоединенном прямой шиной с запросившей данные микросхемой POWER4. Впрочем, если кэш оказался в этот момент занят другой работой, кэширование не осуществляется.
Однако если плата памяти, связанная с данным модулем МСМ, всего одна, или их две, но разной емкости, блоки кэша третьего уровня работают как два логических кэша емкостью по 64 Мбайт (объединяются два блока кэша третьего уровня, соединенные с одной платой оперативной памяти). Кэширование запросов к удаленным МСМ при этом изменяется соответствующим образом [2,3].
Данная схема построения оперативной памяти даже в конфигурациях с несколькими МСМ обеспечивает увеличение задержки доступа не более чем на 10% при обращении к самой «далекой» памяти; таким образом, мы имеем дело с характерной для SMP архитектурой унифицированного доступа к памяти, а не ccNUMA. Вместо построения больших ccNUMA-систем с числом процессоров свыше 32 (так поступают в Hewlett-Packard и SGI), IBM предлагает объединение SMP-модулей в кластеры. Преимущество SMP-систем обусловлено однородным временем доступа к оперативной памяти, однако, как мы видим, оборотной стороной является достаточно сложная конструкция компьютерной системы.
Предлагаемая IBM схема построения SMP-систем обеспечивает масштабируемость при добавлении микросхем в модули МСМ и при увеличении числа МСМ. При добавлении пары микросхем POWER4 появляется возможность добавить плату оперативной памяти, что ведет к увеличению общей пропускной способности памяти. Добавляя одну микросхему POWER4, можно увеличить и суммарную емкость кэша третьего уровня. Шины, соединяющие микросхемы POWER4 как внутри МСМ, так и между ними, работают на половинной частоте процессора, а их пропускная способность возрастает с переходом на более высокочастотные версии POWER4.
МСМ содержит четыре микросхемы POWER4, к каждой из которых подсоединяется «свой» блок кэша третьего уровня. Но если в МСМ работает только одно процессорное ядро, он может задействовать весь кэш второго уровня своей микросхемы и все четыре блока (128 Мбайт) кэша третьего уровня, что обеспечивает процессору очень высокую производительность. Если задействована только одна микросхема POWER4, то два процессорных ядра разделяют общий кэш второго уровня и все блоки кэша третьего уровня, соединенные с данным модулем МСМ.
Архитектура подсистемы ввода-вывода
Общая структура подсистемы ввода/вывода SMP-компьютеров на базе POWER4 приведена на рис. 3. Она фактически определяется использованием микросхем трех типов: мост RIO (Remote I/O), мост PCI-хоста (PCI Host Bridge, PHB) и мост PCI-PCI. Мост RIO подсоединяется к микросхеме POWER4 через ее шину GX шириной 4 байта, работающей на одной трети частоты процессора. Для передачи данных дальше по направлению к внешним устройствам микросхема RIO-моста использует две RIO-шины 500 Мгц шириной в 1 байт. Эти шины связывают мост RIO с микросхемами PHB, которые поддерживают 64-разрядные шины PCI, работающие на частотах 66/33 МГц. В более поздних версиях применяются шины RIO-2, работающие уже на частоте 1 ГГц, а вместо шин PCI — более высокоскоростные шины PCI-X с частотами до 133 МГц.
Рис. 3. Логическая структура подсистемы ввода/вывода |
Однако для большей гибкости и увеличения масштабируемости конфигурации ввода/вывода путем наращивания числа PCI-шин и в конечном итоге увеличения поддерживаемой пропускной способности (особенно при использовании не самых высокоскоростных устройств ввода/вывода) эти PCI-шины «разделяются» — к ним подсоединяются мосты PCI-PCI, каждый из которых дает две PCI-шины вместо одной.
Рост числа микросхем имеет обычную в этом случае оборотную сторону — возможное удорожание и некоторое уменьшение надежности. Однако предлагаемая IBM конструктивная схема построения подсистемы ввода/вывода обеспечивает большую гибкость и дополнительные возможности увеличения надежности.
Конструктивная единица подсистемы ввода/вывода верхнего уровня — это блок, содержащий две платы ввода/вывода с 10 слотами PCI-X в каждой. Каждая плата может подключаться к двум шинам RIO-моста двумя кабелями, образуя двунаправленное кольцо. Скорость обмена данными между микросхемой POWER4 и платой ввода/вывода достигает 2 Гбайт/с, а общая пропускная способность ввода/вывода масштабируется с ростом числа этих микросхем.
Еще одна замечательная особенность SMP-систем на базе POWER4 — «встроенная» возможность построения кластеров. А именно, вместо моста RIO к шине GX можно подсоединить другую микросхему, отвечающую за соединение с коммутатором. Такой подход позволяет обеспечить высокую пропускную способность и низкую задержку каналов связи между узлами кластера. По мнению автора, в данном случае не менее корректно было бы говорить не просто о кластере, а о МРР-системе. Подобные системы IBM, сочетающие мощные SMP-узлы и масштабируемость кластера, широко представлены в рейтинге TOP500.
Надежность систем на базе POWER4
Проблемы построения высоконадежных систем на базе POWER4 стояли перед разработчиками уже на этапе конструирования микропроцессоров, поэтому в POWER4 предусмотрены, в частности, блоки BIST (Built-In Self Test — «для выполнения встроенных тестов»), блок обнаружения и протоколирования сбоев, а также блок интерфейса сервисного процессора, использующий интерфейс JTAG. Если сервисный процессор обнаруживает компонент, число сбоев которого превышает установленный порог, то содержащий этот компонент сменный модуль будет запланирован к замене еще до его выхода из строя.
Основные массивы данных POWER4 контролируются по четности или защищены кодами ECC. Так, в кэшах первого уровня применяется контроль четности строк; при сбое соответствующая строка будет получена из кэша второго уровня. В кэше второго уровня уже используются коды ЕСС и применяются избыточные строки бит и слов. Память тегов кэша второго уровня имеет дополнительный избыточный блок и использует контроль по четности.
Память тегов кэша третьего уровня защищена кодами ЕСС. Шины кэша третьего уровня, шины адреса памяти и управляющие шины контролируются по четности. Микросхемы eDRAM и шины данных памяти используют коды ЕСС. В оперативной памяти применяются коды ЕСС, и, кроме того, используется так называемая «автоочистка» (scrubbing) памяти в фоновом режиме, позволяющая находить и исправлять «легкие» ошибки. Автоочистка сегодня уже не является уникальным явлением: такая возможность предоставляется, например, в двухпроцессорных серверах на базе AMD Opteron. В дополнение к механизму автоочистки в оперативной памяти используются и избыточные, или запасные биты, на которые можно переключиться при выходе из строя «основных» бит. (Вообще концепция избыточных ресурсов активно используется во многих компонентах компьютерных систем на базе POWER4.)
Если раньше аппаратные сбои, регистрируемые в специальных точках контроля, приводили к остановам, то в компьютерах на базе POWER4 многие из них заменены генерацией машинных прерываний с возможностью выполнить на программном уровне действия по коррекции ситуации. При машинном сбое, относящемся к одному из логических разделов системы, другие разделы продолжат работу.
Серверы pSeries 690
Unix-серверы старшего диапазона производительности IBM e-Server pSeries могут комплектоваться процессорами POWER4 с тактовой частотой до 1,7 ГГц. Линейка серверов pSeries охватывает диапазон от младших моделей p615 (один или два процессора) до старших моделей p690, содержащих от 8 до 32 процессорных ядер. При этом p690 может комплектоваться оперативной памятью емкостью до 512 Гбайт и дисковым пространством емкостью до 18,7 Тбайт.
Характеризуя сложность инженерных решений, используемых в pSeries, стоит упомянуть, что модули МСМ имеют 5500 выводов (в том числе, 2200 выводов, используемых для ввода/вывода). Сами эти модули изготавливаются с использованием медной технологии и технологии «кремний-на-изоляторе». Эластичные кабели, соединяющие микросхемы POWER4 с подсистемой ввода/вывода, представляют собой шины, работающие на частотах свыше 500 МГц [5]. Кроме того, pSeries могут объединяться в кластерные конфигурации с использованием коммутаторов SP switch и с с числом узлов до 16 (и это не предел: просто 16 узлов отвечают конструктиву одной рамы). Коммутатор SP switch 2 обеспечивает задержку всего 1 мкс и пропускную способность портов 500 Мбайт/с (а при двунаправленных передачах — вдвое больше). Эти кластеры, имеющие общее название Cluster 1600, могут связывать между собой различные модели pSeries [6].
Модели pSeries 690 различаются также тактовыми частотами установленных процессоров и возможностью применения одного, а не двух процессорных ядер на микросхеме POWER4. В последнем случае кэш второго уровня «монополизируется» одним процессорным ядром, а соответствующие модели имеют в названии суффикс HPC (High Performance Computing) [7].
Все основные электронные компоненты pSeries 690 размещаются в конструктиве CEC. Процессоры расположены в модулях МСМ, которые монтируются на заднюю плату (backplane); сюда же монтируются модули кэша третьего уровня и платы оперативной памяти.
Возвращаясь к вопросу надежности, отметим, что если в процессоре превышается установленный порог «восстанавливаемых» ошибок, автоматически будет произведена запись информации о сбоях, а сам процессор может быть динамически выведен из конфигурации. В серверах pSeries 690 применяются специальные конструкции с экранированием от электромагнитных помех. Другие средства повышения надежности, в дополнение к уже сказанному, включают, в частности, контроль четности на системной шине и контрольные суммы CRC, вместе с повторением посылок при таймаутах — на шинах RIO. В случае отказа в RIO-шине автоматически запускается процедура переключения пути передачи на альтернативный [8]. Кроме того, применяются и традиционные методики избыточности по схеме «N+1» в системах охлаждения и электропитания стойки СЕС. (Любопытно, что система электропитания pSeries 690 взята от мэйнфреймов zSeries, известных своей надежностью.)
Еще одной особенностью pSeries 690 является возможность продолжения обработки при ошибках в четности PCI-шин. Обычно подобный сбой приводит к немедленной перезагрузке системы. Однако в p690 средства аппаратуры «ящиков» ввода-вывода (конструктив, известный еще по первым моделям IBM RS/6000 SP), микропрограммное обеспечение системы, PCI-адаптеры, а также доработанные в операционной системе IBM AIX драйверы при диагностике постоянной ошибки в четности позволяют автоматически перевести соответствующее устройство в состояние «недоступно».
заключение
Приведенные во врезке данные тестирования и анализ характеристик архитектуры свидетельствуют о том, что микропроцессоры POWER4 (а также, возможно, аналогичные модели микропроцессоров PowerPC 970) остаются сегодня главным RISC-конкурентом архитектуре IA-64 на рынке высокопроизводительных вычислительных серверов. Применение POWER4 в составе больших SMP-систем представляется наиболее эффективным.
Работа поддержана РФФИ, проект 01-07-90072.
Литература
- М. Кузьминский, «Power4: легенда мира RISC». // Открытые системы, 2003, № 6.
- J.M. Tendler, J.S. Dodson, J.S. Fields, H. Le, B. Sinharoy, «IBM e-server POWER4 System Microarchitecture». IBM White Paper, Oct. 2001.
- J.M. Tendler, J.S. Dodson, J.S. Fields, H. Le, B. Sinharoy, «POWER4 system microarchitecture», IBM J. Res. Develop., 2002, v. 46, Nо. 1.
- М. Кузьминский, «Супер-чип для супер-ЭВМ». // Computerworld Россия, 1997, № 16.
- IBM eServer pSeries performance and sizing. Technical White Paper, IBM, 2001.
- D. Quinerto, M. Genty, S.K. Ha e.a., Performance and Tuning Consideration for the p690 in a cluster 1600; IBM eServer Cluster 1600 Hardware Planning, Installation and Service, GA22-7863-03, IBM, Dec. 2002.
- H. Schulz, IBM eServer pSeries with the HPC Feature, IBM, Nov. 2001.
- IBM eServer pSeries 690 Reliability, Availability, Serviceability (RAS), IBM, Sep. 2001.
Оценки производительности
Интересно сопоставить результаты с серверами на базе Itanium Processor Family — основных конкурентов POWER4. Приведенные в Таблице 1 данные для HP Superdome относятся к конфигурациям, включающим Itanium 2/1,5 ГГц и кэш третьего уровня емкостью 6 Мбайт, для SGI Altix — Itanium 2/1 ГГц и кэш третьего уровня на 3 Мбайт, для серверов Unisys — к Itanium 2/0,9 ГГц.
Основные конкуренты pSeries 690 — серверы HP Superdome на базе Itanium 2/Mаdison, содержащие до 64 процессоров. Некоторым косвенным подтверждением этому является их длительная борьба за лидерство по производительности на тестах TPC-C. Сегодня 64-процессорные серверы HP достигли производительности 10008144 tpmC (8,3 долл. за tpmC), а IBM pSeries 690 Turbo с POWER4/1,7 ГГц, но с вдвое меньшим числом процессоров — 768839 tpmC (8,5 долл. за tpmC). Впрочем, хотелось бы предостеречь от переоценки значимости этих результатов: они зависят от слишком большого числа характеристик использованных программных и аппаратных средств.
Таблица 1. Результаты тестов пропускной способности оперативной памяти (STREAM) некоторых 16-процессорных систем, Мбайт/с
copy | scale | add | triad | |
IBM pSeries 690 HPC | 20267 | 20265 | 24706 | 24058 |
HP Integrity Superdome | 20701 | 20699 | 20793 | 21113 |
Unisys ES7000 Aries 130 | 13382 | 13268 | 14724 | 15681 |
SGI Altix 3000 | 26789 | 26514 | 31132 | 31296 |
Источник: www.cs.virginia.edu/stream.
В Таблице 2 приведены результаты тестов Linpack, характеризующие возможности масштабирования производительности p690 с ростом числа процессоров.
Таблица 2. Производительность pSeries 690 Turbo/1,3 ГГц на тестах Linpack
Число процессоров | Размерность системы | Пиковая Производительность (MFLOPS) | |
n=100 | n=1000 | ||
1 | 1074 | 2894 | 5200 |
8 | 18290 | 41600 | |
16 | 28080 | 83200 |