Процессор Cell презентация

Содержание

Слайд 1Процессор Cell
Киреев Сергей
ИВМиМГ


Слайд 2План
Общая информация о процессоре Cell
Архитектура процессора Cell
Программирование процессора Cell
Реализации систем на

базе Cell

Слайд 3История Cell
IBM, SCEI/Sony, Toshiba Alliance formed in 2000
Austin-based Design Center opened

in March 2001
Single CellBE operational Spring 2004
2-way SMP operational Summer 2004
February 7, 2005: First technical disclosures
October 6, 2005: Mercury announces Cell Blade
November 9, 2005: Open source SDK & simulator published
November 14, 2005: Mercury announces Turismo Cell offering
February 8, 2006: IBM announced Cell Blade

Слайд 4Время
Punch Cards
Green Screen/
Teletype
Spreadsheet
WWW
Gaming
Main Frame
Multitasking
Main Frame
Batch
Client/Server
Internet
Mini-Computer
WYSIWYG
Stand Alone PC
Windows
Word
Processing
Уровень взаимодействия
Immersive Interaction
Online Gaming
Source:

J.A. Kahle

Предпосылки архитектуры Cell

Эволюция пользовательского интерфейса

Cell


Слайд 5Преодоление барьеров производительности
Power Wall – барьер мощности,
Memory Wall – барьер памяти,
Frequency

Wall – барьер частоты.

Предпосылки архитектуры Cell


Слайд 6Характеристики процессора Cell
Cell – многоядерный микропроцессор, содержащий ядра различных типов:
1 PPE

– Power Processor Element
8 SPE – Synergistic Processor Element

Cell – это не набор различных процессоров, а согласованное целое:
Согласованные принципы функционирования, форматы и семантика данных,
Используется общая модель памяти.

Cell – специально создавался для работы на высоких частотах (более 4 ГГц)
Фиксированная частота: 3.2 ГГц

Слайд 7Структура процессора Cell
SPE – Synergistic Processor Element
PPE – Power Processor Element


Слайд 8План
Общая информация о процессоре Cell
Архитектура процессора Cell
Программирование процессора Cell
Реализации систем на

базе Cell

Слайд 10Power Processor Element
PPE исполняет код операционной системы и управляет заданиями
64-битная архитектура

Power с расширением VMX
Упорядоченное исполнение (in-order)
Аппаратная поддержка 2-х параллельных потоков
Кэш-память: 32 KB L1 code, 32 KB L1 data, 512 KB L2 общий

Слайд 11Synergistic Processor Element
SPE обеспечивает вычислительную мощность
До 2-х 128-битных SIMD команд за

такт
Большие ресурсы памяти: 128 128-битных регистров, 256 KB локальной памяти
DMA – асинхронный доступ в общую память: до 16 одновременных запросов

Слайд 12Характеристики SPE
Организация по типу RISC
Фиксированные 32-битные инструкции
Простая структура – общий регистровый

файл
Нет поддержки системных функций
SIMD-архитектура: большой набор векторных операций
8,16,32-битные целочисленные
32,64-битные вещественные
Два исполнительных конвейера
Общий регистровый файл
128 регистров по 128 бит (16 байт)
256 KB локальной памяти
Общая для кода и данных
16 B/такт для чтения/записи регистров
128 B/такт для передач DMA

Слайд 13Element Interconnect Bus
Обмен данными для внутренних коммуникаций
Четыре 16-байтных кольцевых канала с

поддержкой нескольких одновременных передач
96 B/такт пиковая пропускная способность
До 100 одновременных запросов

Слайд 14Пример восьми одновременных транзакций на Element Interconnect Bus


Слайд 15Интерфейсы памяти и ввода-вывода
Двойной контроллер памяти XDR (25.6 GB/s)
Два конфигурируемых интерфейса
Конфигурируемое число

байт на канал
Когерентность
Позволяет создавать системы различных конфигураций

Слайд 16Предпосылки архитектуры Cell
Преодоление барьеров производительности

Power Wall. Увеличение эффективности затрачиваемой энергии за

счет разделения функций:
Процессор, оптимизированный для работы операционной системы и кода со сложным управлением.
Процессор, оптимизированный для выполнения приложений с интенсивными вычислениями.

Memory Wall. Уменьшение влияния задержек памяти за счет:
3-х уровневая структура памяти (основная память, локальная память SPE, большой регистровый файл SPE).
Асинхронная передача между основной и локальной памятью.

Frequency Wall. Достижение высоких частот благодаря специализации процессоров под решение конкретных задач.

Слайд 17Пиковая производительность


Слайд 18План
Общая информация о процессоре Cell
Архитектура процессора Cell
Программирование процессора Cell
Уровни параллелизма
Взаимодействие ядер
Программирование

SPE
Реализации систем на базе Cell

Слайд 19Программирование процессора Cell
Два уровня параллелизма:
Независимые задачи, которые могут быть выполнены параллельно:
2

аппаратных потока PPE
8 программ SPE
Регулярные векторные данные, обработка которых может быть векторизована:
SPE SIMD
PPE VMX


Слайд 20Модели параллельного программирования
Параллелизм по данным
Параллелизм задач
Конвейер (параллелизм задач)


Слайд 21Программа «Hello, World!»
Программа для PPE
#include
extern spe_program_handle_t spu_hello;
int main ()
{
unsigned

int entry = SPE_DEFAULT_ENTRY;
spe_context_ptr_t spe;

spe = spe_context_create (0, NULL);
spe_program_load (spe, &spu_hello);
spe_context_run (spe, &entry, 0, (void *)10, (void *)20, NULL);
spe_context_destroy (spe);

return 0;
}

Программа для SPE
#include
int main (unsigned long long spe, unsigned long long argp, unsigned long long envp)
{
printf("Hello, World! (%llu,%llu)\n", argp, envp);
return 0;
}

Слайд 22Программа «Hello, World!»
Программа для PPE многопоточная
#include
#include
#define NTHREADS 40
extern spe_program_handle_t

spu_hello;

void *thread_func (void *data)
{
unsigned int entry = SPE_DEFAULT_ENTRY;
spe_context_ptr_t spe;
spe = spe_context_create (0,NULL);
spe_program_load (spe, &spu_hello);
spe_context_run (spe, &entry, 0, (void *)data, (void *)NTHREADS, NULL);
spe_context_destroy (spe);
return 0;
}

int main ()
{ pthread_t tid[NTHREADS];
unsigned long i;
for (i=0;i for (i=0;i return 0;
}

Слайд 23Взаимодействие между PPE и SPE
Доступ к основной памяти
PPE – с помощью

обычных инструкций чтения/записи памяти:
Регистр ? память
Память ? регистр
SPE – с помощью команд DMA (через EIB)
Доступ к основной памяти асинхронный
Используется для передачи команд и данных

Слайд 24Взаимодействие между PPE и SPE
Основные механизмы общения SPE и PPE

Mailbox-ы –

очереди 32-битных сообщений:
SPU in (4), SPU out (1), SPU out interrupt (1)
Сигналы – 32-битные сообщения
PPE ? SPE
Прямой доступ к памяти (DMA-передача)
get, put – блок данных до 16 KB

SPE может обмениваться данными и сообщениями с другими SPE.

Слайд 25Пример передачи данных DMA
Программа для SPE

void get (void *dest_lsa, unsigned long

long sour_ea, unsigned long size)
{
int tag=15,mask=1<
mfc_get (dest_lsa, sour_ea, size, tag, 0, 0);
mfc_write_tag_mask (mask);
mfc_read_tag_status_any();
}

void put (void *sour_lsa, unsigned long long dest_ea, unsigned long size)
{
int tag=15,mask=1<
mfc_put (sour_lsa, dest_ea, size, tag, 0, 0);
mfc_write_tag_mask (mask);
mfc_read_tag_status_any();
}


Слайд 26Программа «Ping-pong»
Фрагмент программы для PPE


while ( spe_out_mbox_status(spe) == 0 ); // ожидание

данных в очереди
spe_out_mbox_read(spe ,&data ,1); // чтение одного элемента из очереди
data++; // изменение данных
spe_signal_write(spe, SPE_SIG_NOTIFY_REG_1, data); // запись в регистр сигнала 1


Фрагмент программы для SPE


spu_write_out_mbox(data); // запись элемента данных в очередь
data=spu_read_signal1(); // чтение данных из регистра сигнала 1



Слайд 27Программирование SPE
Все регистры SPE векторные.
Все инструкции являются параллельными по данным и

работают с векторами.
Скалярные операции выполняются путем соответствующего использования векторных команд.
Скалярные аргументы, необходимые некоторым инструкциям, располагаются в «предпочтительных» позициях вектора:

Слайд 28Векторные типы данных


Слайд 29Векторизация вычислений
Для манипуляции векторными данными используются intrinsics – встроенные в компилятор

команды:

Специальные – отображаются в одну инструкцию процессора,
Например: d = si_to_int(a);

Обобщенные – отображаются в одну или несколько инструкций процессора в зависимости от входных параметров,
Например: c = spu_add (a, b);

Составные – последовательности обобщенных и специальных intrinsics (объединенные для удобства).
Например, команды DMA-передачи.

Слайд 30Инструкции SPE
Ядро SPE имеет 2 конвейера (load & execute)
Инструкции каждого типа

исполняются только на «своем» конвейере
Не все инструкции реализованы для всех типов данных
Отсутствуют инструкции деления (для всех типов)
Отсутствуют инструкции 32-битного целочисленного умножения
Реализуется программно с помощью 16-битного умножения


Слайд 31Предсказание ветвлений в SPE
Аппаратное предсказание отсутствует
Используется упрощенное предсказание:
Подсказках компилятора: адрес инструкции

ветвления и адрес перехода
Таблица ветвлений (BTB – Branch Target Buffer)
Пример программы:

Слайд 32Пример: векторное умножение матриц
Программа для SPE

void mulv (float *a, float *b,

float *c, int n)
{ int i, j, k;
vector float *av = (vector float *) a;
vector float *bv = (vector float *) b;
vector float *cv = (vector float *) c;

vector float s = {0.0,0.0,0.0,0.0};
for (i=0; i
for (i=0; i for (k=0; k { s = spu_splats (a[i*n+k]);
for (j=0; j cv[i*n/4+j] = spu_add (cv[i*n/4+j], spu_mul (s, bv[k*n/4+j]) );
}
}


Слайд 33Типичный порядок разработки программы для Cell
Изучение алгоритма
Изучение размещения и потоков данных
Экспериментальное

разбиение и отображение алгоритма и структуры программы на архитектуру
Разработка PPE-управления, PPE-скалярного кода
Разработка PPE-управления, распределенного SPE-скалярного кода
Коммуникации, синхронизация, задержки при пересылках
Преобразование SPE-скалярного кода в SPE SIMD код
Перебалансировка вычислений / пересылок данных
Другие оптимизации
PPE SIMD, узкие места системы, балансировка загрузки

Слайд 34План
Общая информация о процессоре Cell
Архитектура процессора Cell
Программирование процессора Cell
Реализации систем на

базе Cell

Слайд 35Реализации систем на базе Cell
IBM BladeCenter QS 21
2 × Cell B.E.
IBM

BladeCenter QS 22
2 × PowerXCell 8i

Sony PlayStation 3
1 × Cell B.E. (6 SPE)


Слайд 36Cell в отделе МО ВВС


Слайд 37Спасибо за внимание!


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика