Сравнение SAD-процессоров позиционный vs модулярный — различия между версиями

Материал из Модулярная арифметики
Перейти к: навигация, поиск
Строка 1: Строка 1:
= Сравнение SAD-процессоров позиционный vs модулярный =
 
 
 
Сравнение обычного позиционного SAD-процессора с модулярной реализацией в базисе {2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1} показало что:
 
Сравнение обычного позиционного SAD-процессора с модулярной реализацией в базисе {2<sup>n</sup>-1, 2<sup>n</sup>, 2<sup>n</sup>+1} показало что:
 
* Cхема похоже является слишком простой и содержит слишком малое количество уровней, что бы модулярная реализация дала выигрыш при наличии прямых и обратных преобразователей.
 
* Cхема похоже является слишком простой и содержит слишком малое количество уровней, что бы модулярная реализация дала выигрыш при наличии прямых и обратных преобразователей.

Версия 11:54, 25 декабря 2012

Сравнение обычного позиционного SAD-процессора с модулярной реализацией в базисе {2n-1, 2n, 2n+1} показало что:

  • Cхема похоже является слишком простой и содержит слишком малое количество уровней, что бы модулярная реализация дала выигрыш при наличии прямых и обратных преобразователей.
  • В SAD варианте даже отдельные модулярные каналы имеют задержку выше чем у позиционного варианта устройства, из-за того что, во-первых, сама схема содержит только сложения и вычитания (т.е. отсутствует умножение), а во-вторых, модулярные сумматоры и вычитатели работают хуже обычных сумматоров, даже не смотря на то что у них ниже разрядность входных данных.
  • Площадь модулярных устройств в 3-4 раза больше, чем у позиционной реализации. В модулярном виде она растет быстрее, чем в позиционном.
  • В SSD варианте удается приблизиться по времени работы к позиционному варианту даже с учетом преобразователей, более того скорость на модулярных каналах выше чем у позиционного варианта.

Выводы:

  • Для SAD-процессора в варианте без умножения нет смысла использовать его модулярное представление
  • Модулярное представление имеет смысл для SSD варианта, однако есть несколько ограничений:
    • необходимо покрыть затраты на прямые и обратные преобразователи, либо делая схему счета трёхтактовой (прямое и обратное преобразование здесь менее затратны, чем прямой канал), либо делая модулярным не только SAD-процессор но и вышестоящий диспетчер кадров.
    • SSD реализация применяется на практике гораздо реже
    • SSD реализация требует больше площади на кристале

Замечания по эксперименту:

  • Для генерации SAD-процессоров использовали следующие скрипты: <a href="/2012/sad_generator.php">Позиционный</a>, <a href="/2012/sad_modular_generator.php">Модулярный</a>
  • В качестве технологической библиотеки использовалась: Nangate Open Cell Library 45 nm
  • Для расчета задержки и площади использовался Synopsys Design Compiler, а для верификации ModelSim Student Edition
  • Реализация модулярных сумматоров и вычитателей может быть не самой эффективной, что теоретически может сделать исследование слегка пессимистичным.

Результирующая таблица:

DIM1 DIM2 Bit Pixel Type (SSD or SAD) Timing Timing Area Area Forward Channel Backward
Standard Modular Standard Modular Conversion Time Conversion
4 4 8 SAD 1.25 3.05 5984 14442 0.78 1.54 0.72
4 4 16 SAD 1.62 4.55 13748 42956 1.46 2.23 0.86
4 4 8 SSD 2.65 3.54 14037 48042 0.56 2.19 0.8
4 4 16 SSD 4.33 4.83 41026 1424569 0.5 3.5 0.84

Задержки в таблице в нс, площадь в мкм2.