Устройства деления вещественных и целых чисел для системы на кристалле «МЦСТ-4R» Работа выполнена Беляковой Ольгой Игоревной Научный руководитель Пивненко Виталий Михайлович
Введение Устройства деления вещественных и целых чисел находятся в разных арифметических кластерах и могут работать параллельно. Обрабатывают числа двух форматов: single (32- битный) и double (64-битный).Целые числа могут быть signed (знаковые) и unsigned (беззнаковые). Вещественные числа представлены и обрабатываются в соответствии со стандартом IEEE 754.
Постановка задачи Спроектировать и реализовать устройства вещественного (исследовательский проект) и целочисленного делений. Предоставить описания устройств на языке Verilog. Основные требования: Приемлемое быстродействие. Длительность итерации не более 1,2 ns. Малая площадь, занимаемая устройствами. Сокращение времени ожидания результата целочисленного деления в зависимости от входных данных.
Выбор способа целочисленного деления С восстановлением (сдвиг,сумматор, восстановление,частное). Остаток правильный. Без восстановления (сдвиг,сумматор,частное). Цикл короче. Остаток нужно корректировать. Входные данные без знака (усовершенствован для знаковых, набор цифр частного {0,1}). Подготовка данных. Преобразование частного не требуется. Входные данные со знаком (набор цифр частного {-1,1}). Преобразование цифр частного, дополнительные ресурсы.
Алгоритм получения цифр частного (усовершенствование загрузки входных данных в алгоритме «без восстановления для беззнаковых чисел») RegD – регистр делителя (divisor); RegA – вспомогательный регистр(auxiliary); RegQ – в первой итерации регистр делимого, в последней – частного (quotient); MUX – входной мультиплексор A, Q сдвигаются влево так, что RegA[0]=RegQ[63] В RegA загружается частичный остаток (A>=0)?(A-D): (A+D) В RegQ устанавливается бит частного (A>=0)?1:0 Обрабатываются числа со знаком и без знака RegD
Этапы деления Первый этап (4 такта) Второй этап (от 8 до 64 тактов в зависимости от количества значащих битов делимого) Третий этап (3 такта) Загрузка данных с учётом знаков Выдача сигнала «деление на ноль» Корректировка количества итераций в зависимости от количества значащих битов делимого Сравнение делителя и делимого Выдача сигнала о готовности результата {-1;0;1} Получение и накопление цифр частного Выдача результата Подготовка к основному этапу деления Анализ частного и остатка Корректировка частного Формирование сигналов icc, xcc Выдача верного результата
Сокращение критического пути Критическая цепочка: (1) представление делителя в прямом или обратном коде (2) выбор одного из подаваемых на сумматор значений (3) получение суммы (4) получение цифры частного (5) выбор одного из значений на запись в регистр частного После преобразования последовательности действий длительность такта сократилась на 0,15ns. Рис. a до преобразования, рис. b после преобразования.
Выбор способа вещественного деления Аппроксимация Квадратично сходящаяся Линейно сходящаяся Мультипликативный метод Метод Ньютона-Рафсона (Newton-Raphson) CORDIC «COordinate Rotation Digital Computer» SRT (Sweeney-Robertson- Tocher) Прост в реализации. Возможность получения остатка для округления. Без мастштабирования требуется большое количество итераций. Малое время ожидания результата. Включает 3 операции умножения за итерацию. Одна итерация занимает несколько тактов. Нужно восстанавливать остаток перед округлением. Использует операции сложения и сдвига. Требуется вычисление непостоянных коэффициентов.
SRT-алгоритм деления с radix=4 и q_max=2 Сумматор 56-разрядный CSA, Функция выборки 8-разрядный CPA и таблица выборки цифр частного SEL, SEL=SEL(7 бит остатка, 3 бита делителя), Набор цифр частного {-2, -1, 0, 1, 2}. Результат готов на 31 такт для формата 64 и на 17 такт для формата 32. Требуется 28 или 14 тактов (формат 64 или 32) для вычисления цифр частного, один - на инициализацию, один - на подготовку к округлению. w[j + 1] = 4*w[j] – q[j + 1]*d, w[0] = x,j = 0, 1,…,m – 1, w-частичный остаток, q-частное, d-делитель, x-делимое.
Усовершенствование алгоритма получения цифр частного До перераспределения После перераспределения Преимущество вычисления отдаётся старшим разрядам. Критический путь зависит не от всех 56 разрядов, а только от 8. Перераспределение не увеличивает количество итераций. Сокращается время генерации кратных делителя. Время подготовки данных для CSA сокращается. wc[55:0] -> wc[48:0] Функция выборки перемещается из начала данного цикла в конец предыдущего. Сама она спроектирована так, что требуется 5-разрядный регистр цифры частного.
Преобразование и округление результата 4 разных режима, Таблица нормализация, округления корректировка В стандарте IEEE определены 4 режима округления: 1.Округление до ближайшего. 2. Округление к Округление к Округление к Старшая цифра частного может быть: 1 - нормализация не нужна, 0 - нормализация нужна, ( 2 - будет исправлена на 1 ) Если остаток отрицательный, то нужно скорректировать результат В стандарте IEEE определены 4 режима округления: 1.Округление до ближайшего. 2. Округление к Округление к Округление к Старшая цифра частного может быть: 1 - нормализация не нужна, 0 - нормализация нужна, ( 2 - будет исправлена на 1 ) Если остаток отрицательный, то нужно скорректировать результат Отсутствие сумматора -> «on-the-fly» Q (54 бита), С (27 битов), QP = Q+1 (54 бита).
Результаты Спроектированы и реализованы устройства целочисленного и вещественного делений, работающие по усовершенствованнымалгоритмам деление без восстановления и SRT-алгоритму с radix=4 и q_max=2 соответственно. Описания представлены на языке Verilog. Проведено успешное тестирование устройств. Результаты синтеза на библиотеке 90нм Длительность такта 1,2 ns. Время ожидания целочисленного результата может составлять {71;63;55;47;39;31;23;15} тактов в зависимости от количества значащих битов делимого (больше 56; не больше 56;48;40;32;24;16;8). Результат может быть выдан на 5 такт, если модуль делимого меньше или равен модулю делителя. Время ожидания вещественного результата составляет 31 такт для двойного формата и 17 тактов для одинарного формата.