Обзор процессоров Phillips Nexperia
-
Upload
msu-gml-videogroup -
Category
Technology
-
view
832 -
download
1
description
Transcript of Обзор процессоров Phillips Nexperia
Программирование обработки видео на процессорах
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