Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ВС для ГОС (ПИ) / Орлов, Цилькер - Организация ЭВМ (2004)

.pdf
Скачиваний:
458
Добавлен:
25.04.2015
Размер:
9.6 Mб
Скачать

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

Рис.7.30. Матричныйумножительдлячетырехразрядныхчиселвдополнительномкоде

Алгоритм Бо-Вули

Несколько иная схема матричного умножителя, также обеспечивающего умножение чисел в дополнительном коде, была предложена Бо и Bули [61]. В алгоритме Бо-Вули произведение чисел в дополнительном коде представляется следующим

Матрица умножения, реализующая алгоритм, приведена на рис. 7.31, а соответствующая ей схема умножителя — на рис. 7.32.

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

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

Рис.7.31.Матриц

оалгоритмуБо-Вули

Рис.7.32. Матричный умножительдлячетырехразрядныхчисел вдополнительном коде посхеме Бо-Вули

Алгоритм Пезариса

Еще один алгоритм для вычислений произведения чисел в дополнительном коде был предложен Пезарисом [181].

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

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

Рис. 7.33. Виды сумматоров, применяемых в матричном умножителе Пезариса

В сумматоре типа СМО, который фактически является обычным полным сумматором, все входные данные (х, у, z) имеют положительный вес, а результат лежит в диапазоне 0-3. Этот результат представлен двухразрядным двоичным числом cs, где с и s также присвоены положительные веса. В остальных трех типах сумматоров некоторые из сигналов имеют отрицательный вес. Схема умножения в рассматриваемом методе показана на рис. 7.34.

Рис. 7.34. Матрица перемножения n-разрядных чисел согласно алгоритму Пеэариса

Здесь знак "минус"- трактуется следующим образом: -1 = -2 * 1 + 1; - 0 = - 2 * *0 + 0. Схемаумножителя, реализующего алгоритм Пезариса, приведена нарис. 7.35, По сравнению с умножителем Бо-Вули, схема Пезариса имеет более регулярный вид, но, с другой стороны, она предполагает присутствие нескольких типов

сумматоров.

Древовидные умножители

Сократить задержку, свойственную матричным умножителям, удается в схемах, построенных по древовидной структуре. Если в матричных умножителях для суммирования п частичных произведений требуется « строк сумматоров, то в древовидных схемах количество ступеней сумматоров пропорционально log2 n(рис. 7.36).

Соответственно числу ступеней суммирования сокращается и время вычисления СЧП. Хотя древовидные схемы быстрее матричных, однако при их реализации требуются дополнительные связи для объединения разрядов, имеющих одинаковый вес, из-за чего площадь, занимаемая схемой на кристалле микросхемы, может оказаться даже больше, чем в случае матричной организации сумматоров. Еще одна проблема связана с тем, что стандартное двоичное дерево не является самой эффективнойдревовидной иерархией,посколькуне позволяетвполноймере

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

Рис. 7.35. Матричныйумножительдля четырехразрядных чисел вдополнительномкодепосхемеПеэариса

Рис.7.36. Суммирование частичныхпроизведений вумножителях: а — о матричной структурой;б—соструктуройдвоичногодерева

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

Древовидные умножители включают в себя три ступени:

-ступень формирования битов частичных произведений, состоящую из n2 элементов «И»;

-ступень сжатия частичных произведений — реализуется в виде дерева параллельных сумматоров (накопителей), служащего для сведения частичных произведений к вектору сумм и вектору переносов. Сжатие реализуется несколь-

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

кими рядами сумматоров, причем каждый ряд вносит задержку, свойственную одному полному сумматору;

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

Известныедревовидные умножители различаются поспособусокращения чпела ЧП. При использовании в умножителе СМ и ПС их обычно называют счетчиками (3,2) и (2,2) соответственно. Связано это с тем, что код на выходах cs, как и в двоичном счетчике, равен количеству единиц, поданных на входы.

Процесс «компрессии» СЧП завершается формированиемдвух векторов — вектора сумм и вектора переносов, которые для получения окончательного результата обрабатываются многоразрядными сумматорами, то есть различие между древовидными схемами сжатия касается, главным образом, способа формирования упомянутых векторов.

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

Внаиболее общей формулировке дерево Уоллеса — это оператор с п входами

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

Согласно алгоритму Уоллеса, строки матрицы частичных произведений группируются по три. Полные сумматоры используются для сжатия столбцов стремя битами, а полусумматоры — столбцов с двумя битами. Строки, не попавшие в набор из трех строк, учитываются в следующем каскаде редукции. Количество строк в матрице (ее высота) на j-й ступени определяется выражениями wо=nиwj + l=2[wj3]+(wjmod3),покаwj>=2

В 32-разрядном умножителе на базе дерева Уоллеса высоты матриц ЧП последовательно уменьшаются в последовательности: 22,15, 10, 7, 5, 4, 3 и 2. Логика построения дерева Уоллеса для суммирования частичных произведений в умно жителе 4x4 показана на рис, 7.37, а. Для пояснения структуры дерева сумматоров часто применяют так называемую точечную диаграмму (рис. 7.37,6). В ней точки обозначают биты частичных произведений, прямыедиагональныелинии представляют выходы полных сумматоров, а перечеркнутые диагонали — выходы полусумматоров. Хотя на рис. 7.37, а в третьем каскаде показаны три строки, фактически после редукции остаются лишь две первых, а третья лишь отражает переносы, которые учитываются при окончательном суммировании. Этим объясняется кажущееся отличие от точечной диаграммы.

Ускорение целочисленного умножения 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 разрядность сомножителей.