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