120 likes | 317 Views
Работа выполнена Беляковой Ольгой Игоревной Научный руководитель Пивненко Виталий Михайлович. Устройства деления вещественных и целых чисел для системы на кристалле «МЦСТ-4 R ». Введение.
E N D
Работа выполнена Беляковой ОльгойИгоревной Научный руководитель Пивненко Виталий Михайлович Устройства деления вещественных и целых чисел для системы на кристалле «МЦСТ-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
Этапы деления • Загрузка данных с учётом знаков • Выдача сигнала «деление на ноль» • Корректировка количества итераций в зависимости от количества значащих битов делимого • Сравнение делителя и делимого • Выдача сигнала о готовности результата {-1;0;1} Первый этап (4 такта) Подготовка к основному этапу деления Второй этап (от 8 до 64 тактов в зависимости от количества значащих битов делимого) Получение и накопление цифр частного • Анализ частного и остатка • Корректировкачастного • Формирование сигналов icc,xcc • Выдача верного результата Третий этап (3 такта) Выдача результата
Сокращение критического пути Критическая цепочка: (1) представление делителя в прямом или обратном коде (2) выбор одного из подаваемых на сумматор значений (3) получение суммы (4) получение цифры частного (5) выбор одного из значений на запись в регистр частного После преобразования последовательности действий длительность такта сократилась на 0,15ns. Рис. a — до преобразования, рис. b — после преобразования.
Выбор способа вещественного деления Малое время ожидания результата. Включает 3 операции умножения за итерацию. Одна итерация занимает несколько тактов. Нужно восстанавливать остаток перед округлением. Метод Ньютона-Рафсона (Newton-Raphson) Квадратично сходящаяся Мультипликативный метод Аппроксимация Использует операции сложения и сдвига. Требуется вычисление непостоянных коэффициентов. CORDIC «COordinate Rotation Digital Computer» Линейно сходящаяся Прост в реализации. Возможность получения остатка для округления. Без мастштабирования требуется большое количество итераций. SRT (Sweeney-Robertson- Tocher)
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нм • Длительность такта 1,2 ns. • Время ожидания целочисленного результата может составлять {71;63;55;47;39;31;23;15} тактов в зависимости от количества значащих битов делимого (больше 56; не больше 56;48;40;32;24;16;8). Результат может быть выдан на 5 такт, если модуль делимого меньше или равен модулю делителя. Время ожидания вещественного результата составляет 31 такт для двойного формата и 17 тактов для одинарного формата.