Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Обзор процессоров Phillips Nexperia

1,224 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Обзор процессоров Phillips Nexperia

  1. 1. Программирование обработки видео на процессорах NXP TriMedia Марат Арсаев Video Group CS MSU Graphics & Media Lab 19.03.09 1
  2. 2. Only for Maxus  Содержание доклада  Введение  Архитектура систем PNX1x00  Оптимизация обработки видео  Пример фильтра  Выводы 2 CS MSU Graphics & Media Lab (Video Group)
  3. 3. Only for Maxus  Введение Процессоры для обработки видео и аудио 3 CS MSU Graphics & Media Lab (Video Group)
  4. 4. Only for Maxus  Введение  TriMedia — чипы для встроенных систем  Идеально подходят для low-power систем  Гибок и легко программируем  Расширенные встроенные средства  Широко используется во всем мире 4 CS MSU Graphics & Media Lab (Video Group)
  5. 5. Only for Maxus  Содержание доклада  Введение  Архитектура систем PNX1x00  Оптимизация обработки видео  Пример фильтра  Выводы 5 CS MSU Graphics & Media Lab (Video Group)
  6. 6. Only for Maxus  Архитектура систем PNX1x00 SDRAM MAIN MEMORY  Изменение формата на лету INTERFACE VIDEO IN VIDEO OUT Использование встроенных вспомогательных средств: AUDIO IN AUDIO OUT скейлер FRC TIMERS SPDIF OUT  SYNCHRONOUS сеть I2C INTERFACE SERIAL INTERFACE  видео декодеры IMAGE VLD COPROCESSOR  COPROCESSOR нестандартные выходы INSTR PCI/XIO TO PCI/XIO  CACHE INTERFACE BUS VLIW CPU DATA CACHE INTERNAL BUS (DATA HIGHWAY) 6 CS MSU Graphics & Media Lab (Video Group)
  7. 7. Only for Maxus  Архитектура чипов TM SDRAM Arbiter 224-bit Instruction Bus Peripherals TriMedia CPU Core DSP-CPU 32-64KB VLIW Instruction Instruction Cache 27-40 Functional Units 128 16-128KB Peripherals 32-bit registers Data Cache 64-bit Data Highway 1-2 R/W*32-bit Data Bus 7 CS MSU Graphics & Media Lab (Video Group)
  8. 8. Only for Maxus  Архитектура CPU Архитектура VLIW процессра:  5 32-битных слотов операций  каждая операция обращается к необходимым ей ФЭ  ФЭ обращаются к массиву регистров 8 CS MSU Graphics & Media Lab (Video Group)
  9. 9. Only for Maxus  Архитектура CPU Register file (128 x 32 bit registers) 15 read and 5 write ports Reg0 всегда 0 R R R R R R R R R R R R R R R W W W W W Reg1 всегда 1 Reg2 — Reg127 общего назначения Cross Bar guard src1src2result Functional Functional Functional Functional unit unit ....... . unit unit 1 2 X-1 X Instruction cache Instruction issue Issue slot Issue slot Issue slot Issue slot Issue slot register 1 2 3 4 5 9 CS MSU Graphics & Media Lab (Video Group)
  10. 10. Only for Maxus  Архитектура CPU От версии к версии меняются:  набор, количество и параметры ФЭ  набор встроенных препроцессоров:  скейлер s0  интерполятор s1 d0  поддерживаемые декодеры  Н264 s0  MPEG2, MPEG4 s1  аудио кодеки d0 10 CS MSU Graphics & Media Lab (Video Group)
  11. 11. Only for Maxus  Поддерживаемые операции  Инструкция – константа (не нужно обращаться в кэш)  Супероперации (super_ld32, super_quadumedian, и т.д.) Целочисленная арифметика :  +- , логические операции, сравнения, abs, и т.д.  Pack, merge, и т.д.  Сдвиги:  <<, >>, rol, и т.д.  Специфические операции сборки векторов ( abcd % efgh > cdef) 11 CS MSU Graphics & Media Lab (Video Group)
  12. 12. Only for Maxus  Поддерживаемые операции DSP ALU:   Clipping operations  SIMD операции a b c d e f g h a+e b+f c+g d+h Quadadd( , ) =>  Motion Estimation операции DSP MUL:   SIMD умножения над 8- и 16-битными операндами  FIR инструкции h a b c d e f g над 8- и 16-битными данными Ifir8ii( , ) => 12 CS MSU Graphics & Media Lab (Video Group)
  13. 13. Only for Maxus  Таблица задержек ФЭ ТМ3260 Latency / Functional Unit Quantity Delay Recovery Issue Slots 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 13 CS MSU Graphics & Media Lab (Video Group)
  14. 14. Only for Maxus  Кэш данных TM3260 До 5 операций регистр-регистр 1 такт 127 126 0 Файл регистров до трех тактов Обмен в обе стороны 16 Кбайт Кэш данных до 40 тактов Обмен между основной Памятью и шиной x Мбайт SDRAM 14 CS MSU Graphics & Media Lab (Video Group)
  15. 15. Only for Maxus  Управление кэшем Кэш — одна из самых узких и в то же время гибких мест процессоров TriMedia Начиная с процессора 3270 кэш явно программируем  При неэффективном программировании процессор может простаивать до 90% времени 15 CS MSU Graphics & Media Lab (Video Group)
  16. 16. Only for Maxus  Управление кэшем Встроенная реализация пре- кэширования: необходимо верно выставить начало, конец региона, текущий указатель и размер выборки кэша 16 CS MSU Graphics & Media Lab (Video Group)
  17. 17. Only for Maxus  Содержание доклада  Введение  Архитектура систем PNX1x00  Оптимизация обработки видео  Пример фильтра  Выводы 17 CS MSU Graphics & Media Lab (Video Group)
  18. 18. Only for Maxus  Стандартные оптимизации  Разворачивание циклов, использование look-up tables  Использование встроенных и SIMD операций  Эффективные выборки из кэша 18 CS MSU Graphics & Media Lab (Video Group)
  19. 19. Only for Пример оптимизаций Maxus  Развертка циклов позволяет компилятору автоматически распараллелить код 19 CS MSU Graphics & Media Lab (Video Group)
  20. 20. Only for Пример оптимизаций Maxus  Используем встроенные операции: ume8uu 20 CS MSU Graphics & Media Lab (Video Group)
  21. 21. Only for Пример оптимизаций Maxus  Новый код: 21 CS MSU Graphics & Media Lab (Video Group)
  22. 22. Only for Пример оптимизаций Maxus  Разворчиваем цикл дальше: 22 CS MSU Graphics & Media Lab (Video Group)
  23. 23. Only for Пример оптимизаций Maxus  Итого операций: Было: 16*16*(разность + abs + суммирование) = 768 операций  Стало: 8*(8 МЕ операций + 8 суммирований) = 128 операций Учитывая развертку циклов, для последней реализации будет сгенерирован весьма эффективный код 23 CS MSU Graphics & Media Lab (Video Group)
  24. 24. Only for Пример оптимизаций Maxus  Возможно уточнение при помощи полупиксельной интерполяции, используя funshift, mergeodd, bilinear — благодоря этому операции ведутся над регистрами, без обращения в кэш 24 CS MSU Graphics & Media Lab (Video Group)
  25. 25. Only for Maxus  Содержание доклада  Введение  Архитектура систем PNX1x00  Оптимизация обработки видео  Пример фильтра  Выводы 25 CS MSU Graphics & Media Lab (Video Group)
  26. 26. Bilateral denoising on Only for Maxus  TM3260 Рассмотрим цифровую камеру и попробуем запрограммировать Bilateral denoising на встроенном чипе TM3260 Bayer Bilateral Denoising on TriMedia3270 H.Phelippeau, M.Akil, Universite Paris-Est, Labinfo, Noisy-le- Grand Cedex France, 2007 26 CS MSU Graphics & Media Lab (Video Group)
  27. 27. Bilateral denoising on Only for Maxus  TM3260 Будем работать с Байесовской матрицей цветов x — координата текущего пикселя у — координата обрабатываемого пикселя u(x) — соответствующее значение пикселя С(х) — нормализующая константа β — окно фильтра h, ρ — Гауссовское распределение 27 CS MSU Graphics & Media Lab (Video Group)
  28. 28. Bilateral denoising on Only for Maxus  TM3260 Окно фильтра для зеленого 7х7, для красного и синего - 9х9 28 CS MSU Graphics & Media Lab (Video Group)
  29. 29. Only for Maxus  Прямая реализация Так не программируют даже на PC! 29 CS MSU Graphics & Media Lab (Video Group)
  30. 30. Only for Maxus  Look-up tables Используя симметричность заводим таблицу на 8*255 float значений 30 CS MSU Graphics & Media Lab (Video Group)
  31. 31. Only for Maxus  Loop unrolling Развернем внутренний цикл в 4 раза — такая простая операция на VLIW процессорах высоко повышает эффективность 31 CS MSU Graphics & Media Lab (Video Group)
  32. 32. Only for Maxus  Custom operations В таком представлении удобно использовать встроенные функции ТМ векторной обработки данных — super_ld32 и dspuquadabssub. 32 CS MSU Graphics & Media Lab (Video Group)
  33. 33. Only for Maxus  Custom operations Результат — уменьшение загрузки более чем в два раза! 33 CS MSU Graphics & Media Lab (Video Group)
  34. 34. Only for Maxus  Сравнение Простейшая оптимизация дает прирост почти в 100 раз 34 CS MSU Graphics & Media Lab (Video Group)
  35. 35. Проблемы дальнейшей Only for Maxus  оптимизации Загрузка подряд идущих 9 байтов требует двух операций super_ld32. Попробуем использовать окно 8х8 Половина загруженных значений не используются — изменим реализацию для обработки всех цветов за раз 35 CS MSU Graphics & Media Lab (Video Group)
  36. 36. Only for Maxus  Оптимизация загрузок Выход — считать весь центральный блок за итерацию в окне 8х8 36 CS MSU Graphics & Media Lab (Video Group)
  37. 37. Only for Maxus  Результаты Уменьшение окна до 6х6 позволило авторам выйграть в скорости еще в 1.3 раза. Даже малейшие оптимизации сильно влияют на скорость работы алгоритма благодаря компилятору 37 CS MSU Graphics & Media Lab (Video Group)
  38. 38. Only for Maxus  Выводы Процессоры TriMedia — мощное и удобное средство программирования обработки видео При хорошем уровне разроботки можно добиться высокой производительности NXP предлагает встроенный программный пакет ME/MC, кодеровдекодеров, фильтров с которыми можно соревноваться 38 CS MSU Graphics & Media Lab (Video Group)
  39. 39. Only for Maxus  Вопросы ? 39 CS MSU Graphics & Media Lab (Video Group)
  40. 40. Only for Maxus  Список литературы  "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 40 CS MSU Graphics & Media Lab (Video Group)

×