Информационно-справочный портал MorePC.ru

Архитектура Integrity

Архитектура Integrity

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

Hewlett-Packard занимает сегодня особое положение на компьютерном рынке. Вобрав в себя не столь уж давно корпорацию Compaq, которая перед этим в свою очередь поглотила другую знаменитую фирму — DEC, в HP обеспечивают своим заказчикам многолетнюю преемственность, сохраняя тем самым их капиталовложения. Кроме вычислительных систем на базе собственных микропроцессоров архитектуры PA-RISC, HP выпускает компьютеры на базе RISC-процессоров Alpha, а знаменитые отказоустойчивые системы NonStop (преемники компьютеров компании Tandem) используют процессоры MIPS R14K/R16K.

Поддерживая совместимость аппаратных средств в течение многих лет, в HP стремятся заранее заботиться и об определенной унификации аппаратуры в будущем, чтобы снизить собственные расходы.

В планах компании — замена всех RISC-систем на компьютеры на базе Itanium 2 (компьютеры на платформе х86 будут при этом продолжать выпускаться). Серверы HP на базе Itanium 2 относятся к семейству Integrity; отсюда ясен и повышенный интерес к этим компьютерам.

В самом семействе Integrity представлены самые разные серверы — от серверов-лезвий Integrity Blade BL60p и небольших одно-двухпроцессорных серверов rx1620 и rx2620 до мощных многопроцесорных серверов Superdome. Остановимся подробнее на средних и старших моделях Integrity, которые основываются на новом наборе микросхем sx2000, сменившем sx1000.

Битва двух титанов

Новая архитектурная идея Itanium — пост-RISC архитектура EPIC, разработанная Intel и НР, и включающая элементы VLIW (very large instruction word — «cверхбольшое командное слово»), не смогла сломить всех RISC-конкурентов и доказать свое существенное преимущество для обеспечения высокой производительности. Так, на тестах SPECcpu2000 сегодня лидирует IBM Power5+. Собственно говоря, именно Intel Itanium 2 и IBM Power5+ и конкурируют сегодня на рынке высокопроизводительных Unix-серверов (если, конечно, не рассматривать х86-64). Sun Microsystems с процессорами UltraSPARC T1 пока ушла в сторону многоядерности и многопоточности с небольшой производительностью процессорных ядер [1].

Если смотреть на сегодняшнее состояние, то оба «титана» современного рынка микропроцессоров — Itanium 2 и Power5+ — отличаются большой площадью кристалла (около 230 кв. мм у Power5+/90 нм, у Itanium 2/Madison 9М, производимых по 130 нм технологии — соответственно гораздо больше, около 480 кв. мм), большой емкостью кэша третьего уровня (9 Мбайт у Madison, 36 Мбайт у Power5), во многом способствующей высоким показателям производительности на тестах SPECcpu2000, и соответственно большим числом транзисторов (порядка 300 млн. у Power5+, не считая внешний кэш третьего уровня; у будущего Itanium 2 Montecito с интегрированным кэшем третьего уровня ожидается уже фантастическое количество — 1720 млн. транзисторов) [2]. Ясно, что такие высокие показатели стоят денег, поэтому х86-совместимые конкуренты от Intel и AMD гораздо дешевле.

Power5+ изготавливается по более совершенной технологии, имеет более высокую тактовую частоту (2,2 ГГц против 1,6 ГГц у Madison) и в ряде случаев более высокую производительность (Табл. 1), является двухъядерным и имеет аппаратную поддержку работы с нитями (SMT), а также встроенный контроллер оперативной памяти. Поэтому главным конкурентом Power5+ станет, видимо, двухъядерный Itanium 2/Montecito, который вот-вот должен официально появиться на рынке, и который, как и Power5+, производится по технологии 90 нм.

Не менее определяющими в успехе процессора представляются не производительность, а ценовые характеристики. Преимуществом Itanium 2 здесь является, очевидно, большая массовость этой платформы: кроме HP, серверы на базе Itanium 2 производят такие гранды, как NEC, Unisys, Fujitsu Siemens и др. Хотя Power также является теперь «открытой» архитектурой (см. www.power.org), такого большого количества независимых производителей на платформе Power не имеется. А массовость производства, как известно, вызывает снижение цен.

Процессоры Montecito являются большим, чем просто интеграцией двух Itanium 2 в одной микросхеме. Подобно Power5, в них ожидается аппаратная поддержка двух нитей в «грубозернистом» варианте (CMT). «Грубозернистость» здесь означает, что переключение на другую нить происходит не на каждом такте, а, например, при возникновении события, дающего большую задержку, типа промаха в кэше третьего уровня. Переключение нитей, как ожидается, затребует порядка 15 тактов, что близко к полному перезаполнению конвейера; однако это время гораздо ниже задержки при промахе в кэше третьего уровня.

Применение SMT (например, в Power5, Intel NetBurst HyperThreading) считается более эффективным путем повышения пропускной способности процессора (в смысле числа завершаемых за заданный интервал времени нитей), чем CMT. Однако для статического планирования выполнения команд в соответствии с программным кодом в Montecito — в противовес внеочередному выполнению команд в суперскалярных RISC-процессоров — CMT вполне подходит. На такой важной рабочей нагрузке, как оперативная обработка транзакций, отличающейся плохой локализацией в кэше благодаря интенсивной работе с оперативной памятью с разделением данных между нитями и случайным обращениям к памяти, рост производительности за счет СMT может достигать порядка 20%. А реализация CMT в смысле сложности логики и площади на кристалле стоит очень дешево. В то же время для пропускной способности на тестах SPECrate2k ожидаемое увеличение за счет СMT может составить всего 2-5% [2].

Изменения в процессорных ядрах Montecito относительно Itanium 2-9M включают также новые функциональные устройства (в том числе для операции сдвига), новые команды IA-64, cредства виртуализации процессора и улучшение характеристик классической триады RAS (Reliability, Availability, Serviceability — «надежность, доступность, качество обслуживания»).

Интересно устроена иерархия кэш-памяти Montecito (это характерно и для Montvale, следующей за Montecito версии Itanium 2). В отличие от Power5, общего для ядер кэша здесь нет, каждое ядро имеет собственную трехуровневую иерархию кэша. По сравнению с Itanium 29M, имеющего общий для команд и данных кэш второго уровня, в Montecito кэш второго уровня расщеплен между командами и данными. D-кэш второго уровня имеет емкость 256 Кбайт, а появившийся I-кэш второго уровня имеет большую емкость, 1 Мбайт. Каждое ядро имеет I-кэш и D-кэш первого уровня, а общий для команд и данных кэш третьего уровня увеличился в емкости — до 12 Мбайт в каждом ядре.

В Montvale дополнительно планируется, в частности, поддержка нового размера страниц в буфере быстрой переадресации TLB, более быстрый интерфейс системной шины и улучшенная технология HyperThreading. Следующее поколение МП Itanium 2, Tukwilla, будет иметь не менее четырех ядер, уменьшенные задержки памяти и другие усовершенствования [4]. В их числе можно отметить, например, «ключи защиты», в том числе для безопасного разделения данных между операционной системой и приложениями (не исключено, что это связано с работой в Intel российской группы Бориса Бабаяна, в прошлом известного своей приверженностью к введению тегов, способствующих компьютерной безопасности). Вообще, думается, в Montecito основной упор делается на развитие средств обеспечения безопасности и повышение надежности и управляемости.

Но об одной из важнейших компонентов, определяющих производительность работы Montecito, нельзя не сказать особо. Это интерфейс системной шины, пропускная способность которой может ограничивать пропускную способность оперативной памяти. В Itanium 2/Madison два процессора обычно разделяют общую шину шириной 128 бит, работающую на частоте 400 МГц, что дает пропускную способность в 6,4 Гбайт/с. При использовании Montecito в корпусе, совместимом с Madison 9M (что обеспечивает совместимость Montecito c сегодняшними аппаратными платформами для Itanium 2), эта пропускная способность остается без изменений.

Это, конечно, весьма серьезное ограничение. Более совершенная версия Montecito имеет другой корпус и системную шину шириной уже 256 бит, работающую на частоте 667 МГц; соответствующая пропускная способность равна при этом 21,3 Гбайт/с [2].

Набор микросхем sx2000

C Itanium 2 Intel первоначально предлагала набор микросхем i870 [5], HP — zx1 [6]. Позднее у НР появился более современный набор микросхем sx1000, на смену которому ныне приходит sx2000.

Набор микросхем sx2000 обеспечивает работу с целым рядом процессоров — как PA-8900 архитектуры PA-RISC, так и Itanium 2 (Madison 9M, Montecito, Montvale). Применяется sx2000 в серверах Integrity среднего и старшего классов; такие серверы HP называет «ячеистыми», поскольку основные их «строительные блоки» называются ячейками. Возможности применения вместе с sx2000 различных процессоров наиболее ярко выражены в серверах старшего класса Superdome: в них в различных аппаратных разделах могут одновременно работать, например, PA-8900 и Madison 9M. Это дает высокую гибкость конфигураций и способствует защите инвестиций.

Общая структура набора микросхем sx2000, используемого в серверах Integrity rx7640, rx8640 и Superdome, дана на рис. 1. В HP применительно к своим высокопроизводительным компьютерам используют термин Central Electronics Chipset (СЕС); мы же для краткости будем называть его просто набором микросхем. CEC sx2000 служит для соединения процессоров, оперативной памяти и плат ввода/вывода между собой, что, собственно, и образует компьютер как единое целое.

В составе sx2000 имеется пять типов сверхбольших микросхем: контроллер ячейки (Сell Controller, CC), буфер памяти, координатный коммутатор (crossbar switch), адаптер шин PCI-X и мост PCI-X. На рис. 1 представлена ячейка (cell), реализованная в виде платы. Каждая ячейка содержит один контроллер ячейки и восемь буферов памяти. Кроме них, на плате ячейки размещаются собственно модули DIMM и несколько процессоров. Контроллер ячейки связывает локальные процессоры и оперативную память между собой, а также обеспечивает интерфейсы к подсистеме ввода/вывода и координатным коммутаторам.

Ячейка служит основой для аппаратных разделов (nPars), каждый из которых аппаратно изолирован, содержит одну или несколько ячеек со средствами ввода/вывода и работает с собственной оперативной памятью.

Координатные коммутаторы размещаются в традиционном месте — на задней панели серверов Integrity. Эти коммутаторы являются базой трех независимых «коммутаторных фабрик». Контроллер ячейки подсоединен ко всем трем. Поэтому при сбое одного из коммутаторов в соответствующих разделах произойдет перезагрузка, после которой работа будет продолжена с единственным ослаблением — уменьшением пропускной способности коммутаторного межсоединения ячеек. При нормальной работе потоки данных равномерно распределяются между всеми тремя коммутирующими фабриками, повышая тем самым общую производительность.

Если сопоставить sx2000 и sx1000, то оба набора микросхем обеспечивают подсоединение четырех процессорных разъемов на ячейку. К контроллеру ячейки в обоих наборах микросхем подсоединяется по две процессорные шины, на каждой из которых находится по два разъема (рис. 1). Однако в sx2000 пропускная способность процессорной шины выше в 1,33 раза (скорость передачи данных до 8,5 Гбайт/с), пропускная способность памяти — в 2,1 раза, пропускная способность коммутаторов — в 4,2 раза, пропускная способность ввода/вывода — в 4,4 раза.

Пути, соединяющие контроллер ячейки с процессором, оперативной памяти, ввода/вывода и межсоединением, защищены средствами коррекции ошибок. Характеристики пропускной способности различных каналов и шин в ячейке представлены в таблице 2.

Контроллер ячейки содержит интегрированный контроллер памяти, который вместе с четырьмя парами буферов оперативной памяти и собственно модулями DIMM образует четыре независимых квадранта памяти. Благодаря буферам оперативной памяти поддерживаются потоки данных между модулями DIMM и контроллером ячейки на скорости 533 млн. передач в секунду, чему отвечает частота 267 МГц. В буферах кэшируются строки кэш-памяти при их передаче в и из процессора. Доступ к смежным (последовательным) строкам памяти может осуществляться с перекрытием (расслоением) между квадрантами одной ячейки или между всеми квадрантами всех ячеек раздела. В одной ячейке поддерживаемая пропускная способность памяти равна 16 Гбайт/с.

Максимальная емкость оперативной памяти в sx2000 по сравнению с sx1000 возросла в четыре раза, а задержка уменьшилась на 23%. Контроллер оперативной памяти в контроллере ячейки поддерживает до 32 модулей DIMM SDRAM DDR2/267. При емкости 4 Гбайт на DIMM (с 1-гигабитными микросхемами) это дает максимум в 128 Гбайт на ячейку; в будущем после появления DIMM емкостью 8 Гбайт этот максимум составит уже 256 Гбайт.

Контроллер оперативной памяти обеспечивает также поддержку когерентности кэша в серверах, в том числе, содержащих несколько ячеек, используя механизм, основанный на каталогах (directory based), что характерно для ccNUMA-систем. Буферы оперативной памяти применяются также для ускорения изменения состояния когерентности в памяти. Для ускорения коммуникаций между аппаратными разделами sx2000 поддерживает так называемую глобальную разделяемую память с возможностью применения коммутаторного межсоединения для таких коммуникаций.

Для измерения задержек обычно используется, как известно, тест lmbench, а для пропускной способности оперативной памяти — тесты STREAM. В таблице 3 приведены соответствующие результаты для Integrity Superdome c процессорами Montecito по сравнению с сервером IBM p5/595 на базе Power5+/1,9 ГГц. Из этих данных видно, что пропускная способность памяти в Montecito чуть-чуть меньше, чем в сервере IBM, задержки оперативной памяти — заметно лучше, а задержки при обращении в кэш третьего уровня в Montecito гораздо ниже, чем у Power5+. Последнее обусловлено тем, что у IBM общий для ядер кэш третьего уровня является внешним.

Вообще, как известно, сложнее добиваться снижения задержек оперативной памяти, чем увеличения ее пропускной способности. Поэтому применение DDR2, а не суперсовременной технологии FB DIMM не является существенным недостатком sx2000. Что же касается задержек в системе, то к сказанному выше следует добавить поддержку в sx2000 прямой передачи данных между процессорами, без промежуточного задействования оперативной памяти. В результате данные из процессора, который только что создал или обновил эти данные, могут быть доставлены в любой другой запросивший процессор системы не более чем за три «коммутаторных прыжка» (hop).

Улучшения системных задержек при обращении в память и при передаче из кэша в кэш при переходе от sx1000 к sx2000 составляет от 12 до 44% (табл. 4). Низкие задержки, в частности, по обращению в память, особенно важны при обработке транзакций.

Вне ячеек

Вне плат ячеек расположены две базовые компоненты sx2000 — это подсистема ввода/вывода и системные коммутаторы.

Подсистема ввода/вывода формируется в sx2000 двумя типами микросхем — системным адаптером шин PCI-X и мостом PCI-X (рис. 1). Каждый контроллер ячейки имеет высокоскоростной канал к системному адаптеру PCI-X, и уже последний связан с 8-12 (в зависимости от модели сервера Integrity) микросхемами мостов PCI-X, каждая из которых дает собственную шину PCI-X и добавляет один ее слот в конфигурацию. Пропускная способность одного слота лежит в диапазоне от 0,5 Гбайт/с до 2 Гбайт/с, пиковая пропускная способность подсистемы ввода/вывода одной ячейки составляет 11,5 Гбайт/с (поддерживаемая величина — 8,2 Гбайт/с). Для увеличения производительности ввода/вывода в системном адаптере шин PCI-X имеются буферы для кэширования входящих и выходящих данных.

В sx2000 поддерживается стандарт PCI-X 2.0 с максимальной тактовой частотой 266 МГц, а не 133 МГц, как у большинства плат ввода/вывода на рынке. Кроме того, для плат с частотой 133 МГц или 266 МГц, поддерживающих корректирующие коды ЕСС, последние коды будут реально задействованы (поддержка ЕСС в PCI-X не так уж часта).

Среди адаптеров ввода/вывода, поддерживаемых sx2000 — 10-Gigabit Ethernet, 4 Gbit Fibre Channel, 4x Infiniband, SCSI и др.

Недостатком подсистемы ввода/вывода в sx2000 является отсутствие поддержки PCI-Express (PCI-E). Современные платы высокоскоростных сетевых межсоединений, например, Infiniband 4x DDR, уже используют этот стандарт. Однако поддержка PCI-E в sx2000 запланирована уже на 2006 год.

Микросхемы системного коммутатора имеют порты с пропускной способностью 11,5 Гбайт/с (поддерживаемая величина — 9,1 Гбайт/с), а на ячейку, соединенную с тремя коммутаторами, соответственно приходится пиковая пропускная способность 34,6 Гбайт/с (поддерживается 27,3 Гбайт/с). Каналы коммутаторов имеют ряд свойств, повышающих надежность, в том числе возможности повторения передачи при сбое данных и автоматического отключения сбойного канала.

В sx2000 имеется еще широкий спектр особенностей, направленных на повышение надежности и доступности. Кроме вышеупомянутых возможностей системных коммутаторов и соответствующих каналов, следует обратить внимание на подсистему оперативной памяти. Здесь можно отметить, например, защиту адресов памяти по четности. Интересной представляется появившаяся в sx2000 технология double chip-sparing, используемая при коррекции ошибок в оперативной памяти. Если соответствующая логика установила сбойную микросхему DRAM при ЕСС-коррекции, то прошивка удаляет соответствующие биты из расчетов ЕСС, и поэтому корректирующая логика может скорректировать второй сбой DRAM в том же кодовом слове ECC. Эта схема может применяться к одной микросхеме DRAM, или всем DRAM, разделяющим бит на одной шине, или на всех шинах подсистемы памяти.

Для обеспечения надежности (и решения задачи балансировки нагрузки) в серверах на базе sx2000 применяются возможности их парционирования (разбиения на разделы). Кроме аппаратных электрически изолированных разделов nPars можно применять виртуальные разделы vPars (при этом гранулярность снижается с уровня ячейки до ядра процессора) и средства виртуальных машин Integrity VM. В последнем случае возможно «тонкозернистое» распределение, с точностью до долей процессора. При использовании vPars и Integrity VМ задействуются средства операционной системы HP-UX 11i.

Конфигурации и производительность

В различных серверах компоненты sx2000 задействуются по-разному (рис. 2).

Integrity rx7640 имеют две связанные напрямую ячейки; координатные коммутаторы не используются. В rx8640 четыре ячейки соединены двумя коммутаторами. В старших моделях, Superdome, имеется восемь ячеек и шесть коммутаторов, расположенных в двух стойках.

Рис. 2. Топология серверов Integrity

Естественно, сильно различаются и конфигурации различных моделей серверов. Серверы rx7640 имеют до восьми процессорных разъемов и размещаются в стойке высотой 10U; серверы rx8640 имеют до 16 процессорных разъемов и размещаются соответственно в стойке высотой 17U. Ячейки rx7640 и rx8640 поддерживают по 16 нестекированных модулей DIMM, а ячейки Superdome — 32 модуля DIMM. Максимальная емкость оперативной памяти ячейки в настоящее время равна 64 Гбайт для rx7640/8640 и 128 Гбайт — для ячейки Superdome.

В серверах Integrity среднего класса к ячейке подсоединяется до восьми мостов PCI-X и соответственно имеется восемь слотов на восьми шинах (всего — 16 слотов на сервер), а в HP Superdome на ячейку приходится по 12 мостов, слотов и шин (всего — 96 слотов на сервер, расширяется до 192 слотов).

И наконец, про производительность серверов. Безусловно, интерес представляют прежде всего новые данные для серверов с процессорами Montecito. На тестах TPC-C, где важна, в частности, задержка при обращении в оперативную память, двухпроцессорные четырехъядерные серверы Integrity rx4640 с Itanium 2/1,6 ГГц достигли показателя 200829 tpmC со стоимостью 2,75 долл. на tpmC. Результаты двухпроцессорного четырехъядерного сервера IBM p5570 чуть выше, 203439 единиц, но и транзакции у IBM стоят существенно больше — 3,93 долл. А вот восьмиядерный четырехпроцессорный сервер HP rx4640-8 с процессорами Itanium 29050/1,6 ГГц (очевидно, Мontecito) достиг уже показателя 290644 единиц при стоимости 2,71 долл. на tpmC (данные по тестам TPC-C взяты с официального сайта www.tpc.org). Это является хорошей иллюстрацией возможностей новых серверов HP Integrity на базе Itanium 2.

Таблица 2.


Таблица 3.


Таблица 4.


Литература
  1. Михаил Кузьминский, Асимметричный ответ «Ниагары». «Открытые системы», № 3, 2006.
  2. P. DeMone, Sizing up the Super Heavyweights. www.realworldtech.com/page.cfm?ArticleID=RWT100404214638, 2004.
  3. C. McNairy, A Technical Review of Montecito. Intel Development Forum, 2004.
  4. C. McNairy, Itanium Processor Family Technology Leadership. Intel Development Forum, Spring 2006.
  5. Ф.Бриггс, М.Цеклев, К.Крета и др., Intel 870: строительные блоки для недорогих масштабируемых серверов. «Открытые системы», № 12, 2002.
  6. Михаил Кузьминский, Система на базе Itanium 2. «Открытые системы», № 3, 2003.

Открытые системы #05/2006