наверх

Главная, «Открытые системы», № 05, 2006 1173 прочтения

Мультипроцессор Cell

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

Ключевые слова / keywords: Открытые системы, Разное

Джеймс Кэйхел, Майкл Дэй, Питер Хофсти, Чарльз Джонс, Теодор Маерер, Дэвид Шиппи

РЕКЛАМА
Разработчики мультипроцессора Cell попытались отойти от обычной архитектуры. Результатами их усилий стали принципиально новая аппаратная модель и иная парадигма программирования.

Обсуждения совместной разработки процессора Cell начались при поддержке генеральных директоров Sony и IBM, причем первая компания фигурировала как поставщик контента, а вторая — как лидер в области информационных технологий и производства серверов. Так было положено начало сотрудничеству SCEI (Sony Computer Entertainment Incorporated) и IBM, к которым присоединилась Toshiba как партнер по разработке и массовому производству.

Летом 2000 года специалисты этих компаний обсудили в Токио общие концепции архитектуры нового процессора. В ходе встречи выяснилось, что традиционные архитектурные решения не могут дать той вычислительной мощности, на которую рассчитывала SCEI. Ее представители предлагали обсудить возможность тысячекратного превышения производительности PlayStation2 [1, 2]. Было решено сначала добиться в 100 раз большего быстродействия, а затем обеспечить его дальнейший рост.

На этой стадии к изучению новых подходов было привлечено исследовательское подразделение IBM Research Division. Были приняты во внимание технологические достижения IBM, в том числе современный 0,09-микронный процесс, применение кремния на изоляторе (Silicon-On-Insulator, SOI), диэлектриков low-k и медной разводки [3]. Новая архитектура должна была обеспечить создание цифрового центра развлечений, объединяющего достоинства широкополосных сетей, развлекательных систем и суперкомпьютеров. На встрече обсуждалось множество многоядерных вариантов — от обычных однокристальных мультипроцессоров (Chip Multiprocessor, CMP) до мультипроцессоров, управляемых потоком данных (dataflow-oriented).

К концу 2000 года была согласована архитектурная концепция, объединившая 64-разрядную архитектуру Power Architecture (www-106.ibm.com/developerworks/eserver/library/es-archguide-v2.html) с управлением потоками данных и «синергетическими» процессорами. Это должно было обеспечить требуемые интенсивность вычислений и энергетическую эффективность. После нескольких месяцев переговоров, связанных с обсуждением архитектуры и заключением контрактов, 9 марта 2001 года в Остине (штат Техас) официально открылся Проектный центр STI (SCEI-Toshiba-IBM). Он аккумулировал объединенные инвестиции в проект объемом примерно 400 млн долл.

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

Проектный центр STI расположился в Остине, но жизненно важными для проекта были и следующие подразделения IBM: Рочестер (Миннесота), Йорктаун-Хейтс и Эндикотт (Нью-Йорк), Боблинген (Германия), Роли (Северная Каролина), Хайфа (Израиль), Альмаден (Калифорния), Бангалор (Индия), Ясу (Япония), Берлингтон (Вермонт). Кроме того, в городе Ист-Фишкилл (Нью-Йорк) действовала объединенная технологическая группа.

Цели и задачи проекта

Цели разработки нового процессора были следующими: добиться выдающейся производительности, особенно в игровых и мультимедийных приложениях; обеспечить живой отклик в режиме реального времени на действия пользователя и сетевые запросы; обеспечить применимость процессора на множестве платформ; подготовить процессор к выпуску в 2005 году.

Высокая производительность

Серьезный барьер на пути к увеличению производительности — повышение уровня латентности памяти, а также обусловленное ею ограничение на пропускную способность памяти. Проблема, известная также как «стена памяти» [4], состоит в том, что рост тактовой частоты процессоров не сопровождается достаточным снижением латентности динамической памяти DRAM. Следовательно, эффективная латентность DRAM увеличивается с каждым поколением. В процессоре с тактовой частотой несколько гигагерц латентность DRAM обычно измеряется сотнями тактов; в симметричных мультипроцессорах с общей памятью латентность основной памяти может составлять тысячи тактов.

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

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

Мощность и плотность рассеиваемой мощности в процессорах CMOS выросли настолько, что мы опять испытываем необходимость в сложных методах охлаждения, которые, казалось бы, остались в биполярной эре [5]. Однако в потребительской электронике размеры корпуса, максимальные скорость обдува и температура выходящего из системы воздуха налагают фундаментальные ограничения на допустимую мощность — вне зависимости от технической изобретательности, направленной на повышение теплостойкости. Технологическая ситуация ухудшается по следующим причинам. Размеры транзисторов сегодня настолько малы, что туннелирование через затвор и подпороговые токи утечки препятствуют следованию законам масштабирования с постоянной площадью и сохранению плотности рассеиваемой мощности [6]. Кроме того, отсутствует альтернативная маломощная технология. Следовательно, наряду с ростом производительности необходимы средства повышения энергетической эффективности [7].

Еще один барьер к росту производительности обусловлен тем, что мы достигли точки убывающей приростной отдачи при ее повышении за счет дальнейшего увеличения тактовой частоты процессора и глубины конвейера [8]. Трудность состоит в том, что с ростом глубины конвейера увеличивается и латентность команд — вследствие дополнительной нагрузки от возрастающего числа его регистров-защелок. Таким образом, производительность, полученная благодаря увеличению частоты (и способность выдавать больше команд в единицу времени), должна превышать потери времени из-за роста латентности выполнения команд. Эти потери включают в себя временные слоты выдачи команд, которые нельзя использовать (поскольку существует зависимость от результатов предыдущих команд), и пустые затраты времени из-за неверного предсказания команд перехода.

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

Отклик в режиме реального времени

С самого начала предполагалось, что процессор Cell должен быть максимально удобен для пользователя и наилучшим образом приспособлен для работы в Сети. Эта направленность «вовне» отличается от «внутренней» направленности процессора, характерной для эры пакетной обработки данных, когда главной заботой было обеспечение постоянной загрузки ЦП.

Кроме того, большинство устройств на базе этого процессора будут подключены к широкополосной сети Internet. На начальных этапах предполагалось смешение контента (реального или виртуального) из Internet с контентом традиционных игр и развлечений. Это требует одновременной поддержки как операционных систем реального времени, так и традиционных ОС, выполняющих приложения доступа к Internet. Живой отклик на сетевые запросы означает не только оптимизацию процессора для выполнения рабочих нагрузок, ориентированных на коммуникации. Подразумевается также, что он должен быть «отзывчив» к типам рабочих нагрузок, характерных для Internet. А поскольку Сеть поддерживает множество стандартов, например, разные стандарты потокового видео, необходимы гибкость и программируемость любой функции ускорения.

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

Применимость на многих платформах

Проект Cell стал ответом на потребность в процессоре для нового поколения развлекательных систем. Однако новая архитектура, ориентированная на игровые и мультимедийные приложения и специально разработанная для оптимального взаимодействия с пользователем и широкополосной сетью в режиме реального времени, может оказаться эффективной и в широком диапазоне приложений для «цифрового дома» и его «окрестностей». Архитектура BPA (Broadband Processor Architecture; www-306.ibm.com/chips/techlib/techlib.nsf/products/Cell.) рассчитана на долгую жизнь, выходящую далеко за рамки ее инкарнации в первом поколении процессора Cell. Для расширения области ее применения и появления сообщества разработчиков ПО, которое станет оптимизировать приложения для этой архитектуры, наряду с процессором первого поколения была разработана открытая (на базе Linux) среда разработки программного обеспечения.

Концепция и архитектура проекта

Рис. 1. (a) Блок-схема процессора Cell и (b) фотография кристалла. Процессор Cell первого поколения содержит процессорный элемент PPE с ядром Power, кэши первого и второго уровня (L1 и L2), контроллеры интерфейсов шины и памяти, а также восемь синергических процессорных элементов SPE, каждый из которых имеет блок прямого доступа к памяти (DMA), локальную память (LS) и блок выполнения команд (SXU). Все элементы процессора соединены когерентной внутренней шиной. (Фотографию кристалла Cell предоставил Томас Уэй из подразделения IBM в Берлингтоне.)

Архитектура Broadband Processor Architecture расширяет возможности 64-разрядной архитектуры Power Architecture благодаря использованию согласованно действующих дополнительных «синергетических» процессоров с прямым доступом к памяти (Direct Memory Access, DMA), механизмов синхронизации для связи с ними (управления потоками данных) и усовершенствований, нацеленных на управление в режиме реального времени. В состав процессора Cell первого поколения (рис. 1) входят двухпоточный процессорный элемент PPE (Power processor element), совместимый с 64-разрядной архитектурой Power Architecture и способный выдавать две команды за такт, восемь новых синергетических процессорных элементов SPE (synergistic processor element) [9], внутренний контроллер памяти и контроллер для конфигурируемого интерфейса ввода-вывода. Эти устройства связаны внутренней когерентной шиной EIB (element interconnect bus). Поддерживаются такие распространенные функции, как самопроверка при включении питания, встроенные механизмы отладки оборудования и мониторинг работы. Ключевые особенности концепции таковы.

  • Высокая проектная частота (малое число затворов на такт). Благодаря этому процессор работает при низком напряжении и с небольшим энергопотреблением, сохраняя высокие тактовую частоту и производительность.
  • Совместимость с архитектурой Power Architecture. Она обеспечивает привычные условия для программистов при виртуализации и поддержке нескольких операционных систем, а также возможность использовать опыт IBM, накопленный при проектировании и верификации симметричных мультипроцессоров.
  • Использование архитектуры SIMD (Single Instruction Multiple Data — один поток команд и множество потоков данных). Это — одно из средств повышения производительности игровых/мультимедийных и научных приложений при повышенной энергетической эффективности. SIMD поддерживают как векторные мультимедийные расширения на PPE, так и система команд процессоров SPE.
  • Применение экономичного компактного процессора PPE с высокой проектной частотой.
  • Использование процессоров SPE для когерентного распределения нагрузки. SPE имеют локальную память, асинхронный когерентный прямой доступ к основной памяти и большие унифицированные файлы регистров. Это позволяет улучшить пропускную способность памяти, обеспечить новые уровни энергетической эффективности и производительности. SPE можно динамически конфигурировать для поддержки секретности и защиты контента.
  • Применение внутренней широкополосной когерентной шины и памяти с высокой пропускной способностью. Они обеспечивают значительную производительность приложений с интенсивным обменом данными и внутренних взаимодействий между процессорными элементами. Когерентность шины позволяет PPE и SPE совместно задействовать единое адресное пространство, что повышает эффективность коммуникаций и упрощает программирование.
  • Гибкость ввода-вывода с высокой пропускной способностью. Могут поддерживаться несколько вариантов организации системы, в том числе однопроцессорная конфигурация с двумя интерфейсами ввода-вывода и когерентная двухпроцессорная конфигурация, которая не требует дополнительных коммутирующих устройств для соединения процессоров.
  • Полностью настраиваемая модульная реализация. Она позволяет максимизировать удельную производительность на единицу мощности и удельную производительность на единицу площади подложки, а также облегчить проектирование производных продуктов.
  • Расширенная поддержка управления потреблением мощности и тепловыделением чипа, производственных испытаний, анализа производительности, отладки оборудования и программного обеспечения.
  • Применение эффективной и дешевой технологии размещения элементов в корпусе.
  • Использование высокопроизводительного 0,09-микронного технологического процесса «кремний на изоляторе» с низким энергопотреблением.

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

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

Область управления занимает лишь 10-15% ядра SPE общей площадью 10 мм2, но несколько приложений все же достигают почти пиковой производительности на этом процессоре. Весь SPE занимает 14,5 мм2 и рассеивает лишь несколько ватт при работе на частоте несколько гигагерц.

Когерентная транспортная подсистема и память с высокой пропускной способностью

В Cell первого поколения пропускная способность памяти без больших системных издержек была улучшена с помощью памяти нового поколения Rambus XDR DRAM (www.rambus.com/products/xdr), которая обеспечивает передачу данных со скоростью 12,8 Гбит/с по 32-разрядному каналу. Процессор Cell поддерживает два таких канала с общей пропускной способностью 25,6 Гбит/с. Поскольку пропускная способность внутренней транспортной подсистемы чипа почти на порядок выше (96 байт за такт при пиковой нагрузке), между его блоками почти не возникают конфликты при операциях прямого доступа к памяти.

Ввод-вывод

Для построения эффективных двухпроцессорных систем, а также систем с подключенным к вводу-выводу высокопроизводительным акселератором или чипом системного интерфейса процессор Cell оснащен конфигурируемым интерфейсом ввода-вывода с высокой пропускной способностью. На физическом уровне семь передающих и пять приемных однобайтовых каналов Rambus RRAC FlexIO [13] могут быть выделены для двух отдельных логических интерфейсов. Один из них допустимо сконфигурировать для работы в качестве когерентного интерфейса. Таким образом, Cell поддерживает несколько системных конфигураций с высокой пропускной способностью (рис. 4).

Модели программирования

Удобству программирования процессора Cell уделялось огромное внимание уже на самых ранних этапах проекта.

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

Рис. 4. Варианты конфигурации системы Cell: a) Базовая конфигурация для небольших систем; b) Двухпроцессорный симметричный мультипроцессор без дополнительных коммутирующих устройств для соединения процессоров; c) четырехпроцессорный симметричный мультипроцессор. (IOIF: интерфейс ввода-вывода; BIF: интерфейс широкополосной сети.)

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

SPE отличается от обычных микропроцессоров и по ряду других показателей. Наиболее значительные различия проявляются в размере файла регистра (128 элементов), в способе обработки переходов (и сокращения их количества) и в некоторых командах, позволяющих программному обеспечению выполнять арбитражные функции в локальной памяти и выдавать команды. Такие особенности SPE могут учитываться и эффективно использоваться компилятором. Программист, желающий получить максимальную производительность, способен извлечь из них пользу, но необходимость программировать SPE на ассемблере почти никогда не возникает.

Кроме того, в отличие от обычных процессоров, SPE в каждый момент поддерживает лишь один программный контекст. Этот может быть поток в приложении (режим задачи) или поток в привилегированном режиме (режим супервизора), расширяющий возможности операционной системы. Cell поддерживает виртуализацию и позволяет нескольким операционным системам выполняться одновременно над уровнем ПО виртуализации, работающего в состоянии «гипервизора». Для поддержки возможностей гипервизора можно применять SPE. То, что SPE поддерживает только один контекст, будет использоваться операционной системой. Большинство программистов однопроцессорных машин не всегда знают, что операционная система периодически отбирает у их приложений время выполнения (и содержимое кэша). Так же они могут не осознавать, что SPE управляются операционной системой, которая выполняется на другом процессоре.

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

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

***

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

ЛИТЕРАТУРА
  1. K. Kutaragi, M. Suzuoki, T. Hiroi, etc. A Micro Processor with a 128b CPU. 10 Floating-Point MACs, 4 Floating-Point Dividers and an MPEG2 Decoder, ISSCC Digest of Technical Papers.— February 1999, pp. 256-257.
  2. A. Kunimatsu, N. Ide, T. Sato, etc. Vector Unit Architecture for Emotion Synthesis, IEEE Micro 20, No. 2, 40-47 (March-April 2000).
  3. H. S. Yang, R. Malik, S. Narasimha, etc. Dual Stress Liner for High Performance Sub-45-nm Gate Length SOI CMOS Manufacturing, Proceedings of the 2004 IEEE International Electron Devices Meeting.— December 2004, pp. 1075-1078.
  4. W. Wulf and S. McKee. Hitting the Memory Wall: Implications of the Obvious, ACM Computer Architecture News 23, No. 1, 20-24 (March 1995).
  5. U. Ghoshal and R. Schmidt. Refrigeration Technologies for Sub-Ambient Temperature Operation of Computing Systems, ISSCC Digest of Technical Papers. — February 2000, pp. 216-217.
  6. R. D. Isaac. The Future of CMOS Technology, IBM J.Res. & Dev. 44, No. 3, 369-378 (May 2000).
  7. H. Peter Hofstee. Power Efficient Processor Architecture and the Cell Processor, Proceedings of the 11th Conference on High Performance Computing Architectures. — February 2005, pp. 258-262.
  8. V. Srinivasan, D. Brooks, M. Gschwind, etc. Optimizing Pipelines for Power and Performance, Conference Proceedings of the 35th Annual IEEE/ACM International Symposium on Microarchitecture.— 2002, pp. 333-344.
  9. B. Flachs, S. Asano, S. H. Dhong, etc. The Microarchitecture of the Streaming Processor for a CELL Processor, Proceedings of the IEEE International Solid-State Circuits Symposium.— February 2005, pp. 184-185.
  10. С J. Anderson, J. Petrovick, J. M.Keaty, etc. Physical Design of a Fourth-Generation POWER GHz Microprocessor, ISSCC Digest of Technical Papers. — February 2001, pp. 232-233.
  11. J. Clabes, J. Friedrich, M. Sweet, J. DiLullo, etc. Design and Implementation of the POWER5 Microprocessor, Proceedings of the 41st Design Automation Conference.— 2004, pp. 670-672.
  12. T. Asano, T. Nakazato, S. Dhong,, etc. A 4.8GHz Fully Pipelined Embedded SRAM in the Streaming Processor of a CELL Processor, Proceedings of the IEEE International Solid-State Circuits Symposium.— February 2005, pp. 486-487.
  13. K. Chang, S. Pamarti, K. Kaviani, etc. Clocking and Circuit Design for a Parallel I/O on a First Generation CELL Processor, Proceedings of the IEEE International Solid-State Circuits Symposium.— February 2005, pp. 526-527.

Джеймс Кэйхел (jakahle@us.ibm.com) — почетный сотрудник IBM, директор по технологиям Проектного центра STI подразделения IBM Systems and Technology Group. Майкл Дэй (mnday@us.ibm.com) — главный архитектор системного ПО. Питер Хофсти (hofstee@us.ibm.com) — член архитектурной группы Cell и главный архитектор процессорного элемента SPE для процессора Cell. Чарльз Джонс (crjohns@us.ibm.com) — старший технический сотрудник. Теодор Маерер (maeurer@us.ibm.com) — менеджер по организации ПО. Дэвид Шиппи (shippy@us.ibm.com) — главный архитектор процессорного элемента PPE для процессора Cell.


J. A. Kahle, M.N. Day, H.P. Hofstee, C.R. Johns, T.R. Maeurer, D. Shippy, Introduction to the Cell multiprocessor. IBM Journal of Research and Development, Vol. 49 № 4/5, 2005. Copyright 2005, International Business Machines Corporation. All rights reserved. Reprinted with permission.

Страница 1 2 3 4
Купить номер с этой статьей в pdf

Комментарии


19/05/2016 №02

Купить выпуск

Анонс содержания
«Открытые системы»

Подписка:

«Открытые системы»

на месяцев

c

Средство массовой информации - www.osp.ru. Свидетельство о регистрации СМИ сетевого издания Эл.№ ФС77-62008 от 05 июня 2015 г. Выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзором)