Сравнение SAD-процессоров позиционный vs модулярный — различия между версиями
Материал из Модулярная арифметики
Turbo (обсуждение | вклад) |
Turbo (обсуждение | вклад) |
||
Строка 13: | Строка 13: | ||
Замечания по эксперименту: | Замечания по эксперименту: | ||
− | * Для генерации SAD-процессоров использовали следующие скрипты: | + | * Для генерации SAD-процессоров использовали следующие скрипты: [http://vscripts.ru/2012/sad_generator.php Позиционный], [http://vscripts.ru/2012/sad_modular_generator.php Модулярный] |
* В качестве технологической библиотеки использовалась: Nangate Open Cell Library 45 nm | * В качестве технологической библиотеки использовалась: Nangate Open Cell Library 45 nm | ||
* Для расчета задержки и площади использовался Synopsys Design Compiler, а для верификации ModelSim Student Edition | * Для расчета задержки и площади использовался Synopsys Design Compiler, а для верификации ModelSim Student Edition |
Версия 11:55, 25 декабря 2012
Сравнение обычного позиционного SAD-процессора с модулярной реализацией в базисе {2n-1, 2n, 2n+1} показало что:
- Cхема похоже является слишком простой и содержит слишком малое количество уровней, что бы модулярная реализация дала выигрыш при наличии прямых и обратных преобразователей.
- В SAD варианте даже отдельные модулярные каналы имеют задержку выше чем у позиционного варианта устройства, из-за того что, во-первых, сама схема содержит только сложения и вычитания (т.е. отсутствует умножение), а во-вторых, модулярные сумматоры и вычитатели работают хуже обычных сумматоров, даже не смотря на то что у них ниже разрядность входных данных.
- Площадь модулярных устройств в 3-4 раза больше, чем у позиционной реализации. В модулярном виде она растет быстрее, чем в позиционном.
- В SSD варианте удается приблизиться по времени работы к позиционному варианту даже с учетом преобразователей, более того скорость на модулярных каналах выше чем у позиционного варианта.
Выводы:
- Для SAD-процессора в варианте без умножения нет смысла использовать его модулярное представление
- Модулярное представление имеет смысл для SSD варианта, однако есть несколько ограничений:
- необходимо покрыть затраты на прямые и обратные преобразователи, либо делая схему счета трёхтактовой (прямое и обратное преобразование здесь менее затратны, чем прямой канал), либо делая модулярным не только SAD-процессор но и вышестоящий диспетчер кадров.
- SSD реализация применяется на практике гораздо реже
- SSD реализация требует больше площади на кристале
Замечания по эксперименту:
- Для генерации SAD-процессоров использовали следующие скрипты: Позиционный, Модулярный
- В качестве технологической библиотеки использовалась: 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.