К началу 90-х годов стало ясно, что дальнейшее развитие и разработка новых семейств компьютеров на базе старой архитектуры невозможны. Чтобы удержаться на передовых рубежах, требовался качественный скачок.
К тому времени компания DEC уже анонсировала свою перспективную 64-разрядную архитектуру Alpha, широкое распространение получила технология "клиент-сервер", появились новые, более продвинутые сетевые стандарты (100Base-T Ethernet, ATM, FDDI). Наряду с этим все большее количество пользователей стало применять многопроцессорные системы, существенно повысились требования к надежности используемой вычислительной техники.
В этот период компанией Sun было принято решение о разработке новой архитектуры для своих перспективных изделий. Ставилась задача создания универсальной платформы, на базе которой можно выпускать вычислительные системы (рабочие станции и серверы) с заданными характеристиками и оптимальным соотношением производительность/стоимость.
В предлагаемой статье делается попытка проследить становление семейства компьютеров Ultra компании Sun Microsystems от проекта до серийного производства.
Современные тенденции
Основной особенностью развития вычислительной техники на протяжении последних десяти лет, наряду с прогрессом в области микроэлектроники и технологии производства микросхем, явилось увеличение роли сетевых технологий, их широкое распространение и развитие. И хотя сама идея распределенных и разделяемых вычислительных ресурсов не нова, реальное основание для полномасштабного воплощения она получила именно в последние годы. Во многом это связано с формированием устоявшегося набора сетевых стандартов, реальной потребностью в сетевых системах, а также с их экономической оправданностью. То есть пользователи уже знают, что именно они хотят получить, и готовы платить за это, а производители в состоянии предложить законченные, стандартизованные решения с приемлемой стоимостью.
Изменяется, наполняется новым содержанием и само понятие сети. Организация сетей, при которой им отводятся чисто коммуникационные функции (то есть когда они рассматриваются только как каналы обмена информацией между вычислительными средствами, в роли которых в большинстве случаев выступают персональные компьютеры — ПК), уходит в прошлое. Сеть становится виртуальной вычислительной средой, имеющей теоретически неограниченные возможности, а тем же персональным компьютерам отводится роль интеллектуальных терминалов, средств доступа к разделяемым ресурсам. При этом акцент делается на серверы, которые составляют интеллект сетевой структуры и выполняют как задачи обслуживания и распределения ресурсов, так и вычислительные задачи.
Следует учитывать также изменения типов передаваемых данных. Все большую часть сетевого трафика составляют потоки графической, аудио- и видеоинформации, предъявляющие новые требования к пропускной способности и другим характеристикам сетей. Появление новых сетевых стандартов и новых технологий позволяет выполнить эти требования, что дает пользователям новые возможности (например, возможность проведения видеоконференций) при относительно невысоких затратах.
Что это означало для Sun? С чем компания выходила на старт нового этапа? Прежде всего, вспомним о прочных позициях и высокой репутации Sun как производителя рабочих UNIX-станций. Кроме того, у компании имелся достаточный опыт разработки и производства серверов с симметричной многопроцессорной архитектурой (SMP-серверов) и кластеров. Если к этому присовокупить богатый опыт разработки собственных микропроцессоров (уместно заметить, что Sun — одна из немногих компаний, на протяжении более десяти лет создающая свои компьютеры на базе единого семейства микропроцессоров со SPARC-архитектурой), то можно утверждать, что у Sun Microsystems был хороший задел и неплохие перспективы для того, чтобы начать работу по созданию нового поколения компьютеров.
Требования к современным серверам
Как уже было отмечено выше, основу современных систем обработки информации составляют серверы, поэтому именно на них было сосредоточено основное внимание Sun при разработке новой архитектуры. Более того, им было отдано предпочтение даже по сравнению с таким традиционно приоритетным для компании направлением, как рабочие станции.
Серверы представляют собой специализированные высокопроизводительные компьютеры, предназначенные для выполнения определенных сервисных функций и/или вычислений в сетевой среде. Ниже перечислены основные требования, предъявляемые к серверам.
- Высокая производительность. Сервер является вычислительным устройством, на которое "сваливается" большое количество задач, поэтому требование максимально возможной производительности представляется естественным. Как правило, самые простые серверы имеют производительность и, соответственно, стоимость мощной рабочей станции и комплектуются самыми производительными на данный момент микропроцессорами.
- Расширяемость (наращиваемость). Данное требование относится к архитектуре системы. Оно означает, что система должна быть построена по модульному принципу, поддерживать возможность создания необходимых конфигураций (с заданными производительностью, объемом ОЗУ, дисков, число и номенклатура каналов ввода-вывода) и их последующего наращивания. Потребности в ресурсах (производительности и числе процессоров, объеме памяти и т.п.) неуклонно растут, поэтому, приобретая систему с учетом текущих нужд, желательно иметь возможность в дальнейшем наращивать характеристики, когда это станет необходимым.
- Масштабируемость. Это требование также относится к архитектуре системы. Его смысл в том, что система должна обладать хорошей линейностью характеристик (практически линейный рост производительности тех или иных ресурсов при увеличении их числа). Масштабируемость тесно связана с расширяемостью. Важна не просто возможность добавления новых компонентов, но и величина достигаемого при этом эффекта.
- Возможность установки и поддержки большого объема памяти. Требование, которое является важным аспектом расширяемости. Серверы должны обладать большими ресурсами памяти (как оперативной, так и внешней), поскольку они являются универсальной платформой, которая конфигурируется в зависимости от конкретного применения. Так, например, вычислительным серверам требуется дополнительное количество оперативной памяти, а серверам баз данных, помимо этого, еще и большой объем внешней памяти (на дисках или каких-либо иных носителях). Чем шире возможности сервера в части поддержки различных типов памяти, тем шире спектр его применений.
- Наличие большого количества поддерживаемых интерфейсов ввода-вывода. Как правило, приобретаемый сервер включается в состав уже существующей инфраструктуры, куда может входить большое количество устройств с различными интерфейсами (разного рода накопители информации, принтеры и т.п.). Поэтому естественным пожеланием пользователей является сохранение возможности подключения всех этих устройств. Значит, сервер должен поддерживать как можно большее количество стандартных интерфейсов. В минимальный набор входят RS-232C, Centronics, 10Base-T Ethernet и несколько видов SCSI, а также 100Base-T Ethernet. В ближайшее время этот список будет дополнен интерфейсами ATM, USB и, возможно, некоторыми другими. Особо следует подчеркнуть, что данное требование относится не только к типам интерфейсов, но и к их числу, то есть к возможности установки многочисленных одинаковых интерфейсов.
- Поддержка и обеспечение работы в сетевой среде. Данное требование, являющееся одним из важнейших, в значительной степени относится к программному обеспечению, которое должно обеспечивать доступ к ресурсам сервера для любых устройств, входящих в состав сети и работающих под управлением различных операционных систем.
- Надежность, готовность, обслуживаемость (Reliability, Availability, Serviceability — RAS) как составляющие высокой доступности (работоспособности) серверов. Поясним смысл этих понятий.
- Под надежностью вычислительной системы подразумевается наличие у нее свойств, предохраняющих от возникновения сбоев и неисправностей. Наиболее распространенным показателем надежности является среднее время между возникновением неисправностей (среднее время наработки на отказ) — MTBF (Mean Time Between Failure). К сожалению, стандартного определения данного показателя не существует, что приводит к разному толкованию соответствующих значений разными фирмами.
- Готовность (живучесть) — термин, получивший широкое распространение относительно недавно. Под готовностью понимается наличие у системы свойств, сохраняющих ее работоспособность даже в случае возникновения неисправности.
Обычно в качестве показателя готовности используется выраженное в процентах соотношение между "чистым" временем работы системы и общим временем, которое включает в себя запуск, восстановление после сбоев, регламентные работы и т.п.
- Под обслуживаемостью понимается наличие свойств, поддерживающих быстрое устранение неисправности или сбоя в случае их возникновения. Как и в случае надежности, обслуживаемость характеризуется трактуемым по-разному показателем — средним временем между заменами — MTBR (Mean Time Between Repair).
- Экономичность (сохранение инвестиций). Это интегральная характеристика, которая отражает эффективность затрат на покупку и обслуживание вычислительной техники (обычно берутся расходы за несколько лет). Зависит от таких уже рассмотренных характеристик, как расширяемость, масштабируемость и RAS. Как правило, увеличение того или иного ресурса путем установки дополнительного модуля обходится относительно недорого, особенно если сравнивать с заменой всей системы.
Приведенный перечень требований не претендует на полноту (у пользователей всегда найдется несколько дополнительных пожеланий, да и жизнь не стоит на месте), но важнейшие аспекты в нем, на наш взгляд, отражены. Последующее изложение покажет, в какой степени компьютеры семейства Ultra удовлетворяют этим требованиям.
Архитектура семейства компьютеров Ultra
Прежде чем переходить к рассмотрению архитектуры семейства компьютеров Ultra (часто ее называют Ultra-архитектура), необходимо уяснить, как она соотносится с архитектурой SPARC. В противном случае может возникнуть впечатление, что произошла замена одной архитектуры другой, что не соответствует действительности.
Аббревиатура SPARC происходит от словосочетания Scaleable Processor ARChitecture (масштабируемая архитектура процессоров). Данный термин относится к семейству микропроцессоров, появившемуся в 1987 году. Однако, как часто бывает, понятие SPARC постепенно стало ассоциироваться с архитектурой самих компьютеров, производимых фирмой. Следует признать, что в определенном смысле это оправданно, поскольку при разработке и компьютеров, и микропроцессоров использовались общие требования и подходы. К ним относятся высокая производительность и экономичность, масштабируемость (в широком понимании этого слова), ориентация на открытые стандарты, а также наличие мощной программной поддержки.
Именно поэтому, когда в начале 90-х годов руководством Sun Microsystems было принято решение о создании компьютеров нового поколения, речь шла о продолжении традиций и воплощении перечисленных принципов на новом технологическом уровне, с учетом выявившихся тенденций развития вычислительной техники. Поскольку SPARC-архитектура микропроцессоров полностью подтвердила свою жизнеспособность, то основное внимание было сконцентрировано на разработке новой архитектуры компьютеров, которая получила название Ultra, что, по-видимому, должно обозначать ее превосходство над предшественниками и конкурентами.
Разработка велась по трем основным направлениям:
- новый микропроцессор (UltraSPARC);
- новая архитектура межсоединений (Ultra Port Architecture);
- новая память для графических модулей (3D-RAM).
В ходе работы были использованы и некоторые другие технические решения, на которых мы также остановимся.
Микропроцессор UltraSPARC
Не углубляясь в технические детали, ограничимся кратким описанием особенностей данного микропроцессора.
Новая серия микропроцессоров представляет собой уже девятую версию архитектуры SPARC (SPARC Version 9). Эта версия включила в себя наибольшее количество изменений с момента появления первых микропроцессоров SPARC. В список новшеств входят:
- полная 64-разрядность (адрес и данные);
- суперскалярность;
- дополнительный набор команд для поддержки графических приложений;
- средства контроля и исправления ошибок адресов и данных;
- поддержка обеих систем расположения байтов (Big Endian и Little Endian);
- быстрое переключение контекстов, быстрая обработка прерываний
и некоторые другие.
При всем многообразии перечисленных нововведений наиболее важными представляются следующие два:
- 64-разрядность;
- дополнительный набор команд (Visual Instruction Set — VIS).
64-разрядность
Микропроцессоры UltraSPARC являются первыми представителями семейства SPARC, обладающими этим свойством. К моменту их появления процессоры с той же разрядностью уже имели такие известные производители и разработчики микропроцессорной техники, как DEC (Alpha 21064), MIPS (R4xxx) и Hewlett Packard (HP 7200). Увеличение разрядности данных позволяет поднять производительность, а увеличение разрядности адреса снимает ограничение на размер адресуемой области памяти в 4 Гб, что стало критичным для высокопроизводительных многопроцессорных систем.
Дополнительный набор команд поддержки графики VIS
В последние несколько лет отчетливо проявилась тенденция ко все более широкому распространению мультимедийных приложений, причем речь идет не о каких-то специфических областях применения (как например, рекламное дело), а о самых обычных. Качественные звук и изображение являются непременным атрибутом компьютерных игр, да и такие серьезные приложения, как банковские или офисные, все чаще используют современные средства визуализации информации. В этой связи можно говорить о заметном увеличении доли аудио- и видеоданных в общей структуре информации, а также о существенном возрастании потоков данных, подлежащих обработке. Естественно, это требует дополнительных вычислительных ресурсов, и лучше, если эти ресурсы будут специализированными.
Компания Sun была первой, реализовавшей функции поддержки графики в кремнии, для чего был разработан дополнительный набор команд VIS. Этот набор предназначен для аппаратной поддержки двумерной и трехмерной графики, обработки аудио- и видеоданных, а также преобразования изображений. Он содержит 4 группы команд:
- команды обработки и преобразования отдельных пикселов (при этом достигается выигрыш до 30 раз по сравнению алгоритмами обработки без использование VIS);
- команды обработки изображений (масштабирование, повороты, поддержка 2D и 3D-графики);
- команды компрессии/декомпрессии видеоданных (поддержка алгоритмов JPEG, MPEG);
- команды блочной передачи данных.
Использование VIS позволяет при той же частоте микропроцессора получить десятикратный выигрыш в производительности на графических задачах, причем "цена" этого составляет всего 3% от площади кристалла (именно столько места занимает графическое устройство).
Возвращаясь к общим вопросам архитектуры микропроцессора, отметим, что к настоящему моменту появилась уже третья версия кристалла — UltraSPARC-III, работающая на частоте 600 МГц, что для процессоров такой сложности представляется большим достижением.
Графическая память
Быстрое формирование (или преобразование) изображения еще не значит, что соответствующая картинка быстро отобразится на экране монитора, особенно если речь идет об изображении достаточно высокого качества (например, с разрешением 1280 на 1024 пиксела и палитрой в 16 миллионов одновременно отображаемых цветов). Дело в том, что между процессором, который формирует картинку, и монитором располагается видеопамять, которая накладывает на процесс визуализации некоторые ограничения, обусловленные ее внутренней архитектурой, задерживает его. С конца 80-х годов организация микросхем видеопамяти (VRAM) практически не изменилась и морально устарела. Таким образом, одна из основных компонент графической подсистемы, изначально призванная ускорять процесс формирования изображения, стала одним из самых узких мест. Это, конечно, не означает, что использование VRAM перестало быть оправданным, однако построение на ее основе современных графических подсистем становится весьма громоздким. Естественно, что перед специалистами Sun при проработке концепции нового поколения компьютеров встал вопрос о принципиальном решении данной проблемы. Такое решение было найдено.
В 1994 году фирма Mitsubishi Electronics America анонсировала свою новую архитектуру видеопамяти — 3D-RAM, которая обеспечивала увеличение производительности по сравнению с традиционной VRAM примерно в 10 раз (сравнивались скорости рисования треугольников на двух графических подсистемах) при сопоставимой стоимости. Новинка заинтересовала Sun, и в 1995 году было заключено соглашение об использовании 3D-RAM в перспективных компьютерах семейства Ultra. При этом специалисты Sun тесно сотрудничали со своими коллегами из Mitsubishi на этапе адаптации изделия под конкретные требования. Полученная в результате этой работы видеопамять позволила примерно на порядок поднять общую производительность графической подсистемы.
Структура межсоединений UPA
Из трех основных технологий, на которых основывается архитектура Ultra, вне всякого сомнения, ключевой является архитектура межсоединений UPA (Ultra Port Architecture), поскольку именно она определяет поведение потоков данных в системе. В последние годы быстрый рост производительности микропроцессоров, широкое распространение многопроцессорных систем и связанное с этим увеличение объема передаваемых данных привели к нехватке пропускной способности магистралей передачи данных (подробнее о магистралях см. во врезке "Эволюция параллельных шин").
Традиционные решения, представляющие собой общие параллельные шины, практически исчерпали свой потенциал. По крайней мере, для построения многопроцессорных систем с числом процессорных модулей больше четырех целесообразность использования таких магистралей весьма сомнительна, поскольку в зависимости от организации конкретной системы каждый добавленный процессор дает в среднем от 40 до 80 процентов прироста производительности, причем с увеличением числа процессоров эта цифра уменьшается. Пришло время новых решений, позволяющих организовать параллельную передачу данных в системе. Именно к таким технологиям относится UPA. Как можно понять из названия (Ultra Port), данная архитектура предусматривает возможность большого (теоретически неограниченного) количества коммутируемых портов.
Итак, что такое UPA?
UPA — это высокопроизводительная многошинная (многопортовая) масштабируемая архитектура, построенная на принципе одновременной пакетной коммутации нескольких портов и предназначенная для реализации широкого спектра вычислительных систем (от однопроцессорных рабочих станций до многопроцессорных серверов), имеющих оптимальное соотношение производительность/стоимость.
Системы, использующие архитектуру UPA, содержат всего три основных типа функциональных блоков (см. Рис. 1):
- процессорные модули;
- модули ввода-вывода;
- память.
Эти модули связаны друг с другом посредством коммутаторов адреса и данных.
Поскольку передача данных осуществляется только между процессорами или устройствами ввода-вывода и памятью, первые два функциональных узла с точки зрения архитектуры ничем не отличаются, что и отображено на Рис. 1 (блоки, поименованные UPA-порт #N, через коммутатор данных соединяются с банками памяти #M). Поэтому часто говорят, что UPA реализует обмен данными по схеме "процессор-память". Из Рис. 1 видны и некоторые другие особенности архитектуры.
Во-первых, архитектура опирается на многошинную организацию. Имеется три основных типа шин:
- шины UPA-адреса;
- шины UPA-данных;
- шины данных памяти (Memory Databus).
Приведенная на рисунке шина SnoopBus не входит в состав основных шин архитектуры UPA.
Особое внимание следует обратить на основное отличие UPA от других технологий, которое состоит в том, что шины UPA-адреса и UPA-данных имеют свои собственные коммутаторы, и, значит, могут иметь разную топологию. Конкретный пример такой реализации будет рассмотрен при описании системы Ultra Enterprise 10000. Отметим, что понятие "многошинная организация" относится не только к спектру типов используемых магистралей, но и к их количеству.
Во-вторых, количество UPA-портов и банков памяти теоретически не ограничено. Это непосредственно связано с многошинной организацией, поскольку в идеале каждому UPA-порту или банку памяти соответствует собственная шина данных.
В-третьих, все используемые в архитектуре шины имеют соединения типа "точка-точка". Данная особенность архитектуры определяет ее быстродействие, поскольку такой тип соединения характеризуется малой длиной линий и небольшой нагрузкой на них, что позволяет поднять частоту передачи данных до величин порядка 100 МГц. Правда, необходимо оговориться, что на самом деле UPA допускает подключение к шинам до четырех устройств (в основном это касается шин адреса), и в этом смысле утверждение о соединениях "точка-точка" не совсем корректно. Однако такие подключения используются в основном при реализации шин устройств ввода-вывода; что же касается процессорных модулей, то их на одной шине располагается не более двух.
В дополнение к приведенным, архитектура UPA имеет и некоторые другие особенности, к которым относятся:
- возможность масштабирования архитектуры как по разрядности шин, так и по их количеству;
- поддержка режима симметричной многопроцессорности (SMP);
- пакетная передача данных (данные передаются блоками фиксированной длины);
- поддержка когерентности (согласованности) кэш-памяти;
- использование битов четности или ECC-кодов при передачах по всем шинам адреса и данных.
Рассмотрим перечисленные особенности более подробно, поскольку это важно для понимания Ultra-архитектуры в целом.
Масштабируемость и поддержка многопроцессорности естественно следуют из утверждения о неограниченном количестве портов и шин. По сути это означает, что UPA позволяет наращивать производительность системы за счет установки дополнительных банков памяти, модулей ввода-вывода и/или процессорных модулей. Масштабирование разрядности шин позволяет сконфигурировать систему с оптимальным соотношением производительность/стоимость. Так, в серверах начального уровня Ultra Enterprise 1 разрядность процессорной шины составляет 144 бита, шины памяти — 288 бит и шины устройств ввода-вывода — 72 бита.
Что касается симметричной многопроцессорности, то она также является естественным свойством данной архитектуры благодаря идентичности используемых процессорных узлов, наличию единого ресурса — памяти, и механизму поддержки когерентности кэша.
Пакетная передача данных является одной из основных особенностей UPA. Во врезке "Эволюция параллельных шин" говорится о преимуществах магистралей с конвейерной организацией передачи данных. Все это справедливо и для рассматриваемой архитектуры. Она по сути представляет собой набор из нескольких конвейерных шин. Ограничение на размер пересылаемого блока фиксирует время его передачи по шине и предотвращает возможность возникновения конфликтов при использовании одной и той же шины несколькими устройствами.
Этому также способствует наличие буферов в коммутаторах шин данных. Аналогично передаче данных осуществляется передача специальных пакетных сообщений, выполняющих роль запросов на прерывание тех или иных устройств. Благодаря синхронности архитектуры и специфическому протоколу, временные затраты на процедуру прерывания становятся предсказуемыми.
Эволюция параллельных шин
В процессе развития вычислительной техники периодически возникала проблема исчерпания пропускной способности каналов обмена данными. На каждом этапе эта проблема решалась по-своему. Мы хотели бы, не претендуя на детальность изложения, кратко рассказать о том, какими путями развивались шины передачи данных, чтобы были понятны причины появления архитектуры UPA.
Развитие шин передачи данных тесно связано с эволюцией микропроцессорной техники. Появление микропроцессоров стимулировало разработку шинных интерфейсов. Помимо этого, у каждой компании, производящей компьютеры, существовали собственные реализации внутренних каналов обмена, поэтому в дальнейшем изложении мы не будем привязываться к каким-либо стандартам, а рассмотрим основные тенденции развития.
Первые массовые микропроцессоры имели разрядность 8 бит, что определило и организацию соответствующих шин. Кроме того, из-за дефицита количества выводов микросхем (проблема, совершенно неактуальная в наши дни) адрес и данные были мультиплексированы, что также сказалось на реализации некоторых каналов обмена данными (мультиплексированные шины требовали меньшего количества микросхем для своей реализации). В этой ситуации очевидными способами повышения производительности являлись разделение шин адреса и данных, а также увеличение разрядности.
Появление микросхем динамической памяти явилось одним из основных стимулов введения нового режима работы шин — режима блочных передач. Это позволило при том же темпе передачи данных поднять пропускную способность как минимум в полтора раза. Считается, что при пересылке отдельного слова по немультиплексированной шине времена, затрачиваемые на передачу адреса и данных, соотносятся как 3:7. При блочной передаче адрес выставляется только один раз, в начале цикла обмена. Соответственно, чем длиннее блок данных, тем меньшее время занимает передача адреса и тем выше эффективность использования шины.
Следующим нововведением было появление в протоколе микропроцессорных шин средств поддержки когерентности (согласованности) кэш-памяти. Нельзя сказать, что это сильно сказалось на производительности, однако данное качество свидетельствовало о появлении нового типа архитектуры компьютеров — симметричных многопроцессорных систем (SMP-систем), то есть систем, состоящих из однотипных (симметричных) процессорных модулей, соединенных друг с другом посредством общей шины, и имеющих единый ресурс - общую память.
Присутствие на общей шине нескольких процессоров или каких-либо других устройств, имеющих возможность инициировать обмен данными по шине, снижает эффективность ее использования. Это обусловлено необходимостью осуществления процедуры арбитрации, то есть выявления устройств, требующих предоставления шины, определения наиболее приоритетного из них и выделения ему этого ресурса. Для многопроцессорных систем существует понятие линейности. Этим термином обозначается выраженное в процентах отношение реальной производительности системы при определенном количестве процессорных элементов (процессорных модулей) к теоретическому значению, полученному путем умножения производительности однопроцессорной системы на число процессорных элементов. Обычно считается, что эта зависимость сохраняет свою линейность при числе процессоров до 4-х. При дальнейшем наращивании количества процессоров рост производительности происходит все меньшими темпами, а начиная с какого-то значения (для каждой систем оно свое) он прекращается.
Использование механизма когерентности кэш-памяти позволило снизить издержки, связанные с разрешением конфликтов при работе нескольких процессоров с разделяемой (общей) памятью.
Новый этап эволюции шин начался с появлением магистралей с конвейерной передачей данных. Впервые автор столкнулся с таким решением в начале 90-х годов в материалах DEC по макетной системе, явившейся прообразом нового поколения компьютеров с микропроцессором Alpha. Основными особенностями конвейерных магистралей являются:
- синхронность (работа шины стробируется системной частотой);
- высокая эффективность использования;
- большая пропускная способность (частота синхронизации достигает 100 МГц);
- быстрая обработка прерываний, механизм которых отличается от системы прерываний традиционных общих шин (здесь прерывания — это просто сообщения, передаваемые по магистрали, как и обычные данные).
Суть работы такой магистрали состоит в фиксации размера передаваемого блока данных (часто его выбирают равным размеру строки кэш-памяти базового микропроцессора) и четкой синхронизации циклов передачи адреса и данных (линии адреса и данных, естественно, разделены). Таким образом, процесс обмена данными разбивается на фазы, длительность и временные соотношения которых строго определены (после выставления адреса точно известно, в какой момент будет передан блок данных, и когда появится подтверждение правильности приема). Протокол обмена конвейерных магистралей позволяет осуществлять процедуры адресации и арбитрации шины параллельно передаче данных предыдущего цикла. Это дает возможность поднять эффективность использования линий данных практически до 100%. Что касается линейности систем с такими шинами, то, не имея конкретных цифр, все-таки можно утверждать, что она будет выше, чем у систем с общей шиной. Магистрали с конвейерной передачей данных используются в серверах Ultra Enterprise серии X000.
По поводу общих шин, то есть шин, линии которых (адрес, данные, арбитрация и т.п.) подключены одновременно ко всем устройствам, входящим в состав системы, можно утверждать следующее. Они просты в реализации, дешевы, надежны (не содержат активных компонент) и имеют пропускную способность, достаточную для реализации небольших SMP-систем. Однако рост их производительности возможен лишь до определенного предела, который, похоже, уже достигнут. Это связано с принципиальным ограничением на максимальную частоту синхронизации шины. В настоящее время известны магистрали, работающие на частотах до 100 МГц. Дальнейшее увеличение частоты сопряжено с проблемами корректной передачи сигналов, ограничением длины линий магистрали, искажением сигналов в зависимости от количества нагрузок и т.п. Построение высокопроизводительных многопроцессорных серверов, которым, помимо большой вычислительной мощности, требуется огромная пропускная способность магистрали, на базе общей шины представляется нереальным. Для этого требуется новый подход.
Принципиальное преодоление ограничений, которые имеют общее шины, возможно только посредством использования технологий, обеспечивающих одновременную передачу (распараллеливание) большого количества потоков данных. В настоящее время существует несколько решений такого рода, ориентированных на высокопроизводительные вычислительные комплексы:
- технологии, основанные на высокоскоростных каналах с соединениями типа "точка-точка", как, например, последовательно-параллельный интерфейс SCI (Scaleable Coherent Interface), используемый фирмой Sequent в качестве базового канала для реализации многопроцессорного комплекса (технология NUMA);
- технологии, основанные на принципе коммутации потоков данных.
Среди последних наиболее известны две:
- ServerNet фирмы Tandem;
- UPA, на принципах которой построена шина Gigaplane-XB сервера Ultra Enterprise 10000.
Из перечисленных решений понятие шины в полной мере применимо, пожалуй, только к архитектуре UPA.
Пока трудно сказать, какой подход получит наибольшее распространение, поскольку реальное использование этих технологий только началось. Однако можно утверждать, что будущее многопроцессорных систем связано именно с такими решениями.
Поддержка когерентности кэш-памяти. Поскольку UPA рассматривается как базовая архитектура для SMP-систем, то требование поддержки когерентности кэш-памяти выглядит естественным. Особенностью реализации данного требования в рассматриваемой архитектуре является централизованный контроль когерентности кэшей. Под централизованным контролем и управлением понимается наличие отдельного (логически или физически — зависит от конкретной реализации) устройства, которое отслеживает адреса, выставляемые по всем шинам, и выдает модулям сообщения о необходимости обновления содержимого кэша. Наличие такого устройства ускоряет саму процедуру, однако оно может оказаться достаточно громоздким, если система содержит большое количество модулей. Добавим, что идея централизованной обработки коснулась также и процедуры арбитрации шин, которая реализована в том же устройстве и на тех же принципах.
Последние несколько лет проблеме сохранения целостности данных уделяется достаточно много внимания. Само по себе использование битов четности или ECC-кодов не представляют ничего нового и широко распространено, в частности, при реализации каналов доступа к памяти. В данном случае интересен комплексный подход к этой проблеме, когда защищаются не только шины передачи данных, но и шины адреса, что встречается не столь часто.
Объективности ради следует отметить и некоторые узкие места в описываемой архитектуре. Прежде всего это касается вопросов наращиваемости систем. Теоретически все выглядит очень просто, однако на практике возникают довольно серьезные технические проблемы. Например, не так легко представить себе коммутатор 16-ти 144-разрядных шин данных, а ведь именно такие коммутаторы используются в сервере Ultra Enterprise 10000. Это довольно сложные устройства, состоящие из большого количества заказных микросхем. Они были разработаны специально для данного сервера и никаким изменениям не подлежат. То есть коммутатор — это устройство, данное компьютеру на всю жизнь, и прожить с ним надо так, чтобы не было мучительно больно за не лучшим образом потраченные деньги.
То же можно сказать о принципе централизованного управления работой памяти и арбитрации шин адреса и данных. С ростом системы линейно увеличивается количество шин и линий управления, связывающих модули и собственно устройство управления, что на практике может серьезно усложнить наращивание.
Другим тонким местом архитектуры представляется тот факт, что, по утверждениям специалистов компании, UPA была разработана в расчете на SMP-системы с числом процессоров не более 4-х (в данном случае под процессором понимается устройство, имеющее UPA-порт или интерфейс). Это означает, что системы с большим количеством процессоров должны либо использовать для связи какие-то другие способы и интерфейсы (как в серверах семейства Ultra Enterprise X000), либо создавать многоуровневые UPA-структуры (как в Ultra Enterprise 10000).
Другие фирменные технологии
Помимо трех технологий, определяющих основные качества новой архитектуры, компания Sun Microsystems использовала также ряд программно-аппаратных решений, которые позволили развить заложенные в аппаратуру возможности. В число этих решений входят:
- SunTrust — комплекс мер по повышению надежности работы компьютеров;
- система коммутации шин адреса и данных Gigaplane-XB;
- Dynamic System Domain — технология организации виртуальных серверов в пределах одного физического.
Перечисленные решения применяются преимущественно в самых мощных серверах, и поэтому о них нельзя говорить, как о качествах (параметрах, характеристиках), свойственных всему семейству Ultra. Ниже будет дано лишь их краткое описание. Более подробно они будут рассмотрены в разделе, посвященном системе Ultra Enterprise 10000.
SunTrust
Выше, при описании основных требований, предъявляемых к серверам, был введен термин RAS. Применительно к многопроцессорным серверам он нуждается в конкретизации и развитии. Соответствующий комплекс средств и подходов к обеспечению высокой доступности такого рода Ultra-систем получил название SunTrust. Он включает в себя следующие понятия:
- резервируемость системы на уровне основных компонент;
- наличие альтернативных каналов доступа к основным ресурсам: внешней памяти (дискам) и сети (та же резервируемость, но на уровне внешних интерфейсов и устройств);
- возможность логического разбиения ресурсов сервера по аналогии с мэйнфреймами (технология DSD);
- гарантированное восстановление системы после сбоев;
- обеспечение целостности передаваемых данных за счет использования ECC-кодов;
- интеллектуальная система мониторинга с выдачей соответствующих сообщений;
- возможность обслуживания системы без остановки ее работы (горячая замена основных компонент);
- поддержка развитой системы диагностики.
Некоторые компоненты комплекса SunTrust (например, поддержка целостности передаваемых по шинам данных) применяются уже в младших моделях семейства и будут рассмотрены в соответствующих разделах.
Gigaplane-XB
Данное решение выделено потому, что представляет собой очень хороший пример реализации архитектуры UPA. Выше, при описании самой архитектуры, уже подчеркивалась ее специфичность. Если рассмотреть всех представителей нового семейства с точки зрения применения данной технологии, то можно увидеть следующее.
Младшие модели, имеющие не более четырех микропроцессоров, построены в точном соответствии с UPA. Более мощные модели используют эту архитектуру только на уровне процессорных модулей (по два микропроцессора на каждом модуле), связь между которыми осуществляется по общей шине Gigaplane, реализующей конвейерную передачу данных. И только самые высокопроизводительные многопроцессорные системы снабжены коммутатором Gigaplane-XB, в основу которого положена та же архитектура UPA. Таким образом, системы с Gigaplane-XB имеют двухуровневую архитектуру UPA:
- первый уровень — использование UPA в архитектуре модулей;
- второй уровень — использование UPA для связи модулей между собой.
Подобное решение позволяет обходить сложности, связанные с внутренними ограничениями архитектуры, о которых упоминалось выше.
Dynamic System Domain (DSD)
К сожалению, по-русски определение DSD звучит довольно длинно: выделение динамически переконфигурируемых логических серверов (доменов) внутри многопроцессорной системы. Часто для краткости говорят о "сервере в сервере" или "системе в системе". Данное решение имеет следующие особенности:
- процессы создания (выделения) домена, равно как и его уничтожения, происходят параллельно с работой остальных ресурсов сервера, никак не влияя на них;
- нет никаких ограничений на то, какие именно ресурсы сервера можно включать в состав того или иного домена;
- количество доменов определяется лишь числом плат в системе (и, естественно, версией программного обеспечения), и не имеет теоретических ограничений.
Выделение доменов — это один из способов повышения доступности (готовности) системы. Как правило, серверы выполняют достаточно большой набор задач, в том числе критически важных. Часто, чтобы не ставить выполнение подобных приложений в зависимость от остальных, их выносят на отдельные машины. При использовании DSD необходимость в таких дорогостоящих решениях отпадает. Можно привести и другие примеры применения DSD.
Более подробно данная технология будет рассмотрена при описании сервера Ultra Enterprise 10000.
Семейство компьютеров Ultra
В данной главе будут рассмотрены основные серии компьютеров семейства Ultra. По функциональному назначению все семейство можно разбить на две категории:
- рабочие станции (серия Ultra)
- серверы (серии Ultra Enterprise, Ultra-HPC).
Все они очень похожи друг на друга и часто используют одинаковые функциональные узлы. Так, рабочие станции Ultra 1&2 и серверы Ultra Enterprise 1&2 с точки зрения их внутренней архитектуры представляют собой практически одни и те же машины. Поэтому в последующих разделах при рассмотрении конкретных представителей семейства основной упор сделан на корпоративные серверы Ultra Enterprise (здесь понятие "корпоративный" означает не мощность вычислительной системы, а область ее применения), представляющие собой законченный ряд (полный спектр) компьютеров, закрывающий потребности любой организации на любом уровне — от рабочих групп до центров обработки данных и серверов баз данных. Серверы Ultra Enterprise имеют наиболее широкий модельный ряд, и от них легко перейти к рассмотрению остальных групп.
По своему назначению, уровню производительности и стоимости компания Sun Microsystems выделяет три типа серверов серии Ultra Enterprise:
- серверы начального уровня или серверы рабочих групп (системы Ultra Enterprise 1, 2, 150 и 450),
- серверы среднего уровня или серверы уровня отделов, куда входят системы Ultra Enterprise 3000 и 4000;
- серверы высшей ценовой группы или центры обработки данных (системы Ultra Enterprise 5000, 6000 и 10000).
Однако, поскольку в данной статье основным критерием является архитектура той или иной системы, а не ее цена, то далее будет использоваться другая классификация — по типу реализации UPA-архитектуры. В результате также получается три группы серверов.
К первой относятся серверы с одноуровневой UPA-архитектурой (Ultra Enterprise 1&2, 150 и 450).
Вторую группу составляют серверы, имеющие комбинированную двухуровневую архитектуру, в которой первый уровень (архитектура модуля) базируется на UPA, а второй уровень (архитектура межмодульных соединений) построен на основе общей шины (модели серии Ultra Enterprise X000).
Наконец, в третью группу попал только один сервер — Ultra Enterprise Server 10000, имеющий двухуровневую UPA-архитектуру.
Перейдем к рассмотрению перечисленных групп и отдельных моделей.
Серверы с одноуровневой UPA-архитектурой
Общая характеристика группы
В первую группу входят 4 модели: Ultra Enterprise 1, 2, 150 и 450 (см. Таб. 1). Согласно введенной выше классификации, они относятся к системам с одноуровневой архитектурой UPA. Это означает, что все функциональные узлы, имеющие UPA-порты, обращаются к общей памяти через единственный коммутатор шин данных (структурные схемы конкретных моделей приведены ниже), то есть данные проходят по маршруту "UPA-порт — коммутатор — память". По классификации компании эти компьютеры также попадают в одну группу серверов начального уровня (серверов рабочих групп). Такое совпадение не случайно, поскольку для серверов рабочих групп одним из важнейших является показатель производительность/стоимость, который имеет наилучшие значения именно у машин с одноуровневой UPA-архитектурой.
Отличительной чертой рассматриваемых серверов является ориентация на достижение оптимального соотношения производительность/стоимость. При рассмотрении UPA уже упоминалось, что эта архитектура разрабатывалась в расчете на небольшие SMP-системы с числом процессоров до четырех. Серверы Ultra Enterprise 1, 2, 150 и 450 относятся именно к такой категории.
Чтобы создать высокопроизводительные и, вместе с тем, экономичные серверы, разработчики использовали уже апробированные решения, позволяющие снизить стоимость компьютеров.
Прежде всего это конструктивное исполнение по принципу единой материнской платы, имеющей слоты расширения с интерфейсами UPA, Sbus или PCI. Наращивание системы или ее переконфигурирование осуществляется при помощи сменных модулей, которые могут содержать устройства ввода-вывода, микропроцессоры или банки памяти. Такая компоновка знакома всем, кто хоть раз заглядывал внутрь персонального компьютера. Серверы двух других групп имеют более сложные конструктивы с пассивными или активными объединительными платами.
Другое решение, повлиявшее на стоимость, состоит в ограничении числа процессорных модулей (не более четырех, причем четыре модуля можно устанавливать только в самой старшей модели группы — Ultra Enterprise 450, появившейся относительно недавно). Прежде всего это обусловлено ограничением самой архитектуры UPA, и, уже во вторую очередь, небольшими размерами материнской платы. Таким образом, рассматриваемые системы используют UPA в ее "крейсерском" режиме. Кроме того, ограничение количества процессоров позволяет упростить и, соответственно, удешевить логику управления их работой.
Хотелось бы отметить также следующие особенности серверов с одноуровневой UPA-архитектурой:
- Унификация сменных модулей. Все модели в данной серии имеют оригинальные материнские платы. На практике это оказывается дешевле, чем полная их унификация. Однако все сменные модули (процессорные, модули ввода-вывода и память) являются взаимозаменяемыми в пределах группы. Более того, в серверы Ultra Enterprise можно устанавливать модули ввода-вывода с интерфейсом Sbus от компьютеров предыдущего поколения. Это позволяет пользователям сэкономить деньги на их покупку, а фирме — на их адаптацию к новым компьютерам.
- Элементы технологии RAS. В полной мере данная технология, точнее, ее фирменная реинкарнация SunTrust, реализована только в старших моделях, однако отдельные элементы присутствуют и в серверах начального уровня. Прежде всего, это использование дополнительных битов четности и ECC-кодов на основных шинах, связывающих функциональные устройства с коммутатором, а также программные средства контроля и диагностики работы системы. Сюда же можно отнести и традиционный для Sun подход к исполнению конструктива и компоновке системы, позволяющий быстро и без применения специфического инструмента осуществлять замену неисправных модулей или переконфигурирование компьютера.
Возвращаясь к теме стоимости, необходимо отметить, что практика лишний раз подтверждает старую истину: "копейка рубль бережет". Основная экономия набирается из мелочей (унификация компонент, интеграция функциональных блоков, использование широко распространенных стандартов и т.п.), на фоне которых дороговизна микропроцессоров оказывается незаметной. Поэтому в серверах процессоры — это "священная корова", на которой не экономят.
Особенности серверов Ultra Enterprise 1&2
Одной из целей компании Sun Microsystems является создание линии компьютеров, которые позволяли бы реализовывать однородные вычислительные структуры (закрывали потребности в вычислительной технике) организаций любого масштаба, от небольшой фирмы до крупной корпорации.
Рассматриваемые ниже серверы Ultra Enterprise 1 и 2 являются младшими представителями семейства Enterprise и, как все компьютеры начального уровня, характеризуются невысокой ценой и достаточно простой архитектурой (см. Рис. 2).
Ultra Enterprise 1 предназначается для работы в качестве вычислительного сервера небольших рабочих групп, либо сервера в локальной сети персональных компьютеров с числом пользователей до 100. Сервер имеет один процессор и минимальный набор внешних интерфейсов, в который входят 10Base-T Ethernet, Narrow SCSI (10 Мб/с) и стандартные интерфейсы для подключения принтера, клавиатуры и т.п. Дальнейшее наращивание ресурсов или изменение конфигурации осуществляется за счет трех дополнительных слотов Sbus, которые пользователь может задействовать под модули устройств ввода-вывода (например, дополнительный Fast Wide SCSI для подключения внешнего дискового массива) или графики.
Ultra Enterprise 2 отличается большими возможностями по наращиванию ресурсов и большей производительностью. Прежде всего имеется в виду поддержка многопроцессорности. Хотя в данном случае это звучит слишком громко (сервер имеет всего два процессорных модуля), дело не в количестве, а в принципе. До появления модели 450 рассматриваемый сервер являлся самым мощным в категории компьютеров с одноуровневой архитектурой UPA.
Наличие второго процессорного модуля, помимо увеличения производительности, влечет за собой и более высокие требования к параметрам внешних интерфейсов. Для того, чтобы система была более сбалансированной, базовая конфигурация содержит Fast Ethernet (10/100 Мбит/с) и Fast Wide SCSI (20 Мб/с), а число дополнительных слотов увеличено с трех до пяти, причем один из них — UPA-слот. Кроме того, в два раза увеличена разрядность шины данных банков памяти. Эти, казалось бы совсем не революционные изменения превращают Ultra Enterprise 2 в достаточно привлекательную платформу для реализации высокопроизводительных вычислительных или файловых серверов.
Рассматриваемые модели серверов предназначены для использования в локальных сетях персональных компьютеров, как правило, работающих под управлением различных вариантов ОС Windows. Чтобы обеспечить нормальную работу таких разнородных конфигурацией, компанией Sun Microsystems предлагается набор программных продуктов, таких как Solstice PC-Networking, Solstice LM Manager и некоторых других.
Что касается элементов технологии SunTrust, то в данных серверах из аппаратурных средств реализованы лишь дополнительные коды контроля, коррекции и четности на основных шинах и датчики перегрева, управляющие скоростью вращения вентиляторов, а из программных средств — программа диагностики и тестирования SunVTS и обширный начальный тест (POST — Power-On Self-Test).
Особенности серверов Ultra Enterprise 150
Данная модель по своей архитектуре (см. Рис. 3) и основным характеристикам схожа с Ultra Enterprise 1 с той лишь разницей, что ориентирована на применение в качестве файлового сервера. Это выражается в наличии встроенного в корпус дискового массива на 12 позиций. Если в уже рассмотренных моделях увеличение объема дисковой памяти производилось за счет дополнительных Sbus-слотов и использования внешних накопителей, то здесь такой необходимости нет (двенадцати дисков должно хватить). Соответственно, число слотов расширения уменьшено до двух.
Наличие большого объема дисковой памяти у файлового сервера подразумевает частое обращение к нему и, как следствие, требование высокой пропускной способности внешних каналов, связывающих сервер с остальными устройствами локальной сети. Поэтому в базовой конфигурации для подключения к сети используется Fast Ethernet (10/100 Мбит/с).
Остановимся подробнее на некоторых новых, по сравнению с предыдущими моделями, элементах обеспечения целостности данных и надежности работы, связанных с наличием дискового массива RAID (Redundant Array of Independent/Inexpensive Disks/Drives. В литературе встречаются разные варианты расшифровки, однако изначально речь шла именно об избыточных массивах недорогих дисков). Имеются в виду:
- "горячее" включение и замена дисков;
- поддержка различных уровней RAID.
Термины "горячее" включение и "горячая" замена (hot plug и hot swap) означают возможность включения или замены тех или иных компонентов компьютера без остановки его работы. Раньше такими качествами обладали только отказоустойчивые системы, однако, сейчас они получают все более широкое распространение и в обычной вычислительной технике, включая ПК. Данные функции подразумевают наличие в системе аппаратно-программных средств поддержки. К ним относится программно управляемое включение питания сменных компонент, наличие географической ("по месту") адресации компонент, возможность динамической переконфигурации системы без ее перезапуска и т.д.
Дисковые массивы, которыми комплектуются серверы Ultra Enterprise 150, поддерживают уровни RAID 0, 1 и 5.
Особенности серверов Ultra Enterprise 450
Ultra Enterprise 450 среди остальных моделей стоит особняком. Возможно, это связано с тем, что данный сервер появился относительно недавно, и при его разработке был учтен опыт эксплуатации трех других моделей. Во всяком случае, количество внесенных изменений достаточно велико. Наиболее важными представляются следующие особенности:
- увеличение числа процессорных модулей до четырех;
- использование встроенного дискового массива (решение, уже апробированное в модели Ultra Enterprise 150);
- использование шины PCI в качестве базового интерфейса для наращивания системы.
Похоже, разработчики преследовали цель создать универсальную высокопроизводительную систему с широкими возможностями наращивания ресурсов, используя для этого стандартные модули.
Рассмотрим перечисленные особенности подробнее.
Появление 4-процессорной версии недорогого сервера, по-видимому, связано с использованием интерфейса PCI, который позволил удержать стоимость системы на приемлемом уровне. С другой стороны, возможность наращивания вычислительной мощности всегда выглядит привлекательно для пользователей. С точки зрения архитектуры добавление еще двух процессорных модулей не является принципиальным. Для этого достаточно посмотреть на структурную схему (см. Рис. 4). Она мало чем отличается от рассмотренных выше. Кроме того, обратим внимание на то, что как и в модели Ultra Enterprise 2, на один UPA-порт приходится по два микропроцессора (об этом уже говорилось в разделе "Структура межсоединений UPA").
Дисковый массив в Ultra Enterprise 450 построен по той же схеме, что и в Ultra Enterprise 150. Отличия состоят в числе дисков (20 против 12), их организации (в модели 450 доступ ко всем дискам осуществляется через три контроллера SCSI, а в модели 150 — через один) и пропускной способности каналов (40 Мб/с у модели 450 против 20 Мб/с у модели 150). Из 20 дисков четыре являются системными и управляются контроллером, расположенным на материнской плате. Доступ к остальным дискам осуществляется через отдельные модули контроллеров, устанавливаемые в слоты PCI.
Сервер имеет 10 дополнительных PCI-слотов. Все они, за исключением одного, могут поддерживать 64-разрядный режим. Семь слотов рассчитаны только на 33 МГц-версию стандарта PCI, оставшиеся три поддерживают обе версии — 33 МГц и 66 МГц.
Из нововведений следует отметить также резервированную систему питания. Суть ее состоит в том, что источники питания, как и дисковая система, построены на основе сменных модулей, количество которых соответствует потребностям системы в ее максимальной конфигурации плюс один. То есть в случае выхода из строя одного модуля источника питания его функции возьмет на себя резервный модуль. При этом исправность этих модулей отслеживается программно, и в случае какого-либо сбоя выдается соответствующее сообщение. Замена модулей источников питания производится при работающем сервере.
Дальнейшее наращивание мощности серверов в рамках конструктива одной материнской платы представляется нецелесообразным как с точки зрения архитектуры, так и с точки зрения стоимости (экономичности) изделия. Поэтому более мощные модели семейства Ultra Enterprise построены на основе модульной структуры. Об этой серии машин пойдет речь в следующем разделе.
Семейство серверов Ultra Enterprise X000
Общая характеристика группы
Данная группа серверов с точки зрения архитектуры не столь разнообразна, как младшие модели или система Ultra Enterprise 10000, рассмотрение которой еще предстоит. По сути все серверы серии Ultra Enterprise X000, вне зависимости от того, в какую категорию они попадают по классификации компании Sun (серверы больших рабочих групп, серверы уровня отдела или корпоративные), представляют вариации на тему одного и того же компьютера. Различия состоят лишь в разной конфигурации и типе корпуса. Поэтому в данном разделе будет дано описание общей архитектуры этих серверов, а не отдельных моделей, как это делалось раньше.
Выше архитектура серверов данной серии была определена как двухуровневая комбинированная. Это означает, что на уровне системных плат используется архитектура UPA, а взаимодействие и обмен данными между платами осуществляется по общей шине с конвейерной организацией передач, называемой Gigaplane. Структурная схема серверов Ultra Enterprise X000 приведена на Рис. 5.
Gigaplane представляет собой системную шину, по которой осуществляется обмен данными между всеми платами в системе. Эта шина является синхронной (частота синхронизации — 83.3 Мгц) и имеет разрядность 256 бит. Для того, чтобы обеспечить необходимую пропускную способность, Gigaplane имеет вдвое большую разрядность по сравнению с UPA-шинами данных на системных платах. Передача производится пакетами фиксированного размера (64 байта). Шина имеет раздельные линии для передачи адреса, данных и сигналов управления, что позволяет существенно поднять ее пропускную способность. Согласно утверждениям компании, эффективность шины составляет 95% и ее реальная пропускная способность достигает 2.5 Гб/с. Физическая реализация Gigaplane представляет собой объединительную плату с односторонним или двусторонним расположением разъемов (последнее делается для уменьшения длины линий и зависит от максимального числа устанавливаемых плат).
От младших моделей серия Ultra Enterprise X000 отличается более высокой степенью унификации компонент. Во-первых, число разновидностей системных плат сведено к минимуму. Существует всего три их типа:
- платы, содержащие микропроцессоры и память;
- платы с устройствами ввода-вывода;
- сервисная плата, на которой устанавливаются системные генераторы и формирователи частоты (в системе может находиться только одна такая плата).
Минимальная конфигурация системы должна содержать по одной плате каждого типа. Все платы, за исключением сервисной, являются взаимозаменяемыми и могут устанавливаться в любую позицию на объединительной плате.
Архитектура системных плат
В данном разделе мы рассмотрим два типа плат:
- платы процессора/памяти;
- платы с устройствами ввода-вывода.
Архитектура плат процессора/памяти очень похожа на архитектуру серверов Ultra Enterprise 2 (см. Рис. 6) с той лишь разницей, что рассматриваемые платы не имеют такой развитой интерфейсной части. Два процессорных модуля через контроллеры адреса и данных, составляющих основу UPA-архитектуры платы, могут обращаться к двум банкам памяти общим объемом до 2 Гб. Доступ процессоров к интерфейсу Gigaplane и далее на саму шину также осуществляется через UPA-коммутатор.
В серверах серии X000 используется три модификации плат ввода-вывода. Первая содержит интерфейс Gigaplane и три слота Sbus (см. Рис. 7), из которых два расположены на одной шине Sbus, и один — на второй шине. Помимо данных слотов, на плате имеются два интерфейса Fiber Channel и интерфейсы Ethernet и SCSI. Вторая модификация аналогична первой с той лишь разницей, что вместо третьего слота Sbus располагается UPA-слот, который используется для установки высокопроизводительных графических модулей Creator или Creator 3D. И, наконец, третья модификация (см. Рис. 8) содержит в качестве основной шины модулей устройств ввода-вывода шину PCI, которая рассматривается компанией как перспектива на ближайшее будущее.
Особенности различных моделей серии Ultra Enterprise X000
Данная серия состоит из 4 моделей Ultra Enterprise: 3000, 4000, 5000 и 6000 (см. Таб. 2). Основное их отличие состоит в максимальном числе устанавливаемых плат, объеме встроенных дисковых массивов и, как следствие, разных типах корпуса. Ниже приведены краткие характеристики каждой модели.
- Ultra Enterprise 3000. Самый маленький сервер. Имеет всего четыре слота для установки системных плат и 10 мест для встроенных дисков. Поскольку количество слотов объединительной платы невелико, расположение плат одностороннее.
- Ultra Enterprise 4000. Имеет 8 слотов для установки системных плат с односторонним расположением на объединительной плате. Не имеет встроенного дискового массива.
- Ultra Enterprise 5000. Полностью идентичен предыдущей модели, но имеет существенно больший корпус, позволяющий размещать в нем дополнительные диски, накопители на лентах и т.п.
- Ultra Enterprise 6000. Имеет 16 слотов для установки системных плат с двусторонним расположением на объединительной плате. Корпус такой же, как у модели 5000.
Особенности реализации элементов технологии SunTrust
С точки зрения аппаратуры все сказанное выше в отношении системы Ultra Enterprise 450 остается верным и для данной серии серверов. Новшеством является возможность "горячей" замены системных плат. Другая новинка, непосредственно связанная с первой, это системный монитор SyMON.
Чем сложнее система, тем острее потребность в средствах слежения и управления ею. К таким средствам относится системный монитор SyMON. Он предназначен для мониторинга событий, происходящих в системе, оценки производительности, предсказания вероятных сбоев аппаратуры, а также для планирования загрузки системы. Монитор может помочь администратору системы в оценке степени ее загруженности и обнаружении "узких" мест, где теряется производительность, что позволяет правильно подобрать конфигурацию.
Монитор SyMON состоит из трех подсистем со следующими функциями:
- Server постоянно собирает информацию о состоянии системы;
- Event Manager анализирует эту информацию и на основании программно определенных правил и признаков выбирает только необходимые ему для учета события;
- Graphical User Interface отображает полученную информацию на экране в удобном для пользователя виде.
Одной из основных функций монитора является предсказание аппаратурных сбоев.
Техника всегда сбоит, и причин тому может быть множество. Иногда все проходит безболезненно, а иногда сбой приводит к тяжелым последствиям. Монитор SyMON позволяет свести неприятные неожиданности к минимуму. Любое нарушение корректной работы того или иного узла, доступного для системного монитора, фиксируется им. Далее полученные данные анализируются администратором. Если выясняется, что какое-то устройство слишком часто появляется в "черном списке", лучше заменить его, пока не поздно. Чтобы свести потери времени к минимуму, а точнее, вообще не терять его, в серверах данной серии предусмотрена возможность "горячей" замены модулей. Эта возможность впервые появилась именно в серии серверов Ultra Enterprise X000.
Сервер Ultra Enterprise 10000
Особенности архитектуры
Модель 10000 является старшим и наиболее совершенным в техническом отношении представителем семейства Ultra Enterprise. В ней реализованы самые последние достижения и разработки компании Sun Microsystems, большинство из которых полностью отсутствует в младших моделях. К числу принципиальных инноваций относятся:
Gigaplane-XB — системный пакетный коммутатор, служащий для обеспечения межплатных соединений и аналогичный по своей структуре и характеристикам наплатным коммутаторам;
Dynamic System Domain (DSD) — система выделения логических серверов (доменов) внутри одного физического. Технология "сервер в сервере" ранее реализовывалась только в мэйнфреймах.
SunTrust — комплекс мер по обеспечению целостности данных и повышению доступности компьютерной системы.
Сервер Ultra Enterprise 10000 позволяет устанавливать до 16 системных плат и достигать пиковой производительности 25 Gflops (подробные технические характеристики сервера приведены в Таб. 2). Обеспечение нормальной работы такого количества процессоров представляет собой отдельную техническую проблему. В данном случае она решается при помощи использования двухуровневой архитектуры UPA, в которой первый (нижний) уровень составляет архитектура системных плат, а второй (верхний) — архитектура межплатных соединений.
Структура сервера выглядит довольно просто. Основу ее составляет системный пакетный коммутатор Gigaplane-XB, обеспечивающий коммутацию всех шин адреса и данных. К нему подключаются системные платы и плата управления, содержащая систему диагностики JTAG, генераторы синхросигналов и интерфейсы (Ethernet и последовательный) с удаленными устройствами. По существу в сервере используются платы всего одного типа (плата управления в расчет не берется, так как является вспомогательной), что имеет определенные преимущества. Во-первых, это снижает стоимость вычислительной системы и повышает удобство ее обслуживания и эксплуатации (тем более, что устанавливаемые на плату модули унифицированы с другими серверами семейства Ultra Enterprise). Во-вторых, за счет минимизации объема межплатных передач, связанных с обменом данными между устройствами ввода-вывода и памятью, снижается поток данных, передаваемых по Gigaplane-XB, то есть оптимизируется работа сервера и повышается его эффективность.
Архитектура системных плат
Системная плата сервера Ultra Enterprise 10000 представляет собой универсальное высокопроизводительное устройство, разработанное с использованием архитектуры UPA. Плата содержит следующие функциональные модули (см. Рис. 9):
- микропроцессорные модули (от 0 до 4-х);
- банки памяти (не более 4-х);
- модули ввода-вывода (не более 4-х, располагаются попарно на двух внутримодульных шинах Sbus);
- 4 буфера данных (XDB);
- локальный коммутатор данных (LDMUX);
- адресные контроллеры UPA-портов и памяти (PC и MC);
- 4 контроллера когерентных интерфейсов адресных шин (CIC), выполняющие функции коммутаторов адреса;
- локальные арбитры адреса и данных (LAARB и LDARB).
Назначение большинства перечисленных устройств не требует пояснений, однако функции некоторых из них необходимо прокомментировать. Это относится к буферам данных — узлам, которые в "чистом" виде не встречались до этого момента в других серверах, и контроллерам когерентных интерфейсов.
Буферы данных (XDB) обеспечивают бесконфликтное разрешение ситуаций, когда происходит одновременный доступ к одному и тому же порту со стороны нескольких устройств. В этом случае допускается проведение передачи только одного пакета, а остальные данные сохраняются в буферах передающих портов до завершения обмена. Благодаря фиксированной длине пакета (64 байта) максимальное время задержки до завершения передачи никогда не превышает постоянного значения (500 нс), а сама процедура разведения потоков данных легко прогнозируется.
Контроллеры когерентных интерфейсов шин адреса выполняют те же функции, что и аналогичные устройства в младших моделях серверов — обеспечивают проведение циклов передачи адреса и следят за когерентностью кэш-памяти системных модулей.
В целом архитектура платы очень напоминает архитектуру сервера Ultra Enterprise 450 с той лишь разницей, что в данном случае коммутаторы адреса и данных имеют еще по одному дополнительному порту, который обеспечивает подключение платы к глобальному коммутатору второго уровня, а число коммутаторов адреса увеличено до четырех. Соответственно, и производительность этой платы мало отличается от производительности упомянутого сервера. То есть каждая системная плата "десятитысячника" и по вычислительной мощности, и по интерфейсам представляет собой полноценный высокопроизводительный сервер, что и используется технологией "сервер в сервере".
Своеобразное расположение функциональных узлов на структурной схеме, непохожее на аналогичные схемы для плат "тысячников", сделано специально для того, чтобы лучше отобразить особенности организации связей как на отдельной плате, так и в системе в целом.
Еще одной особенностью архитектуры платы, которую следует подчеркнуть особо, является наличие шины, связывающей коммутаторы адреса и данных. Это сделано для повышения живучести системы, о чем будет сказано при рассмотрении функций SunTrust.
Архитектура межплатных соединений. Коммутатор Gigaplane-XB
Второй уровень архитектуры сервера Ultra Enterprise 10000 составляют межплатные соединения, физической реализацией которых является глобальный коммутатор Gigaplane-XB.
Коммутатор Gigaplane-XB предназначен для обеспечения соответствия пропускной способности каналов обмена данными в системе ее высокой производительности. Чтобы выполнить это требование, в основу данного коммутатора была положена архитектура UPA. Благодаря такому решению удалось достичь интегральной пропускной способности 12.8 Гб/с.
К числу особенностей реализации Gigaplane-XB относятся следующие:
- наличие раздельных шин адреса и данных, использующих соединения типа "точка-точка";
- специфическая организация шин адреса и данных, обеспечивающая повышенную надежность работы коммутатора;
- живучесть коммутационных ресурсов сервера (возможность работы на половинной разрядности шины данных и любом числе шин адреса);
- возможность наращивания производительности системы за счет установки дополнительных системных модулей общим числом до 16 (это соответствует 64 микропроцессорам);
- поддержка кодов контроля и коррекции (ECC-кодов) при передаче адреса и данных;
- обеспечение минимальной задержки передачи пакета данных, составляющей менее 500 нс.
Наибольший интерес из перечисленных особенностей представляют первые три. Мы рассмотрим их в совокупности.
Организация шин адреса и данных в коммутаторе Gigaplane-XB
Сначала — несколько терминологических замечаний. Gigaplane-XB является коммутатором, который состоит из двух логических частей:
- коммутатора шин адреса;
- коммутатора шин данных.
В фирменной документации применительно к коммутатору адреса используется термин "шина", поскольку в нем, в отличие от коммутатора данных, адрес передается сразу всем устройствам, как в общих шинах, то есть реализуется принцип передачи "от одного всем". Такая организация адресных шин объясняется следующими причинами. Принцип передачи адреса по типу общей шины хорош тем, что он позволяет осуществлять мониторинг адресов для обеспечения когерентности кэш-памяти, однако общая шина имеет ограниченное быстродействие, которое снижается с увеличением длины шины и/или числа нагрузок на ней. Принцип коммутации информации обеспечивает высокое быстродействие, но не допускает мониторинга. В данном случае предпринята попытка объединить достоинства двух этих методов. И, похоже, она удалась.
Внутренняя организация Gigaplane-XB интересна тем, что она содержит четыре адресных коммутатора, или, следуя фирменной терминологии, шины (см. Рис. 10). Число их соответствует числу модулей памяти на системных платах, и каждый модуль обычно выводится (коммутируется) на отдельную шину адреса. Таким образом может быть осуществлена одновременная адресация (но не передача данных!) ко всем модулям памяти платы. Большое число шин адреса необходимо для обеспечения высокой пропускной способности коммутатора данных. При меньшем их количестве коммутатор данных будет простаивать.
Gigaplane-XB реализован в виде двухплатной конструкции, где каждая плата содержит коммутатор данных половинной разрядности и две шины адреса.
Благодаря подобной организации сервер остается работоспособным даже в случае выхода из строя одной такой платы. Правда, для этого потребуется перезапуск компьютера. При выходе из строя любого количества шин адреса работоспособность сервера также сохраняется, причем в случае, когда отказали все адресные шины, предусмотрен протокол передачи адресов по шинам данных, хотя о высокой производительности в такой ситуации придется забыть.
Сервер в сервере. Технология DSD (Dynamic System Domain)
Коммутатор Gigaplane-XB предоставляет пользователям широкие возможности, недоступные ранее. Об одной из таких возможностей пойдет речь в данном разделе.
DSD является одной из трех ключевых технологий, на которых основывается архитектура сервера Ultra Enterprise 10000. Она позволяет, опираясь на предоставляемые двухуровневой UPA-архитектурой возможности, выделять внутри сервера самостоятельные вычислительные структуры — домены. В качестве доменов может выступать от одной до нескольких системных плат, тем более, что каждая системная плата представляет собой высокопроизводительный компьютер, имеющий все необходимое для самостоятельной работы. Соответственно, максимальное число доменов в системе не может превышать шестнадцати. Домен является полноценным SMP-компьютером, который помимо ресурсов, расположенных на системных платах, располагает собственным системным диском, сетью и каналами обмена информацией с соседними доменами.
Таким образом, технология DSD позволяет рассматривать сервер как вычислительный комплекс, состоящий из большого количества (до шестнадцати) независимых многопроцессорных SMP-систем, связанных между собою высокоскоростными каналами обмена данными, причем конфигурация этих связей может определяться пользователем. Подобное подразделение большой системы на несколько меньших раньше использовалось только в больших компьютерах класса мэйнфреймов. Здесь же такая возможность является естественным следствием архитектуры сервера.
Считается, что технология "сервер в сервере" имеет следующие три неоспоримых преимущества перед аналогичными по мощности и конфигурации системами, состоящими из нескольких связанных между собой серверов:
- она позволяет сократить общие затраты конечного пользователя (под этим понимается экономия при покупке и эксплуатации одного большого сервера по сравнению с аналогичной по суммарной мощности конфигурацией из нескольких меньших серверов);
- упрощаются процедуры управления, повышается гибкость переконфигурирования системы (аппаратная переконфигурация в системе из нескольких серверов заменяется в Ultra Enterprise 10000 программным перераспределением ресурсов при помощи системного монитора);
- повышается возможность защиты критичных приложений (благодаря выделению отдельного домена под конкретное приложение).
Существует множество способов использования технологии DSD. Здесь и безопасное тестирование нового ПО, и использование системы в качестве корпоративного сервера с гибким перераспределением вычислительных ресурсов между различными подразделениями в зависимости от производственной необходимости, и многое другое.
Из прочих особенностей системы выделения логических серверов в Ultra Enterprise 10000 стоит отметить следующие:
- в качестве домена минимального размера может выступать системная плата, что устанавливает максимальное число доменов равным шестнадцати (в настоящее время этот показатель еще не достигнут);
- благодаря Gigaplane-XB в состав одного домена могут входить платы, расположенные в любом месте системы (см. Рис. 11);
- домены полностью изолированы друг от друга (для обеспечения данного качества используется специальная процедура, называемая фильтрацией доменов), то есть программные или даже аппаратные ошибки в одном из них не оказывают никакого влияния на работу остальных;
- домены могут динамически порождаться, видоизменяться и уничтожаться без перезагрузки системы, что существенно для процедуры замены отдельных плат.
Для задач, связанных с созданием, переконфигурированием и уничтожением доменов, равно как и для задач администрирования сервера вообще используется Системный Сервисный Процессор (SSP), представляющий собой рабочую станцию с ОС Solaris, на которой установлено специальное программное обеспечение.
Очевидно, технология DSD напрямую связана с комплексом мер по обеспечению надежности сервера — Sun Trust.
Технология SunTrust
Выше, на примере серверов серии X000, был рассмотрен ряд свойств, обеспечивающих повышенную доступность систем. К ним относятся:
- применение соединений типа "точка-точка", при использовании которых выход из строя одной шины не сказывается на работе других;
- использование кодов контроля и коррекции (ECC-кодов) и дополнительных битов четности при передаче данных по шинам адреса и данных;
- поддержка встроенными дисковыми массивами различных уровней RAID;
- тестирование системы по включению питания (POST);
- использование системы диагностики Sun VTS;
- применение комплекса мер по поддержанию рабочей температуры во всех точках компьютера с выдачей сообщений о нарушении температурного режима и, даже, автоматическим перезапуском системы;
- возможность "горячей" замены отдельных плат, дисков, источников питания и вентиляционных панелей.
В "десятитысячнике" все эти свойства также присутствуют, поскольку методы обеспечения надежной работы системы учитывались еще на этапе выдвижения требований.
Так, для обеспечения надежности были выдвинуты требования разработки такой системы, в которой вероятность возникновения ошибок минимальна. При этом должны быть предусмотрены механизмы аппаратурного выявления и коррекции ошибок.
Готовность сервера должна обеспечиваться за счет механизмов (программных) обнаружения и изоляции ошибок, механизмов восстановления системы после сбоев и поддержки резервируемости.
Высокий уровень обслуживаемости должен обеспечиваться за счет простоты процедур обслуживания и облегчения доступа к заменяемым ресурсам.
Все эти задачи были успешно решены.
В начале статьи (в разделе "Другие фирменные технологии") приводился перечень компонент, составляющих технологию SunTrust. Напомним его:
- резервируемость системы на уровне основных компонент;
- наличие альтернативных каналов доступа к основным ресурсам: внешней памяти (дискам) и сети;
- возможность логического разделенния ресурсов сервера по аналогии с мэйнфреймами;
- гарантированное восстановление системы после сбоев;
- обеспечение целостности передаваемых данных и адресов за счет использования ECC-кодов;
- интеллектуальная система мониторинга с выдачей соответствующих сообщений;
- возможность обслуживания системы без остановки ее работы (горячая замена основных компонент);
- поддержка развитой системы диагностики.
Рассмотрим перечисленные компоненты более подробно.
Резервируемость системы на уровне основных компонент
Сервер может быть сконфигурирован таким образом, что все его основные компоненты и каналы обмена данными будут зарезервированы. Это касается системных плат и плат управления, плат глобального коммутатора, внешней памяти, контроллеров внешних каналов, источников питания, а также Системного Сервисного Процессора (SSP). Более того, если еще раз посмотреть на архитектуру системных модулей, то можно обратить внимание на то, что они содержат по нескольку однотипных модулей процессоров, памяти и устройств ввода-вывода, что также может рассматриваться и использоваться как резерв.
Очень большое внимание в сервере Ultra Enterprise 10000 уделяется системам питания и охлаждения. Если важность нормального питания не вызывает сомнений, то по поводу системы охлаждения следует дать некоторые пояснения.
Работа электронных схем сильно зависит от температуры. Ее изменение влияет на временные характеристики микросхем и устойчивость их функционирования. Все фирмы-изготовители полупроводниковых изделий устанавливают для них рабочий диапазон температур (обычно это 0-70o C), в пределах которого гарантируется нормальное функционирование. Выход за пределы указанного диапазона может привести к отказу компонент. Сами микросхемы выделяют тепло, количество которого зависит от рабочей частоты и при наличии большого числа электронных компонент в системе может достигать сотен ватт.
Если не уделить должного внимания системе охлаждения, стоимость которой на фоне стоимости всего сервера пренебрежимо мала, то компьютер сначала какое-то время будет "жутко греть плохо приспособленное для этого помещение", а потом сгорит.
В силу перечисленных причин обе системы (питания и охлаждения) строятся по прирнципам модульности и избыточности, чтобы в случае неисправности можно было легко заменить отдельные компоненты, и при этом нагрузка на оставшиеся модули не превышала допустимой. Контроль за работой этих систем осуществляется при помощи датчиков.
Наличие альтернативных каналов доступа к основным ресурсам
Помимо особенностей конфигурации аппаратуры, когда резервируются все используемые компоненты, для реализации данной функции используется специальное программное обеспечение, которое позволяет оборудованию работать в режиме резервированния. В случае обнаружения сбоя ПО автоматически отключает неисправный канал и включает резервный.
Возможность логического разделения ресурсов сервера по аналогии с мэйнфреймами (DSD)
Основные достоинства данного технического решения уже были рассмотрены. С точки зрения обеспечения надежности следует подчеркнуть тот факт, что домены изолированы друг от друга и нарушение работы одного из них никак не сказывается на функционировании других.
Гарантированное восстановление системы после сбоев
Обычная процедура восстановления работоспособности системы или ее части (домена) после сбоя сводится к переконфигурированию. Вышедшие из строя ресурсы изолируются и исключаются из числа используемых компонент, после чего система или домен перезапускается и продолжает работу без них. Это свойство сервера называется автоматическим переконфигурированием системы (ASR - Automatic System Reconfiguration). При переконфигурировании производится глубокое тестирование аппаратуры, для чего используется тест POST, который на нижнем уровне поддерживается системой тестирования микросхем JTAG.
Самым тяжелым для Ultra Enterprise 10000 случаем является возникновение какой-либо неисправности в плате управления. В этой ситуации придется перезапускать весь сервер.
Обеспечение целостности передаваемых данных и адресов за счет использования ECC-кодов
Особенностью сервера Ultra Enterprise 10000 является то, что ECC-коды используются в нем для обеспечения целостности не только передаваемых данных, но и адреса. В отличие от контроля четности, ECC-коды позволяют корректировать однобитные ошибки и обнаруживать двухбитные.
Интеллектуальная система мониторинга с выдачей соответствующих сообщений
Для мониторинга работы сервера используется два программных пакета:
- SyMON;
- Hostview.
Функции системного монитора SyMON были описаны в разделе, посвященном "тысячникам".
Hostview представляет собой средство визуализации состояния сервера, помогающее системному администратору осуществлять динамическое переконфигурирование системы. Пакет позволяет отображать следующие параметры сервера:
- состав и конфигурацию отдельных компонент;
- распределение системных плат по доменам;
- состояние модулей источников питания;
- состояние модулей системы охлаждения (вплоть до скорости вращения отдельных вентиляторов);
- температуру в различных точках системы.
Кроме того, Hostview предоставляет системному администратору возможность управлять всеми этими ресурсами: включать и выключать модули источников питания и вентиляторные панели, создавать, модифицировать и уничтожать домены, запускать диагностику и многое другое.
Все сервисное программное обеспечение располагается на сервисном процессоре SSP.
Возможность обслуживания системы без остановки ее работы
Данное качество во многом определяется использованием в системе технологии DSD и поддержкой динамического переконфигурирования, а также особенностями конструктивного исполнения, упрощающими доступ к сменным компонентам и, как следствие, сокращающими время замены. Кроме того, как и в серверах серии X000, здесь возможна "горячая" замена практически всех основных компонент.
Поддержка развитой системы диагностики
В Ultra Enterprise 10000 используется та же система диагностики, что и в серверах серии X000 — пакет SunVTS (Sun Validation Test Suite).
Весь этот комплекс мер, называемый SunTrust, обеспечивает серверу Ultra Enterprise 10000 исключительно высокий уровень доступности.
Серверы серии Ultra HPC
Семейство серверов Ultra Enterprise закрывает очень широкий спектр применений, требующих от вычислительной системы производительности вплоть до 25 GFLOPS. Однако в ряде случаев (и нельзя сказать, что таких случаев мало) требуется вычислительная мощность, существенно превышающая указанные цифры. В таких ситуациях у пользователей до последнего времени был, как правило, небогатый выбор, ввиду немногочисленности такого рода систем. Обычно, компьютеры с уровнем производительности порядка сотен MFLOPS имеют специфическую архитектуру и собственные операционные системы. Поэтому перед организацией, у которой возникла потребность в такой технике, встают нелегкие задачи. Во-первых, требуется изыскать немалые средства (системы такого уровня производительности стоят не один миллион долларов), во-вторых, приходится переносить используемые приложения на новое "железо".
Еще один пример. В отделе, занимающемся разработкой мощного микропроцессора, имеется несколько серверов рабочих групп семейства Ultra Enterprise, которые используются для выполнения отдельных частей проекта. Время от времени возникает потребность в интенсивных вычислениях (связанных, например, с моделированием работы кристалла). Выполнение этой работы на одном сервере займет большое количество времени, и хотелось бы его сократить. Покупка более мощного компьютера экономически невыгодна. Как поступить в такой ситуации?
В качестве решения подобных проблем компания Sun Microsystems предлагает семейство серверов Ultra HPC (сокращение от High Performance Computing - высокопроизводительные вычисления). Это те же серверы семейства Enterprise (рассмотренные выше), оборудованные новым высокопроизводительным (до 200 Мб/с) интерфейсом Sun Cluster Channel на базе стандарта SCI (Scalable Coherent Interface), позволяющим связывать серверы между собой. При этом топология соединений может быть произвольной. Единственное существующее ограничение — число объединяемых серверов не должно превышать шестнадцати.
Использование такой технологии для организаций и предприятий, чей машинный парк основывается на компьютерах Sun, имеет следующие неоспоримые преимущества:
- значительная экономия за счет более эффективного использования имеющихся серверов в качестве базовых элементов для вычислительной структуры требуемой мощности;
- использование существующего (обкатанного) программного обеспечения, а также собственных наработок.
Систему HPC можно построить на основе любых серверов семейства Enterprise за исключением однопроцессорных моделей (Ultra Enterprise 1 и 150). Для этого потребуются только расходы на приобретение новых интерфейсных плат и прокладку оптоволокна.
Обратим внимание на то, что данная технология не является кластерной, хотя и очень на нее похожа. Кластерам будет посвящен следующий раздел. Системы Ultra HPC позволяют несколько расширить возможности семейства Enterprise, вводя как бы третий уровень архитектуры — уровень межсерверных связей.
Кластеры. Серия Ultra Enterprise Cluster HA
В настоящее время, когда все большее внимание уделяется обеспечению высокой доступности информационных систем и целостности обрабатываемых данных, кластерные технологии являются, пожалуй, наиболее простым и относительно недорогим способом достижения требуемых характеристик. Как показывает практика, кластеры гарантируют уровень доступности, достаточный для решения таких задач, как работа с базами данных, поддержка большинства банковских приложений и т.п.
С точки зрения архитектуры, кластеры представляют собой вычислительные комплексы, состоящие из нескольких (чаще всего - двух) компьютеров, имеющих общие дисковые массивы и сеть. Все соединения и ресурсы в кластере резервируются, то есть всегда предусматривается альтернативный путь для обращения к тому или иному узлу, если речь идет о канале связи, или имеется дублирующее устройство, способное по ходу работы заменить выбывшее из строя. Это вызвано требованием отсутствия в системе одиночных точек отказа, то есть таких ресурсов или компонент, отказ которых вывел бы всю систему из работоспособного состояния. Однако наличие перечисленных аппаратурных особенностей еще не дает основания называть вычислительную систему кластером, если она не имеет специального программного обеспечения, позволяющего узлам кластера контролировать работу друг друга, а также обнаруживать сбои и неисправности (как аппаратурные, так и программные) и восстанавливать систему после таких сбоев.
Компания Sun Microsystems имеет достаточный опыт создания кластерных систем. Наибольшую известность среди них получили конфигурации, созданные на базе серверов SPARCserver. С появлением нового поколения серверов естественно было ожидать их использования для создания новых кластерных конфигураций.
Как и в случае с серией HPC, в основу кластеров Ultra Enterprise Cluster HA (HA — High Availability, высокая доступность) положен модельный ряд серверов Ultra Enterprise, за исключением однопроцессорных моделей и "десятитысячника". Все кластеры в качестве общего ресурса используют дисковые массивы SPARCstorage Array.
На Рис. 12 приведен пример двухузловой кластерной конфигурации Ultra Enterprise Cluster HA.
Для связи узлов кластера с дисковыми массивами используются оптические каналы Fiber Channel Interface (FCI) и Fiber Channel Arbitrated Loop (FC-AL), при этом для недорогих приложений оставлена возможность применения канала SCSI. Оптический интерфейс обеспечивает дополнительную надежность передачи информации, поскольку не подвержен электромагнитным наводкам и позволяет соединять устройства, расположенные на расстоянии до десяти километров друг от друга, без ухудшения параметров.
Локальные каналы (Private Links) представляют собой линии Ethernet (10 или 100 Мбит/с). Они предназначены для передачи информации между узлами, а также для обмена специальными сообщениями, называемыми "пульсом" (heartbeat), по которым узлы судят о работоспособности друг друга. Ввиду важности этой информации каналы дублированы.
Во избежание возникновения одиночных точек отказа доступ к другим устройствам вычислительной системы также осуществляется по дублированным каналам.
Особенности программного обеспечения кластеров
Как уже отмечалось, основу кластеров составляет именно программное обеспечение. В данном случае это два пакета:
- Solstice Disk Suite;
- Solstice HA.
Solstice Disk Suite представляет собой программное обеспечение, дополняющее работу высоконадежных дисковых массивов. Данная программа выполняет следующие функции:
- осуществляет журналирование работы файловой системы, то есть ведет записи о состоянии дисков, что сокращает время восстановления системы после сбоев;
- обеспечивает доступ со стороны одного узла к разделяемым ресурсам (дискам) другого;
- обеспечивает зеркалирование дисков;
- обеспечивает совместимость с другими компонентами Solstice.
Программа Solstice HA является основой всей кластерной технологии, поскольку обеспечивает высокую готовность системы. Она автоматически выявляет программные и аппаратурные неисправности, пытается, если это возможно, разрешить их и, если это не удается, запускает процесс восстановления на втором узле.
Основной особенностью данного пакета является наличие в нем набора специальных программ, называемых детекторами сбоев (fault probes). Они отслеживают и выявляют сбои в работе аппаратуры, сетевых устройствах, системном ПО и даже в определенных приложениях, включая NFS и программы управления базами данных. Информация о каких-либо некорректностях немедленно передается Solstice HA для принятия решения. Благодаря такой организации многие сбои ликвидируются на месте, без запуска процедуры восстановления.
Помимо этого, Solstice HA поддерживает разные режимы работы двухузловых кластеров: симметричный и асимметричный. В первом случае оба сервера занимаются обслуживанием пользователей и могут поддержать работу системы в случае сбоя любого из них. Во втором случае один из серверов постоянно находится в состоянии ожидания (режим горячей замены) и берет на себя работу только в случае сбоя основного узла.
Очень важной представляется поддержка программой Solstice HA узлов с разной конфигурацией. Это позволяет создавать кластеры на основе имеющегося оборудования, а также реализовывать экономичные несимметричные кластерные системы. Например, в случае выполнения какого-либо критичного приложения, можно использовать кластер, состоящий из двух разных серверов — мощного вычислительного и относительно слабого резервного. В случае сбоя в основном узле резервный не допустит прекращения выполнения задачи и позволит "продержаться" до устранения неисправности.
Уже упоминавшаяся возможность оптических интерфейсов поддерживать связь между достаточно удаленными устройствами (до 2 км) позволяет обеспечивать сохранность данных за счет территориального разнесения отдельных компонент кластера, узлов и/или дисковых массивов. Таким образом можно подстраховать систему на случай пожара, диверсии или аварии питания.
Наконец, Solstice HA предоставляет средство HA Toolkit, которое позволяет создавать приложения, участвующие в процедуре восстановления после сбоев.
В настоящее время имеющееся ПО поддерживает только двухузловые конфигурации. Что касается перспектив, то можно предсказать увеличение числа узлов в кластере до 4 — 8, а также переход к более высокопроизводительным каналам SPARC Cluster Channel, которые уже используются в серии Ultra HPC. Не исключена конвергенция этих серий.
Семейство рабочих станций Ultra
Рабочие UNIX-станции являются той областью рынка вычислительной техники, где позиции компании Sun Microsystems можно расценить как наиболее сильные. Однако, несмотря на это, конкуренция здесь достаточно серьезная, да и имена конкурентов говорят о многом: Digital, Hewlett Packard, Silicon Graphics и др. Вполне естественно, что наряду с развитием и продвижением новой линии серверов Ultra Enterprise и Ultra HPC, Sun продолжает уделять много внимания рабочим станциям. Таким образом реализуется концепция единой платформы для широкого спектра компьютерной техники, необходимой для предприятий любого масштаба (уровня).
Новое поколение рабочих станций Ultra состоит из четырех основных моделей:
- Ultra 1;
- Ultra 2;
- Ultra 30;
- Ultra 4000.
Архитектура этих моделей здесь рассматриваться не будет, поскольку все они являются полными аналогами соответствующих серверов серии Ultra Enterprise (это относится к Ultra 1&2 и Ultra 4000) или их модификациями, как Ultra 30. Основные отличия заключаются в конфигурации компьютеров и типе корпуса. Лишь рабочая станция Ultra 30 несколько выделяется из общего ряда тем, что, по аналогии с сервером Ultra Enterprise 150, использует для установки дополнительных модулей слоты шины PCI вместо Sbus.
В силу приведенных причин в данном разделе основной акцент сделан на архитектуру графической подсистемы Creator, которая является ключевой для определения потребительских качеств рабочих станций и выгодно отличает их от других систем того же ценового диапазона.
Графическая подсистема Creator
В Разд. Архитектура семейства компьютеров Ultra, при рассмотрении ключевых технологий, позволивших создать новое поколение компьютеров Sun, выделялись UPA-архитектура, новые микропроцессоры и новая память для графических подсистем. В свою очередь, одной из основных особенностей архитектуры микропроцессоров является дополнительный набор команд для поддержки работы графики — VIS.
Таким образом, из трех краеугольных камней семейства компьютеров Ultra, два так или иначе связаны с графическими функциями.
Графическая подсистема Creator задумывалась как высокопроизводительное устройство, предназначенное для выполнения широкого круга задач, начиная от простого отображения информации на экране монитора и кончая работой со сложными изображениями, требующей специальной аппаратурной поддержки. В качестве исходных требований фигурировали высокая производительность, дешевизна и универсальность.
Структурная схема графической подсистемы Creator приведена на Рис. 13. Существует два варианта ее реализации: Creator и Creator 3D. Последний предназначен для работы с большими и сложными изображениями, нуждающимися в памяти значительного объема.
Дополнительные компоненты, свойственные только подсистеме Creator 3D, выделены на рисунке темным тоном. С точки зрения внутренней архитектуры и алгоритма работы обе системы абсолютно одинаковы.
Архитектура графической подсистемы базируется на трех типах микросхем, которые были разработаны специально для нее. Это:
- контроллер буфера кадра FBC (Frame Buffer Controller);
- видеопамять 3D-RAM;
- палитра цветов со встроенными цифро-аналоговыми преобразователями RAMDAC.
Видеопамять и RAMDAC создавались специалистами Sun в сотрудничестве с разработчиками фирмы Mitsubishi и BrookTree, соответственно, а контроллер FBC является оригинальной разработкой Sun.
На Рис. 14 приведена логическая структура графической подсистемы Creator. На нем хорошо видно, каким образом распределяются функции поддержки работы графики между контроллером FBC и видеопамятью. На долю последней приходится в основном работа с пикселами, а контроллер выполняет более сложные операции, связанные с геометрическими преобразованиями.
Контроллер буфера кадра FBC
Контроллер FBC выполняет две основные функции:
- обеспечивает интерфейс с UPA-шинами рабочей станции или сервера;
- обеспечивает аппаратное исполнение отдельных графических операций.
FBC поддерживает выполнение таких функций 3D-графики, как вычисление и интерполяция границ 3D-объектов, работа с Z-буфером (удаление невидимых частей), затенение объектов, сглаживание линий (уменьшение лестничного эффекта) и т.п.
С точки зрения внутренней архитектуры контроллер подразделяется на две части:
- исполнительный конвейер;
- прямой порт.
В исполнительный конвейер данные загружаются в виде набора координат, их параметров и команд, а прямой порт используется для записи в видеопамять готового изображения в режиме прямого доступа.
Таким образом, контроллер позволяет существенно снизить нагрузку на процессор (процессоры) вычислительной системы, взяв часть функций нижнего уровня на себя, а также сократить объем данных, передаваемых в графическую систему.
Графическая память 3D-RAM
В настоящее время максимальный объем и минимальную стоимость имеют микросхемы динамической памяти (DRAM). При этом основным их недостатком является большое время доступа, который почти на порядок медленнее, чем для статической памяти (SRAM). Традиционная видеопамять (VRAM) представляет собой комбинацию DRAM и специального выходного буфера, имеющую два внешних порта: основной и дополнительный. Информация из основной памяти микросхемы копируется в буфер, откуда она последовательно, в порядке возрастания адресов, выдается наружу через дополнительный порт. Оба порта работают независимо друг от друга, что позволяет поднять эффективность работы памяти по сравнению с обычной DRAM в два раза.
Архитектура 3D-RAM (см. Рис. 15) в целом похожа на архитектуру VRAM. Основной объем памяти (4 банка) составляет память динамического типа. Имеется два независимых порта и выходные буферы. Однако в 3D-RAM появились принципиально новые функциональные блоки, отсутствующие во VRAM:
- арифметико-логическое устройство (АЛУ);
- кэш-память статического типа.
Именно благодаря им достигается качественный рост производительности памяти.
Кэш-память позволяет существенно поднять пропускную способность основного интерфейса, приблизив ее по своим характеристикам к параметрам статической памяти (в режиме записи временные параметры полностью аналогичны параметрам SRAM, а в режиме чтения — всего в 2 раза хуже, то есть соответствуют временным параметрам страничного режима работы DRAM).
Арифметико-логическое устройство предназначено для ускорения работы Z-буфера, процедуры сглаживания и операций над отдельными пикселами. В обычных системах для этих целей используются циклы "чтения-модификации-записи", в которых процесс модификации осуществляется процессором. Использование АЛУ позволяет обойтись только циклами записи, которые, как уже подчеркивалось выше, выполняются очень быстро (как в SRAM).
В Таб. 3 приведены некоторые характеристики 3D-RAM.
Большое количество нововведений в графической памяти 3D-RAM, придающих новое качество данной компоненте графической подсистемы, особенно впечатляет на фоне многолетнего застоя в этой области.
Микросхема RAMDAC
Данное устройство, часто называемое также палитрой цветов, предназначено для преобразования кодов цветности в аналоговые сигналы для графического монитора. Само название данного типа микросхем (RAMDAC) говорит о том, что они состоят из двух основных частей: памяти с произвольным доступом (RAM) и цифро-аналогового преобразователя (DAC).
Принцип работы RAMDAC состоит в следующем. Внутренняя память микросхемы содержит три таблицы 8-разрядных кодов интенсивности трех цветов (красного, зеленого и синего) по 256 значений в каждой. Поступающие на вход RAMDAC данные из видеопамяти содержат номера кодов в каждой из таблиц. Выбранные значения интенсивности преобразуются соответствующими ЦАПами в аналоговые сигналы.
Помимо модифицируемых таблиц палитра содержит еще фиксированную память, так называемую Gamma ROM, такого же объема (3*256*8 бит).
Используемые в подсистеме Creator микросхемы RAMDAC адаптированы для работы с 3D-RAM и обеспечивают вывод изображений с глубиной пикселов 8 и 24 бита, поддерживают аппаратный курсор размером 64*64 пиксела и имеют встроенный синтезатор синхросигналов.
Преобразование входной информации в микросхеме может осуществляться несколькими способами:
- через основные перепрограммируемые таблицы интенсивностей (при этом глубина пикселов может составлять 8 и 24 бита);
- через фиксированное гамма ПЗУ (Gamma ROM);
- путем прямого преобразования, когда, в отличие от приведенного выше алгоритма, входные данные содержат не номер необходимого цвета, а само значение интенсивности.
Использование аппаратного курсора упрощает его вывод на экран монитора, поскольку отпадает необходимость в постоянной перерисовке курсора в видеопамяти. Матрица курсора прописывается один раз, и далее только задаются координаты.
Программируемый синтезатор синхросигналов упрощает аппаратную реализацию графической подсистемы и позволяет программно настраивать ее под конкретный монитор.
Используется в данном устройстве и такое традиционное решение, как поддержка наложенных изображений. Причем, в отличие от многих других систем, глубина пиксела для подобных изображений составляет 8 бит. Это позволяет выводить на экран одновременно изображения с глубиной пикселов 8 и 24 бита.
Другой любопытной особенностью микросхемы RAMDAC является поддержка стереоизображений. Правда, для реализации этой возможности требуется дополнительное внешнее оборудование.
Заключение
Мы рассмотрели наиболее важные особенности архитектуры нового поколения компьютеров компании Sun Microsystems, а также отдельные технические решения, влияющие на основные характеристики. При этом сознательно не делалось акцента на значениях производительности конкретных систем, поскольку они зависят от множества причин и не могут выступать в качестве объективных оценок. Очень часто неудачная архитектура или техническая реализация не дают возможности проявить себя очень мощным микропроцессорам, и, наоборот, удачные решения позволяют "выжать" из системы практически все.
Одна из основных задач данной статьи заключалась в том, чтобы показать, что лежит в основе тех или иных архитектурных решений. Часто это оказывается очень интересным и поучительным. В качестве примера такого решения можно привести реализацию глобального коммутатора в "десятитысячнике".
Подводя итог, можно сказать, что новая архитектура UPA оказалась на редкость удачной. Основным ее достоинством является то, что она дала возможность разрешить проблему организации многочисленных потоков данных в вычислительных системах, не накладывая на них никаких ограничений. Это позволяет говорить о хороших перспективах дальнейшего развития компьютеров семейства Ultra в плане увеличения их производительности. Добавляет уверенности и разработка компанией собственных мощных микропроцессоров, которые успешно конкурируют с изделиями других фирм.
Sun продолжает удерживать ведущие позиции на рынке рабочих станций, чему в немалой степени способствовало создание графических систем нового поколения Creator, использующих видеопамять с новой архитектурой. Но самым сильным аргументом в пользу компьютеров Ultra представляется однородность программного обеспечения для всего семейства, начиная с рабочих станций и кончая мощными системами Ultra HPC, а также обеспечение полной программной совместимости со всеми предыдущими моделями. Это создало благоприятные условия для проникновения компании Sun Microsystems на новые для нее секторы вычислительных систем высокой производительности.
Литература
[1] Владимир Галатенко -- UltraComputing - технология сетевой эры
[2] Материал компании Sun Microsystems -- Операционная среда Sun Solaris
[3] Sun Microsystems Computer Company -- The UltraSPARC-II Architecture. Technical White Paper, 1997
[4] Sun Microelectronics -- Ultra Port Architecture (UPA): The New-Media System Architecture. Technical White Paper, 1995
[5] Sun Microsystems Computer Company -- The Ultra Enterprise 1 and 2 Server Architecture. Technical White Paper, 1996
[6] Sun Microsystems Computer Company -- The Sun Enterprise 450 Architecture. Technical White Paper, 1997
[7] Sun Microsystems Computer Company -- Ultra Enterprise X000 Servers. A Technology Overview, 1996
[8] Sun Microsystems Computer Company -- Ultra Enterprise X000 Server Family: Architecture and Implementation. Technical White Paper, 1996
[9] Sun Microsystems Computer Company -- Ultra Enterprise X000 Server Family: Reliability, Availability, and Serviceability. Technical White Paper, 1996
[10] Sun Microsystems Computer Company -- Ultra Enterprise 10000 System. Technical White Paper, 1996
[11] Sun Microsystems Computer Company -- Sun Enterprise 10000: Dynamic Systems Domains. Technical White Paper, 1997
[12] Sun Microsystems Computer Company -- Sun Enterprise 10000: SunTrust Reliability, Availability, and Serviceability. Technical White Paper, 1997
[13] Sun Microsystems Computer Company -- Sun RAS Solutions for Mission-Critical Computing. Technical White Paper, 1997
[14] Sun Microsystems Computer Company -- Sun Ultra High Performance Computing Solutions. Technical White Paper, 1997
[15] Sun Microsystems Computer Company -- The Sun Enterprise Cluster Architecture. Technical White Paper, 1997
[16] Sun Microsystems Computer Company -- Ultra Enterprise Cluster HA 1.3 Architecture. Technical White Paper, 1997
[17] Sun Microsystems Computer Company -- The Ultra 30 Architecture. Technical White Paper, 1997
[18] Sun Microsystems Computer Company -- Creator Graphics Technology. Technical White Paper, 1997
[19] Sun Microelectronics -- The Visual Instruction Set (VIS): On Chip Support For New-Media Processing. Technical White Paper, 1995
[20] Sun Microsystems Computer Company -- Fibre Channel Technology from Sun Microsystems. Technical Brief, 1997
[21] Sun Microsystems Computer Company -- The Sun RSM Array 2000 Architecture. Technical White Paper, 1997
[22] Sun Microsystems Computer Company -- Sun and Gigabit Ethernet. Technical White Paper, 1997