Весной этого года исполнительный вице-президент IBM по инновациям и технологии Николас Донофрио заявил, что эра изобретений закончилась вместе с ХХ веком. По его словам, в прошлом веке прогресс совершался несколько иначе. Теперь нелегко предложить что-то выдающееся, и не стоит ждать нового сенсационного изобретения — их больше не будет. Однако это вовсе не значит, что в ХХI веке не нужны изобретательность, творчество и поиски. Просто в наши дни следует искать не новую технологию как таковую, а выгоду, которую можно извлечь из творчества, пояснил главный идеолог IBM. При разработках теперь необходимо мыслить коллективно и многовекторно, поскольку от этого зависит, кто выиграет, а кто проиграет. Сегодня инновации все больше связаны с услугами, обработкой, бизнес-моделями или культурными изменениями, чем с изобретением новых продуктов. Возможно, хороший пример здесь — новая технология Cell, реализованная в одноименном кристалле.

Осенью 2004 г. компании IBM (http://www.ibm.com), Sony Group (Sony Corporation, http://www.sony.com и Sony Computer Entertainment, http://www.scei.co.jp) и Toshiba (http://www.toshiba.com) впервые раскрыли некоторые ключевые концепции микропроцессора под кодовым названием Cell, который они совместно разрабатывали для нового поколения компьютерных систем и цифровых устройств бытовой электроники. В их заявлении, в частности, подтверждалось, что процессор Cell представляет собой многоядерный кристалл, в состав которого входит 64-разрядное процессорное ядро с архитектурой POWER и несколько потоковых процессорных ядер, способных выполнять интенсивную обработку операций с плавающей точкой. Процессор Cell оптимизирован для рабочих процессов с высокой вычислительной нагрузкой и широкополосных медиаприложений, в том числе для компьютерных развлекательных систем, а также устройств воспроизведения видеопотоков и других видов цифрового контента. К отличительным особенностям процессора Cell относятся:

  • многопоточная многоядерная архитектура;
  • высокая пропускная способность каналов обмена с оперативной памятью и с другими системными компонентами;
  • гибкий встроенный интерфейс ввода-вывода;
  • поддержка различных ОС;
  • специальная система управления ресурсами для систем реального времени;
  • встроенная аппаратная поддержка системы безопасности для защиты интеллектуальной собственности;
  • производство по 90-нм технологии «кремний на диэлектрике» (SOI).

Кроме того, в конструкции процессора Cell используются специальные схемотехнические решения, позволяющие повысить общую производительность и одновременно точно управлять тактовой частотой процессора, с тем чтобы сократить потребляемую мощность.

Амбициозный проект трех электронных гигантов, нацеленный на создание микропроцессора с высокой степенью интеграции, должен был преодолеть неминуемые ограничения по количеству транзисторов, мощности и производительности, свойственные традиционным процессорным технологиям. Предполагалось, что новаторский процессор Cell станет ведущей открытой платформой для нового поколения вычислительных и развлекательных устройств. Действительно, приложения с объемным и насыщенным контентом, например, многоканальное телевещание высокой четкости или получение мегапиксельных цифровых изображений (статических и тем более динамических) с помощью CCD/CMOS-датчиков высокого разрешения, требуют интенсивной обработки медиаданных в реальном времени. В самом ближайшем будущем этот цифровой контент будет циркулировать по широкополосным сетям, и объем его начнет бурно расти. Для беспрепятственного получения и просмотра такого контента в реальном масштабе времени, несомненно, понадобится более совершенный графический интерфейс пользователя с трехмерными возможностями. Но архитектура нынешних ПК приближается к своему пределу — как по процессорной мощности, так и по пропускной способности системных шин, — что не позволит ей справиться с подобными мультимедийными приложениями. Кроме того, постепенное размывание границы между компьютерами и цифровыми устройствами бытовой электроники требует значительного расширения возможностей и повышения производительности компонентов бытовой электроники. Эксперты полагают, что технология Cell отвечает всем этим потребностям благодаря многопроцессорной архитектуре, конструкции и организационным принципам, способным обеспечить интенсивную обработку мультимедиа.

Над этим уникальным высокопроизводительным процессором работала специальная объединенная группа, в распоряжении которой был весь научно-технический опыт Toshiba, Sony Group и IBM. Проектные работы велись в совместной исследовательской лаборатории, которую три компании организовали в Остине (шт. Техас, США) после объявления о начале проекта в 2001 г. Спроектированный и реализованный этой группой инженеров процессор Cell смог обеспечить широчайшие возможности при выполнении операций с плавающей точкой и высокую пропускную способность при обмене данными, а также возможность масштабирования производительности почти как настоящий суперкомпьютер. IBM начала производство процессоров Cell (рис. 1) на заводе в Ист-Фишкилле (шт. Нью-Йорк) еще в прошлом году. Процессорные кристаллы изготавливаются на кремниевых пластинах диаметром 300 мм.

Рис. 1. Кристалл Cell.

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

Быстрая память

Компании IBM и Rambus заключили лицензионное соглашение, которое позволяет IBM применять технологии Rambus в процессорах Cell Broadband Engine (Cell BE) и сопутствующих кристаллах. Речь идет о процессорной шине Rambus FlexIO и интерфейсе памяти XDR. Напомним, что процессор Cell BE, разработанный совместно специалистами IBM, Toshiba и Sony Group, имеет многоядерную архитектуру, ориентированную на обработку мультимедийных данных, что обеспечивает ему высокую производительность в приложениях, требовательных к вычислительной мощности. Это и не удивительно, ведь интерфейс Rambus XDR для связи процессора с одноименной динамической памятью с произвольным доступом позволяет передавать данные на тактовых частотах 3,2—8,0 ГГц. Шина FlexIO, известная ранее под кодовым названием Redwood, способна работать на частотах до 8,0 ГГц. Как утверждают специалисты, это обеспечивает ей по крайней мере четырехкратное преимущество по пропускной способности над любой из известных сегодня процессорных шин того же класса. Интересно отметить, что интерфейс Rambus XDR и шина FlexIO занимают около 90% сигнальных выводов микропроцессора Cell BE.

Процессорные архитектуры

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

Если доминирует CISC-архитектура, то при компиляции не следует столь глубоко оптимизировать программный код, поскольку большая часть этой работы просто перекладывается на сам процессор. Это обусловлено прежде всего тем, что машинные команды современных CISC-процессоров довольно далеки от исполняемых ядром кристалла микроопераций, на которые распадаются CISC-команды. Таким образом, для подобных процессоров программа в машинных кодах представляет собой лишь некоторым образом оптимизированный алгоритм, допускающий, в зависимости от типа используемых в конкретном процессоре микроопераций, довольно широкую трактовку. В результате сам процессор на этапе между декодированием команд и преобразованием их в микрооперации и исполнением последних вынужден заниматься глубоким переупорядочиванием микроопераций, оптимизируя загрузку параллельно работающих логических блоков.

Добавление необходимых средств для переупорядочивания микроопераций привело к тому, что резко усложнилась сама архитектура кристаллов. В них появились «окна инструкций», где размещаются декодированные команды (точнее, их микрооперации) с учетом их взаимного влияния, множество дополнительных невидимых программисту временных регистров, в которых хранятся промежуточные результаты исполняемых в измененном порядке микрокоманд, а также подсистемы, устанавливающие соответствие между недоступными и доступными программисту регистрами (с помощью механизма переименования регистров). В результате современные CISC-процессоры с точки зрения программиста и с точки зрения проектировщика микропроцессоров выглядят совершенно по-разному. Правда, в последнее время и многие RISC-процессоры приобрели блок переупорядочивания микроопераций, но это почти не связано с появлением в кристаллах RISC-архитектуры многоступенчатых конвейеров исполнения команд. Ведь каждая RISC-команда по-прежнему остается весьма примитивной и обычно не предусматривает включения в работу множества логических блоков процессора.

Существует и еще один принципиально иной подход — речь, конечно, идет об архитектуре с очень длинными машинными словами VLIW (Very Long Instruction Word). Напомним, что любое такое «длинное» слово содержит полный набор инструкций для каждого процессорного блока, так что сам процессор становится чрезвычайно простым. По сути, это некий крайний случай RISC-концепции полного контроля над процессом исполнения команд до ее логического завершения. Стоит отметить, что широкому распространению архитектуры VLIW препятствуют две проблемы. Во-первых, оказалось, что создать компилятор, действительно в совершенстве оптимизирующий программу на столь низком уровне, весьма непросто, а любой просчет компилятора из-за полного отсутствия оптимизации внутри кристалла обходится очень дорого. Во-вторых, получается, что для разных задач оптимальной будет разная архитектура VLIW-кристалла, так что с универсальностью этих процессоров все обстоит далеко не безоблачно, да и самая небольшая ошибка при выборе числа и типов логических блоков процессора опять-таки ведет к резкой потере производительности.

Впрочем, независимо от архитектуры процессора существует проблема работы с медленной оперативной памятью. Отчасти ее решает использование кэш-памяти, однако существуют и другие способы. Известно, что большое число регистров общего назначения в RISC-процессорах и отображение вершины стека вызовов в пул регистров — это способ создать внутри кристалла сверхбыстродействующую оперативную память для операндов. Следует обратить внимание на принципиальное отличие этого подхода от применения кэш-памяти. Дело в том, что в этом случае данными, помещаемыми в регистры, управляет программист (или оптимизирующий компилятор), так что эффективность процесса разделения данных на достойные и недостойные хранения в сверхбыстрой памяти гораздо выше, а необходимость в большой и дорогостоящей кэш-памяти — заметно меньше.

Вообще говоря, можно было бы сделать нечто подобное и для программного кода — чтобы в процессе работы алгоритма его части последовательно загружались во внутреннюю программную память кристалла. В результате подсистема кэш-памяти для загрузки программного кода стала бы вообще (или почти) не нужна. Интересно, что кристалл, созданный в соответствии с этими посылками, должен был бы оптимальным образом работать там, где можно создать достаточно компактные алгоритмы, обрабатывающие большие объемы данных, с высокой повторяемостью последовательных обращений к ним. Именно таково подавляющее большинство мультимедийных и вычислительных алгоритмов.

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

Идея массового параллелизма заложена в так называемой «клеточной архитектуре» (cellular architecture). Ее принцип состоит в том, что для создания суперкомпьютеров используется множество однотипных процессоров (от 10 тыс. до 1 млн), каждый из которых оснащен собственным контроллером памяти и определенным объемом самой оперативной памяти. Как известно, слово cell означает «клетка» или «ячейка». Действительно, в концепции Cell существуют аппаратные и программные ячейки. Аппаратная ячейка — это любой процессор, способный выполнять программные ячейки и быть связанным с другими процессорами. Программная ячейка — это данные либо особая программа, описывающая, как следует обрабатывать данные. В идеале нет никаких самостоятельно существующих программ, нет процессоров и компьютеров. Есть только данные, обрабатывающий их код и абстрактная аппаратура, обеспечивающая существование того и другого. Таким образом, процессор Cell спроектирован на основе архитектуры высокопроизводительных распределенных вычислений, включающей аппаратные и программные ячейки (сell). Последние состоят из данных и программного кода и известны также как апулеты (apulets). Вообще говоря, апулет инкапсулирует код векторной программы и обрабатываемые ею данные и загружается (выгружается) в обрабатывающий процессор как единое целое. Иными словами, программные ячейки передаются аппаратным, где они обрабатываются с возвращением результата.

Проиллюстрируем это таким примером (рис. 2). Допустим, существует передаваемый по сети видеопоток. Под видеопотоком на программном уровне понимается последовательность фреймов — небольших блоков данных, описывающих маленький кусочек (скажем, 0,1 с) видео или звуковой дорожки. В терминах Cell это поток ячеек, содержащих данные разного типа. Его воспроизведение можно представить либо как результат выполнения некоторой большой программы с исходными данными в виде этого потока, либо как процесс многократного преобразования ячеек с данными, в ходе которого ячейки одного типа (например, сжатый звук) превращаются в ячейки другого типа (несжатый звук) маленькими «программками» (апулетами). Обычно все эти превращения включены в некую всеобъемлющую программу, которая копирует поступающие данные в оперативную память, поочередно обрабатывает их разными алгоритмами и старается распределить обработку по нескольким процессорам. Идея Cell состоит в том, что вместо этой программно-ориентированной модели берется более естественная, ориентированная на данные модель декодирования видеопотока. Иными словами, написание программы обработки сводится к написанию нескольких инструкций, которые позволяют подключиться по определенному адресу в сети к источнику ячеек, преобразовать поступающий поток в поток ячеек, выполнить демодуляцию и декодирование, затем преобразовать и масштабировать изображение и т. д. Вот это и есть программа для Cell. В ней даже нет инструкций, указывающих, как делать все вышеописанное, поскольку для получения необходимых команд Cell-устройство обращается к библиотеке алгоритмов, причем каждый алгоритм — это тоже ячейка, которую можно получить даже «на лету», скажем, от того же самого источника видеотрансляции. А какая аппаратура и какая ОС обеспечивают этот процесс, с точки зрения Cell-программиста, пользователя и главных действующих лиц — данных и программ — совершенно неважно.

Рис. 2. Пример обработки видеопотока.

Выгода при такой организации совершенно очевидна. Во-первых, все написанные таким образом Cell-программы параллельны по самой своей сути. Ведь все они разбиты на несколько не зависящих друг от друга стадий, которые можно исполнять параллельно. Ячейки данных, требующие обработки, в цепочке в большинстве случаев совершенно независимы. Следовательно, можно обрабатывать несколько таких ячеек по одному и тому же алгоритму одновременно. Таким образом, в Cell удается загрузить работой не просто десятки, а сотни и даже тысячи элементарных процессорных элементов.

Архитектура Cell не фиксирована — если у пользователя есть консоль PlayStation 3 и телевизор HDTV, оснащенные процессорами Cell, вычислительные мощности этих кристаллов можно объединить для решения одной задачи. Одно из основных преимуществ технологии Cell в том, что ее можно использовать практически где угодно — от карманного компьютера до сервера, причем из этих устройств можно создать сеть распределенных вычислений. Особо отметим, что масштабируемость — действительно одна из сильных сторон архитектуры Cell, так как вычислительная мощность единственного процессора велика сама по себе: отдельно взятый вычислительный элемент Cell имеет теоретическую мощность 250 GFLOPS (миллиардов операций с плавающей точкой в секунду).

Любой представитель семейства процессоров, объединенных общим наименованием Cell, включает в себя следующий набор архитектурных компонентов:

  • элемент обработки на основе микропроцессора семейства PowerPC (в терминологии проекта принята аббревиатура PPE — PowerPC Processing Element);
  • синергический элемент обработки (SPE, Synergistic Processing Element);
  • контроллер разделяемой памяти (MIC, Memory Interface Controller);
  • внутриэлементная шина (IEIB, Internal Element Interconnect Bus);
  • контроллер и интерфейс подсистемы ввода-вывода (FlexIO).

Вообще говоря, процессор Cell значительно отличается от привычных кристаллов x86 (рис. 3). Микросхема включает 64-разрядное ядро POWER и восемь процессорных элементов SPE, представляющих собой специализированные микрокомпьютеры. IBM позиционирует Cell как систему на кристалле, подобно процессорам POWER5, ведь мультипроцессорность в этой технологии предусмотрена изначально. Первый кристалл Cell основан на 64-разрядном ядре POWER (PowerPC 970) и восьми 32-разрядных блоках SPE. Эти компоненты соединены скоростной шиной IEIB; кроме того, имеется встроенный двухканальный контроллер памяти, который сегодня способен работать с быстрой памятью Rambus XDR. Связь с остальными компонентами организована через системную шину FlexIO (кодовое название Redwood) с тактовой частотой в несколько гигагерц (FlexIO может связывать и другие процессоры Cell).

Рис. 3. Блок-схема процессора Cell.

PPE процессора Cell имеет 64 Кбайт кэш-памяти первого уровня (32 Кбайт — данные, 32 Кбайт — инструкции) и 512 Кбайт — второго уровня, а также конвейер длиной 11 стадий, что по нынешним меркам немного. Несмотря на короткий конвейер, разработчики сообщают о грандиозном частотном запасе у Cell (он устойчиво работает даже на частоте свыше 4 ГГц). В Cell имеется встроенная технология управления энергопотреблением (напомним, что компания Sony — лицензиат технологии Long Run от Transmeta).

Гораздо более интересны специализированные 128-разрядные синергические процессорные элементы. В них 128-разрядный операнд разделяется на четыре 32-разрядных слова, а каждый SPE представляет собой специализированный процессор для работы с потоковыми инструкциями SIMD (аналоги для процессоров Intel — блоки SSE, для AMD — 3DNow!).

По сути SPE представляет собой однокристальную реализацию специализированного микропроцессора, выполняющего систему команд — подмножество хорошо известных под названием AltiVec (и менее известных как VMX) мультимедийных операций процессоров семейства PowerPC. SPE — канонический векторный процессор с длиной команды 32 бита и размером вектора, составляющим четыре 32-разрядных слова. За обработку отдельных слов вектора отвечают четыре независимых 32-разрядных FPU и четыре независимых целочисленных вычислителя. В отличие от давно известных векторных сопроцессоров, SPE — совершенно независимый, самостоятельный вычислитель, что подчеркивается неофициальным его названием — APU (присоединенный процессорный элемент, Attached Processor Unit) — и специально придуманным именем для выполняемых им программ — апулеты (APUlets). SPE содержит внушительное число 128-разрядных регистров (всего их 128) и локальную память объемом 256 Kбайт, достаточную для выполнения вполне функциональной программы-апулета. Векторный характер SPE подчеркивается и организацией этой локальной памяти в четыре раздельных адресных пространства по 64 Kбайт каждое. Ввиду сверхвысокого быстродействия локальной памяти проблема «выравнивания» скоростей процессора и памяти, решаемая обычно с помощью кэш-памяти или дополнительной регистровой памяти, в данном случае вообще не возникает и, соответственно, в решении не нуждается. C внешним миром SPE общается посредством механизма прямого доступа к памяти и по сути с точки зрения управляющего процессора Cell-архитектуры выступает как примитив, загружающий и исполняющий апулеты.

Наличие восьми блоков обработки потоковых данных дает повод назвать процессор Cell супермультимедийным, более того, IBM сама считает Cell симбиозом собственно процессора и мультимедийного кристалла. Потоковых приложений сейчас довольно много, поэтому практических применений, чтобы загрузить все восемь SPE, можно найти достаточно: это задачи шифрования, перекодирования в реальном времени видео и аудиоинформации, архивирование, трехмерная анимация и т. п.

Не менее интересна и шина Internal Element Interface Bus (IEIB), связывающая все рассмотренные ранее компоненты (девять ядер процессора, интерфейс внешней оперативной памяти и контроллер внешней шины) в единое целое. Она представляет собой четыре 128-разрядных (т. е. 16-байтных) кольца, причем каждый компонент-«клиент» Cell имеет доступ ко всем кольцам. Причина выбора такой ширины шины очевидна — именно такова разрядность SPE. IEIB тактируется на частоте, равной половине тактовой частоты процессора. Все четыре кольца IEIB однонаправленны, причем два из них передают данные в одном направлении и два — в противоположном, что снижает максимальную задержку при передаче данных. Два любых «клиента» IEIB могут совместно и одновременно использовать до трех кольцевых шин (три транзакции передачи), причем если потоки данных пар «клиентов» не пересекаются, то разрешается параллельная работа нескольких пар «клиентов». Аппаратно это реализуется при помощи алгоритма типа Token Ring с маркером, возвращаемым на кольцевую шину после удаления из нее полученных данных.

С инженерной точки зрения все эти технические ухищрения сосредоточены в реализации системы на одном кристалле (SoC) и классифицируются по количеству SPE. Существующие образцы системы Cell, содержащие восемь SPE, выполнены в BGA-корпусе (Ball Grid Array) размером 4,25x4,25 см с 1236 контактами. По опубликованной информации, при тактовой частоте порядка 5,6 ГГц и напряжении питания 1,4 В такой процессор рассеивает около 180 Вт, что позволяет прогнозировать снижение потребляемой мощности до приемлемых 80 Вт при более подходящих для массовых Cell-процессоров тактовой частоте около 4 ГГц и напряжении питания 1,1 В. Кристаллы Cell, изготовленные с соблюдением проектных норм 65 нм по технологиям «напряженного кремния» (strained silicon) и «кремний на изоляторе», потребляют мощность 30—40 Вт при частоте 4,6 ГГц. Дополнительно в Cell встроены один линейный и десять цифровых датчиков тепла, а также интеллектуальная система динамического понижения частоты процессора с пятью ступенями, позволяющая еще сильнее уменьшить тепловыделение и потребляемую мощность.

Напомним, что площадь кристалла, на котором создано такое технологическое чудо, трудно назвать маленькой — 221 кв. мм (при соблюдении проектных норм 90 нм, с восьмислойной медной металлизацией и технологическим процессом «кремний на изоляторе»). Для сравнения отметим, что один из наиболее мощных массовых микропроцессоров на сегодняшний день, IBM G5, выполненный по той же технологии, размещается на почти втрое меньшем по размеру кристалле. Колоссальная сложность и большая площадь кристалла привели к тому, что специалисты оценили первые образцы Cell как уникальную разработку. Количество транзисторов на кристалле составляет 234 млн. Каждый синергический процессорный элемент SPE Cell состоит из 21 млн транзисторов, из которых 14 млн отводится на локальную память, а 7 млн — на логику. При этом его размеры составляют 5,81х2,8 мм.

Linux для Cell

В марте этого года Линус Торвальдс анонсировал выпуск нового ядра Linux, которое — помимо того что содержит ПО Oracle для кластерных баз данных и лучше работает на многопроцессорных системах — поддерживает процессор IBM Cell. Заметим, что с технической точки зрения Linux — это только ядро, но название часто употребляют для обозначения всей ОС, построенной на этом ядре. Поддержка Cell означает, что IBM будет легче продавать серверы на основе данного кристалла. Хотя одно из предназначений нового процессора — игровые консоли, IBM рассчитывает на то, что Сell будет широко применяться для решения сложных вычислительных задач, таких, как обработка медицинских изображений. Программировать для Cell трудно, но поддержка Linux может облегчить эту задачу. В новом ядре есть файловая система SPU, которая позволяет ПО управлять разными ядрами процессора и поддерживать связь с ними.

Cell — не единственный многоядерный процессор, работающий с Linux. Принят ряд поправок, позволяющих Linux работать на серверах с процессорами UltraSPARC T1 (Niagara) от Sun Microsystems.

Продвижение Cell

Весной прошлого года IBM объявила о предоставлении новых услуг инженерного проектирования, которые позволили компаниям включать микропроцессорную технологию, известную под названием Cell, в различные категории электронной продукции. В особенности это касается продукции, предназначенной для аэрокосмической, оборонной и медицинской отраслей, где критично выполнение приложений с интенсивной визуализацией. Эксперты корпорации убеждены, что подобные услуги IBM способны оказать значительное влияние на расширение количества приложений, эффективно использующих возможности процессора Cell. В частности, клиентам подразделения IBM Engineering & Technology Services (E&TS), пользующимся этими новыми услугами, предоставляется доступ к среде моделирования ПО для процессора Cell через центр высокопроизводительных вычислений по требованию корпорации IBM в Поукипси (шт. Нью-Йорк).

Как известно, процессор Cell должен обеспечить значительное повышение производительности не только приложений и одноплатных решений для домашних развлечений, таких, как просмотр фильмов, но и в сферах научных исследований, цифровых систем безопасности, высшего образования и высокопроизводительных вычислений. Для каждого из этих отраслевых сегментов характерны сверхвысокие требования к скорости коммуникаций и интенсивной обработке мультимедийных данных и стремление получить максимальную реалистичность при выводе изображений.

IBM выполняет индивидуальные заказы, предоставляя следующие услуги по проектированию для процессора Cell:

  • системная архитектура и проектирование;
  • разработка кристаллов, модулей и плат;
  • расширенное проектирование блейд-серверов;
  • проектирование питания, механических и электронных компонентов, охлаждения, производства;
  • разработка заказного ПО и драйверов для Linux;
  • проверка соответствия нормативным и отраслевым стандартам по всему миру;
  • проверка взаимодействия и совместимости;
  • оценка готовности к производству, надежности и удобства обслуживания.

Компании, интересующиеся процессорами Cell, могут получить доступ к информации и услугам экспертов через подразделение IBM E&TS, в котором работают 1300 инженеров, и многочисленные центры POWER Architecture Center по всему миру. Кроме того, эти услуги предлагаются через консультантов и отраслевых специалистов IBM. Надо отметить, что подразделение IBM E&TS участвовало в разработке и выпуске микропроцессора Cell. Кроме того, его специалисты в области технологического проектирования внесли свой вклад в создание суперкомпьютерного решения IBM Blue Gene, а также наборов микросхем Summit и Hurricane, используемых в серверах IBM xSeries. Сотрудники этого подразделения помогали таким известным компаниям, как Boeing, Honeywell, Mayo Medical Ventures и Нью-Йоркская фондовая биржа, и многим другим в создании инновационных решений.

А прошлым летом IBM, Sony Group и Toshiba объявили о публикации ключевых документов, содержащих подробные технические сведения об архитектуре Cell Broadband Engine (BE). Предоставив технические спецификации разработчикам ПО, бизнес-партнерам, научным и исследовательским организациям и потенциальным клиентам, компании тем самым продолжили активное стимулирование разработки приложений для процессора Cell. Цель этой работы — создать вокруг Cell развивающееся сообщество энтузиастов и новаторов, которое поможет всем заинтересованным сторонам быстро оценить возможности технологии Cell и применить их на практике.

В частности, опубликованы сведения об архитектуре Cell BE. Именно она определяет структуру процессора Cell, ориентированную на распределенную обработку и выполнение мультимедийных приложений. Эта архитектура предусматривает управляющий процессор на базе архитектуры POWER, совместно с которым работают несколько высокопроизводительных процессорных элементов SPU с архитектурой SIMD, и широкий набор команд DMA для эффективного обмена между процессорными элементами. В свою очередь, архитектура SPU Instruction Set Architecture (SPU ISA) описывает высокопроизводительный процессорный элемент на базе RISC-процессора с SIMD-архитектурой, оптимизированный для ускорения исполнения мультимедийных и потоковых приложений.

Опубликована также информация об инструментах разработки ПО для процессоров SPU — расширения языка C/C++, двоичный интерфейс приложений и спецификация языка ассемблера. Благодаря ей разработчики могут полностью реализовать вычислительный потенциал процессорных элементов SPU. Таким образом, обеспечена прочная поддержка технологий разработки ПО в среднесрочной и долгосрочной перспективе, в особенности разработки связующего ПО, что будет способствовать ускоренному распространению процессоров Cell с целью стимулирования развития отрасли в целом.

Аналитики говорят о том, что публикация этих технических документов имеет огромное значение для клиентов, позволяя им узнать, каким образом архитектура Cell BE и ее возможности могут быть полезны в разработке новейших приложений. Триумвират фирм-разработчиков Cell, в свою очередь, собирается подкрепить поддержку процессора решениями, основанными на сочетании Cell с другими своими разработками — такими, как специализированный периферийный процессор Super Companion Chip, ПО, комплекты справочных материалов и среда для разработки систем.

Блейд-серверы и Cell

Создавая новейшие решения для заказчиков, IBM использует свои технологии и опыт в самых различных областях — от потребительской электроники до промышленных систем. Примером этого стало соглашение о сотрудничестве с Mercury Computer Systems (http://www.mc.com). Напомним, что компании совместно разработали блейд-сервер на базе многоядерных процессоров Cell BE, предназначенный для монтируемой в стойку системы BladeCenter (рис. 4). Этот двухпроцессорный модуль (Dual Cell-Based Blade) стал первым продуктом, оснащенным процессорами Cell BE, и будет служить платформой разработки для создания промышленных и медицинских приложений. Серверы Dual Cell-Based Blade оснащаются памятью типа Rambus XDR объемом 512 Мбайт на каждый процессор. При тактовой частоте процессоров Cell BE 3 ГГц обеспечивается производительность на операциях с одинарной точностью до 192 GFLOPS. Два процессора Cell BE в серверном модуле работают в SMP-режиме, при полной когерентности кэш- и основной памяти. Скорость обмена между двумя процессорами в каждом направлении составляет около 20 Гбайт/с. Кроме того, IBM и Mercury Computer Systems работают над несколькими очередными версиями блейд-серверов на базе Cell.

Рис. 4. Блейд-сервер на базе Cell.

Как известно, Mercury Computer Systems создает системные платы, предназначенные для приложений, которым требуется более высокая производительность или возможности, выходящие за рамки того, что предлагают стандартные серверы таких компаний, как IBM или Dell. Во многих случаях эти платы объединяются в многопроцессорные системы, которые напоминают процессор Cell, но в большем масштабе. Mercury Computer Systems и ее партнеры уже создали несколько программных приложений и инструментов, которые, как считают специалисты компании, помогут пользователям начать разработку приложений для Cell BE. Кроме того, компания сотрудничает с несколькими независимыми производителями ПО с целью создания приложений для серверов с этими процессорами. Однако известно, что большинство приложений, применяемых в медицине, промышленности и оборонной отрасли, т. е. на целевых для Mercury Computer рынках, — это внутренние разработки самих пользователей.

В этом году появились и первые серверы IBM, базирующиеся на новых девятиядерных кристаллах Cell BE. Новые высокопроизводительные комплексы блейд-серверов, получившие название IBM BladeCenter H, вывели на новый уровень пропускную способность, предоставляя в 10 с лишним раз больше ресурсов для передачи данных по сетям. Благодаря разработкам подразделения IBM Research пропускная способность внутренней подсистемы ввода-вывода новых блейд-серверов увеличена до 40 Гбит/с и более. Кроме того, добавлены более быстродействующие сетевые интерфейсы InfiniBand и Ethernet и улучшенные средства автоматического управления. Новый корпус для блейд-серверов BladeCenter H имеет высоту 40 см, на 9 см выше своего предшественника. Одна система допускает установку 14 серверов-лезвий.

Вместе с BladeCenter H корпорация IBM представила и новые средства управления для него, в том числе модуль автономного управления (Advanced Management Module), обеспечивающий управление блейд-модулями на уровне шасси. Модуль автоматизирует операции управления, которые до сих пор приходилось выполнять вручную, и интегрируется с IBM Director и Tivoli. Новый удобный пакет для управления энергопотреблением Power Executive позволяет точно оценить потребности центра обработки данных в электропитании, используя технологии IBM в области питания и охлаждения блейд-модулей для поддержки максимальной нагрузки.

Представленные системы BladeCenter H открывают новые возможности для реализации технологических решений, позволяя собрать все серверы, устройства хранения данных, сетевую инфраструктуру и устройства защиты центра обработки данных в единую компактную структуру. Новые блейд-серверы IBM защищают инвестиции заказчиков благодаря совместимости со всеми системами BladeCenter; с другой стороны, все ранее выпущенные блейд-серверы и коммутаторы совместимы с системой BladeCenter H.

Блейд-серверы на базе процессоров Cell BE предназначены в первую очередь для поддержки интенсивных вычислительных рабочих нагрузок и широкополосных мультимедийных приложений. Они подходят для заказчиков, которым необходимо поддерживать мощные и ресурсоемкие приложения — например, высокопроизводительные аналитические программы и хранилища данных в таких отраслях, как финансы, розничная торговля, исследования и разработки, здравоохранение, медико-биологические науки и телекоммуникации.

«Мотор» для сердца

На выставке CeBIT IBM продемонстрировала трехмерную модель бьющегося человеческого сердца. Для ее работы использовался кластер, составленный из прототипов блейд-серверов на основе многоядерного процессора Cell BE. Посетителям стенда IBM выдавались специальные очки, через которые можно было наблюдать модель в трехмерном виде. Ее можно было вращать и с помощью мыши выбирать любое сечение, при этом «сердце» продолжало биться.

Эта впечатляющая демонстрация показала, насколько большая предстоит работа, если программисты намереваются использовать весь потенциал, заложенный в новой процессорной архитектуре. Модель была создана с помощью программного инструментария PV-4D, предназначенного для визуализации больших объемов данных, получаемых в ходе научных расчетов или обработки изображений. Ученые немецкого института Фраунгофера изначально создавали PV-4D для работы на кластерах, состоящих из массовых ПК, а недавно перенесли это ПО на процессорную архитектуру Cell.

* * *

Применение многоядерной архитектуры Cell BE в сочетании с поддержкой высокоскоростных коммуникаций существенно улучшает характеристики систем для индустрии развлечений и исполнения ресурсоемких медиаприложений, обеспечивая минимальное время отклика и поддерживая работу в режиме реального времени. Благодаря многопроцессорным технологиям, которые используются в серверах IBM, процессор Cell BE обеспечивает эффективную производительность на уровне настоящего суперкомпьютера и хорошо подходит для выполнения ресурсоемких рабочих нагрузок в самых различных областях, в том числе для обработки цифрового контента, медицинской визуализации, аэрокосмических и военных исследований, коммуникационных приложений и высокопроизводительных вычислений. Руководство IBM отмечает, что корпорация и в дальнейшем будет развивать свое сотрудничество с сообществом разработчиков в области совместных решений на базе процессора Cell BE, используя потенциал открытых стандартов, а также через организации Blade.org и POWER.org.