Cell — это 64-битная многоядерная микроархитектура микропроцессора , которая объединяет универсальное ядро PowerPC скромной производительности с оптимизированными элементами совместной обработки [2], которые значительно ускоряют работу приложений мультимедиа и векторной обработки , а также многих других форм специализированных вычислений. [2]
Он был разработан Sony , Toshiba и IBM , альянсом, известным как «STI». Архитектурное проектирование и первая реализация были выполнены в STI Design Center в Остине, штат Техас, в течение четырехлетнего периода, начиная с марта 2001 года, с бюджетом, который, по сообщениям Sony, приближался к 400 миллионам долларов США . [3] Cell — это сокращение от Cell Broadband Engine Architecture , обычно сокращенно CBEA полностью или Cell BE частично.
Первое крупное коммерческое применение Cell было в игровой консоли PlayStation 3 от Sony, выпущенной в 2006 году. В мае 2008 года суперкомпьютер IBM Roadrunner на базе Cell стал первой системой TOP500 LINPACK, поддерживавшей производительность 1,0 петафлопс. [4] [5] Компания Mercury Computer Systems также разработала проекты на основе Cell.
Архитектура Cell включает архитектуру когерентности памяти , которая подчеркивает энергоэффективность, отдает приоритет пропускной способности над низкой задержкой и отдает предпочтение пиковой вычислительной производительности над простотой программного кода . По этим причинам Cell широко рассматривается как сложная среда для разработки программного обеспечения . [6] IBM предоставляет платформу разработки на базе Linux , чтобы помочь разработчикам программировать для чипов Cell. [7]
В середине 2000 года Sony Computer Entertainment , Toshiba Corporation и IBM сформировали альянс, известный как «STI», для разработки и производства процессора. [8]
Центр проектирования STI открылся в марте 2001 года. [9] Cell был разработан в течение четырех лет с использованием усовершенствованных версий инструментов проектирования для процессора POWER4 . Более 400 инженеров из трех компаний работали вместе в Остине при критической поддержке одиннадцати центров проектирования IBM. [9] В течение этого периода IBM подала множество патентов, относящихся к архитектуре Cell, производственному процессу и программной среде. Ранняя запатентованная версия Broadband Engine была показана как пакет микросхемы, включающий четыре «элемента обработки», что было описанием патента для того, что сейчас известно как элемент обработки мощности (PPE). Каждый элемент обработки будет содержать 8 «элементов синергетической обработки» (SPE) на микросхеме. Этот чип должен был работать на тактовой частоте 4 ГГц, а 32 SPE обеспечивали производительность 32 гигаФлопс каждый SPE (FP32 одинарной точности) (4 Флопса на SPU + 4 Флопса по целым числам, блок: 8 Флопсов за цикл на SPU), теоретически Broadband Engine должен был иметь 1 терафлопс чистой вычислительной мощности.
Проект с 4 PPE и 32 SPE так и не был реализован. Вместо этого Sony и IBM изготовили только проект с одним PPE и 8 SPE. Этот меньший проект, Cell Broadband Engine или Cell/BE, был изготовлен с использованием 90 нм процесса SOI . [10]
В марте 2007 года IBM объявила, что 65-нм версия Cell/BE находится в производстве на ее заводе (в то время это был GlobalFoundries) в Ист-Фишкилле, штат Нью-Йорк , [10] [11] а Bandai Namco Entertainment использует процессор Cell/BE для своей аркадной платы 357, а также для последующей модели 369.
В феврале 2008 года IBM объявила, что начнет производство процессоров Cell с использованием 45-нм процесса. [12]
В мае 2008 года IBM представила высокопроизводительную версию процессора Cell с плавающей точкой двойной точности — PowerXCell 8i [13] с размером элемента 65 нм.
В мае 2008 года суперкомпьютер IBM Roadrunner на базе Opteron и PowerXCell 8i стал первой в мире системой, достигшей одного петафлопса, и оставался самым быстрым компьютером в мире до третьего квартала 2009 года. Три самых энергоэффективных суперкомпьютера в мире, представленные в списке Green500 , также основаны на PowerXCell 8i.
В августе 2009 года процессор Cell 45 нм был представлен одновременно с PlayStation 3 Slim от Sony . [14]
К ноябрю 2009 года IBM прекратила разработку процессора Cell с 32 APU [15] [16] , но продолжала разрабатывать другие продукты Cell. [17]
17 мая 2005 года Sony Computer Entertainment подтвердила некоторые спецификации процессора Cell, который будет поставляться в будущей консоли PlayStation 3. [18] [19] [20] Эта конфигурация Cell имеет один PPE на ядре с восемью физическими SPE в кремнии. [20] В PlayStation 3 один SPE заблокирован во время процесса тестирования, практика, которая помогает повысить выход продукции, а другой зарезервирован для ОС, оставляя 6 свободных SPE для использования кодом игр. [21] Целевая тактовая частота на момент внедрения составляет 3,2 ГГц . [19] Вводная конструкция изготовлена с использованием 90-нм процесса SOI, с начальным массовым производством, запланированным на заводе IBM в Ист-Фишкилле, Нью-Йорк . [10]
Связь между ядрами и потоками является распространенным источником путаницы. Ядро PPE является двухпоточным и проявляется в программном обеспечении как два независимых потока выполнения, в то время как каждый активный SPE проявляется как один поток. В конфигурации PlayStation 3, описанной Sony, процессор Cell обеспечивает девять независимых потоков выполнения.
28 июня 2005 года IBM и Mercury Computer Systems объявили о партнерском соглашении по созданию компьютерных систем на базе Cell для встраиваемых приложений, таких как медицинская визуализация , промышленный контроль, аэрокосмическая и оборонная промышленность , сейсмическая обработка и телекоммуникации . [22] С тех пор Mercury выпустила blade-серверы , обычные стоечные серверы и платы ускорителей PCI Express с процессорами Cell. [22]
Осенью 2006 года IBM выпустила модуль-лезвие QS20 , использующий двойные процессоры Cell BE для потрясающей производительности в определенных приложениях, достигая пика в 410 гигаФЛОПС в Fp32 Single precision на модуль. QS22 на базе процессора PowerXCell 8i использовался для суперкомпьютера IBM Roadrunner . Mercury и IBM используют полностью загруженный процессор Cell с восемью активными SPE. 8 апреля 2008 года Fixstars Corporation выпустила плату ускорителя PCI Express на базе процессора PowerXCell 8i. [23]
Высокопроизводительный медиа-сервер Sony ZEGO использует процессор Cell/BE с тактовой частотой 3,2 ГГц.
Cell Broadband Engine , или Cell , как его чаще называют, — это микропроцессор, задуманный как гибрид обычных процессоров для настольных ПК (таких как семейства Athlon 64 и Core 2 ) и более специализированных высокопроизводительных процессоров, таких как графические процессоры NVIDIA и ATI ( GPU ). Более длинное название указывает на его предполагаемое использование, а именно в качестве компонента в текущих и будущих системах онлайн-распространения ; как таковой он может использоваться в дисплеях высокой четкости и записывающем оборудовании, а также в системах HDTV . Кроме того, процессор может подходить для систем цифровой обработки изображений (медицинских, научных и т. д. ) и физического моделирования ( например , научного и структурного инженерного моделирования). При использовании в PlayStation 3 он имеет 250 миллионов транзисторов. [24]
При простом анализе процессор Cell можно разделить на четыре компонента: внешние входные и выходные структуры, основной процессор, называемый Power Processing Element (PPE) (двустороннее одновременное многопоточное ядро PowerPC 2.02 ), [25] восемь полностью функциональных сопроцессоров, называемых Synergistic Processing Elements (SPE), и специализированная кольцевая шина данных с высокой пропускной способностью , соединяющая PPE, элементы ввода/вывода и SPE, называемая Element Interconnect Bus (EIB).
Для достижения высокой производительности, необходимой для математически интенсивных задач, таких как декодирование/кодирование потоков MPEG , генерация или преобразование трехмерных данных или проведение анализа Фурье данных, процессор Cell объединяет SPE и PPE через EIB, чтобы предоставить доступ через полностью кэшированный когерентный DMA (прямой доступ к памяти) как к основной памяти, так и к другому внешнему хранилищу данных. Чтобы максимально использовать EIB и перекрыть вычисления и передачу данных, каждый из девяти процессорных элементов (PPE и SPE) оснащен механизмом DMA . Поскольку инструкции загрузки/сохранения SPE могут получать доступ только к своей собственной локальной памяти блокнота , каждый SPE полностью зависит от DMA для передачи данных в основную память и локальные памяти других SPE и из них. Операция DMA может передавать либо область одного блока размером до 16 КБ, либо список из 2–2048 таких блоков. Одним из основных проектных решений в архитектуре Cell является использование DMA в качестве центрального средства передачи данных внутри чипа с целью обеспечения максимальной асинхронности и параллелизма в обработке данных внутри чипа. [26]
PPE, способный запускать обычную операционную систему, управляет SPE и может запускать, останавливать, прерывать и планировать процессы, запущенные на SPE. Для этого PPE имеет дополнительные инструкции, касающиеся управления SPE. В отличие от SPE, PPE может считывать и записывать основную память и локальные памяти SPE с помощью стандартных инструкций загрузки/сохранения. Несмотря на наличие полной архитектуры Тьюринга, SPE не являются полностью автономными и требуют, чтобы PPE подготовила их, прежде чем они смогут выполнить какую-либо полезную работу. Поскольку большая часть «лошадиной силы» системы исходит от синергетических элементов обработки, использование DMA в качестве метода передачи данных и ограниченный объем локальной памяти каждого SPE представляют собой серьезную проблему для разработчиков программного обеспечения, которые хотят максимально использовать эту мощность, требуя тщательной ручной настройки программ для извлечения максимальной производительности из этого ЦП.
Архитектура PPE и шины включает в себя различные режимы работы, обеспечивающие различные уровни защиты памяти , позволяя защищать области памяти от доступа со стороны определенных процессов, работающих на SPE или PPE.
И PPE, и SPE являются архитектурами RISC с форматом инструкций фиксированной ширины 32 бита. PPE содержит 64-битный набор регистров общего назначения (GPR), 64-битный набор регистров с плавающей точкой (FPR) и 128-битный набор регистров Altivec . SPE содержит только 128-битные регистры. Они могут использоваться для скалярных типов данных размером от 8 до 64 бит или для вычислений SIMD в различных целочисленных и плавающих форматах. Адреса системной памяти для PPE и SPE выражаются как 64-битные значения для теоретического диапазона адресов 2 64 байта (16 эксабайт или 16 777 216 терабайт). На практике не все эти биты реализованы в оборудовании. Локальные адреса хранилища, внутренние для процессора SPU (Synergistic Processor Unit), выражаются как 32-битное слово. В документации, относящейся к Cell, слово всегда подразумевает 32 бита, двойное слово означает 64 бита, а четверное слово означает 128 бит.
В 2008 году IBM анонсировала пересмотренный вариант Cell под названием PowerXCell 8i [27] , который доступен в блейд-серверах QS22 от IBM. PowerXCell производится по 65-нм техпроцессу и добавляет поддержку до 32 ГБ слотовой памяти DDR2, а также значительно улучшает производительность операций с плавающей точкой двойной точности на SPE с пикового значения около 12,8 ГФЛОПС до 102,4 ГФЛОПС в общей сложности для восьми SPE, что, по совпадению, является той же пиковой производительностью, что и у векторного процессора NEC SX-9, выпущенного примерно в то же время. Суперкомпьютер IBM Roadrunner , самый быстрый в мире в 2008–2009 годах, состоял из 12 240 процессоров PowerXCell 8i, а также 6 562 процессоров AMD Opteron . [28] Суперкомпьютеры на базе PowerXCell 8i также доминировали во всех 6 самых «зеленых» системах в списке Green500, с самым высоким соотношением MFLOPS/Вт среди суперкомпьютеров в мире. [29] Помимо QS22 и суперкомпьютеров, процессор PowerXCell также доступен в качестве ускорителя на карте PCI Express и используется в качестве основного процессора в проекте QPACE .
Поскольку в PowerXCell 8i был удален интерфейс памяти RAMBUS и добавлены значительно более крупные интерфейсы DDR2 и усовершенствованные SPE, компоновку чипа пришлось переработать, что привело как к увеличению кристалла чипа, так и к его упаковке. [30]
Хотя чип Cell может иметь ряд различных конфигураций, базовая конфигурация представляет собой многоядерный чип, состоящий из одного «Power Processor Element» («PPE») (иногда называемого «Processing Element» или «PE») и нескольких «Synergy Processing Elements» («SPE»). [31] PPE и SPE связаны между собой внутренней высокоскоростной шиной, называемой «Element Interconnect Bus» («EIB»).
PPE [32] [33] [34] — это двухпоточное двухканальное процессорное ядро на базе PowerPC с 23 -ступенчатым конвейером, выступающим в качестве контроллера для восьми SPE, которые обрабатывают большую часть вычислительной нагрузки. PPE имеет ограниченные возможности выполнения вне очереди; он может выполнять загрузки вне очереди и имеет конвейеры отложенного выполнения. PPE будет работать с обычными операционными системами из-за его сходства с другими 64-битными процессорами PowerPC, в то время как SPE предназначены для выполнения векторизованного кода с плавающей точкой. PPE содержит кэш инструкций уровня 1 объемом 32 КБ , кэш данных уровня 1 объемом 32 КБ и кэш уровня 2 объемом 512 КБ. Размер строки кэша составляет 128 байт во всех кэшах. [27] : 136–137, 141 Кроме того, IBM включила блок AltiVec (VMX) [35] , который полностью конвейеризирован для плавающей точки одинарной точности (Altivec 1 не поддерживает векторы с плавающей точкой двойной точности ), 32-битный блок фиксированной точки (FXU) с 64-битным файлом регистра на поток, блок загрузки и хранения (LSU) , 64-битный блок с плавающей точкой (FPU) , блок ветвления (BRU) и блок выполнения ветвления (BXU). [32] PPE состоит из трех основных блоков: блока инструкций (IU), блока выполнения (XU) и блока векторного/скалярного выполнения (VSU). IU содержит кэш инструкций L1, аппаратное обеспечение для предсказания ветвлений, буферы инструкций и логику проверки зависимостей. XU содержит блоки целочисленного выполнения (FXU) и блок загрузки-сохранения (LSU). VSU содержит все ресурсы выполнения для FPU и VMX. Каждый PPE может выполнять две операции с двойной точностью за тактовый цикл с использованием скалярной инструкции «умножение-сложение», что соответствует 6,4 GFLOPS на частоте 3,2 ГГц; или восемь операций с одинарной точностью за тактовый цикл с использованием векторной инструкции «умножение-сложение», что соответствует 25,6 GFLOPS на частоте 3,2 ГГц. [36]
PPE был разработан специально для процессора Cell, но во время разработки Microsoft обратилась к IBM с просьбой о высокопроизводительном процессорном ядре для своей Xbox 360. IBM согласилась и создала трехъядерный процессор Xenon на основе слегка измененной версии PPE с добавленными расширениями VMX128. [37] [38]
Каждый SPE представляет собой процессор с двойным выпуском по порядку, состоящий из «Synergistic Processing Unit», [39] SPU, и «Memory Flow Controller», MFC ( DMA , MMU и интерфейс шины ). SPE не имеют аппаратного обеспечения для предсказания ветвлений (следовательно, это большая нагрузка на компилятор). [40] Каждый SPE имеет 6 исполнительных блоков, разделенных между нечетными и четными конвейерами на каждом SPE: SPU запускает специально разработанный набор инструкций (ISA) с 128-битной организацией SIMD [35] [2] [41] для инструкций одинарной и двойной точности. В текущем поколении Cell каждый SPE содержит 256 КБ встроенной SRAM для инструкций и данных, называемой «Local Storage» (не путать с «Local Memory» в документах Sony, которые относятся к VRAM), которая видна PPE и может напрямую адресоваться программным обеспечением. Каждый SPE может поддерживать до 4 ГиБ локальной памяти хранения. Локальное хранилище не работает как обычный кэш ЦП , поскольку оно не является прозрачным для программного обеспечения и не содержит аппаратных структур, которые предсказывают, какие данные загружать. SPE содержат 128-битный файл регистров со 128 записями и имеют размер 14,5 мм2 на 90-нм процессе. SPE может работать с шестнадцатью 8-битными целыми числами, восемью 16-битными целыми числами, четырьмя 32-битными целыми числами или четырьмя числами с плавающей точкой одинарной точности за один такт, а также выполнять операцию памяти. Обратите внимание, что SPU не может напрямую обращаться к системной памяти; 64-битные адреса виртуальной памяти, сформированные SPU, должны передаваться из SPU в контроллер потока памяти SPE (MFC) для настройки операции DMA в адресном пространстве системы.
В одном типичном сценарии использования система будет загружать SPE небольшими программами (похожими на потоки ), связывая SPE вместе для обработки каждого шага в сложной операции. Например, приставка может загружать программы для чтения DVD, декодирования видео и аудио и отображения, и данные будут передаваться от SPE к SPE, пока, наконец, не окажутся на телевизоре. Другая возможность — разделить входной набор данных и иметь несколько SPE, выполняющих один и тот же тип операции параллельно. На частоте 3,2 ГГц каждый SPE обеспечивает теоретическую производительность 25,6 GFLOPS одинарной точности.
По сравнению с современными персональными компьютерами , относительно высокая общая производительность процессора Cell с плавающей точкой, по-видимому, затмевает возможности блока SIMD в таких процессорах, как Pentium 4 и Athlon 64. Однако сравнение только возможностей системы с плавающей точкой является одномерной и специфичной для приложения метрикой. В отличие от процессора Cell, такие настольные процессоры больше подходят для программного обеспечения общего назначения, которое обычно запускается на персональных компьютерах. Помимо выполнения нескольких инструкций за такт, процессоры Intel и AMD оснащены предикторами ветвлений . Cell разработан для компенсации этого с помощью компилятора, в котором создаются инструкции подготовки к ветвлению. Для операций с плавающей точкой двойной точности, которые иногда используются в персональных компьютерах и часто используются в научных вычислениях, производительность Cell падает на порядок, но все еще достигает 20,8 GFLOPS (1,8 GFLOPS на SPE, 6,4 GFLOPS на PPE). Вариант PowerXCell 8i, специально разработанный для вычислений с двойной точностью, достигает 102,4 ГФЛОПС в вычислениях с двойной точностью. [42]
Тесты IBM показывают, что SPE могут достигать 98% от своей теоретической пиковой производительности при выполнении оптимизированного параллельного умножения матриц. [36]
Компания Toshiba разработала сопроцессор SpursEngine , работающий на базе четырех SPE, но без PPE, который предназначен для ускорения 3D- и киноэффектов в бытовой электронике.
Каждый SPE имеет локальную память объемом 256 КБ. [43] В общей сложности SPE имеют 2 МБ локальной памяти.
EIB — это внутренняя коммуникационная шина процессора Cell, которая соединяет различные элементы системы на кристалле: процессор PPE, контроллер памяти (MIC), восемь сопроцессоров SPE и два интерфейса ввода-вывода вне кристалла, всего 12 участников в PS3 (количество SPU может меняться в промышленных приложениях). EIB также включает в себя арбитражный блок, который функционирует как набор светофоров. В некоторых документах IBM называет участников EIB «блоками».
В настоящее время EIB реализован как кольцевое кольцо, состоящее из четырех однонаправленных каналов шириной 16 байт, которые вращаются в противоположных направлениях парами. Когда позволяют шаблоны трафика, каждый канал может передавать до трех транзакций одновременно. Поскольку EIB работает на половине системной тактовой частоты, эффективная скорость канала составляет 16 байт каждые два системных такта. При максимальном параллелизме , с тремя активными транзакциями на каждом из четырех колец, пиковая мгновенная пропускная способность EIB составляет 96 байт за такт (12 одновременных транзакций × 16 байт в ширину / 2 системных такта на передачу). Хотя эта цифра часто цитируется в литературе IBM, нереально просто масштабировать это число по тактовой частоте процессора. Арбитражный блок накладывает дополнительные ограничения.
Старший инженер IBM Дэвид Кролак, ведущий проектировщик EIB, объясняет модель параллелизма:
Кольцо может начинать новую операцию каждые три цикла. Каждая передача всегда занимает восемь тактов. Это было одно из упрощений, которое мы сделали, оно оптимизировано для потоковой передачи большого количества данных. Если вы делаете небольшие операции, это работает не так хорошо. Если вы представляете себе восьмивагонные поезда, бегущие по этому пути, пока поезда не сталкиваются друг с другом, они могут сосуществовать на пути. [44]
Каждый участник EIB имеет один 16-байтовый порт чтения и один 16-байтовый порт записи. Ограничение для одного участника — чтение и запись со скоростью 16 байт за такт EIB (для простоты часто рассматривается как 8 байт за системный такт). Каждый процессор SPU содержит выделенную очередь управления DMA , способную планировать длинные последовательности транзакций для различных конечных точек, не мешая текущим вычислениям SPU; эти очереди DMA могут управляться локально или удаленно, что обеспечивает дополнительную гибкость в модели управления.
Данные передаются по каналу EIB пошагово по кольцу. Поскольку участников двенадцать, общее количество шагов по каналу обратно к точке происхождения равно двенадцати. Шесть шагов — самое длинное расстояние между любой парой участников. Каналу EIB не разрешается передавать данные, требующие более шести шагов; такие данные должны проходить по более короткому маршруту по кругу в другом направлении. Количество шагов, участвующих в отправке пакета, оказывает очень небольшое влияние на задержку передачи: тактовая частота, управляющая шагами, очень высока по сравнению с другими соображениями. Однако большие расстояния связи пагубно влияют на общую производительность EIB, поскольку они снижают доступный параллелизм.
Несмотря на первоначальное желание IBM реализовать EIB как более мощный перекрестный стержень, круговая конфигурация, которую они приняли для экономии ресурсов, редко представляет собой ограничивающий фактор для производительности чипа Cell в целом. В худшем случае программист должен проявлять особую осторожность, чтобы запланировать шаблоны связи, где EIB может функционировать на высоких уровнях параллелизма.
Дэвид Кролак объяснил:
Ну, в начале, в самом начале процесса разработки, несколько человек настаивали на использовании коммутатора-переключателя, и то, как спроектирована шина, на самом деле можно было вытащить EIB и вставить коммутатор-переключатель, если вы были готовы выделить больше кремниевого пространства на чипе для проводки. Нам нужно было найти баланс между связностью и площадью, и для установки полноценного коммутатора-переключателя просто не хватило места. Поэтому мы придумали эту кольцевую структуру, которая, по нашему мнению, очень интересна. Она вписывается в ограничения площади и при этом имеет очень впечатляющую пропускную способность. [44]
На частоте 3,2 ГГц каждый канал передает данные со скоростью 25,6 ГБ/с. Рассматривая EIB изолированно от системных элементов, которые он соединяет, достижение двенадцати одновременных транзакций при этой скорости потока приводит к абстрактной пропускной способности EIB в 307,2 ГБ/с. Основываясь на этой точке зрения, многие публикации IBM описывают доступную пропускную способность EIB как «более 300 ГБ/с». Это число отражает пиковую мгновенную пропускную способность EIB, масштабированную частотой процессора. [45]
Однако другие технические ограничения связаны с арбитражным механизмом для пакетов, принятых на шину. Группа IBM Systems Performance пояснила:
Каждое устройство на EIB может одновременно отправлять и получать 16 байт данных за каждый цикл шины. Максимальная пропускная способность данных всего EIB ограничена максимальной скоростью, с которой адреса отслеживаются по всем устройствам в системе, что составляет один за цикл шины. Поскольку каждый отслеживаемый адресный запрос может потенциально передавать до 128 байт, теоретическая пиковая пропускная способность данных на EIB на частоте 3,2 ГГц составляет 128Bx1,6 ГГц = 204,8 ГБ/с. [36]
Эта цитата, по-видимому, представляет собой полную степень публичного раскрытия IBM этого механизма и его влияния. Арбитражный блок EIB, механизм слежения и генерация прерываний при ошибках сегмента или трансляции страницы не очень хорошо описаны в наборе документации, который уже был опубликован IBM. [ необходима цитата ]
На практике эффективная пропускная способность EIB также может быть ограничена участниками кольца. В то время как каждое из девяти процессорных ядер может поддерживать скорость чтения и записи 25,6 ГБ/с одновременно, контроллер интерфейса памяти (MIC) привязан к паре каналов памяти XDR, что обеспечивает максимальный поток 25,6 ГБ/с для чтения и записи в совокупности, а два контроллера ввода-вывода документированы как поддерживающие пиковую комбинированную скорость ввода 25,6 ГБ/с и пиковую комбинированную скорость вывода 35 ГБ/с.
Чтобы еще больше усугубить путаницу, некоторые старые публикации приводят пропускную способность EIB, предполагающую системную тактовую частоту 4 ГГц. Эта система отсчета дает мгновенную пропускную способность EIB в 384 ГБ/с и пропускную способность, ограниченную арбитражем, в 256 ГБ/с.
Учитывая все обстоятельства, теоретическое число 204,8 ГБ/с, которое чаще всего упоминается, является лучшим, которое следует иметь в виду. Группа IBM Systems Performance продемонстрировала потоки данных, ориентированные на SPU, достигающие 197 ГБ/с на процессоре Cell, работающем на частоте 3,2 ГГц, поэтому это число также является справедливым отражением практики. [36]
Ячейка содержит двухканальный макрос Rambus XIO, который взаимодействует с памятью Rambus XDR . Контроллер интерфейса памяти (MIC) отделен от макроса XIO и разработан IBM. Связь XIO-XDR работает на скорости 3,2 Гбит/с на контакт. Два 32-битных канала могут обеспечить теоретический максимум 25,6 ГБ/с.
Интерфейс ввода-вывода, также разработанный Rambus, известен как FlexIO. Интерфейс FlexIO организован в 12 полос, каждая из которых представляет собой однонаправленный 8-битный путь точка-точка. Пять 8-битных путей точка-точка являются входящими полосами к Cell, а остальные семь — исходящими. Это обеспечивает теоретическую пиковую пропускную способность 62,4 ГБ/с (36,4 ГБ/с исходящий, 26 ГБ/с входящий) на частоте 2,6 ГГц. Интерфейс FlexIO может тактироваться независимо, обычно на частоте 3,2 ГГц. 4 входящих + 4 исходящих полосы поддерживают когерентность памяти.
Некоторые компании, такие как Leadtek , выпустили карты PCI-E на основе Cell, позволяющие осуществлять перекодирование видео H.264 , MPEG-2 и MPEG-4 «быстрее, чем в реальном времени» . [46]
29 августа 2007 года IBM анонсировала BladeCenter QS21. Генерируя измеренные 1,05 гига-операций с плавающей точкой в секунду (гигаФЛОПС) на ватт, с пиковой производительностью около 460 ГФЛОПС, это одна из самых энергоэффективных вычислительных платформ на сегодняшний день. Одно шасси BladeCenter может достигать 6,4 тера-операций с плавающей точкой в секунду (терафлопс) и более 25,8 терафлопс в стандартной стойке 42U. [47]
13 мая 2008 года IBM анонсировала BladeCenter QS22. QS22 представляет процессор PowerXCell 8i с пятикратной производительностью с плавающей точкой двойной точности по сравнению с QS21 и емкостью до 32 ГБ памяти DDR2 на лезвии. [48]
IBM прекратила выпуск линейки Blade-серверов на базе процессоров Cell с 12 января 2012 года. [49]
Несколько компаний поставляют платы PCI-e, использующие IBM PowerXCell 8i. Производительность сообщается как 179,2 GFlops (SP), 89,6 GFlops (DP) на частоте 2,8 ГГц. [50] [51]
Игровая консоль PlayStation 3 от Sony стала первым производственным применением процессора Cell, работающего на частоте 3,2 ГГц и содержащего семь из восьми рабочих SPE, что позволило Sony увеличить выход годного на производстве процессоров. Только шесть из семи SPE доступны разработчикам, поскольку один зарезервирован ОС. [21]
Toshiba выпустила HDTV с использованием Cell. Они представили систему для декодирования 48 потоков стандартного разрешения MPEG-2 одновременно на экране 1920×1080 . [52] [53] Это может позволить зрителю выбирать канал на основе десятков миниатюр видео, отображаемых одновременно на экране.
Суперкомпьютер IBM, IBM Roadrunner , был гибридом процессоров General Purpose x86-64 Opteron и Cell. Эта система заняла первое место в списке Top 500 за июнь 2008 года как первый суперкомпьютер, работающий на скорости петафлопс , достигнув устойчивой скорости 1,026 петафлопс с использованием стандартного бенчмарка LINPACK . IBM Roadrunner использовал версию PowerXCell 8i процессора Cell, изготовленную с использованием 65 нм технологии и усовершенствованных SPU, которые могут обрабатывать вычисления двойной точности в 128-битных регистрах, достигая двойной точности 102 GFLOPs на чип. [54] [55]
Кластеры консолей PlayStation 3 являются привлекательной альтернативой высокопроизводительным системам на базе лезвий Cell. Innovative Computing Laboratory, группа под руководством Джека Донгарры , на кафедре компьютерных наук в Университете Теннесси, подробно исследовала такое приложение. [56] Terrasoft Solutions продает 8-узловые и 32-узловые кластеры PS3 с предустановленной Yellow Dog Linux , реализацию исследований Донгарры.
Как впервые сообщил Wired 17 октября 2007 года, [57] интересное применение использования PlayStation 3 в кластерной конфигурации было реализовано астрофизиком Гауравом Кханной с физического факультета Массачусетского университета в Дартмуте , который заменил время, используемое на суперкомпьютерах, на кластер из восьми PlayStation 3. Впоследствии следующее поколение этой машины, теперь называемое PlayStation 3 Gravity Grid , использует сеть из 16 машин и использует процессор Cell для предполагаемого применения, которое представляет собой бинарную коалесценцию черных дыр с использованием теории возмущений . В частности, кластер выполняет астрофизическое моделирование больших сверхмассивных черных дыр, захватывающих более мелкие компактные объекты, и генерирует числовые данные, которые были многократно опубликованы в соответствующей научно-исследовательской литературе. [58] Версия процессора Cell, используемая PlayStation 3, имеет основной ЦП и 6 SPE, доступных пользователю, что дает машине Gravity Grid сеть из 16 процессоров общего назначения и 96 векторных процессоров. Машина имеет единовременную стоимость в $9000 на постройку и достаточна для моделирования черных дыр, которое в противном случае стоило бы $6000 за запуск на обычном суперкомпьютере. Расчеты черных дыр не требуют большого объема памяти и являются высоколокализованными, поэтому хорошо подходят для этой архитектуры. Ханна утверждает, что производительность кластера превышает производительность традиционного Linux-кластера на базе 100+ ядер Intel Xeon в его моделировании. PS3 Gravity Grid привлекала значительное внимание СМИ в 2007, [59] 2008, [60] [61] 2009, [62] [63] [64] и 2010 годах. [65] [66]
Лаборатория вычислительной биохимии и биофизики в Университете Помпеу Фабра в Барселоне в 2007 году развернула систему BOINC под названием PS3GRID [67] для совместных вычислений на основе программного обеспечения CellMD, первого программного обеспечения, разработанного специально для процессора Cell.
Исследовательская лаборатория ВВС США развернула кластер PlayStation 3 из более чем 1700 единиц, получивший название «Condor Cluster», для анализа спутниковых снимков высокого разрешения . ВВС утверждают, что Condor Cluster станет 33-м по величине суперкомпьютером в мире по мощности. [68] Лаборатория открыла суперкомпьютер для использования университетами в исследовательских целях. [69]
С помощью вычислительной мощности более полумиллиона консолей PlayStation 3 проект распределенных вычислений Folding@home был признан Книгой рекордов Гиннесса самой мощной распределенной сетью в мире. Первый рекорд был достигнут 16 сентября 2007 года, когда проект превзошел один петафлопс , чего никогда ранее не достигала распределенная вычислительная сеть. Кроме того, коллективные усилия позволили PS3 в одиночку достичь отметки петафлопс 23 сентября 2007 года. Для сравнения, второй по мощности суперкомпьютер в мире на тот момент, Blue Gene/L от IBM , работал со скоростью около 478,2 терафлопс, что означает, что вычислительная мощность Folding@home примерно в два раза выше, чем у Blue Gene/L (хотя межсоединение ЦП в Blue Gene/L более чем в миллион раз быстрее средней скорости сети в Folding@home). По состоянию на 7 мая 2011 года производительность Folding@home составляла около 9,3 x86 петафлопс, при этом 1,6 петафлопс генерируются только 26 000 активных PS3.
25 апреля 2007 года IBM объявила, что начнет интегрировать микропроцессоры Cell Broadband Engine Architecture в линейку мэйнфреймов System z . [70] Это привело к появлению игрового кадра .
Архитектура процессора делает его более подходящим для аппаратных криптографических атак методом подбора , чем обычные процессоры. [71]
Благодаря гибкой природе Cell существует несколько возможностей использования ее ресурсов, не ограничивающихся только различными вычислительными парадигмами: [72]
PPE поддерживает очередь заданий, планирует задания в SPE и отслеживает ход выполнения. Каждый SPE запускает «мини-ядро», роль которого заключается в получении задания, его выполнении и синхронизации с PPE.
Мини-ядро и планирование распределены по SPE. Задачи синхронизируются с помощью мьютексов или семафоров, как в обычной операционной системе . Готовые к запуску задачи ждут в очереди, пока SPE их выполнит. SPE используют общую память для всех задач в этой конфигурации.
Каждый SPE запускает отдельную программу. Данные поступают из входного потока и отправляются в SPE. Когда SPE завершает обработку, выходные данные отправляются в выходной поток.
Это обеспечивает гибкую и мощную архитектуру для потоковой обработки и позволяет явно планировать для каждого SPE отдельно. Другие процессоры также способны выполнять потоковые задачи, но ограничены загруженным ядром.
В 2005 году разработчики IBM представили для включения патчи, обеспечивающие поддержку Cell в ядре Linux. [73] Арнд Бергманн (один из разработчиков вышеупомянутых патчей) также описал архитектуру Cell на базе Linux на LinuxTag 2005. [74] Начиная с версии 2.6.16 (20 марта 2006 года) ядро Linux официально поддерживает процессор Cell. [75]
Как PPE, так и SPE программируются на C/C++ с использованием общего API, предоставляемого библиотеками.
Fixstars Solutions предоставляет Yellow Dog Linux для систем IBM и Mercury на базе Cell, а также для PlayStation 3. [76] Terra Soft стратегически сотрудничает с Mercury, чтобы предоставить пакет поддержки Linux Board для Cell, а также поддержку и разработку программных приложений на различных других платформах Cell, включая IBM BladeCenter JS21 и Cell QS20, и решения на базе Mercury Cell. [77] Terra Soft также поддерживает набор инструментов для построения и управления кластером Y-HPC (High Performance Computing) и инструменты секвенирования генов Y-Bio. Y-Bio построен на стандарте RPM Linux для управления пакетами и предлагает инструменты, которые помогают исследователям биоинформатики выполнять свою работу с большей эффективностью. [78] IBM разработала псевдофайловую систему для Linux под названием «Spufs», которая упрощает доступ к ресурсам SPE и их использование. В настоящее время IBM поддерживает ядро Linux и порты GDB , в то время как Sony поддерживает набор инструментов GNU ( GCC , binutils ). [79]
В ноябре 2005 года IBM выпустила на своем веб-сайте «Cell Broadband Engine (CBE) Software Development Kit Version 1.0», состоящий из симулятора и различных инструментов. Версии разработки последнего ядра и инструментов для Fedora Core 4 поддерживаются на веб-сайте Barcelona Supercomputing Center . [80]
В августе 2007 года компания Mercury Computer Systems выпустила комплект средств разработки программного обеспечения для PlayStation 3 для высокопроизводительных вычислений. [81]
В ноябре 2007 года Fixstars Corporation выпустила новый модуль "CVCell", нацеленный на ускорение нескольких важных API OpenCV для Cell. В серии тестов вычислений программного обеспечения они зафиксировали время выполнения на процессоре Cell 3,2 ГГц, которое было в 6-27 раз быстрее по сравнению с тем же программным обеспечением на 2,4 ГГц Intel Core 2 Duo. [82]
В октябре 2009 года IBM выпустила драйвер OpenCL для POWER6 и CBE. Это позволяет программам, написанным на кроссплатформенном API, легко запускаться на Cell PSE. [83]
Иллюстрации различных поколений процессоров Cell/BE и PowerXCell 8i. Изображения не в масштабе; Все корпуса Cell/BE имеют размеры 42,5×42,5 мм, а PowerXCell 8i — 47,5×47,5 мм.
Для увеличения производительности производства Sony поставляет процессоры PlayStation 3 Cell только с семью рабочими SPE. И из этих семи один SPE будет использоваться операционной системой для различных задач. Это оставляет шесть SPE и 1 PPE для использования программистами игр.