Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессоры Cell

.pdf
Скачиваний:
27
Добавлен:
31.03.2015
Размер:
428.87 Кб
Скачать

МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)

Кафедра прикладной математики

Реферат

По математическому обеспечению ЭВМ

На тему

«Микропроцессоры Cell и их применение в высокопроизводительных вычислениях»

Работу выполнил:

студент гр. А 13-12 Бутилов Дмитрий

Работу проверила:

к.матем.н., доцент Шамаева О.Ю.

Москва 2014

1

Содержание:

История…………………………………………………………………………………………3

Архитектура……………………………………………………………………………………4

Программирование…………………………………………………………………………….7

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

Возможные области применения…………………………………………………………….10

Список используемых источников…………………………………………………….…….12

2

История

В 2000 году Sony Computer Entertainment, Toshiba Corporation и IBM объединились для разработки и производства процессора Cell. Это объединение стало известно как STI. Центр разработки STI открылся в марте 2001 года. Разработка длилась четыре года, в ней принимали участие более 400 инженеров из трёх компаний при поддержке 11 центров разработки IBM.

За время разработки IBM зарегистрировала большое количество различных патентов, относящихся к архитектуре, процессу изготовления и программирования Cell. Ранняя версия патента включала в себя описание разрабатываемого процессора, состоящего из четырёх «вычислительных элементов», состоящих, в свою очередь, из восьми блоков арифметической обработки каждый.

В окончательной версии процессор называется Cell Broadband Engine (Cell BE), содержит 1

блок «POWERtm Processing Element» (PPE) и 8 блоков «Synergistic Processing Element»

(SPE). PPE имеет RISC-архитектуру POWER и предназначен для работы операционной системы, а также координации работы SPE. Последние являются векторными процессорами архитектуры SIMD. На частоте 3,2 ГГц каждый SPE имеет теоретическую производительность 25,6 GFlops, а 8 SPE позволяют достигать 200 GFlops. Несмотря на то что номинальная частота процессора 4 ГГц, корректная его работа возможна на частотах вплоть до 5,6 ГГц.

Изначально для производства процессора использовалась 90-нм технология КНИ(SOI), но в марте 2007 года IBM объявила о запуске производства Cell по 65-нм технологии на своём заводе в Восточном Фишкилле, штат Нью-Йорк (США). И в феврале 2008 IBM заявила, что будет производить Cell по технологии 45 нанометров.

Следующее развитие процессора — поколение PowerXCell 32iv, выпуск которого был запланирован на 2010 год. Количество PPE-элементов в нём увеличено в 2 раза, а SPE — в 4, производиться он будет по техпроцессу 45 нм SOI (кремний на изоляторе). Однако, в ноябре 2009 года, официальные представители IBM заявили, что разработка нового поколения процессоров Cell с 32 SPE-элементами - прекращена. Но это не означает, что развитие других, будущих, продуктов семейства Cell, остановлено.

3

Архитектура

Изначально разработчики процессора CELL ориентировались на достаточно широкий класс приложений и создавали не отдельный процессор, а масштабируемое семейство процессоров. Это семейство архитектур называется CELL Broadband Engine Architecture, сокращенно CELL BE. Различные модели семейства отличаются прежде всего количеством вычислительных ядер. В зависимости от задачи, также могли изменяться тактовая частота, пропускная способность шины, могли добавляться или исчезать отдельные компоненты. Наиболее известны и распространены процессор IBM CELL, а также его модификация PowerXCell. Ниже дается описание архитектуры этих процессоров.

Процессор Cell имеет 9 ядер: 1 ядро PowerPC общего назначения ППЭ (PPE), на нем работает операционная система и пользовательские программы, 8 векторных ядер СПЭ (SPE), исполняют специально написанные для них программы. Ядро PPE аппаратно поддерживает 2 потока. Ядра SPE векторные однопоточные, содержат большое число векторных регистров и имеют ограниченный набор команд. Все ядра (SPE и PPE) имеют доступ к общей памяти, но организуется он по-разному. Каждое ядро SPE имеет локальную память объемом 256 KB, которая хранит и программу, и данные. Для использования какихлибо данных на SPE они сначала должны быть скопированы из общей памяти в локальную. Любое ядро может инициировать передачу данных между общей памятью и локальной памятью любого SPE. Взаимодействие между ядрами осуществляется с помощью обмена блоками данных или 32-битными сообщениями.

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

4

В роли главных ядер выступает PowerPC Processing Element (PPE, ППЭ - калька с английского). Он представляет собой двухпоточный процессор с архитектурой IBM POWER Architecture. Если CELL используется в качестве центрального процессора, то на ППЭ исполняются основные функции ОС, а также основной код пользовательских приложений. Архитектура команд ППЭ, помимо команд IBM Power Architecture, содержит инструкции для взаимодействия с другими компонентами процессора.

В роли вычислительных ядер выступают синергические процессорные элементы (СПЭ,

англ. Synergistic Processing Element, SPE). Каждый СПЭ состоит из синергического процессорного устройства(СПУ, англ. Synergistic Processing Unit, SPU) и контроллера потока памяти(КПП, англ. Memory Flow Controller, MFC).

СПУ представляет собой RISC-процессор, специально оптимизированный для высокопроизводительных вычислений. Он имеет 128 регистров общего назначения по 128 бит каждый. Содержимое одного регистра может трактоваться как набор целых чисел по 8, 16, 32 или 64 бита в каждом, четверка чисел с одинарной точностью или два числа с двойной точностью. Система команд поддерживает работу как с одним элементом, так и со всеми элементами регистра одновременно. Помимо арифметических и логических команд, имеются быстрые команды вычисления элементарных функций. СПУ может выдавать по 2 команды за такт, таким образом, производительность СПУ на вычислениях с одинарной точностью на обычной для CELL частоте 3.2 ГГц составляет 25.6 Гфлопс. Скорость работы

5

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

Помимо регистрового файла, каждый СПУ имеет в своем распоряжении 256 КБ локальной памяти (ЛП). Локальная память является явно адресуемой и доступна СПУ целиком. Время обращения к локальной памяти составляет один такт. Очевидно, что грамотное использование ЛП может значительно ускорить работу приложений.

СПУ не может напрямую обращаться к ОЗУ. Проблема дисбаланса скорости работы ЦП и ОЗУ возникает во всех архитектурах, однако в CELL она стоит еще более остро в связи с высокой производительностью СПУ. Поэтому работой с ОЗУ занимается КПП. КПП является вспомогательным процессором и работает асинхронно с СПУ. КПП имеет очередь запросов к памяти и обращается к контроллеру интерфейса памяти или интерфейсу CELL Broadband Engine для работы с ОЗУ. КПП может выполнять пересылки данных блоками до 16 КБ, а также осуществлять пересылку списка порций. Поддерживается синхронизация доступа к ОЗУ. КПП также выполняет функции трансляции адресов и защиты памяти. В случае блочной пересылки данных трансляция адреса выполняется один раз на страницу, а не на машинное слово. Это отдельно отмечено в одном из патентов IBM и позволяет снизить энергопотребление. КПП также отвечает за взаимодействие СПЭ между собой и с ППЭ.

Все элементы процессора CELL соединены внутренней шиной соединения элементов (англ. Element Interconnection Bus, EIB). Ее максимальная пропускная способность составляет 204 ГБ/сек.

6

Программирование

Расширения С/C++ и загрузка приложений

Основными программируемыми компонентами CELL являются ППЭ и СПЭ. Поскольку ППЭ является полноценным процессором с архитектурой IBM POWER Architecture, его можно программировать при помощи инструментов для этой архитектуры. Основной задачей является программирование СПЭ и взаимодействие ППЭ и СПЭ.

Несмотря на то что набор команд СПЭ похож на набор векторных команд ППЭ, бинарная совместимость между ними отсутствует. Это означает, что исполняемый файл для СПЭ требуется создавать отдельно. Для создания таких файлов может использоваться компилятор XL C/C++ или XL Fortran от компании IBM. При этом исходный код для ППЭ и СПЭ может быть одинаковым, а создание различных исполняемых файлов поддерживаются различными ключами компиляции.

Для поддержки программирования CELL принято достаточно стандартное решение о расширении языка C/C++ набором типов и встроенных процедур (intrinsic), специфичных для процессора CELL. Для типов введен дополнительный квалификатор vector. Его использование с одним из стандартных типов означает структуру данных, в которой элемент этого типа повторен столько раз, сколько он помещается в 128-битный регистр. Например, vector int означает четверку целых чисел, а vector double - два вещественных числа с двойной точностью. При расположении в памяти данные этих типов автоматически выравниваются по 16-байтной границе, что требуется в спецификации операций с ОЗУ CELL. Встроенные процедуры определяют арифметические и логические операции с типамиvector T, а также последовательности команд для взаимодействия с КПП и общения с другими СПЭ. Имеются как встроенные процедуры, работающие только на СПЭ, так и встроенные процедуры, работающие на СПЭ и ППЭ. Последние носят название VMX расширений (VMX Extensions) и предназначены для облегчения написания кода, переносимого между СПЭ и ППЭ. Кроме того, они позволяют последовательно адаптировать приложения для CELL, сначала создавая оптимальный код для ППЭ, а потом адаптируя его для СПЭ.

С точки зрения ОС, потоки СПЭ трактуются как обычные потоки, и для управления ими можно использовать средства управления, доступные для обычных потоков, например, библиотеку POSIX Threads. Чтобы запустить поток на СПЭ, требуется сначала создать обычный поток. При этом текущий поток переходит в состояние исполнения на СПЭ, и начинает исполнять программу для СПЭ. При завершении исполнения программы на СПЭ поток продолжает выполнение на ППЭ.

7

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

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

Модели, в которых главным элементом является ППЭ, можно разделить на: конвейерную, параллельную, сервисную и гибридную модели программирования

Вконвейерной модели различные СПЭ параллельно исполняют различные этапы конвейера. При параллельной модели программирования различные СПЭ параллельно исполняют один и тот же код для разных наборов данных. В сервисной модели различные потоки СПЭ отвечают за различные сервисы приложения. Например, на рисунке выше один поток СПЭ отвечает за шифрование, второй - за кодирование видео, а третий - за распознавание образов.

Вгибридной модели могут сочетаться особенности других моделей. Например, конвейер может состоять из двух ступеней, на одной из которых работает два, а на другой - четыре СПЭ.

8

Характеристики

Теоретическая производительность: 218 GFlops

90-нм технологический процесс (первая ревизия)

234 млн транзисторов

221 мм²

частота: 3,2—5,6 ГГц

Напряжение: 0,9—1,3 В

Тепловыделение:

80 Вт (4 ГГц, 1,1 В)

180 Вт (5,3 ГГц, 1,3 В)

Корпус: BGA 42,5×42,5 мм

Сокет: 1236 контактов

Межпроцессорная шина Flex I/O 32 ГБ/с на ввод, 44,8 ГБ/с на вывод.

интегрированный двухканальный контроллер памяти XDR RAM 25 ГБ/с.

В настоящее время выпускается процессор третьей ревизии — изготовление идёт по 45-

нм техпроцессу. PPE состоит

из двух процессорных ядер, поддерживает набор

команд AltiVec, кеш-память 1-го

уровня 64 КБ, кеш-память 2-го уровня 512 КБ, 11-

стадийныйконвейер. SPE 21 млн транзисторов, 256 КБ локальной памяти, контроллер DMA.

9

Возможные области применения

В мае 2005 года было заявлено об использовании Cell в игровых приставках Sony Playstation 3. Рабочая частота была снижена до 3,2 ГГц, а количество доступных SPE ядер — до 6 (одно ядро зарезервировано для нужд ОС, и ещё одно заблокировано для повышения выхода рабочих процессоров, и таким образом удалось существенно снизить цену). Эти процессоры производились по 90 нм технологии[8].

Осенью 2006 года компания IBM выпустила блейд-сервер QS20, оборудованный двумя процессорами Cell BE. Модули QS22, оборудованные двумя процессорами PowerXCell 8i (модифицированная версия Cell BE с аппаратной поддержкой вычислений двойной точности), используются в суперкомпьютере IBM Roadrunner.

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

Сервера-”лезвия” (Blade server)

IBM продемонстрироваля прототип blade-сервера, основанный на двух процессорах Cell processors c тактовой частотой 2.4ГГц, работающих под управлением ядра linux версии 2.6.11. В настоящий момент ядро система работает на частоте в 3.2 ГГц, показывая производительность 200 GFlops на процессор при работе с данными одинарной точности (single-precision), или 400 GFlops на всю систему. IBM надеется установить 7 блейдов в одно специализированное шасси (похожее на линейку продуктов BladeCenter) для достижения производительности в 2.8 TFLOPS на шасси, или 284 GFLOPS на операциях с данными двойной точности. Необходимо отметить, что опубликованные IBM данные - теоретические, на практике цифры могут оказаться немного ниже.

Консольные видеоигры

Игровая консоль от Sony, PlayStation 3, будет первым промышленным продуктом, содержащим процессор Cell. Тактовая частота 3.2 ГГц, работает семь из восьми SPE, что даёт возможность для Sony увеличить прибыль в области производства процессоров. Несмотря на слухи, в играх используются все семь SPE.

Домашнее кино

Toshiba рассматривает возможность выпуска ТВЧ с использованием Cell. Они уже презентовали систему, способную одновременно декодировать 48 MPEG-2 потоков на экране с разрешающей способностью в 1920х1080, что позволяет смотрящему выбирать канал, видя перед собой дюжину миниатюрных изображений, отображающихся одновременно на экране.

10