Научная статья на тему 'Быстрый последовательный целочисленный делитель по основанию 4'

Быстрый последовательный целочисленный делитель по основанию 4 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
221
50
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЦЕЛОЧИСЛЕННОЕ ДЕЛЕНИЕ ПО ОСНОВАНИЮ 4 / НОРМАЛИЗАЦИЯ ДЕЛИТЕЛЯ И ДЕЛИМОГО / ПЕРЕПОЛНЕНИЕ ПРИ ЦЕЛОЧИСЛЕННОМ ЗНАКОВОМ И БЕЗЗНАКОВОМ ДЕЛЕНИИ / INTEGER RADIX-4 DIVISION / NORMALIZATION OF THE DIVIDEND AND DIVISOR / OVERFLOW IN INTEGER SIGNED AND UNSIGNED DIVISION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Румянцев Александр Сергеевич

Разработан однотактовый блок нормализации делителя и делимого, занимающий немногим большую площадь по сравнению с последовательными (многотактовыми) блоками нормализации. Предложен метод определения ситуации переполнения при целочисленном знаковом и беззнаковом делении, позволяющий минимизировать площадь, занимаемую аппаратными ресурсами, и снизить их энергопотребление. Приведено сравнение различных архитектурных вариантов конвейеризации устройства делителя по основанию 4, которые используют разработанный однотактовый блок нормализации и предложенный метод определения ситуации переполнения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Fast sequential integer radix-4 divider

One-clock divisor and dividend normalization unit, which occupies slightly more area compared to the sequential (multi cycle) normalization units is designed. A novel method to determine the overflow situation in signed and unsigned integer division, which minimizes the hardware resources footprint and reduces their energy consumption, is proposed. The various architectural options for pipelining the integer radix-4 divider, using the designed one-clock normalization unit and proposed overflow detection method, are compared.

Текст научной работы на тему «Быстрый последовательный целочисленный делитель по основанию 4»

Богатырев Владимир Анатольевич

Башкова Светлана Андреевна

Беззубов Владимир Федорович

Полякова Анастасия Вячеславовна

Котельникова Елена Юрьевна

Голубев Иван Юрьевич

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, доктор технических наук, профессор, [email protected]

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, студентка, [email protected]

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, аспирант, [email protected]

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, студент, [email protected]

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, аспирант, [email protected]

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, аспирант, [email protected]

УДК 004.315.5

БЫСТРЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ЦЕЛОЧИСЛЕННЫЙ ДЕЛИТЕЛЬ

ПО ОСНОВАНИЮ 4

А. С. Румянцев

Разработан однотактовый блок нормализации делителя и делимого, занимающий немногим большую площадь по сравнению с последовательными (многотактовыми) блоками нормализации. Предложен метод определения ситуации переполнения при целочисленном знаковом и беззнаковом делении, позволяющий минимизировать площадь, занимаемую аппаратными ресурсами, и снизить их энергопотребление. Приведено сравнение различных архитектурных вариантов конвейеризации устройства делителя по основанию 4, которые используют разработанный одно-тактовый блок нормализации и предложенный метод определения ситуации переполнения.

Ключевые слова: целочисленное деление по основанию 4, нормализация делителя и делимого, переполнение при целочисленном знаковом и беззнаковом делении.

Введение

Целочисленное деление является одной из наиболее затратных операций в современных процессорах, так как деление обладает самым длительным временем выполнения среди всех базовых целочисленных арифметических операций [1]. Хотя операция деления встречается не так часто, как операции сложения и умножения, есть множество важных областей, которые используют эту операцию: системы рендеринга, искусственный интеллект, алгоритмы сжатия данных и т.д. [2]. Наиболее часто используется деление на основе повторов [3], так как деление на основе последовательного приближения [4] в большинстве случаев предполагает использование однотактового умножителя или даже нескольких однотак-товых умножителей. Использование большего основания при делении на основе повторов является очевидным способом ускорения операции деления [5], но этот подход увеличивает сложность аппаратной реализации и, как следствие, приводит к увеличению занимаемой площади, энергопотреблению и соотношения цена/производительность. На сегодняшний день представлено множество подходов к реализации деления на больших основаниях [6], но некоторые аспекты реализации все еще остаются не до конца исследованными, например, эффективный по площади и энергопотреблению метод определения ситуации переполнения при делении.

В настоящей работе разработан однотактовый блок нормализации делимого и делителя и предложен метод определения ситуации переполнения при делении для использования в каноническом устройстве делителя для 64/32-, 32/16- и 16/8-битных беззнаковых и знаковых целых чисел по основанию 4 (radix-4) [2, 3]. Разработанный блок нормализации позволяет выполнять нормализацию делимого и делителя за один такт, занимая при этом небольшую площадь в сравнении с последовательными блоками нормализации [7]. Предлагаемый метод определения ситуации переполнения при делении позволяет минимизировать площадь, занимаемую аппаратными ресурсами, и снизить их энергопотребление по сравнению с широко используемым на данный момент стандартным подходом [2, 6]. Кроме того, в работе приведено сравнение различных вариантов конвейеризации устройства делителя по основанию 4. Все рассмотренные варианты реализации устройства деления были верифицированы на корректность и синтезированы на библиотеку элементов TSMC LP120a 40 нм с использованием Synopsys DC и ICC.

Однотактовый блок нормализации делимого и делителя

Блок нормализации является одним из самых низкоскоростных блоков в критических путях устройств деления [3]. При использовании последовательных блоков нормализации среднее время нормализации будет значительным [7], но занимаемая площадь окажется минимальной. Разработанный блок нормализации является однотактовым, занимает небольшую площадь по сравнению с последовательным блоком нормализации и позволяет определить случай равенства делителя нулю.

Пусть х, d, q, rem обозначают делимое, делитель, частное и остаток от деления соответственно: х = q * d + rem . (1)

В формуле (1) и в последующих формулах знак «*» означает скалярное умножение, если не оговорено иное.

При реализации делителя на основе повторов с использованием таблицы выбора цифры частного необходимо, чтобы делимое и делитель были нормализованы [7]. Для нормализации произвольных делимых и делителей необходимо определить значение коэффициента нормализации Z для получения нормализованного делителя (d*Q. Тогда, после нормализации делителя и делимого, (1) приобретет вид

х * Q = q *(d * Q) + rem * Q, |rem| * Q < |d| * Q -Q. (2)

Основными задачами блока нормализации являются:

- нахождение позиции ведущей «1» в делителе;

- сдвиг делителя влево на определенную величину, чтобы ведущая «1» оказалась в позиции наибольшего значащего бита (2). Делимое сдвигается на соответствующую величину.

Архитектура разработанного однотактового блока нормализации с определением равенства нулю делителя показана на рис. 1 для 64-битного делимого и 32-битного делителя.

Рис. 1. Архитектура однотактового блока нормализации с определением равенства нулю делителя

Метод определения ситуации переполнения при делении

В рассматриваемом в работе делителе делимое (2N) больше частного (N) в два раза. При этом делитель обладает двумя режимами работы:

- беззнаковое деление: 0 < х < 22" -1;0 < d < 2n -1;

- знаковое деление: - 22n-1 < х < 22n-1 - 1;-2n-1 < d < 2n-1 -1.

Довольно часто деление двух операндов, делимого и делителя, приводит к ситуации переполнения. В общем случае, с учетом беззнакового и знакового делений, переполнение происходит в следующих случаях.

1. Делитель d равен нулю. Заметим, что данная ситуация определяется в разработанном блоке нормализации делимого и делителя. 2.Частное q и/или остаток rem выходят за следующие диапазоны:

- при беззнаковом делении

0 < q < 2n-1; (3)

0 < rem < d-1; (4)

- при знаковом делении

- 2n-1 < q < 2n-1 -1; (5)

-|d| +1 < rem < |d -1. (6)

Воспользовавшись формулами (1), (3-6), можно перейти к стандартному принципу определения ситуации переполнения при делении беззнаковых и знаковых чисел [2, 6].

1. Делитель d равен нулю.

2. Не выполняются следующие условия:

- при беззнаковом делении х < d *2n

Пх| < |d| *2n-1, sign(x) = sign(d);

- при знаковом делении < . . .

УХ < |d| *2n-1 + |d|, sign(x) Ф sign(d).

Рассмотренный выше вариант определения ситуации переполнения при делении имеет серьезные недостатки, которые значительно увеличивают занимаемую аппаратными ресурсами площадь и критический путь устройства делителя:

- необходимость получения модуля делимого х, который в разработанном устройстве деления может достигать размера в 64 бита;

- сравнение абсолютного значения делимого по отношению к абсолютному значению сдвинутого делителя. В разработанном устройстве деления для этого потребуется использование полнофункционального 64-битного сумматора;

- при несовпадении знаков делимого и делителя необходимо будет сравнить абсолютное значение делимого и суммы абсолютного значения сдвинутого делителя с его абсолютным значением. В некоторых ситуациях для этого потребуется использование полнофункционального 32-битного сумматора.

В разработанном методе при делении используется иной подход к определению ситуации переполнения, в котором отсутствуют приведенные недостатки. Делимое х разделяется на две части Y и Z, положение которых зависит от типа деления: беззнаковое или знаковое (рис. 2).

2n-1

Беззнаковое делимое (х<=2

n n -1

Y Знаковое делимое 2n-1 n -2n-1<= x<=2n-1-1) n-1 n-2 0

Y

Z

нения:

Рис. 2. Разделение делимого на две части (У и Т) В дальнейшем, в зависимости от знаков делимого х и делителя ё, определяется ситуация перепол-

х > 0, ё > 0 ^ К = У - ё

1. ПК < 0, нет переполнения [К > 0, переполнение

2.

х < 0, ё > 0 ^ К = инвертирование (У) - ё К < 0, нет переполнения

К = 0, специальный случай. Специальный случай : К > 0, переполнение

Z + d > 0, нет переполнения Z + d < 0, переполнение

0

3.

х > 0, ё < 0 ^ К = У + ё К < 0, нет переполнения

К = 0, специальный случай. Специальный случай : К > 0, переполнение

2 + ё < 0, нет переполнения 2 + ё > 0, переполнение

4.

х < 0, а < 0 ^ к = у - а

К > 0, нет переполнения

К = 0, специальный случай. Специальный случай :

2 Ф 0, нет переполнения

[2 = 0, переполнение

К < 0, переполнение

На рис. 3 показана зависимость площади и потребляемой мощности от частоты тактирования устройства делителя на 40 нм LP120a в библиотеке элементов TSMC для стандартного метода и предложенного метода определения ситуации переполнения при делении.

3900

3

о -

250 333

Частота, МГц

400

250 333 400 Частота, МГц б

Рис. 3. Зависимость площади (а) и потребляемой мощности (б) делителя от частоты тактирования: 1 - стандартный метод, 2 - разработанный метод

Как видно из рис. 3, аппаратная реализация предложенного метод определения ситуации переполнения оказывается лучше, чем стандартный подход, занимая в среднем на 5,1% меньше площади и потребляя в среднем на 7,8% меньше мощности.

Анализ воздействия конвейеризации на устройство делителя

На рис. 4 приведена функциональная блок-схема последовательности стадий работы рассматриваемого устройства делителя.

Рис. 4. Функциональная блок-схема стадий работы разработанного устройства деления

а

Рассмотрим различные варианты конвейеризации стадий устройства деления.

1. Стадия 1 занимает два такта, а стадия 3 - один такт.

2. Стадия 1 и стадия 3 занимают один такт.

3. Стадия 1 занимает 1 такт, а стадия 3 комбинационно объединяется со стадией 2.

4. Стадии 1 и 3 объединяются комбинационно вместе со стадией 2.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

На рис. 5 показана зависимость площади и потребляемой мощности от частоты тактирования устройства делителя на 40 нм ЬР120а в библиотеке элементов Т8МС для различных вариантов конвейеризации. Рис. 6 отображает время деления чисел разной разрядности на различных вариантах исполнения устройства деления.

6000

4000

3

о

Й

2000

250 333

Частота, МГц

400

250 333 400 Частота, МГц

б

Рис. 5. Зависимость площади (а) и потребляемой мощности (б) от частоты тактирования делителя: 1 - вариант №1; 2 - вариант №2; 3 - вариант №3; 4 - вариант № 4

и I

и о,

са

250 333 400 Частота, МГц

I

и

С1

а

250 333 400 Частота, МГц б

а

а

Рис. 6. Зависимость времени деления 16 на 8-битные числа (а) и 64 на 32-битные числа (б) от частоты

(обозначения те же)

Из рис. 5, 6 видно, что чем более конвейеризованным становится устройство делителя, тем оно с повышением частоты занимает меньшую площадь, потребляет меньшую мощность и укладывается в ограничения целевой библиотеки элементов. Однако при этом возрастает количество тактов, необходимое для завершения операции деления. С позиций эффективности по занимаемой площади, энергопотреблению и возможности масштабирования частоты тактирования вариант № 2 конвейеризации устройства делителя выглядит более предпочтительным.

Заключение

В работе представлены новые подходы к реализации отдельных подсистем быстрого последовательного целочисленного делителя по основанию 4: однотактового блока нормализации делимого и делителя и блока определения ситуации переполнения. Разработанный блок нормализации делимого и делителя позволяет выполнять нормализацию и определение ситуации равенства нулю делителя за один такт, позволяя уменьшить время выполнения операции деления на 16% и увеличивая занимаемую площадь на 1,7% по сравнению с использованием последовательных блоков нормализации [7]. Результаты синтеза показывают, что аппаратная реализация предложенного метода определения ситуации переполнения при делении позволяет в среднем уменьшить занимаемую площадь на 5,1% и потребляемую мощность на 7,8% по сравнению с широко используемым стандартным подходом [2, 6].

Кроме того, был проведен анализ зависимости степени конвейеризации устройства делителя, использующего предложенные подходы, от занимаемой площади и потребляемой мощности. На основе произведенного сравнения можно осуществлять выбор варианта исполнения устройства деления в зависимости от производительности операции деления и планируемой частоты тактирования.

Литература

1. Intel Corp. Intel® 64 and IA-32 Architectures Software Developer's Manual // Intel Press. - 2010. - V. 1. -540 c.

2. Omondi R. Computer Arithmetic Systems. - Prentice Hall,1994. - 520 c.

3. Ercegovac M.D. and T. Lang. Division and square root-digit-recurrence algorithms and implementations. -Kluwer Academic Publishers, 1994. - 230 c.

4. Hwang K. Computer arithmetic: principles, architectures, and designs. - John Wiley & Sons. - 1979. - 250 c.

5. Carter T.M. and J.E. Robertson. Radix-16 signed-digit division // IEEE Trans. Computers. - 1990. - V. 12. -№ 39. - С. 1424-1433.

6. Ercegovac M.D. and P. Montuschi Very high radix division with prescaling and selection by rouding // IEEE Trans. Computers. - 1994. - V. 6. - № 43. - С. 909-917.

7. Hayes J.P. Computer architecture and organization. - McGraw-Hill, 1988. - 502 c.

Румянцев Александр Сергеевич - Санкт-Петербургский национальный исследовательский университет

информационных технологий, механики и оптики, аспирант, dark-streamray@gmail. com

i Надоели баннеры? Вы всегда можете отключить рекламу.