Санкт-Петербургский государственный политехнический университет
Факультет технической кибернетики
Кафедра «Измерительные информационные технологии»
РЕФЕРАТ
Дисциплина: Высокопроизводительные вычисления
Тема: Процессор Cell от фирмы IBM
Выполнил студент гр. 6085/2 А.А. Ярошевич
Руководитель К.С. Солнушкин Санкт-Петербург 2007
СОДЕРЖАНИЕ
1. История появления процессора Cell 2. Цели и задачи проекта 2.1. Высокая производительность 2.2. Отклик в режиме реального времени 2.3. Предполагаемые сферы применения 3. Архитектура процессора Cell 3.1. Философия Cell, блок-схема архитектуры Cell 3.2. Высокая частота и пониженное напряжение питания 3.3. Совместимость с Power Architecture 3.4. Архитектура SIMD 3.5. Процессорный элемент PPE (Power processor element ) 3.6. Процессорный элемент SPE (Synergistic processing element) 3.7. Шина Взаимосвязываемых Элементов (EIB) 3.8. Память (MIC - Memory Interface Controller) 3.9. Ввод-вывод (BIC - Bus Interface Controller) 4. Физические характеристики процессора Cell 5. Сравнительные характеристики процессора Cell 6. Особенности программирования процессора Cell 7. Применение 1. История появления процессора Cell В апреле 1993 года сформированный двумя годами ранее альянс Apple, IBM и Motorola объявил о выпуске первого процессора на базе революционной архитектуры PowerPC PowerPC 610 с частотами 50 и 66 МГц [4]. Новинка была призвана составить достойную конкуренцию чипу Pentium. За PowerPC 610 последовали модели второго поколения с индексами 603/604, принёсшие с собой незначительные нововведения. В 1997 году появился PowerPC 750 (G3) - чип третьего поколения, отличавшийся от предшественников увеличенной частотой системной шины и встроенным L2-кэшем.Выпуск 31 августа 1999 года компанией Motorola процессора PowerPC 7400 (G4) явил миру блок векторных вычислений AltiVec, позволивший зачислить компьютеры PowerMac G4 на его основе в ранг настольных суперкомпьютеров.
Первые "подводные камни" появились во время попыток Motorola преодолеть гигагерцовый рубеж. Бросив идею дальнейшего развития PowerPC 74хх, компания сосредоточила все свои силы на процессоре PowerPC 8500 (первый G5).
Дальнейшее развитие архитектуре PowerPC дала IBM, разработав в 2002 году 64разрядный процессор PowerPC 970 (G5). За ним последовал улучшенный PowerPC 970FX, а затем двуядерный PowerPC 970MP.
Однако, архитектура всех этих чипов, как и x86, практически не изменилась со времён появления на рынке PowerPC 750/7400. И вот, настал момент очередного скачка в развитии PowerPC, как качественного (в плане инноваций), так и количественного (в плане распространённости). Имя ему - архитектура Cell (от англ. "cell" - клетка, ячейка).
О своём намерении выйти на рынок графических рабочих станций с собственным процессором президент SCEI (Sony Computer Entertainment Inc.) Кен Кутараги (Ken Kutaragi) заявил в начале 2000 года. Компания, заручившись поддержкой корпораций Toshiba, IBM и Sony (сформировавшийся альянс получил название STI), приступила к созданию архитектуры Cell.
Летом 2000 года специалисты этих компаний обсудили в Токио общие концепции архитектуры нового процессора [1, 2]. В ходе встречи выяснилось, что традиционные архитектурные решения не могут дать той вычислительной мощности, на которую рассчитывала SCEI. Ее представители предлагали обсудить возможность тысячекратного превышения производительности PlayStation2. Было решено сначала добиться в 100 раз большего быстродействия, а затем обеспечить его дальнейший рост.
На этой стадии к изучению новых подходов было привлечено исследовательское подразделение IBM Research Division. Были приняты во внимание технологические достижения IBM, в том числе современный 0,09-микронный процесс, применение кремния на изоляторе (Silicon-On-Insulator, SOI), диэлектриков low-k и медной разводки. Новая архитектура должна была обеспечить создание цифрового центра развлечений, объединяющего достоинства широкополосных сетей, развлекательных систем и суперкомпьютеров. На встрече обсуждалось множество многоядерных вариантов — от обычных однокристальных мультипроцессоров (Chip Multiprocessor, CMP) до мультипроцессоров, управляемых потоком данных (dataflow-oriented).
К концу 2000 года была согласована архитектурная концепция, объединившая 64разрядную архитектуру Power Architecture) с управлением потоками данных и «синергетическими» процессорами. Это должно было обеспечить требуемые интенсивность вычислений и энергетическую эффективность. После нескольких месяцев переговоров, связанных с обсуждением архитектуры и заключением контрактов, 9 марта 2001 года в Остине (штат Техас) официально открылся Проектный центр STI (SCEI-Toshiba-IBM). Он аккумулировал объединенные инвестиции в проект объемом примерно 400 млн долл.
Для того чтобы добиться успеха, компании предприняли целый ряд мер. Во-первых, использовался целостный подход, сводивший воедино архитектуру, аппаратную реализацию, системные структуры и модели программирования процессора. Во-вторых, на руководящие посты Проектного центра были приглашены сотрудники разных подразделений IBM. В-третьих, проект подразумевал использование множества гибких элементов (от перепрограммируемых синергетических процессоров до реконфигурируемых интерфейсов ввода-вывода), что позволяло обеспечить поддержку одним большим чипом нескольких системных конфигураций.
Проектный центр STI расположился в Остине, но жизненно важными для проекта были и следующие подразделения IBM: Рочестер (Миннесота), Йорктаун-Хейтс и Эндикотт (Нью-Йорк), Боблинген (Германия), Роли (Северная Каролина), Хайфа (Израиль), Альмаден (Калифорния), Бангалор (Индия), Ясу (Япония), Берлингтон (Вермонт). Кроме того, в городе Ист-Фишкилл (Нью-Йорк) действовала объединенная технологическая группа.
Также стоит упомянуть Barcelona Supercomputing Center (BSC) который поддерживал (http://en.wikipedia.org/wiki/Barcelona_Supercomputing_Center) – это центр компьютерных исследований, располагающийся в Барселоне (Испания). В нем находится самый мощный суперкомпьютер Европы по итогам тестов июня 2007 года, 9-й по мощности суперкомпьютер мира.
Впервые описание работы процессора стало доступно после регистрации 22 марта 2001 года патента № 6809734 и заявки на патент № 20020138637. Автором патента значился Сузуоки Масаказу (Suzuoki Masakazu), глава процессорного подразделения SCEI и разработчик Emotion Engine. Со временем в прессу стали просачиваться всё новые подробности относительно Cell, а 7 февраля на конференции ISSCC 2005 (International Solid State Circuits Conference) IBM, Toshiba и SCEI рассказали публике об архитектуре чипа, его применении, и своих будущих планах.
2. Цели и задачи проекта Цели разработки нового процессора были следующими [1]: добиться выдающейся производительности, особенно в игровых и мультимедийных приложениях; обеспечить живой отклик в режиме реального времени на действия пользователя и сетевые запросы;
обеспечить применимость процессора на множестве платформ; подготовить процессор к выпуску в 2005 году.
2.1. Высокая производительность Серьезный барьер на пути к увеличению производительности — повышение уровня латентности памяти (задержек при работе с памятью), а также ограничение на пропускную способность памяти. Проблема, известная также как «стена памяти», состоит в том, что рост тактовой частоты процессоров не сопровождается достаточным снижением латентности динамической памяти DRAM. Следовательно, эффективная латентность DRAM увеличивается с каждым поколением. В процессоре с тактовой частотой несколько гигагерц латентность DRAM обычно измеряется сотнями тактов; в симметричных мультипроцессорах с общей памятью латентность основной памяти может составлять тысячи тактов. Задача, следовательно, состояла в разработке такой архитектуры процессора, которая позволила бы более эффективно использовать пропускную способность памяти.
Мощность и плотность рассеиваемой мощности в процессорах CMOS выросли настолько, что требуются сложные методы охлаждения. Однако в потребительской электронике размеры корпуса, максимальные скорость обдува и температура выходящего из системы воздуха налагают фундаментальные ограничения на допустимую мощность — вне зависимости от технической изобретательности, направленной на повышение теплостойкости. Технологическая ситуация ухудшается по следующим причинам. Размеры транзисторов сегодня настолько малы, что туннелирование через затвор и подпороговые токи утечки препятствуют следованию законам масштабирования с постоянной площадью и сохранению плотности рассеиваемой мощности. Кроме того, отсутствует альтернативная маломощная технология. Следовательно, наряду с ростом производительности необходимы средства повышения энергетической эффективности.
Еще один барьер к росту производительности обусловлен тем, что достигнута точка максимальной отдачи при увеличении тактовой частоты процессора и глубины конвейера.
Трудность состоит в том, что с ростом глубины конвейера увеличивается и латентность команд — вследствие дополнительной нагрузки от возрастающего числа его регистровзащелок. Таким образом, производительность, полученная благодаря увеличению частоты (и способность выдавать больше команд в единицу времени), должна превышать потери времени из-за роста латентности выполнения команд. Эти потери включают в себя временные слоты выдачи команд, которые нельзя использовать (поскольку существует зависимость от результатов предыдущих команд), и пустые затраты времени из-за неверного предсказания команд перехода.
Если из-за ограничений по мощности не удается в достаточной мере повысить частоту, то увеличение глубины конвейера и латентности выполнения команд может привести к снижению, а не к повышению производительности. Чем меньше команд за такт выдает процессор, тем успешнее он выдерживает повышение тактовой частоты. Следовательно, требовалось разработать микроархитектуру процессора и такие его реализации, которые минимизируют глубину конвейера и смогут эффективно использовать доступные им слоты выдачи команд.
2.2. Отклик в режиме реального времени С самого начала предполагалось, что процессор Cell должен быть максимально удобен для пользователя и наилучшим образом приспособлен сетевых задач. Подразумевалось, что большинство устройств на базе этого процессора будут подключены к широкополосной сети Internet. На начальных этапах предполагалось смешение контента (реального или виртуального) из Internet с контентом традиционных игр и развлечений. Это требует одновременной поддержки как операционных систем реального времени, так и традиционных ОС, выполняющих приложения доступа к Internet. Живой отклик на сетевые запросы означает не только оптимизацию процессора для выполнения рабочих нагрузок, ориентированных на коммуникации. Подразумевалось также, что он должен быть хорошо приспособлен к типам рабочих нагрузок, характерных для Internet. А поскольку Internet поддерживает множество стандартов, например, разные стандарты потокового видео, необходимы были гибкость и программируемость любой функции ускорения.
Наконец, вместе с возможностями совместного использования данных и вычислительных мощностей на первый план выходили проблемы защиты, конфиденциальности и управления правами доступа.
2.3. Предполагаемые сферы применения Процессор Cell разрабатывался в соответствие с потребностью в процессоре для нового поколения развлекательных систем. Однако новая архитектура, ориентированная на игровые и мультимедийные приложения и специально разработанная для оптимального взаимодействия с пользователем и широкополосной сетью в режиме реального времени, может оказаться эффективной и в широком диапазоне приложений для «цифрового дома» и его «окрестностей». Архитектура BPA (Broadband Processor Architecture) рассчитана на долгую жизнь, выходящую далеко за рамки ее инкарнации в первом поколении процессора Cell. Для расширения области ее применения, наряду с процессором первого поколения была разработана открытая (на базе Linux) среда разработки программного обеспечения.
3. Архитектура процессора Cell 3.1. Философия Cell, блок-схема архитектуры Cell Принципы, заложенные в архитектуру нового чипа, были разработаны в начале года инженерами IBM. Идея массового параллелизма, на основе которой работает Cell, была заложена в так называемую ("cellular architecture") "клеточную архитектуру", в которой для создания суперкомпьютеров используется множество однотипных процессоров (от 10 тыс.
до 1 миллиона), каждый из которых оснащён собственным контроллером RAM и определённым объёмом самой оперативной памяти [4].
В 2001 году во время обнародования первых данных президент SCEI (Sony Computer Entertainment Inc.) Кен Кутараги сопоставил Cell с построенным по принципу кластерной системы суперкомпьютером Deep Blue. Сравнение было дано не просто так: оно отображает саму философию Cell.
"Благодаря встроенной возможности объединения чипов Cell, микропроцессоры, являющиеся сегодня индивидуальными объектами, будут связаны между собой более тесно, благодаря чему сеть на основе таких процессоров превратится в одну унифицированную суперсистему. Как простые биологические клетки в теле, объединяющиеся для создания полноценных физических систем, электронные устройства на базе Cell будут блоками для больших систем", - так описывал Кутараги концепцию Cell [4].
Cell может работать не только в качестве, собственно, процессора, но и в качестве элемента большой системы. Путём объединения различной техники, содержащей чипы Cell, можно построить единую сеть, которая будет функционировать, как одно "устройство".
Представим следующую ситуацию: консоль PlayStation 3 подключена к HDTV-телевизору, к которому, в свою очередь, подключён Blu-Ray-рекордер. Все три устройства оснащены процессорами Cell. Пользователь, играя, например, в WipeOut Fusion 2, даёт команду рекордеру записать очередной заезд в HDTV-формате. При этом Cell в телевизоре помогает своему "напарнику" записывать игру. После записи освободившиеся Cell'ы телевизора и рекордера "спешат на помощь" процессору PlayStation 3, в результате чего количество FPS в игре многократно ускоряется. Таким образом, производительность отдельных Cellустройств в сети может повышаться за счёт процессоров других устройств.
Рассмотрим блок-схему процессора Cell (см. рис. 3.1.1).
Архитектура Cell состоит из следующих компонентов [1, 4]:
• Процессорный элемент на основе POWER-архитектуры (PPE - Power Processor Element), который состоит из кэша второго уровня L2 и PPU (Power Processor Unit), который в свою очередь состоит из кэша первого уровня L1 и ядра Power Execution • Восемь полнофункциональных сопроцессоров, называемых также синергическими процессорными элементами (SPE - Synergistic Processor Element). “Синергетические” в данном контексте означает “согласованно взаимодействующие”, “действующие совместно”. Каждый из SPE имеет блок выполнения команд (SXU), локальную память (LS, Local Store) и контроллер памяти SMF (synergistic memory flow controller);
• Шина Взаимосвязываемых Элементов (EIB - Element Interconnect Bus) или внутренняя когерентная шина – служит для соединения элементов процессора;
• Контроллер интерфейса памяти (MIC - Memory Interface Controller);
• Контроллер интерфейса шины ввода/вывода (BIC - Bus Interface Controller).
Процессорный элемент PPE способен работать под управлением обычной операционной системы. PPE контролирует все SPE и может запустить, остановить, прервать и запланировать процессы, запускаемые на любом из SPE. Для контролирования работы SPE процессорный элемент PPE обладает дополнительным набором инструкций. Каждый из SPE не является полностью автономным и нуждается в PPE, который загрузит данный SPE полезной работой.
Ниже, на рисунке 3.1.2, представлена фотография кристалла Cell, предоставленная Томасом Уэем из подразделения IBM в Берлингтоне.
3.2. Высокая частота и пониженное напряжение питания Разработчики добивались высокой частоты и пониженного напряжения питания для процессора Cell, а также стремились повысить энергетическую эффективность процессора (PPW, Performance Per Watt).
При обеспечении максимальной производительности с заданными площадью подложки и потребляемой мощностью одна из проблем состоит в согласованной оптимизации площади чипа, проектной частоты и рабочего напряжения процессора [1, 5].
Согласно имеющимся эмпирическим данным, энергопотребление процессоров линейно зависит от тактовой частоты и загрузки ЦП работой и квадратично - от напряжения питания. Следовательно, снизив напряжение питания в “x” раз можно повысить в “x2” раз энергетическую эффективность процессора (PPW, Performance Per Watt). А при заданной мощности можно повысить производительность за счет роста числа транзисторов (что ведет к увеличению размеров чипа).
На практике рабочее напряжение имеет минимум (часто определяемый встроенной статической памятью RAM), при котором чип перестает правильно функционировать.
Минимальное рабочее напряжение, а также размеры чипа, коэффициенты коммутации (связанные с процентом транзисторов, рассеивающих коммутируемую мощность на данном такте) и технологические параметры (такие как емкостные токи или токи утечки) определяют рассеиваемую мощность процессора как функцию его частоты. И, наоборот, при заданных энергопотреблении, технологии, минимальном рабочем напряжении и коэффициенте коммутации можно оценить максимальную рабочую частоту для данного размера чипа. Достижения этой частоты следует добиваться, если это возможно без такого снижения эффективности проекта, что проще было бы воспользоваться меньшим чипом, работающим при более высоком напряжении питания. Оптимально сбалансированный процессор должен работать при минимальном напряжении, при котором электрические цепи сохраняют работоспособность, и с максимальной для этого напряжения частотой.
Потребляемая чипом мощность не должна превышать мощность, допустимую для устройства, в котором он применяется.
3.3. Совместимость с Power Architecture Архитектура Broadband Processor Architecture полностью совместима с 64-разрядной Power Architecture [1]. Ее реализация в процессоре Cell вобрала в себя все новшества технологии Power, такие как поддержка виртуализации и страниц большого размера. Опора на проверенную архитектуру и фокусировка внимания на аспектах, способных дать новые преимущества, позволила закончить сложный проект в сжатые сроки. Кроме того, совместимость с Power Architecture обеспечивает перенос на процессор Cell имеющегося ПО, в том числе операционной системы. Для обеспечения полной производительности Cell требуется дополнительная работа, но приложения Power могут выполняться на нем без изменений.
3.4. Архитектура SIMD Процессор Cell использует архитектуру SIMD (Single Instruction stream Multiple Data stream — один поток команд и множество потоков данных) в векторных модулях PPE и SPE. Модули SIMD продемонстрировали свою эффективность при ускорении мультимедийных приложений. Теперь такие модули применяются во всех основных процессорах для ПК, поэтому идет процесс совершенствования ПО, в том числе компиляторов, которые генерируют SIMD-команды для кода, написанного без явного их использования.
Благодаря расширениям SIMD в PPE и SPE сильно упрощаются разработка и перенос программного обеспечения на Cell. Как правило, приложение задумывается как однопоточное, и SIMD не используется. Первый шаг к повышению производительности может состоять в применении SIMD на PPE, а типичный второй шаг — в использовании SPE. Хотя архитектуры SIMD на SPE и PPE отличаются друг от друга, у них много общего.
Программисты могут строить программы, имеющие достаточную производительность на PPE и, после перекомпиляции, на SPE. Поскольку в однопоточном режиме PPE обеспечивает такую среду отладки и тестирования, которая все еще является наиболее знакомой для программистов, многие из них предпочитают именно этот подход к программированию Cell.
3.5. Процессорный элемент PPE (Power processor element ) PPE представляет собой 64-разрядное процессорное ядро (на основе POWERархитектуры). PPE является RISC процессором. Объём кэша L1 составляет 64 Kb (по 32 Kb на кэш инструкций и данных), L2-кэша - 512 Kb. Глубина конвейера PPE составляет стадии [1, 4].
Микроархитектура и план размещения элементов процессора лишены длинных соединений, что сокращает задержки передачи данных (процессор с короткой разводкой).
PPE поддерживает технологию одновременной обработки двух потоков (SMT Simultaneous Multi-Threading) с поочерёдным выполнением команд (in-order execution).
Процессор обеспечивает два одновременных потока выполнения и может рассматриваться как двухпроцессорный мультипроцессор с общим потоком данных. Продублированы все видимые состояния, в том числе видимые регистры и регистры специального назначения (за исключением регистров, имеющих дело с ресурсами на уровне системы, такими как логические разделы, память и управление потоками).
Простые арифметические операции выполняются и отправляют далее свои результаты за два такта. Благодаря режиму отложенного выполнения на конвейере операций с фиксированной запятой команды загрузки также завершаются и отправляют свои результаты за два такта.
В PPE присутствует блок VMX [4] (VMX - Vector Multimedia eXtensions, более известный как AltiVec), который организует конвейерную обработку для операций с плавающей точкой двойной точности. При помощи AltiVec процессорный элемент PPE может выполнить 2 операции двойной точности за 1 машинный цикл (т.е. 6,4 GFLOPS на частоте 3,2 GHz) или 8 операций одинарной точности за 1 машинный цикл (т.е. 25, GFLOPS на частоте 3,2 GHz).
Процессор состоит из трех узлов. Узел команд IU (instruction unit) отвечает за выборку, дешифровку, выдачу и завершение команды, а также за выполнение команд перехода. Узел операций с фиксированной запятой XU (fixed-point execution unit) выполняет все команды с фиксированной запятой и команды загрузки/сохранения. Узел векторно-скалярных команд VSU (vector scalar unit) отвечает за векторные команды и команды с плавающей запятой.
3.6. Процессорный элемент SPE (Synergistic processing element) Синергетический процессорный элемент (см. рис. 3.6.1) представляет собой специализированный векторный RISC процессор, обрабатывающий SIMD-инструкции.
“Синергетические” в данном контексте означает “согласованно взаимодействующие”, “действующие совместно”. Каждый из SPE имеет блок выполнения команд (SXU), локальную память (LS, Local Store) и контроллер DMA (или, по другому, SMF, synergistic memory flow controller). Каждый SPE оснащён 128 регистрами, разрядность которых - 128бит.
Вместо кэша L1 процессор SPE содержит 256 Kb собственной "локальной памяти" (local memory, также называемой local store), которая хранит команды и данные. Каждый SPE поддерживает локальную память, размером до 4 Гбайт. Контроллер памяти DMA предназначен для обмена данными между основной памятью (RAM) и локальной (LS), а также для обмена и синхронизации LS данного SPE с LS других SPE. Локальная память полностью контролируется программистом, вследствие чего организована значительно проще, чем кэш L1. Достигается это путём переноса логики контроля за переполнением кэша из самого чипа в программный код, что способствует облегчению архитектуры локальной памяти. Благодаря наличию динамического механизма защиты памяти доступ к каждому SPE в Cell может быть закрыт, вследствие чего данные, обрабатывающиеся этим процессором, будут недоступны другим (например, в Cell другого устройства).
Блок SMF может быть запрограммирован одним из трех способов:
• SPE ставит в очередь команды прямого доступа к памяти;
• подготовка в локальной памяти SPE списка команд для пересылки содержимого разрозненных участков памяти;
• другой процессор (с соответствующими привилегиями) вставляет команды Для удобства программирования (чтобы разрешить транзакции DMA типа «локальная память — локальная память») локальная память отображается на карту памяти процессора.
Появление локальной памяти вводит новый уровень иерархии памяти — в дополнение к регистрам, которые обеспечивают локальное хранение данных в большинстве процессорных архитектур. Это обеспечивает механизм борьбы с проблемой «стена памяти»
(memory wall), поскольку позволяет одновременно выполнять множество транзакций с локальной памятью без использования основной памяти.
Локальная память — самый крупный компонент SPE, поэтому была очень важна ее эффективная реализация [1]. Для минимизации площади использована однопортовая ячейка SRAM. Локальная память имеет узкий (128-разрядный) и широкий (128-байтовый) порты чтения и записи. Используя узкий (128-разрядный) порт SPE может одновременно, за такт, оперировать 16-ю 8-ми битовыми целыми числами (128 = 16*8), 8-ю 16-ти битовыми целыми числами, 4-мя 32-х битовыми целыми числами или 4-мя числами с плавающей запятой одинарной точности (см. http://www-128.ibm.com/developerworks/power/library/pacellperf/).
Достаточно большой банк 128-разрядных регистров из 128 элементов дает возможность компилятору переупорядочивать большие блоки команд и компенсировать этим задержки их выполнения. Все команды являются 128-разрядными SIMD-командами.
Для того чтобы ограничить дополнительную нагрузку на оборудование, вызванную прогнозированием ветвлений, программист или компилятор могут «подсказать» переход.
Команда подсказки перехода уведомляет оборудование об адресе предстоящей команды перехода и его целевом адресе. Оборудование заранее выбирает по меньшей мере 17 команд по целевому адресу перехода.
SPE занимает 14,5 мм2 и рассеивает лишь несколько ватт при работе на частоте несколько гигагерц.
В процессорном элементе SPE реализована новая архитектура системы команд, энергопотребление и производительность которой оптимизированы для вычислительных и мультимедийных приложений.
Возможности использования SPE: просчёт физических моделей, тесселяция поверхностей высшего порядка в полигональные модели, инверсная кинематика, скелетная анимация, обработка воксельных данных, анимация частиц, компрессия/декомпрессия видеоданных в формате MPEG4 в реальном времени, реализация алгоритмов шифрования, искусственный интеллект и т.д.
Одним из типичных способов использования синергетических процессорных элементов является загрузка в каждый из них маленьких программ (подобных потокам), для выполнения всех шагов какой-либо сложной программы (все SPE при этом образуют конвейер). Например, это может быть задача чтения DVD диска, декодирование и обображение видео на экране; в таком случае данные могут обрабатываться цепочкой SPE, каждый из которых будет выполнять какие-то действия. Другим способом является параллельное исполнение задач различными SPE.
Теоретическая производительность SPE на частоте 3,2 ГГерц для операций с плавающей точкой одинарной точности составляет 25,6 ГФлопс. При этом в Cell находится 8 SPE, а также 1 PPE, который тоже может выполнять операции с плавающей точкой.
Сравнивая возможности Cell с современными персональными компьютерами, стоит отметить, что производительность таких процессоров, как Pentium 4 и Athlon 64 на операциях с плавающей точкой кажется маленькой, по сравнению с Cell. Однако в этом нет ничего странного, потому что персональные компьютеры разработаны для различных общих задач, а Cell создавался именно для задачи быстрых компьютерных вычислений.
Теоретическая производительность SPE на частоте 3,2 ГГерц для операций с плавающей точкой двойной точности составляет 14 ГФлопс.
3.7. Шина Взаимосвязываемых Элементов (EIB) Шина Взаимосвязываемых Элементов (EIB) связывает в единую систему PPE, SPE, а также контроллеры MIC и BIC. Она представляет собой четыре концентрических кольца (шириной 16 бит на кольцо), проходящих через все элементы Cell. Для уменьшения возникающих шумов одна пара "колец" передаёт данные в одном направлении, а вторая - в обратном. Данные, проходящие из одного SPE в другой, используют установленные в них специальные буферы/повторители, обеспечивающие беспрерывное движение данных по шине. Пропускная способность EIB составляет 96 байт за цикл.
Дизайн EIB был создан специально для возможности дальнейшего масштабирования Cell. В текущей версии архитектуры Cell шина EIB организована таким образом, что SPE устанавливаются лишь по горизонтальной оси. Благодаря этому существует возможность легко добавлять/убирать дополнительные SPE, доводя их общее количество до максимально возможного на том или ином производственном техническом процессе (с добавлением SPE увеличивается длина кристалла процессора).
PPE, SPE и EIB представляют собой основу архитектуры Cell, единое трио, работающее вместе. Вместе с Cell на свет появился термин "апулет" (APUlet), произошедший от старого названия SPE (APU - Attached Processing Unit). Он представляет собой объединённый в единое целое код векторной программы и обрабатываемые ею данные. При необходимости использования "подчинённого" процессора PPE направляет апулет по EIB в предназначенный для этого SPE, где тот выполняется. Затем обработанный SPE апулет отправляется либо в RAM (если они необходимы PPE), либо в локальную память следующего SPE одного и того же Cell-чипа (архитектура Cell позволяет SPE работать конвейерно - один за другим).
3.8. Память (MIC - Memory Interface Controller) Для непрерывного обеспечения PPE и SPE данными необходима память с очень высокой пропускной способностью. В Cell первого поколения пропускная способность памяти без больших системных издержек была улучшена с помощью памяти нового поколения Rambus XDR DRAM (www.rambus.com/products/xdr), которая обеспечивает передачу данных со скоростью 12,8 Гбит/с по 32-разрядному каналу. Процессор Cell поддерживает два таких канала с общей пропускной способностью 25,6 Гбит/с. Поскольку пропускная способность внутренней транспортной подсистемы чипа почти на порядок выше (96 байт за такт при пиковой нагрузке), между его блоками почти не возникают конфликты при операциях прямого доступа к памяти.
3.9. Ввод-вывод (BIC - Bus Interface Controller) Процессор Cell оснащен конфигурируемым интерфейсом ввода-вывода с высокой пропускной способностью: высокоскоростной шиной Flex I/O. Flex I/O состоит из 12байтных каналов (разрядностью 8 бит каждый). Шина использует 96 дифференцированных сигнальных пар для достижения пропускной способности в 6,4 Гбайт/с по одному каналу.
Конфигурация канала асимметрична: 7 байт отводится на передачу, а 5 байт - на приём.
Благодаря этому пропускная способность 12-битной пары составляет 44,8 Гбайт/с на передачу и 32 Гбайт/с на приём. В результате суммарная пропускная способность шины ввода/вывода составляет 76,8 Гбайт/с. Во Flex I/O реализованы две интересные технологии FlexPhase и DRSL (Differential Rambus Signaling Level, дословно - дифференциальный уровень сигналов Rambus).
При размещении дорожек на печатной плате, инженерам необходимо соблюдать идентичность их длины (например, дорожки шины адреса Flex I/O). Благодаря этому сигналы, идущие по ним, будут приходить к приёмнику с одинаковой скоростью.
Опоздание сигнала может привести к некорректной работе всей системы. Поэтому инженерам приходится закручивать дорожки в невероятные спирали, лишь бы сигналы по ним приходили в назначенное время.
FlexPhase представляет собой технологию выравнивания сигналов, приходящих не в заданное для них время. Достигается это путём задержки сигнала на приёмнике. Несмотря на возникающую латентность, такой приём позволяет намного упростить разводку печатной платы.
Вторая технология, DRSL, похожа на ту, что применяет корпорация Intel для уменьшения тепловыделения арифметико-логических устройств в Pentium 4. Суть технологии DRSL в следующем. При уменьшении напряжения питания устройства становится всё труднее отличать высокий уровень сигнала (или логическая "1") от низкого (логический "0"). Допустим, если 5В ещё можно отличить от 0В, то при величинах 0,09В и 0В сделать это намного труднее. Вместо поиска различий DRSL осуществляет "вычитание" напряжения двух величин и использует результат в качестве сигнального. Используя низковольтные сигнальные величины, можно свести тепловыделение к минимуму.
4. Физические характеристики процессора Cell Продемонстрированный на ISSCC 2005 (International Solid State Circuits Conference) прототип процессора был изготовлен по 0,09 мкм тех. процессу (8-слоёв медных соединений) с использованием "кремния-на-изоляторе" (SOI, Silicon-on-Insulator).
Количество транзисторов в чипе составляет 234 миллиона, площадь кристалла - 221 мм2.
Каждый SPE в Cell состоит из 21 млн. транзисторов, из которых 14 млн. отводится на локальную память, а 7 млн. - на логику. При этом его размеры составляют 5,81 мм * 2,8 мм (0,09 мкм тех. процесс с применением SOI).
Кристалл Cell размещён внутри BGA-корпуса (см. рис. 4.1) с размерами 42,5 * 42,5 мм.
Из 1236 контактов процессора 506 являются сигнальными, а остальные предназначены для питания и "земли".
На ISSCC 2005 был продемонстрирован прототип, работающий на частоте 4 ГГц. При этом пиковая производительность восьми SPE, по заявлениям инженеров STI, составляет 250 Гигафлоп/с, или 250 миллиардов операций с числами с плавающей запятой.
SCEI заявила, что процессор Cell, изготовленный по тех. процессу 0,065 мкм с использованием технологий SOI и "напряжённого кремния" (strained silicon) будет потреблять 30-40 Вт при частоте 4,6 ГГц. К тому же в Cell встроены один линейный и десять цифровых датчиков тепла, а также интеллектуальная система динамического понижения частоты процессора с пятью ступенями, позволяющая ещё более уменьшить тепловыделение и потребляемую мощность.
К 2010 году частоту процессоров, благодаря использованию всё более совершенного тех. процесса, а также оптических соединений между транзисторами, планируется поднять до 10 ГГц.
5. Сравнительные характеристики процессора Cell Группой независимых экспертов из лаборатории Lawrence Berkeley (США) были изучены возможности процессора Cell по сравнению с другими процессорами [6]. Они сравнили производительность Cell с производительностью суперскалярных процессоров AMD Opteron, VLIW (Intel Itanium2) и векторного процессора Cray X1E при выполнении различных вычислительных задач.
Ключевые особенности архитектуры и другие характеристики процессоров Cell, AMD Opteron, VLIW (Intel Itanium2) и Cray X1E представлены в таблице 5.1.
Столбец Cell в таблице 5.1 разделен на SPE-элемент (характеристики одного из восьми синергических процессорных элементов), и микропроцессор Cell целиком.
Архитектура Cell - Multi-Core SIMD (см. пункт 3.4), архитектура X1E – векторная, AMD64 – суперскалярный процессор, IA64 имеет архитектуру VLIW (процессор, работающий с системой команд сверхбольшой разрядности).
Характеристики Производительность SP (Single Precision) – производительность вычисления операций с плавающей точкой одинарной точности, производительность DP (Double Precision) – двойной точности.
Очевидно, что производительность процессора Cell довольно выгодно выглядит на фоне других процессоров. Стоит отметить также, что энергопотребление Cell значительно меньше остальных.
Группа независимых экспертов произвела несколько сравнительных тестов производительности процессоров при помощи математического моделирования производительности. Первый из них, - умножение матрицы на матрицу (Dense Matrix-Matrix Multiply). Результаты представлены в таблице 5.2.
Таблица. 5.2. Производительность при умножении матрицы на матрицу Производительность вычисления операций с плавающей точкой одинарной точности процессора Cell составляет более 200 Гфлопс, т.е. более 200x109 операций с плавающей точкой в секунду. При этом процессор Cell потребляет примерно 40 Ватт при частоте каждого SPE, равной 3,2 Ггерц. Получается, что энергетическая эффективность Cell (PPW, Performance Per Watt) составляет примерно 5 Гфлопс/Вт, что является очень хорошим показателем.
Следующий тест, - шаблонные вычисления (STENCIL COMPUTATIONS). Были взяты вычисления, которые являются “шаблонными”, схожими с большим количеством важных научных вычислений.
Для постановки эксперимента шаблонных вычислений использовались пакеты Cactus (http://www.cactuscode.org) и Chombo (http://seesar.lbl.gov/anag/chombo). Cactus – это открытый для общего пользования, свободно-распространяемый пакет, позволяющий производить параллельные вычисления, используемый в течение многих лет учеными и инженерами. Cactus используется во многих областях астрофизики. Эксперимент проводился над примером пакета Cactus, - алгоритмом WaveToy (см. рис. 5.1), который решает 3D дифференциальное уравнение в частных производных методом конечных разностей.
Chombo – пакет, также позволяющий проводить параллельные вычисления.
Эксперимент проводился над примером пакета Cactus, - алгоритмом Heat (см. рис. 5.1), который решает дифференциальное уравнение в частных производных для простой задачи нагрева.
Рис. 5.1. Формулы: задача Heat (верх), требует данные только одного предыдущего шага по времени;
Результаты сравнения производительности при использовании шаблонных вычислений представлены в таблице 5.3 (DP) и таблице 5.4 (SP). Стоит отметить, что для разных архитектур были использованы разные размеры сеток: на X1E и IA использовалась сетка 2563, на AMD64 использовалась сетка 1283, а на Cell использовалась наибольшая сетка, которую могла хранить локальная память каждого SPE (local store).
Столбец Cell (2 шага), это результаты процессора Cell при использовании метода "time skewing", заключающийся в том, чтобы за один шаг алгоритма обрабатывать несколько шагов по времени, так как нужные данные уже хранятся в локальной памяти, и их не надо доставать из основной памяти и записывать туда промежуточные результаты.
Соответственно Cell (2 шага), - это обработка 2-х шагов по времени за один шаг алгоритма.
Таблица. 5.3. Производительность при выполнении шаблонных вычислений (DP) Таблица. 5.4. Производительность при выполнении шаблонных вычислений (SP) По итогам этого теста Cell также лидирует в производительности.
Еще один тест, который они провели, - БПФ, Быстрое Преобразование Фурье (FFT, Fast Fourier Transform). Были проведены три 1D и 2D FFT преобразования отличающиеся количеством точек N (см. табл. 5.5 и табл. 5.6).
Производительность 2D FFT, Гфлопс Производительность 2D FFT, Гфлопс В заключение группа независимых экспертов из лаборатории Lawrence Berkeley (США) [6] сделала вывод, что процессор Cell, - перспективная разработка, обладающая возможностью многократного повышения производительности вычислений. В доказательство приведена итоговая сравнительная таблица коэффициентов 5.7.
Энергетическая эффективность (PPW) Cell на порядок лучше рассмотренных процессоров, что также является важным и ценным качеством данного процессора.
6. Особенности программирования процессора Cell Удобству программирования процессора Cell уделялось огромное внимание уже на самых ранних этапах проекта [1, 5].
Особенностью процессора Cell является наличие локальной памяти, которой программное обеспечение должно управлять. Это — одна из самых трудных задач для программистов, но и самый большой резерв для роста производительности приложений.
Когда-нибудь с задачей управления памятью будет эффективно справляться компилятор, но сейчас она, прежде всего, ложится на плечи программистов или авторов библиотек.
SPE берет инструкции и данные из своей локальной памяти. Обмен с основной памятью занимает сотни циклов. Поэтому, как уже было упомянуто ранее, программист (а в будущем - компилятор) должен эффективно организовывать использование локальной памяти и ее обмен с основной памятью. В традиционных системах используется кэш, который прозрачен для программиста, так как его работой управляет аппаратное обеспечение. С кэшем программы писать проще (потому что он прозрачен), но алгоритмы, управляющие им, сложны, не всегда эффективны, поведение кэша недетерминированно. В Cell роль аналогичного кэшу быстрого хранилища выполняет локальная память SPE.
Однако, ее работой нужно управлять самому, поэтому программы писать сложнее.
Еще одна особенность процессора, влияющая на модель программирования, — возможность обрабатывать потоки данных с помощью SIMD-команд. SPE можно программировать как обычный скалярный процессор, если приложение с трудом поддается векторизации для SIMD. Особенности SIMD в SPE используются программистами и поддерживаются компиляторами почти так же, как блоки SIMD в процессорах PC.
Соответственно, они приносят аналогичные выгоды.
SPE отличается от обычных микропроцессоров и по ряду других показателей.
Наиболее значительные различия проявляются в размере блока регистров (128 элементов), в способе обработки переходов (и сокращения их количества) и в некоторых командах, позволяющих программному обеспечению выполнять арбитражные функции в локальной памяти и выдавать команды. Такие особенности SPE могут учитываться и эффективно использоваться компилятором. Программист, желающий получить максимальную производительность, способен извлечь из них пользу, но необходимость программировать SPE на ассемблере почти никогда не возникает.
Поддержка многих из моделей программирования на языке высокого уровня (типа Cи) сыграла важную роль в разработке архитектуры Cell. Для удобства программирования в архитектуру Cell внесены многочисленные изменения. Перед принятием окончательных решений по архитектуре и реализации Cell были написаны, проанализированы и проверены на функциональном имитаторе тестовые программы, библиотеки функций, расширения операционной системы и приложения.
7. Применение Ещё 29 ноября 2004 года IBM, Sony Corporation и SCEI объявили о создании первой рабочей станции на базе прототипов процессора [4]. Через некоторое время такие станции начали поставлять разработчикам "стартовых" игр для консоли PlayStation 3. PlayStation оснащена четырьмя чипами Cell с частотой 4,6 ГГц (пиковая производительность 32 SPE - Терафлоп). Благодаря использованию четырёх процессоров пропускная способность подсистемы памяти составит 100 Гбайт/с. Каждая консоль обладает портом интерфейса Flex I/O, благодаря чему подключать к ней аналогичные PlayStation 3 и другие устройства, оснащённые Cell, не составляет особого труда.
Однако рабочие станции на базе Cell предназначены не только для создания консольных игр. Они могут применяться во всех областях, требующих больших вычислительных возможностей, таких как: видеомонтаж, создание компьютерных спецэффектов, научные расчёты и моделирование, большие базы данных, CAD-системы.
Одной из областей применения Cell аналитики считают рынок цифровых сигнальных процессоров (DSP - Digital Signal Processor), высокая скорость которых обусловлена многопоточным просчётом векторных инструкций. Восемь параллельно работающих SPE позволяют составить достойную конкуренцию специализированным DSP-процессорам.
Если использовать Cell для построения видеокарты (возможен и такой вариант), то SPE могут служить пиксельными шейдерами и будут использоваться для конвейера просчёта. Сама IBM во время ISSCC 2005 заявила, что считает Cell комбинацией процессора и графического чипа. Благодаря прямой связи между всеми SPE с помощью шины EIB, а также локальной памяти в их составе, существует возможность динамически переключать различные процессорные элементы на выполнение той или иной части конвейера просчёта.
Также процессоры Cell применяются в настоящее время в серверах IBM BladeCenter QS21 и телевизорах высокой четкости (HDTV) корпорации Toshiba [2].