Cтремление сохранить естественную для программистов парадигму, в которой вся оперативная память многопроцессорной системы представляется общей для всех процессоров, привело к тому, что сегодня на рынке таких серверов имеется две архитектуры. Это - традиционные симметричные мультипроцессорные системы (SMP) и серверы с архитектурой ccNUMA. Последние появивились относительно недавно. К ним относятся, в частности, SGI Origin 2000 [1], DG AViiON 20000 [2], Sequent NUMA-Q 2000 [3] и cерверы Exemplar от НР/Convex [4]. Компания DEC также планирует выпустить системы Wildfire с этой архитектурой. Возникает вопрос, не вытесняет ли ссNUMA архитектуру SMP вообще? Cразу можно ответить, что при небольшом числе процессоров - нет: все указанные ccNUMA-системы содержат в себе "SMP-куски". Компания Sun Microsystems недавно выпустила SMP-серверы Ultra Enterprise 10000, которые могут иметь до 64 процессоров. Анализу их архитектуры и посвящена настоящая публикация.
В области обработки данных многопроцессорные Unix-серверы, все чаще используются для сложных приложений, где ранее применялись IBM мэйнфреймы. Наиболее близко к мэйнфреймам сегодня оказались SMP-серверы Sun Ultra Enterprise 10000.
Прежде чем рассмотреть особенности архитектуры серверов Enterprise 10000, необходимо привести краткий обзор архитектуры (рис.1) используемых в них микропроцессоров RISC-архитектуры - UltraSPARC-II, поскольку она оказывает существенное влияние на строение самих серверов в целом.
Рисунок 1.
Архитектура микропроцессора UltraSPARC.
Подобно Alpha 21164, микропроцессоры UltraSPARC [5] имеют относительно простую архитектуру - в них не применяются схемы внеочередного и спекулятивного выполнения команд, используемые в PA-8x00, R10000 или в Alpha 21264. Это облегчает процесс повышения тактовой частоты микропроцессоров. В результате по достигнутой в них на сегодня тактовой частоте, 300 МГц, они уступают только микропроцессорам Alpha. В Ultra Enterprise 10000 тактовая частота процессоров равна 250 МГц, а сами они построены по 0.35 мкм КМОП-технологии. Используется архитектура SPARC версии 9, которая двоично совместима снизу вверх с предыдущей версией.
UltraSPARC является суперскалярным микропроцессором, имеющим 4 целочисленных исполнительных функциональных устройства (ФУ), 3 с плавающей запятой и два графических ФУ. Устройство предварительной выборки и диспетчеризации команд выбирает команды еще до того, как они "понадобятся", что обеспечивает более полную занятость ФУ. UltraSPARC может выполнять до 4 команд за такт: 2 целочисленных и 2 вещественных (сложение и умножение). Задержка при выполнении команд с плавающей запятой составляет 3 такта, кроме деления (12 тактов) и извлечения квадратного корня (22 такта).
Кэш-память команд первого уровня в UltarSPARC имеет емкость 16 Кбайт и является 2-канальной частично-ассоциативной. Первичный кэш данных также имеет емкость 16 Кбайт и является прямоадресуемым.
Микропроцессоры UltraSPARC II, используемые в серверах Enterprise 10000, комплектуются внешней кэш-памятью емкостью 1 Мбайт и 4 Мбайт, что в 2-8 раз выше, чем в 167 МГц- микропроцессорах UltraSPARC в серверах Enterprise 6000. В чипах Alpha 21164, PA-8x00 и R10000 также используется внешний кэш емкостью 4 Мбайт. ФУ загрузки регистров/записи в память совместно с блоком управления памятью MMU обеспечивает преобразование 44-разрядных адресов виртуальной памяти в 42-разрядные физические адреса.
Разрaботчики UltraSPARC сразу ориентировали эти микропроцессоры на применение технологии коммутации, а не традиционной системной шины. Это архитектурное решение получило название UPA (Ultra Port Architecture). Поэтому уже в самых первых компьютерах на базе UltraSPARC I связь между микропроцессорами (ЦП), оперативной памятью (ОП), шиной SBus и графической подсистемой осуществлялась через коммутатор, который можно также назвать системной шиной UPA [6]. Он работает на тактовых частотах 83 МГц или 100 МГц и обеспечивает пиковую пропускную способность (ПС) 1.3 Гбайт/с или 1.6 Гбайт/с; поддерживаемое значение составляет 1.2 Гбайт/с (1.5 Гбайт/). Такая эффективность UPA в смысле ПС обусловлена применением высокоэффективной схемы пакетной коммутации.
Общая архитектура Enterprise 10000
Рисунок 2.
Общее архитектурное строение Ultra Enterprise 10000.
На рис. 2 приведена принципиальная схема строения Ultra Enterprise 10000 [7], а в Табл. 1 представлены основные архитектурные компоненты этих серверов.
Таблица 1.
Основные архитектурные компоненты Ultra Enterprise 10000.
Компонент | Функция | Количество (на сервер) |
Управляющая плата | Управляет JTAG системы, часами, вентиляторами, блоками питания; cодержит последовательный интерфейс и порт Ethernet для подсоединения SSP | 2 |
Блок поддержки | Осуществляет управление центральной платой и контроль над ее часами и схемами JTAG центральной платы | 2 |
Центральная плата | Поддерживает межсоединение (адреса, данные) для всех системных плат | 1 |
Системная плата | Содержит ЦП, ОП, платы SBus | 16 |
Процессорный модуль | Дочерние платы, содержащие микропроцессоры UltraSPARC | 64 |
Оперативная память | Модули SIMM | 512 |
Ввод-вывод | Платы SBus (cлоты) | 64 |
В Enterprise 10000 использован конструктив, основанный на центральной плате (сenterplane) - отдаленный аналог материнской платы ПК. При построении SMP-серверов пожалуй чаще используется конструктив с задней панелью (backplane), содержащей системную шину, как, например, в серверах SGI Power Challenge [8]. Для Sun Enterprise 10000 в качестве системной шины, которая называется Gigaplane XB, используются коммутаторы, поэтому центральная плата и является их материальным воплощением. Gigaplane XB - это межсоединение, транспортная артерия, связывающая между собой системные платы, содержащие ЦП, ОП и шины ввода-вывода. Не следует путать глобальные коммутаторы Gigaplane XB с локальными коммутаторами, "имманентно" присущими самой архитектуре UPA, и расположенными на системных платах.
Приведенная на рис. 2 схема сервера больше описывает его конструктивное строение, нежели собственно "чистую" архитектуру. В конфигурацию Enterprise 10000 входят до 2 управляющих плат. Их задача заключается, в частности, в управлении вентиляторами и блоками питания всей системы. Они содержат также порты последовательного интерфейса и Ethernet, служащие для связи c cервисным процессором SSP (Service Support Processor) - компьютером, управляющим работой всей вычислительной установки.
Здесь интересно отметить, что полузаказные микросхемы (ASIC), применяемые в Ultra Enterprise 10000, имеют встроенные средства проверки работоспособности микросхем в соответствии с индустриальным стандартом JTAG. Управляющие платы контролируют также процесс проверки работы полузаказных микросхем серверов Enterprise 10000. Платы поддержки центральной платы выполняют аналогичные функции проверки для полузаказных микросхем центральной платы, а также содержат логику, обеспечивающую управление электропитанием и часами центральной платы.
Системные платы содержат компоненты, определяющие основные ресурсы процессора. Физически системная плата представляет собой сборку, включающую процессорные модули, модуль ОП и модуль ввода-вывода. На системной плате могут располагаться 0-4 дочерние платы - процессорных модуля, каждый из которых содержит собственно микропроцессор Ultra SPARC II, внешний кэш и UDB-буфер данных UltraSPARC. Детальная архитектура системной платы и ее взаимодействия с шиной Gigaplane XB представлены на рис. 3 [7], демонстрирующем двухуровневую систему маршрутизации или, точнее, коммутации данных, принятую в Enterprise 10000. Внутри системной платы запросы локальны, а для доставки данных используется стандартная архитектура UPA. Если же ЦП обращаются к ОП по адресу, который не может быть найден на данной системной плате, то включается глобальная маршрутизация с использованием Gigaplane XB.
Рисунок 3.
Архитектура системной платы серверов Ultra Enterprise 10000 (ИКК - интерфейсный контроллер когерентности).
На плате локальная маршрутизация соответствует сборке запросов по схеме "много в 1". Затем запросы связываются с портом, который расположен вне платы. Глобальный коммутатор (crossbar) данных cвязывает по 1 порту из каждой платы между собой, а 4 адресные шины работают по схеме "точка - точка" и обеспечивают широковещательную рассылку (broadcasting) адресов всем платам.
Локальные маршрутизаторы данных являются мультиплексорами "4 в 1" и включают 4 полузаказные мультиплексорные микросхемы. Ширина "локальной шины" данных (на плате) составляет 144 разряда (128 бит данных плюс 16 бит - для кодов ЕСС).
Глобальный маршрутизатор данных (GDR), который вместе с (глобальными) адресными шинами составляет Gigaplane XB, включает 12 полузаказных мультиплексорных микросхем. GDR связывает между собой локальные коммутаторы на системных платах и является коммутатором 16 х 16, обеспечивающим соединения "точка-точка" с 16-байтной шириной шины данных (плюс 2 байта кодов ЕСС). GDR передает 64-байтный блок данных за 4 такта шины Gigaplane XB, что эквивалентно поддерживаемой скорости передачи данных в 1.3 Гбайт/с при тактовой частоте 83.3 МГц (время такта 12 нс). Суммарная поддерживаемая ПС Gigaplane XB составляет при этом 10.4 Гбайт/с.
Соотношение тактовых частот системной шины и ЦП для UltraSPARC может быть 1:2 или 1:3. При 250 МГц тактовой частоты UltraSPARC II 83.3 МГц - это одна треть частоты ЦП. Частота шины может быть увеличена до 100 МГц. Вероятно, это ориентировано на использование новых 300-мегагерцевых микропроцессоров. При частоте 100 МГц поддерживаемая ПС cоставит 12.5 Гбайт/с.
Как уже было сказано, глобальная маршрутизация адресов в Enterprise 10000 осуществляется по 4 независимым адресным шинам - коммутаторам "точка-точка". Независимость означает, что одновременно могут передаваться 4 адреса. Адресная шина имеет разрядность 48 бит (включая биты ЕСС). Передача адреса требует двух тактов шины Gigaplane XB.
Применение сразу 4 адресных шин повышает надежность - при поломке некоторых из них Enterprise 10000 может работать с оставшимися. Использование множественных "проводов" (линий) для соединений "точка-точка", по мнению разработчиков, также имеет свои преимущества перед традиционным "чисто шинным" подходом, при котором все модули - ЦП, ОП, ввода-вывода подсоединяются к одному общему набору проводов. В рамках традиционного подхода при увеличении числа таких соединений для поддержания надежности приходится ограничивать частоту. При этом сбой любого компонента шины означает крах всей шины целиком.
Сегодня можно говорить уже о двух поколениях высокопроизводительных системных шин SMP-серверов, использующих современные микропроцессоры RISC-архитектуры. Это подтвержается и данными Табл.2. Шины первого поколения имели ПС свыше 1 Гбайт/с: Power Channel 2 в SGI Power Challenge [8]; TurboLaser в DEC AlphaServer 8200/8400 [9]; Gigaplane в Sun Ultra Enterprise 6000 [10]. В новом поколении шин ПС возросла на порядок, и превысила 10 Гбайт/с. Все такие шины основаны на коммутаторах. Сюда можно отнести Gigaplane XB и коммутатор SMP-систем HP V2200. Появившийся недавно коммутатор гиперузла - серверов HP S-класса - хотя и не превысил уровень 10 Гбайт/с, но тоже относится скорее ко второму поколению.
Таблица 2.
Сравнительные характеристики некоторых SMP-серверов.
Sun Ultra Enterprise | DEC AlphaServer | HP server S-class | HP V2200 | ||
6000 | 10000 | 8400 5/440 | |||
Число ЦП | 1-30 | 16-64 | 1-12 | 1-16 | 1-32 |
Пиковая произв., GFLOPS | 10 | 32 | 10.5 | 11.5 | 25.6 |
Тактовая частота, МГц | 167(*) | 250 | 437 | 180 | 200 |
Внешний кэш, Мбайт | 0.5 | 1 | 4 | 2(1+1) | 4(2+2) |
Макс. емкость ОП, Гбайт | 30 | 64 | 14 | 16 | 32 |
Пиковая ПС шины, Гбайт/с | 2.6 | 12.5 | 2.1 | 7.7 | 15.3 |
Макс. ПС I/O, Гбайт/с | 2 | 6.4 | 1.2 | 1.9 | 1.9 |
Макс. число слотов шин ввода-вывода | SBus, 45 | SBus, 64 | PCI, 144 | PCI, 24 | PCI, 24 |
Вернемся теперь к рассмотрению других компонентов системных плат Enterprise 10000. В модулях памяти (платах ОП) применяется SIMM-модули в стандарте JEDEC, содержащие по 18 микросхем 60 нс. Поддерживаются также SIMM, использующие 16 Мбит технологии, и основанные на 64 Мбит DRAM-технологии. В результате максимальная емкость ОП сервера может составлять 64 Гбайт.
На плате ОП имеется 4 банка ОП, каждый содержит 8 модулей SIMM. Один 16-мегабайтный модуль SIMM имеет емкость 32 Мбайт, что дает максимальную емкость ОП на плате, равную 1 Гбайт. Можно заметить, что в системах SGI Origin 2000, HP S-класс и V2200 разработчики перешли к более современной и более дорогой технологии SDRAM. Компания Sun в системе Enterprise 10000, наоборот, предпочла выжать все возможное и из архитектуры SMP, и из традиционной DRAM технологии.
Каждый банк памяти за один доступ осуществляет передачу строки кэша емкостью 72 байт (64 байт данных плюс 8 байт ECC). Максимальная степень расслоения ОП в Enterprise 10000 равна 16. Для того, чтобы обмениваться информацией с локальным маршрутизатором данных, в модуле ОП осуществляется упаковка/распаковка данных с целью перехода от ширины шины ОП в 72 байта к ширине "шины" маршрутизатора данных - 18 байт.
Модули ввода-вывода - это дочерние платы, помещаемые на системную плату. Задача модуля ввода-вывода - обеспечение обмена данными между UPA и двумя шинами ввода-вывода SBus. Сразу следует сказать, что и здесь Sun придерживается традиционных технологий: шины SBus (cтандарт IEEE 1496-1993) используются компанией уже много лет. В большинстве других многопроцессорных систем этого класса (SGI Origin 2000, DEC AlphaServer 8200/8400 и т.п.) используются шины PCI. Sun также планирует перейти с SBus на шины PCI (33 МГц/32 бит и 66 МГц/64 бит), при этом будут внесены изменения и в дочернюю плату ввода/вывода Еnterprise 10000.
Шины SBus были разработаны специалистами Sun Microsystems и используют 32- разрядные двунаправленные линии данных, 28-разрядные адресные линии плюс линии управления и линии четности. Шины SBus работают на частоте 25 МГц и могут производить как 32-разрядную передачу данных с пиковой ПС 100 Мбайт/с, так и 64-разрядную передачу данных с пиковой ПС 200 Мбайт/с. В последнем случае для передачи данных применяются адресные линии и линии управления. В этом случае используется режим разделения времени. Поддерживаемая пропускная способность в 2 раза ниже пикового значения.
Протокол шин SBus обеспечивается полузаказными микропроцессорами SYSIO. На системной плате может быть только одна дочерняя плата ввода-вывода с двумя такими микросхемами (двумя шинами SBus). К каждой шине SBus можно подключить до 2 контроллеров SBus стандартной ширины, или один контроллер удвоенного размера. Имеются различные контроллеры, предлагаемые Sun для F&W SCSI-каналов в дифференциальном и однопроводном исполнениях, UltraSCSI, Fibre Channel - со скоростью передачи данных 25 Мбайт/с в обоих направлениях для подсоединения SPARCstorage Array, Ethernet 10/100 Мбит/с, FDDI, ISDN, ATM, Token Ring и для высокоскоростных последовательных интерфейсов (вплоть до T1/E1).
Надежность, готовность и ремонтопригодность
О поддержке этой триады (Reliability, Availability, Serviceability,- сокращенно RAS) заявляют обычно все производители больших многопроцессорных серверов, ориентированных на бизнес-приложения. Есть все основания для того, чтобы о системе Enterprise 10000 можно было говорить в смысле RAS. В Таблице 3 [7] приведены некоторые ключевые особенности Enterprise 10000, обеспечивающие RAS. Наиболее яркой особенностью Enterprise 10000, отличающей их от других SMP-серверов в смысле RAS, является возможность организации доменов. Это архитектурное понятие пришло из мира мэйнфреймов компаний IBM и UNISYS [11].
Таблица 3.
Некоторые особенности Ultra Enterprise 10000, обеспечивающие свойства
RAS.
Особенности, повышающие надежность
Особенности, повышающие готовность Особенности, повышающие обслуживаемость |
Динамическая система доменов Ultra Enterprise 10000 [7] позволяет разбить весь компьютер на несколько "подкомпьютеров", каждый из которых может включать как минимум одну системную плату. Такие домены в терминологии IBM называются логическими разделами (LPAR). Можно сказать, что домен - это SMP-"подсистема". Каждый домен имеет собственные внешние устройства: магнитные диски, собственные сетевые адаптеры и т.д.
Любой домен в Enterprise 10000 разделяет общую шину Gigaplane XB, и поэтому полной изоляции доменов, как это бывает в LPAR, не происходит. Однако один домен отделен от других логически. Поэтому ошибки в ОС и аппаратуре (процессоры, память, ввод/вывод) одного домена не влияют на другие. Это позволяет использовать домен для безопасного (для остальной части системы) тестирования программного обеспечения: новых версий ОС Solaris и ее модификаций, новых драйверов и т.д., не прерывая "промышленной эксплуатации" Enterprise 10000. Управление всеми доменами осуществляется с единого SSP, а системный администратор может динамически создавать домены, не прерывая работы сервера. Благодаря доменной организации Enterprise 10000 может заменить ряд небольших SMP-серверов, использовать один из доменов как брандмауэр, связанный с другими серверами сверхбыстрой магистралью - Gigaplane XB.
Для построения систем, устойчивых к сбоям, могут применяться специальным образом сконфигурированные серверы Enterprise 10000. Так, можно использовать зеркалированные пары дисковых массивов SPARCstorage Array. Кроме того, поставляются кластерные конфигурации HPC Ultra Enterprise 10000, в узлах которых располагаются SMP-серверы Enterprise 10000, а для соединения узлов применена известная шина SCI c высокой ПС [12]. Однако в отличие от обычного режима работы SCI в кластерах HPC не поддерживает когерентности кэша. Как известно, кластерные конфигурации позволяют строить системы с более высоким уровнем готовности - разработчики Sun Microsystems объявили о достижении уровня готовности в 99.95%.
Заключение
Cервер Sun Ultra Enterprise 10000 на сегодня является самым большим среди всех SMP-систем, что, собственно, видно из Табл.2.
На 64-процессорном сервере Enterprise 10000 была достигнута исключительно высокая производительность на тестах TPC-D для базы данных 300 Гбайт: 2009 QppD при ПС 1242 QthD. Это показывает, что данную аппаратно-программную платформу хорошо применять, в частности, для решения задач поддержки принятия решений. Такие серверы имеют высокую производительность и на тестах ПС ОП Streams, и на тестах Linpack. Поэтому не удивительно, что эти системы оказались широко представлены и в списке TOP500 крупнейших в мире инсталляций суперкомпьютеров.
По сравнению с компьютерами, имеющими архитектуру ccNUMA, возможности масштабирования аппаратных средств в пределах архитектуры SMP, конечно, ниже. Этот недостаток частично устраняется при построении кластерных систем. Однако и преимущества SMP еще никто не отменял. Использование ccNUMA приводит к увеличению задержек при обращении к удаленной памяти, расположенной не в данном узле. Задержки при обращении к ОП в Enterprise 6000 составляют порядка 300 нс, в Enterprise 10000 - порядка 500 нс. В то же время аналогичные задержки при обращении к удаленной ОП, например, в SGI Origin2000, оказываются выше уже при среднем числе процессоров 8-16.
Анализ архитектуры Sun Enterprise 10000 показывает, что сегодня парадигма SMP продолжает удерживаться на лидирующих позициях.
Литература
[1] М.Кузьминский, "Архитектура S2MP-свежий взгляд на ccNUMA", Открытые системы, #2, 1997, c.14
[2] М.Кузьминский, СomputerWorld/Россия, #26, 1997
[3] Е.Коваленко, "Система Sequent Extreme NUMA-Q", Открытые системы, #2, 1997, c.6
[4] В.Коваленко, Система Exemplar SPP2000, Открытые системы, #1, 1997, c. 5
[5] В.Шнитман, Архитектура процессоров UltraSPARC, Открытые системы, #2, 1996, c. 5
[6] М.Кузьминский, ComputerWorld/Россия, #16, 1995
[7] "Starfire. Just the facts", Sun Microsystems, 1996
[8] М.Кузьминский, ComputerWorld/Россия, #12, 1995
[9] М.Кузьминский, ComputerWorld/Россия, #2, 1995
[10] М.Кузьминский, СomputerWorld/Россия, #28, 1996
[11] М.Кузьминский, "Мэйнфреймы от UNISYS", Открытые системы, #5, 1996, c. 5
[12] М.Кузьминский, СomputerWorld/Россия, #14, 1997