Компьютерра, 2005 № 38 (610) | страница 49
Возможности для применения Cell-сети необъятны. По сути дела, это некий единый «живой организм», который «растет» (регистрирует в сети новые устройства) или «уменьшается»; который обладает «знаниями» (апулетами) и «живет» в глобальном мире - всемирной Сети, «питаясь» разнообразными данными и «перерабатывая» их. У этого «организма» есть «глаза» (веб-камеры), «уши» (микрофоны), «органы чувств» (клавиатура, мышь, джойстик), «средства коммуникации с внешним миром» (монитор, телевизор, колонки); которые физически могут принадлежать совершенно разным устройствам, но в действительности - одному Cell’у.
Добавление новых устройств в Cell-сеть, как правило, не изменяет ее функциональности (разве что добавляет новые «органы чувств», «средства отображения» и повышает быстродействие) - даже в самом простом варианте Cell универсальна.
Как это все реализовано в железе? В статье о приставках следующего поколения[«Три тополя на Плющихе»] я подробно описывал аппаратную составляющую одного из первых Cell-устройств - PlayStation 3, и его «сердце» - процессор Cell[Вообще-то он называется Broadband Processor, но это название как-то не прижилось], так что еще раз восхищаться сверхсовременными решениями вроде Rambus-памяти и интерконнекта FlexIO, пожалуй, не будем. Лучше посмотрим, откуда эта своеобразная «несимметричная девятиядерная архитектура» взялась.
Напомню, что в процессоре Cell девять ядер - одно главное и восемь вспомогательных. Но если посмотреть на это с точки зрения концепции Cell, то вспомогательным на самом деле является главное процессорное ядро - PPE (The Power Processing Element). На нем работает операционная система сети Cell, обеспечивающая прозрачное объединение нескольких устройств в сеть; выполнение программ - выборку данных и их распределение вместе с необходимыми апулетами по собственно вычисляющим элементам; взаимодействие с пользователем, работу драйверов устройств… в общем, все то, что мы тремя абзацами выше отнесли к рутине. А самое интересное происходит в маленьких ядрышках процессора Cell - модулях SPE. Фактически каждый такой Synergetic Processing Element - это крошечный самостоятельный компьютер (со своим процессором и своей оперативной памятью), который занимается одним-единственным делом: конвертирует поступающие к нему ячейки-данные согласно заложенному в него алгоритму. То есть физически воплощает в жизнь алгоритм, заложенный нами в одну ячейку-апулет, над ячейками-данными. Все, чем занимается PPE, в сущности, сводится к одному действию: взять данные, требующие обработки, поместить их в память SPE, запустить «процесс превращения» данных в другие данные и куда-нибудь передать полученный результат. Именно поэтому SPE очень много, а блок PPE - один; и именно поэтому у каждого SPE есть своя персональная «локальная» память и нет выхода на «глобальную» (она им попросту не нужна); именно поэтому SPE связаны очень быстрыми шинами и могут передавать данные друг другу напрямую, выстраивая те самые цепочки обработки данных, которые в обычном процессоре являются чистейшей воды абстракцией.