Устройства деления вещественных и целых чисел для

advertisement
Устройства деления
вещественных и целых
чисел для системы на
кристалле «МЦСТ-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 тактов для одинарного формата.
Download