Устройство для вычисления скалярного произведения векторов с коррекцией ошибок на базе системы остаточных классов Авторы: Соловьев Р.А. (докладчик) Д.В. Тельпухов, Е.С. Балака Институт проблем проектирования в микроэлектронике ИППМ РАН . Скалярное произведение векторов (СПВ) . Ускорение вычислений СПВ Схема конвейеризации умножителя . Модулярная арифметика Позиционная система счисления Система счисления, в которой значение каждой цифры в записи числа зависит от его позиции. Система остаточных классов (СОК) Для системы взаимно простых чисел p1, p2 , … pn, любое число X из диапазона [0; M), M = p1*p2*…*pn представимо в виде вектора (a1, a2, …, an), где ai = X mod pi. p1, … pn – модули системы a1, a2, …, an – остатки числа по заданной системе модулей. Параллелизм вычислений Низкая разрядность вычислений Простая реализация арифметических операций Возможность для коррекции ошибок Сложность сравнения чисел Сложность определения переполнения Необходимость в преобразователях в /из позиционной системы счисления Обнаружение и коррекция ошибок в СОК p1 p2 p3 … pu-1 Информационные модули pu pu+1 pu+2 … Контрольные модули M=p1⋅p2⋅…⋅ pu K=pu+1⋅pu+2⋅…⋅ pn Численный пример Информационные модули: 3, 5, 7 Контрольные модули: 8, 11 Легитимный диапазон: [0;105) Легитимный Диапазон [0;M-1] Нелегитимный Диапазон [M;M*K] pn 56 = (2,1,0,0,1) (2,3,0,0,1) Набор модулей Значения в СОК Значение в позиционной записи (5,7,8,11) (3,0,0,1) 1288 (3,7,8,11) (2,0,0,1) 56 (3,5,8,11) (2,3,0,1) 848 (3,5,7,11) (2,3,0,1) 518 (3,5,7,8) (2,3,0,0) 728 Выбор базисных оснований в СОК Что бы избежать затратной операции округления, можно выбрать динамический диапазон покрывающий все возможные значения результата скалярного произведения. Размерность элемента вектора в битах (k) Количество элементов вектора l Возможный базис M Размерность максимального результата вычислений (бит) 8 16 {5, 7, 11, 13, 17, 19} 1616615 20 10 128 { 2, 3, 5, 7, 11, 13, 17, 19, 23 } 223092870 27 12 256 {7, 11, 13, 17, 19, 23, 29, 31} 6685349671 32 16 1024 {31, 37, 41, 43, 47, 53, 59, 61} 4397912294400 42 Прямой преобразователь в СОК A0 A1 0 бит 1 бит Х Пирамида льный сумматор 2 бит … k бит A2 Ak S Блок финальной редукции |Х|p Умножение и сложение по модулю в СОК Схема индексного умножения Схема сложения по модулю + IF (R ≥ P) O=R–P ELSE O=R Пример индексного умножения по модулю 5 3 метода умножения по модулю 1) Обычное умножение с последующей коррекцией 2) Индексный метод 3) Метод разности квадратов Обратный преобразователь СОК Схема обратного преобразователя для системы из 4 модулей В конвейерных схемах обычно применяют преобразователи на базе полиадического кода из-за однородности их структуры. Основная операция для блоков ROM: Из-за малой размерности a и b, а также в силу того что константы p известны на этапе проектирования, эти блоки на критичных к скорости участках, могут быть заменены на таблицы. Общая схема работы СПВ в СОК Экспериментальные результаты Скалярные умножители (8 точек), задержка 1 0.8 0.6 Бинарный 0.4 Модулярный 0.2 0 Скалярные умножители (8 точек), площадь 35000 30000 25000 20000 15000 10000 5000 0 4 6 8 10 12 14 16 18 20 22 24 Бинарный Модулярный 4 6 8 10 12 14 16 18 20 22 24 Скалярные умножители (64 точки), задержка 1 Скалярные умножители (64 точки), площадь 40000 0.8 30000 0.6 Бинарный 0.4 Модулярный 0.2 0 4 Скалярные умножители (1024 точки), задержка 1 0.8 Бинарный 0.4 Модулярный 0.2 0 4 6 8 10 12 14 16 18 20 22 24 Модулярный 10000 0 4 6 8 10 12 14 16 18 20 22 24 0.6 Бинарный 20000 6 8 10 12 14 16 18 20 22 24 Скалярные умножители (1024 точки), площадь 35000 30000 25000 20000 15000 10000 5000 0 Бинарный Модулярный 4 6 8 10 12 14 16 18 20 22 24 Преимущества подхода и нерешенные проблемы 1) 2) 3) Не уступает, а иногда и превосходит по скорости двоичную реализацию Гибкий контроль набора модулей для исправления кратных ошибок Не требует преобразователей в случае работы в модулярном представлении 1) 2) 3) Превосходит по площади двоичные аналоги Более сложная структура Массивный обратный преобразователь, вносящий потенциальные ошибки во время выбора правильного ответа Дальнейшее направление исследований: 1) Проверка эффективности устройства для исправления многократных ошибок 2) Использование улучшенных блоков модулярной арифметики с целью увеличения выигрыша по площади и скорости работы скалярного произведения