Клеточная архитектура

24 февраль, 2005 - 00:00Андрей Зубинский Случай с "клеточной архитектурой" -- как раз тот, особый, когда пальцы сами отыскивают клавиши для подходящего эпитета -- "революцион...". Собственно, большинство описаний того, что спрятано за приведенным непонятным термином, ограничивается скудными плодами такого режима "профессионального автонабора". И даже незавершенность использованного эпитета в них повторяется, но на качественно новом уровне -- многообещающим аналогом незабвенного "Теперь вся сила в гемоглобине" (© И. Ильф). После такого действенного приема у читателей уже не остается выбора -- им приходится углубиться в себя, "по-своему размышляя о таинственных силах гемоглобина" (© Он же). Особую прелесть этому симбиозу неутомительного порождения незавершенности и приятного осмысливания недосказанного придает один факт, о котором не принято говорить вслух. А именно то, что история становится бесконечной -- ведь никто из ее участников гарантированно никогда ничего не узнает о том, с чего все начиналось. О "гемоглобине"...

Казалось бы, движение по приведенному пути исключительно заманчиво для автора -- стоит довериться ставшим уже профессиональными движениям пальцев, и что только не станет явью... да чего только стоят ежедневный уход с работы строго в 18:00, здоровый сон и два полноценных выходных дня в неделю. Но, увы, мы все-таки попробуем разобраться и с клеточной архитектурой, и с ее революционностью, и даже по ходу дела еще с чем-нибудь не менее интересным.


Почти детективная история

Клеточная архитектура
Архитектура APU (SPE) Cellпроцессора. Векторный процессор с производительностью порядка 32 млрд операций в секунду, площадь кристалла около 4 мм2
Клеточная архитектура
Архитектура Cellпроцессора
Клеточная архитектура
Потоковая обработка макроархитектура Cell вычислителя
Второго апреля 2002 г. на сайте японской корпорации Toshiba появился пресс-релиз, оставшийся, по большому счету, незамеченным. А между тем его содержание более чем забавно: согласно ему, четыре гиганта разных индустрий объединяли усилия в достижении сразу нескольких стратегических целей. К слову, уже напрашивается одно маленькое отступление...

Мы почему-то привыкли подчеркивать и без того значимую роль яркой Личности в становлении той или иной технологии. И почему-то привыкли забывать о совершенно очевидных вещах. Например, о том, что даже самая яркая Личность нуждается в нормальных условиях для работы. И о том, что даже самым признанным Гениям нужны и покой, и высококлассные библиотеки, и лаборатории, и свободное общение с другими гениями (да и не только с ними). И о том, что овеществления самых передовых Идей в некотором смысле полезнее, чем собственно Самые Передовые Идеи (желающие убедиться в этом могут попробовать провести февральскую ночь при не таком уж и суровом нашем климате на улице, на скамеечке, согреваясь изучением безукоризненно передовых Идей из межакадемического сборника научных трудов по альтернативным источникам энергии). И наконец, о том, что овеществления передовых Идей становятся доступными людям лишь благодаря тому, что существует отработанный механизм превращения Идей в Технологии -- Бизнес. Так вот... отступление, собственно, к тому, что иногда пресс-релизы могут быть очень и очень интересными, и даже в некотором смысле почти детективно-авантюрными, документами.

Итак, корпорации Toshiba, Sony и IBM, а также компания Sony Computer Entertainment почти три года назад заключили долговременное соглашение о проведении совместных работ по совершенствованию полупроводниковой технологии "кремний на изоляторе" (SOI, Silicon On Insulator) в целях создания новых высокоинтегрированных микросхем класса "система на чипе" (SOC, System On a Chip). Также на основании отдельного соглашения (упомянутого в пресс-релизе) IBM передавала все последние достижения в области SOI своим партнерам. Вот, собственно, и все, что можно почерпнуть из краткого, написанного эзоповым языком пресс-релизов, документа. Ни упоминаний о том, какими именно будут "системы на чипе", разработанные альянсом, ни одного конкретного слова об области применения, для которой они будут предназначены. И все-таки, и все-таки... когда четыре гигантские корпорации (каждая с годовым объемом продаж, превышающим бюджет среднего государства) образуют некий альянс -- то это неспроста. В нашем случае тем более неспроста -- потому что "клеточная архитектура" и является детищем загадочного альянса. И как будто "клеточная архитектура" предназначена исключительно для нового поколения игровых приставок Sony PlayStation 3.


Карты, деньги, два патента

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

В конце марта 2001 года в один и тот же день (точнее 22 марта) патентное ведомство США зарегистрировало два документа -- # 6809734 и # 20020138637. И раз уж обещаны были отступления, сразу посоветую обратить внимание на различие в количестве цифр этих номеров. Первый номер (7 цифр) -- это собственно патент. Второй (из 11 цифр) принадлежит заявке на патент (US Patent Application). Одновременная подача этих двух документов -- один из способов защитить свои права на интеллектуальную собственность (IP, Intellectual Property). К такому приему прибегают даже несмотря на то, что "США -- единственная страна в мире, делающая различие между законным изобретателем как тем, кто собственно изобрел что-то, и изобретателем -- первым подателем заявки на патент, что означает, что только истинному изобретателю предоставляется право на владение патентом" (Essentials of patents. Andy Gibbs, Bob DeMatteis, John Wiley & Sons, Inc., 2003).

Заявка на патент # 20020138637 позволяет установить авторство. В графе "изобретатели" этого документа значатся два человека -- Сузуоки Масаказу (Suzuoki Masakazu) и Ямазаки Такеши (Yamazaki Takeshi). И это более чем информативно -- Сузуоки Масаказу является директором Sony Computer Entertainment, автором нескольких патентов, одним из разработчиков и архитекторов системы на чипе, на которой основана сегодняшняя PlayStation (второй модели). А вот собственно патент # 6809734 сведения об изобретателях дополняет исключительно важной информацией, в первую очередь о цессионариях (раз темы патентного права и борьбы с ним становятся такими модными, то, наверное, знакомство с некоторыми деталями и терминами не будет лишним). Таким умным словом принято называть правопреемников, которым передается право на операции с собственностью, в том числе с интеллектуальной. В цессионариях патента # 6809734 значатся представители трех крупных компаний. И прежде чем мы назовем эти три компании, давайте вспомним нелюбимые даты. Итак, пресс-релиз Toshiba, подтверждающий создание технологического альянса и передачу ему IBM разработок в области технологии SOI, появился в апреле 2002 г. Патент # 6809734 и соответствующая заявка на патент -- на год раньше, в марте 2001 г. И согласно патенту, цессионариями изобретения, сделанного специалистами Sony Computer Entertainment, стали, естественно... представители Toshiba и IBM. Взаимосвязаны ли эти два события и что происходило в разделяющий их год, мы можем только догадываться (если речь идет о взаимосвязи) и гадать (если речь идет о событиях). Догадаться благо нетрудно -- и благодаря стабильности списка участников альянса, и немногочисленным последующим за его образованием публикациям. Ну а гадать проще простого -- скорее всего, год ушел на бизнес-проверку перспективности запатентованной технологии ("money talk...", причем неспешно). И наверное, проверка дала обнадеживающие результаты, свидетельством чему является пресс-релиз, с которого мы начали этот "детектив".


Все эти сплетни и скучные подробности...

Да-да, по сути, самое интересное -- интрига -- уже позади. Остались именно они -- скучные подробности и технические детали. Несмотря на то что благодаря открытой патентной информации известны, по большому счету, только общие черты "клеточной архитектуры", мы избежим сухости рассказа. Есть еще и количественные оценки, основанные на сплетнях, -- они-то и позволят сделать рассказ веселее (ну а для чего же еще нужны сплетни, как не для того, чтобы или "пасти свое стадо", как говорил Ницше, или делать интереснее бесконечно скучную обыденность). Главное, чтобы вы не забывали: в реальности значения всех приведенных показателей могут не совпасть с теми, которые даны ниже.

"Клеточная архитектура" (Cell Architecture), несмотря на патентопригодную новизну, на самом деле не является чем-то революционным. В ней, скорее, можно наблюдать действительно новое и, похоже, удачное сочетание нескольких технологий, в первую очередь технологий из "перпендикулярных миров" software и hardware. Кстати, прежде чем мы начнем разбираться с "клеточностью" как основным характерным признаком архитектуры, давайте скажем буквально два слова о собственно термине "архитектура". К сожалению, его буквально "заездили" до потери смысла, а размер коллекции разнообразных определений (среди которых встречаются и взаимоисключающие) "архитектуры" может достигать нескольких мегабайтов чистого текста. Поэтому автор позволяет себе выбрать из коллекции одно единственное определение, несколько неожиданное, но исключительно удачное, основанное на сравнении инженерии и архитектуры: "инженерия имеет дело в основном с измеряемым посредством аналитических инструментов, унаследованных от математики и точных наук, в связи с чем инженерию можно считать наукой, дедуктивным процессом. Архитектура же преимущественно имеет дело с неизмеряемым, с использованием качественного анализа, основанного на практическом опыте, т. е. архитектура -- индуктивный процесс... Инженерия отвечает за техническую оптимизацию, архитектура -- за удовлетворение заказчика. Инженерия -- больше наука, архитектура -- больше искусство" (The art of systems architecting, Mark W. Maier, Eberhardt Rechtin, CRC Press).

Итак, что же придумала команда архитекторов проекта Cell для удовлетворения заказчиков, которыми, по большому счету, являемся мы с вами (ведь архитектура Cell ориентирована на сугубо мирные цели -- бытовое применение)? Давайте кратко охарактеризуем ее главный "потребительский" показатель -- производительность, которая для сегодняшних прототипов лучше всего демонстрируется пиковым быстродействием выполнения вычислительных операций с плавающей точкой и достигает 256 GFLOPS (миллиардов операций в секунду). Много это или мало для однокристального вычислителя? Чтобы "ощутить" эту цифру, воспользуемся не очень честным, но наглядным сравнением. Так, например, вычислительный кластер Университета Цюриха, построенный из 522 узлов (фактически ПК), основанных на процессорах AMD Opteron с тактовой частотой 1,8 GHz, показывает пиковую производительность 1880 GFlops. То есть 522 весьма "неслабых" классических процессора всего в 7,3 раза "мощнее" одного кристалла Cell. Все это означает, что Cell позволит добиться вычислительной мощности, ранее невозможной для массовых компьютеров. А это, в свою очередь, послужит основой для создания совершенно нового уровня реалистичности в компьютерных играх и каких-то больших неожиданностей в области мультимедиа (не будем забывать, что в списке участников проекта Cell значится Sony).

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

элемент обработки на основе микропроцессора семейства PowerPC (принятая в терминах проекта аббревиатура -- PPE, PowerPC Processing Element);

синергический элемент обработки (SPE, Synergistic Processing Element);

контроллер разделяемой памяти (MIC, Memory Interface Controller);

внутриэлементная шина (IEIB, Internal Element Interconnect Bus);

контроллер и интерфейс подсистемы ввода/вывода FlexIO.

С инженерной точки зрения все это разнообразие "утрамбовано" в однокристальную реализацию системы на чипе (SoC) и классифицируется по количеству синергических элементов обработки (SPE). Существующие образцы Cell-системы, содержащие восемь SPE, выполнены в BGA-корпусе (Ball Grid Array) размером 4,25x4,25 см с 1236 контактами. По слухам, при тактовой частоте порядка 5,6 GHz и напряжении питания 1,4 В такому Cell-прототипу достаточно около 180 Вт, что позволяет прогнозировать снижение потребляемой мощности до приемлемых 80 Вт при более подходящих для массовых Cell-процессоров тактовой частоте около 4 GHz и напряжении питания 1,1 В.

Площадь кристалла, на котором создано такое технологическое чудо, трудно назвать маленькой -- 221 мм2 при 90 нанометровом технологическом процессе "кремний на изоляторе" (SOI). Для сравнения: один из наиболее мощных массовых микропроцессоров на сегодняшний день, IBM G5, выполненный по той же технологии, размещается на почти втрое меньшем кристалле. Колоссальная сложность и большая площадь кристалла привели к тому, что специалисты оценивают первые образцы Cell как уникальную разработку -- не в расхожем смысле "уникальности", а как создаваемую не на основе готовых "полуфабрикатных" компонентов (современные технические нормативы определяют максимальные временные задержки в одном каскаде цифровой обработки на уровне двадцати тактов тактовой частоты, но в Cell это значение сокращено до одиннадцати тактов).

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

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

Согласитесь, действительно ничего особо революционного во всем этом не наблюдается. Так, векторная обработка -- совершенно обыденная вещь в мире цифровой обработки сигналов. И независимые векторные процессоры здесь тоже не в диковинку с незапамятных времен. Можно говорить о том, что концепция апулетов нова... но в большинстве случаев подсистемы цифровой обработки сигналов работают именно как "черные ящики", загружающие от управляющего вычислителя программу обработки и выдающие "на-гора" результат. Но скепсис скепсисом, а инженерные спецификации Cell все-таки впечатляют (даже если понимаешь, что на то она и инженерия, чтобы технические показатели изделий улучшались год за годом). В своем роде уникальны и некоторые технологические детали Cell, например шина, обеспечивающая соединение всех вычислителей на кристалле в одно целое. Названная ранее "внутриэлементной", эта 128 битная параллельная шина четырьмя кольцами (!) обегает все архитектурные узлы одного Cell-элемента. Естественно, если вспомнить аналогию с кластерным вычислителем, пропускная способность такой шины, позволяющей одновременно передавать четыре 128 битных слова, совершенно недостижима в "макрокластерах" как массовых продуктах. К деталям можно отнести и тот факт, что управляющий процессор Cell-элемента хоть и принадлежит к семейству PowerPC, но разве что на основе совпадения системы команд. По сути, управляющий процессор -- совершенно новая разработка IBM, 64 битный чип с аналогичными современным процессорам Intel архитектурными решениями, поддерживающими исполнение многопоточных программ. Из деталей, более политических, чем технических, весьма интересен выбор подсистемы управления внешней памятью Cell-процессора. Очевидно, что исключительно высокие показатели производительности этого вычислителя требуют памяти со сверхвысокой пропускной способностью. Разработчики альянса остановили свой выбор на двухканальной подсистеме памяти Rambus XDR, обеспечивающей пропускную способность порядка 25 GBps. Пока неизвестна в деталях организация одной из важнейших подсистем, отвечающих за "макроинтеграцию" Cell-вычислителей в единые кластеры -- FlexIO. Однако заявленные ее технические характеристики назвать скромными трудно: суммарная пропускная способность реконфигурируемой, состоящей из 96 однобитных последовательных каналов, системы ввода/вывода составляет ни много ни мало -- почти 77 GBps.

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