Обзор процессоров phillips nexperia

Post on 25-Dec-2014

833 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Программирование обработки видео на процессорах

NXP TriMedia

Марат Арсаев

Video GroupCS MSU Graphics & Media Lab

19.03.09 1

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

2

Содержание доклада

Введение

Архитектура систем PNX1x00

Оптимизация обработки видео

Пример фильтра

Выводы

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

3

Введение

Процессоры для обработки видео и аудио

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

4

Введение

TriMedia — чипы для встроенных систем

Идеально подходят для low-power систем

Гибок и легко программируем

Расширенные встроенные средства

Широко используется во всем мире

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

5

Содержание доклада

Введение

Архитектура систем PNX1x00

Оптимизация обработки видео

Пример фильтра

Выводы

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

6

Архитектура системPNX1x00

MAIN MEMORY

INTERFACE

SDRAM

VIDEO OUT

AUDIO OUT

SPDIF OUT

SYNCHRONOUS

SERIAL INTERFACE

IMAGE

COPROCESSOR

PCI/XIO

INTERFACE

INTERNAL BUS (DATA HIGHWAY)

TO PCI/XIO

BUS

VIDEO IN

AUDIO IN

TIMERS

I2C INTERFACE

VLD COPROCESSOR

VLIW CPU

INSTR

CACHE

DATA

CACHE

Изменение формата на лету

Использование встроенных вспомогательных средств:

скейлер \ FRC

сеть

видео декодеры

нестандартные выходы

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

7

Архитектурачипов TM

SDRAM

DSP-CPU

32-64KB

Instruction Cache

16-128KB

Data Cache

TriMedia CPU Core

64-bit Data Highway

224-bit Instruction Bus

1-2 R/W*32-bit Data Bus

128

32-bit

registers

Arbiter

Peripherals

Peripherals

VLIW Instruction

27-40 Functional Units

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

8

Архитектура CPU

Архитектура VLIW процессра:

5 32-битных слотов операций

каждая операция обращается к необходимым ей ФЭ

ФЭ обращаются к массиву регистров

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

9

Архитектура CPU

Register file (128 x 32 bit registers)15 read and 5 write ports

Functionalunit

1

Functionalunit

2

Functionalunit

X

FunctionalunitX-1

. . . . . . . .

Issue slot 1

Issue slot 2

Issue slot 3

Issue slot 4

Issue slot 5

Instructionissue

register

Instruction cache

Cross Bar

R R R R R R R R R R R R R R R W W W W W

guardsrc1src2result

Reg0 всегда 0

Reg1 всегда 1

Reg2 — Reg127 общего назначения

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

10

Архитектура CPU

От версии к версии меняются:

набор, количество и параметры ФЭ

набор встроенных препроцессоров:

скейлер

интерполятор

поддерживаемые декодеры

Н264

MPEG2, MPEG4

аудио кодеки

s0

s1

d0

s0

s1

d0

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

11

Поддерживаемые операции

Инструкция – константа (не нужно обращаться в кэш)

Супероперации (super_ld32, super_quadumedian, и т.д.)

Целочисленная арифметика :

+\- , логические операции, сравнения, abs, и т.д.

Pack, merge, и т.д.

Сдвиги:

<<, >>, rol, и т.д.

Специфические операции сборки векторов ( abcd % efgh > cdef)

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

12

Поддерживаемые операции

DSP ALU:

Clipping operations

SIMD операции

Quadadd( , ) => Motion Estimation операции

DSP MUL:

SIMD умножения над 8- и 16-битными операндами

FIR инструкции над 8- и 16-битными данными

Ifir8ii( , ) => a*e+b*f+c*g+d*h

a b c d

d+ha+e b+f c+ga b c d

e f g h

e f g h

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

13

Таблица задержек ФЭ ТМ3260

Functional Unit Quantity

Latency /

Delay Recovery

constant 5 1 1 1 2 3 4 5

integer ALU 5 1 1 1 2 3 4 5

load/store 2 3 1 4 5

DSP ALU 3 2 1 1 3 5

DSP MUL 2 3 1 2 3

shifter 5 1 1 1 2 3 4 5

branch 3 3 1 2 3 4

int/float mul 2 3 1 2 3

float ALU 2 3 1 1 4

float compare 1 1 1 3

float sqrt/div 1 17 16 2

Issue Slots

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

14

Кэш данных TM3260

0126

Кэш данных

127Файл регистров

Обмен в обе стороны

16 Кбайт

SDRAMx Мбайт

Обмен между основной

Памятью и шинойдо 40 тактов

До 5 операций регистр-регистр1 такт

до трех тактов

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

15

Управление кэшем

Кэш — одна из самых узких и в то же время гибких мест процессоров TriMedia

Начиная с процессора 3270 кэш явно программируем

При неэффективном программировании процессор может простаивать до 90% времени

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

16

Управление кэшем

Встроенная реализация пре-кэширования: необходимо верно выставить начало, конец региона, текущий указатель и размер

выборки кэша

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

17

Содержание доклада

Введение

Архитектура систем PNX1x00

Оптимизация обработки видео

Пример фильтра

Выводы

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

18

Стандартные оптимизации

Разворачивание циклов, использование look-up

tables

Использование встроенных и SIMD операций

Эффективные выборки из кэша

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

19

Пример оптимизаций

Развертка циклов позволяет компилятору автоматически

распараллелить код

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

20

Пример оптимизаций

Используем встроенные операции: ume8uu

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

21

Пример оптимизаций

Новый код:

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

22

Пример оптимизаций

Разворчиваем цикл дальше:

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

23

Пример оптимизаций

Итого операций:

Было:

16*16*(разность + abs + суммирование) = 768 операций

Стало:

8*(8 МЕ операций + 8 суммирований) = 128 операций

Учитывая развертку циклов, для последней реализации будет сгенерирован весьма эффективный код

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

24

Пример оптимизаций

Возможно уточнение при

помощи полупиксельной

интерполяции, используя

funshift, mergeodd, bilinear

— благодоря этому операции

ведутся над регистрами, без

обращения в кэш

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

25

Содержание доклада

Введение

Архитектура систем PNX1x00

Оптимизация обработки видео

Пример фильтра

Выводы

25

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

26

Bilateral denoising on TM3260

Рассмотрим цифровую камеру и попробуем запрограммировать Bilateral denoising на встроенном чипе TM3260

Bayer Bilateral Denoising on TriMedia3270H.Phelippeau, M.Akil, Universite Paris-Est, Labinfo, Noisy-le-Grand Cedex France, 2007

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

27

Будем работать с Байесовской матрицей цветов

Bilateral denoising on TM3260

x — координата текущего пикселяу — координата обрабатываемого

пикселяu(x) — соответствующее значение

пикселяС(х) — нормализующая константа

β — окно фильтраh, ρ — Гауссовское распределение

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

28

Bilateral denoising on TM3260

Окно фильтра для зеленого 7х7, для красного и синего - 9х9

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

29

Прямая реализация

Так не программируют даже на PC!

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

30

Look-up tables

Используя симметричность

заводим таблицу на 8*255 float значений

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

31

Loop unrolling

Развернем внутренний цикл в 4 раза — такая простая операция на VLIW

процессорах высоко повышает эффективность

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

32

Custom operations

В таком представлении удобно использовать встроенные функции ТМ векторной обработки данных — super_ld32 и dspuquadabssub.

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

33

Custom operations

Результат — уменьшение загрузки более чем в два раза!

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

34

Сравнение

Простейшая оптимизация дает прирост почти в 100 раз

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

35

Проблемы дальнейшей оптимизации

Загрузка подряд идущих 9 байтов требует двух операций super_ld32. Попробуем использовать окно 8х8

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

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

36

Оптимизация загрузок

Выход — считать весь центральный блок за итерацию в окне 8х8

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

37

Результаты

Уменьшение окна до 6х6 позволило авторам выйграть в скорости еще в 1.3 раза.

Даже малейшие оптимизации сильно влияют на скорость работы алгоритма благодаря компилятору

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

38

Выводы

Процессоры TriMedia — мощное и удобное средство программирования обработки видео

При хорошем уровне разроботки можно добиться высокой производительности

NXP предлагает встроенный программный пакет ME/MC, кодеров\декодеров, фильтров с которыми можно соревноваться

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

39

Вопросы

?

CS MSU Graphics & Media Lab (Video Group)

Only for

Maxus

40

Список литературы

40

"TriMedia CPU Optimization" Torsten Fink, Manoj Koul and Chuck Peplinski,TM Center of Excellence, August 2006

"TriMedia Optimizations by Hand" Torsten Fink, Manoj Koul and Chuck Peplinski, TM Center of Excellence, August 2006

"Bayer Bilateral Denoising on TriMedia3270" H.Phelippeau, M.Akil, Universite Paris-Est, Labinfo, Noisy-le-Grand Cedex France, 2007

"TM3260 Architecture Databook" Koninklijke Philips Electronics N.V. 2003.

"PNX15xx Series Data Book" Koninklijke Philips Electronics N.V. 2006.

"Motion Estimation Performance of the TM3270 Processor" Jan-Willem van de Waerdt, Jean-Paul van Itegem, Gerrit A.Slavenburg, Philips Semiconductors, San Jose, CA, USA, NVIDIA Corporation Santa Clara, CA, USA, 2005

top related