Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
65
Добавлен:
01.05.2014
Размер:
709 Кб
Скачать

Ускорение целочисленного умножения 3 6 1

a

v

Рис. 7.37. Суммирование ЧП с помощьюдерева Уоллеса (вариант 1): a — логика суммирования; б точечная диаграмма

Умножитель (рис. 7.38) состоит из трех ступеней с высотами 4,3,2 и содержит 16 схем «И», 3 полусумматора, 5 полных сумматоров. Сложение векторов сумм и переносов в последнем каскаде реализуется четырехразрядным сумматором с последовательным распространением переноса, однако чаще для ускорения привлекаютсяболееэффективныесхемыраспространенияпереноса, напримерпараллельная.

Отметим, что избыточность кодирования, заложенная в алгоритм Уоллеса, приводит к тому, что возможно построение различных вариантов схемы дерева. Так, на рис. 7.39 показана иная реализация дерева Уоллеса для четырехразрядных операндов.

Как видно, новый вариант схемы никакого выигрыша в аппаратурном плане не дает.

Схема Уоллеса считается наиболее быстрой, но в то же время ее структура наименее регулярна, из-за чего предпочтение отдается иным древовидным структурам. Основная сфера использования умножителей со схемой Уоллеса — перемножение чисел большой разрядности. В этом случае быстродействие имеет превалирующее значение.

Приумножении чисел небольшой разрядностиболеераспространенадругая схема сжатия суммирования ЧП — схема дерева Л. Дадда. В ее основе также лежит дерево Уоллеса, но реализуемое минимальным числом сумматоров.

3 6 2 Глава 7. Операционные устройства вычислительных машин

Рис. 7.38. Умножитель 4 х 4 со структурой дерева Уоллеса

Рис. 7.39. Суммирование ЧП с помощью дерева Уоллеса (вариант 2): а — логика суммирования; б— точечная диаграмма

Схема редукции, предложенная Л. Даддом, начинается с определения высоты промежуточных матриц частичных произведений: d1-2 и dj+l = [1,5 х dj ], пока dj < п. Значения для dj приведены в табл. 7.3.

Ускорение целочисленного умножения 3 6 3

Таблица 7.3. Таблица высот промежуточных матриц в алгоритме Дадда

Так, 32-разрядный умножитель на базе дерева Дадда имеет высоты промежуточных матриц 29,19,13,9,6,4,3 и 2. На j-й от конца ступени умножителя используется минимальное число ПС и СМ, позволяющее сократить число битов в столбце dj Если высота столбца, включая переносы, равнаh,то число полусумматоров (NI 1 C ) и полных сумматоров (NCM) составляет:

На рис. 7.40 описан умножитель 4 x 4 , реализующий алгоритм дерева Дадда. Для этого требуется 16 схем "И", два полусумматора, четыре полных сумматора и шестиразрядный сумматор. Схема содержит три ступени с высотами промежуточных матриц: 4,3 и 2. На этапе суммирования вектора сумм и вектора переносов необходим (2n - 2)-разрядный сумматор.

Рис, 7.40. Суммирование ЧП с помощью дерева Дадда для случая чисел без знака: а — логика суммирования;б—точечнаядиаграмма

Схема умножения чисел в дополнительном коде, рассмотренная применительно к матричному умножителю, может быть адаптирована и для умножителя со схемой Дадда. В таком случае схема сжатия приобретает вид, показанный на рис. 7.41.

3 6 4 Глава 7. Операционные устройства вычислительных машин

Рис. 7 . 4 1 . Суммирование ЧП в дополнительном коде с помощью дерева Дадда: а — логика суммирования; б — точечная диаграмма

Различия методов Уоллеса и Дадда являются следствием разных подходов к решению задачи "компрессии" суммирования. Алгоритм Уоллеса ориентирован на сжатие кодов как можно раньше, на самых ранних этапах, а алгоритм Дадда стремится это сделать по возможности позже, то есть наибольший уровень сжатия относит к завершающим стадиям.

Сравнивая схемы Уоллеса и Дадда, можно отметить, что число каскадов сжатия в них одинаково, однако количество используемых полусумматоров и полных сумматоров в схеме Дадда меньше (при подсчете числа элементов обычно не учитывают многоразрядные сумматоры, предназначенныедля окончательного сложения векторов сумм и переносов). С другой стороны, на этапе сложения векторов сумм и переносов в варианте Уоллеса требуется сумматор с меньшим числом разрядов (в нашем примере — 4 против 6).

У обеих схем имеется общий недостаток — нерегулярность структуры, особенно у дерева Уоллеса.

Схема перевернутой лестницы (overturned stairs), предложенная в [169], являет собой одну из попыток сделать древообразную структуру более регулярной, а значит, облегчить ее реализацию в интегральном исполнении. «Лестница»строится из базовых блоков трех видов (рис. 7.42, а), которые авторы назвали «ветвью» (branch), «соединителем» (connector) и «корнем» (root).

Базовые элементы объединяются, образуя дерево, имеющее п входов, Подобная схема на 18 входов показана на рис. 7.42,6. Как видно, дерево имеет достаточ-

Ускорение целочисленного умножений 3 6 5

a

б

Рис.7.42. Перевернутоедерево:абазовыеблоки; б—структурадеревана 18входов

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

Сравнительная оценка схем умножения с матричной и древообразной структурой

В табл. 7.4 приведены данные по производительности различных видов умножителей, выполненных средствами интегральной схемотехники. Быстродействие умножителей характеризуется коэффициентом при величине задержки TL В ОДНОМ логическом элементе.

1 n разрядность сомножителей.

3 6 6 Глава 7. Операционные устройства вычислительных машин

Содержимое таблицы плюс некоторые не включенные в нее данные позволяют сделать следующие выводы. Наиболее быстро работают умножители, построенные по схеме Бута, а также имеющие древовидную структуру, в частности дерево Дадда. Для операндов длиной в 16 разрядов и более наиболее привлекательной представляется модифицированная схема Бута, как по скорости, так и по затратам оборудования. Максимально быстрое выполнение операции умножения обеспечивает сочетание алгоритма Бута и дерева Уоллеса. С другой стороны, достаточно хорошие показатели скорости при умножении чисел небольшой разрядности выдает схема Бо-Вули. В плане потребляемой мощности наиболее экономичными являются умножители, построенные по схемам Брауна и Пезариса. Несмотря на сравнительно небольшое число используемых транзисторов, схемы на базе алгоритма Бута, а также древовидные реализации, потребляют больше из-за избыточных внутренних связей, связанных с нерегулярной структурой этих схем.

Конвейеризация параллельных умножителей

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

Рис. 7.43. Структура конвейерногоумножителя

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

Ускорение целочисленного умножения 3 6 7

ступенью конвейера ti и задержкой в элементе буферной памяти ti t= max (t1 ,t2,

... tk) + ti. Несмотря на то что время выполнения операции умножения для каждой конкретной пары сомножителей в конвейерном умножителе не только не уменьшается, но даже несколько увеличивается за счет задержек в буферной памяти при последовательном перемножении последовательностей пар сомножителей, достигаемый выигрыш весьма ощутим. Действительно, в конвейерном умножителе из k ступеней перемножаемые данные могут подаваться на вход с интервалом в к раз меньшим, чем в случае обычного умножителя. В том же темпе появляются и результаты на выходе.

Схема конвейера легко может быть применена к матричным и древовидным умножителям. В матричных умножителях в качестве ступени конвейера выступает каждая строка матрицы сумматоров. В качестве примера конвейеризированного матричного умножителя на рис. 7,44 приведена схема 4x4. Черными прямоугольниками обозначены триггеры-защелки, образующие буферную память.

Рис. 7.44. Конвейеризированный матричный умножитель

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

-отказа от использования идеи конвейеризации между входными схемами "И"

ипервой строкой полных сумматоров;

3 6 8 Глава 7. Операционные устройства вычислительных машин

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

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

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

Рис. 7.45. Древовидный конвейеризированный умножитель со схемойДадда

Ускорение целочисленного умножения 3 6 9

Вправой части рисунка указано количество триггеров-защелок, необходимых

вкаждой ступени конвейера. Как видно, в умножителе Дадда 8 x 8 требуются 243 триггера, не считая дополнительных триггеров для конвейеризации последнего этапа сложения частичных произведений. Количество триггеров может быть со-, крашено за счет увеличения времени, выделяемого на выполнение операций

вступени конвейера. Это позволяет убрать некоторые из триггеров.

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

Рекурсивнаядекомпозиция операции умножения

Как правило, аппаратные умножители, построенные на рассмотренных принципах, имеют ограничение на число разрядов вводимых чисел. Умножитель повышенной разрядности можно получить из модулей меньшей разрядности, выстраивая так называемую рекурсивную декомпозицию операции умножения. Так, для построения умножителя 8x8 можно использовать четыре модуля типа 4x4. Множимое А разбивается на четыре старших (Ah) и четыре младших 1) разряда. Множитель В таким же образом разбивается на части Вh и В1 Четыре модуля типа 4x4 вычисляют соответственно произведения AhxBh, AhxBh A1xBh , A1xВ1,. На выходах модулей получаются восьмиразрядные результаты, которые соответствуют частичным произведениям в разрядах: 15—8,11-4, снова 11-4 и 7-0. Окончательный результат формируется путем суммирования этих четырех частичных произведений с учетом их положения в разрядной сетке (рис. 7.46).

Рис. 7.49. Декомпозиция операцииумножения

3 7 0 Глава 7. Операционные устройства вычислительных машин

Целочисленное деление

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

Рис. 7.47. Общая схема операции деления

Задача сводится к вычислению частного Q и остатка S:

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

Делимое

обычно представляется двойным словом (2п разрядов),

делитель

частное

иостаток

име-

ют разрядность п.

 

 

 

Операция выполняется за л итераций и можетбыть описана следующим образом:

После п итераций получается

Частное от деления 2n-разрядного числа на n-разрядное может содержать более, чем п разрядов. В этом случае возникает переполнение, из-за чего перед выполнением деления необходима проверка условия

Из выражения следует, что переполнения не будет, если число, содержащееся в старших п разрядах делимого, меньше делителя.

Помимо этого требования, перед началом операции необходимо исключить возможность ситуации деления на 0.

Реализовать деление можно двумя основными способами: - с неподвижным делимым и сдвигаемым вправо делителем; я с неподвижным делителем и сдвигаемым влево делимым.

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

Соседние файлы в папке Организация ЭВМ и систем