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

Книги / Книга Проектирование ВПОВС (часть 2)

.pdf
Скачиваний:
84
Добавлен:
01.06.2015
Размер:
4.62 Mб
Скачать

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

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

Tумн = (n + 1]log2 n[) ,

где – время суммирования в комбинационном сумматоре; n – разрядность параллельного комбинационного выходного сумматора.

В качестве разрядных счетчиков могут использоваться комбинационные схемы или постоянные запоминающие устройства (ПЗУ), где входным адресом является комбинация единиц, а выходным словом – сумма единиц в адресе.

2.7.3.4. Умножитель с матричным суммированием частичных произведений

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

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

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

Проанализируем распространение сигнала переноса в такой схеме.

Предположим, что задержка сумматора по всем выходам одинакова и равна ,

что эквивалентно задержке одного элемента "И-ИЛИ-НЕ". Обозначим точкой время правильной выдачи сигнала из сумматора, тогда можно построить диаграмму, представленную на рис. 2.30. Здесь для определенности положено,

что n = 8, а m = 6.

101

R1(n+m) R2(n+m)

 

R1n R2n

 

 

R11 R21

 

 

 

 

 

 

 

 

 

A

 

 

 

R3(n+m)

 

R3n

 

R32

R31

 

 

 

 

 

 

 

 

 

 

R(m-1)(n+m)

Rmn

Rmn-1

R(m-1)3

R(m-1)2

R(m-1)1

 

 

 

 

 

 

Частичное произведение

Рис. 2.29

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

A

Рис 2.30

Для пояснения построим диаграмму задержек сигналов в области А (рис.

2.31).

102

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.31

Однако при умножении такой прямоугольный сумматор является избыточным. При умножении чисел без знака число сумматоров в каждом слое будет равно n и они будут соединены так, как это показано на рис. 2.32 (n = 8, m = 6).

 

R1n R2n

 

 

R13 R22

R12 R21 R11

 

 

 

 

 

 

 

 

 

 

 

R3n

R3(n-1)

R32

 

R31

 

 

 

 

 

 

 

 

 

 

R(m-1)n

R(m-1)(n-j)

R(m-1)(n-j-1)

R(m-1)1

 

 

 

 

Частичное произведение

Рис. 2.32

А при умножении со знаком они будут соединены, так как это показано на рис. 2.33 (n = 8, m = 6)

103

R1(n+m) R2(n+m)

 

R1n R2n

 

R13 R22

R12 R21 R11

 

 

 

 

 

 

 

 

 

R3(n+m)

 

R3n

R32

 

R31

 

 

 

 

 

 

 

 

 

 

R(m-1)(n+m)

Rmn

Rmn-1

R(m-1)1

 

 

 

 

Частичное произведение

где

 

Рис. 2.33

Время умножения, в первом случае равно

 

 

n

 

 

T

ум

n m 1

 

 

 

,

 

 

 

 

 

 

 

m

 

 

n

– целое с избытком.

 

 

m

 

При перемножении чисел со знаком (умножение в дополнительном коде)

сумматор усекается только справа (рис. 2.24, б).

Как следует из диаграммы, задержка линейно возрастает и равна числу сумматоров (на диаграмме узлов) от начала до исследуемой точки.

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

T = (n + m + 1) .

А полное время умножения во втором случае равно

104

где

nm

T

 

n

ум

n m 1

 

 

 

 

 

 

m

– целое с избытком определяет число суммирований. В нашем случае

произведение получается за два шага работы сумматора.

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

каждой группе производится сложение, полученные результаты объединяются вновь в группу по два числа, суммируются и т.д. Соответственно на первом слое имеем m/2 групп, на втором – m/4 и т.д., на последнем слое имеем m/m = 1

группу. Ясно, что если m не степень 2, то оставшееся число переносится на следующий слой без изменения, другими словами, величина m/l округляется до большего целого числа. Оптимум достигается при m=2p. При m=6 пирамида суммирования представлена на рис. 2.34.

Частичные произведения

1-й слой суммирования

2-й слой суммирования

3-й слой суммирования

Рис. 2.34

На первом слое складываются все возможные частичные произведения.

На втором шаге суммируются две частичные суммы. И на последнем слое формируется окончательная сумма всех частичных произведений (S).

105

Но, как правило, сумматор строится в форме полной пирамиды.

Например, для восьми частичных произведений имеем схему.

Нетрудно увидеть, что время суммирования здесь остается постоянным для m = 5, 6, 7, 8, поэтому наибольший эффект достигается при m = 8 (рис.

2.24). Время работы такого сумматора, а в нашем случае и умножения, равно

Tум= (n+]log2 m[ - 1) ,

где ]*[ – целое с избытком.

Многовходовой сумматор можно построить также на основе сумматоров двухрядного кода. Для рассматриваемого нами примера он представлен на рис. 2.35.

 

 

 

 

 

 

 

 

 

Cуммируемые

 

 

 

 

 

 

 

 

 

числа

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

S П

S П

S П

S П

S П

S П

S П

S П

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

S П

S П

S П

S П

S П

S П

S П

S П

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

S П

S П

S П

S П

S П

S П

S П

S П

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

S П

S П

S П

S П

S П

S П

S П

S П

S П

 

 

 

 

 

 

 

 

 

 

S

S

S

S

S

S

S

S

S

 

 

 

 

 

 

 

 

 

 

Sn

Рис. 2.35

106

Диаграмма для временного анализа представлена на рис. 2.38

Первые

n

 

 

m

шагов

Окончательный шаг

Рис. 2.36

8x8

16

15

15

14

14

13

13

12

12

11

11

10

10

9

9

8

8

7

7

6

6

5

5

4

4

3

3

2

2

1

1

0

0

1

 

1

 

1

 

1

1

 

1

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

13

 

12

 

11

10

 

 

9

 

8

7

 

6

 

5

 

4

 

3

 

2

 

1

 

 

0

 

 

2

 

2

 

2

 

2

2

 

2

2

 

2

 

2

 

2

 

2

 

2

 

2

 

2

 

2

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

12

 

11

 

10

9

 

 

8

 

7

6

 

5

 

4

 

3

 

2

 

1

 

0

 

 

 

 

 

3

 

3

 

3

 

3

3

 

3

3

 

3

 

3

 

3

 

3

 

3

 

3

 

3

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

11

 

10

 

9

8

 

 

7

 

6

5

 

4

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

4

 

4

 

4

 

4

4

 

4

4

 

4

 

4

 

4

 

4

 

4

 

4

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

10

 

9

 

8

7

 

 

6

 

5

4

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

5

 

5

 

5

 

5

5

 

5

5

 

5

5

5

5

 

5

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

9

 

8

 

7

6

 

 

5

 

4

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

6

 

6

 

6

 

6

6

 

6

 

6

 

6

6

6

6

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

8

 

7

 

6

5

 

 

4

 

3

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

7

 

7

 

7

7

 

7

 

7

 

7

7

7

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

7

 

6

 

5

4

 

 

3

 

2

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

8

8

8

8

 

8

 

8

 

8

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.37

107

Откуда следует, что общее время сложения равно числу слоев двухрядного суммирования (m-2) и пробегу переноса в сумматоре преобразующего двухрядный код в однорядный. Соответственно время формирования произведения рис. 2.36.

Рассмотренные многовходовые сумматоры легко трансформируются в устройства умножения матричного типа. Это возможно если положить, что число входов сумматора равно n, т.е. m = n. Тогда все частичные произведения суммируются одновременно. Здесь следует отметить, что в связи с тем, что частичные произведения оказываются сдвинутыми друг относительно друга, то общее число одноразрядных сумматоров окажется меньше, т.е. матрица сумматоров неплотно заполнена.

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

рассмотрим наиболее распространённый алгоритм их введения.

Первая поправка вводится автоматически при суммировании частичных произведений в формате 2n, если исходные операнды имеют разрядность n. Так как при умножении на разряд множимого множимое сдвигается вправо, то освобождающиеся слева разряды заполняются значением знакового разряда – арифметический сдвиг.

Например, при умножении [Х]доп = 1.01101101 на Y8 = 1 2-8, получаем ПЧ1=1.1111111101101101.

При умножении на Y5=1 2-5 получаем ПЧ5=1.1111101101101.

Вторая поправка вносится в конце операции умножением множимого на знаковый разряд множителя. От полученного частичного произведения берётся дополнение и суммируется с текущим произведением, т.е.

[Х]доп [Y]доп=[Х]доп [Y1]доп + Доп( [Х]доп Sign[Y]),

где [Y1]доп есть [Y]доп без знакового разряда (мантисса множителя).

108

Ясно, что дополнение нуля есть нуль, то при положительном множителе поправка не вносится.

Схема матричного умножителя приведена на рис. 2.38. Общее время умножения на рассматриваемом умножителе находится из выражения T = (3n – 1) .

x

y

Регистр множимого

 

 

Регистр множителя

 

 

 

С

n

 

 

n

сд

 

 

 

 

 

Матрица nxn схем «И»

 

 

 

...

 

Частичное

n

n

n

произведение

 

(ЧП)

 

 

 

 

Матричный сумматор

 

 

 

n

 

n

Регистр текущего

n младших

произведения

 

разрядов

 

n старших

 

Сдв

 

разрядов

 

 

Рис. 2.38

Дальнейшее снижение времени умножения возможно при использовании в матричном сумматоре сумматоров с запоминанием переноса. Схема такого сумматора приведена на рис. 2.39. Время умножения с такой матрицей равно

T = 2n .

109

 

 

 

 

 

 

 

 

 

 

 

8x8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14 15 16

1314 15

12 13 14

11 12 13

10 1112

 

9 10 11

8

9 10

7

8

9

6 7

8

5 6

7

4

5 6

3

4 5

2

3

4

1

2

3

0 1 2

0 1

0

1

1

1

1

1

 

1

 

1

 

 

1

 

1

 

1

 

1

 

1

 

 

1

 

 

1

1

1

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

13

12

11

10

9

 

8

 

 

7

 

6

 

5

 

4

 

3

 

 

2

 

 

1

 

0

 

2

2

2

2

2

 

2

 

2

 

 

2

 

2

 

2

 

2

 

2

 

 

2

 

 

2

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

12

11

10

9

8

 

7

 

 

6

 

5

 

4

 

3

 

2

 

 

1

 

 

0

 

 

 

3

3

3

3

3

 

3

 

3

 

 

3

 

3

 

3

 

3

 

3

 

 

3

 

 

3

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

11

10

9

8

7

 

6

 

 

5

 

4

 

3

 

2

 

1

 

 

0

 

 

 

 

 

 

4

4

4

4

4

 

4

 

4

 

 

4

 

4

 

4

 

4

 

4

 

 

4

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

10

9

8

7

6

 

5

 

 

4

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

5

5

5

5

5

 

5

 

5

 

5

5

5

 

5

 

5

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

9

8

7

6

5

 

4

 

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

6

6

6

6

6

 

6

 

6

 

6

6

6

 

6

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

8

7

6

5

4

 

3

 

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

7

7

7

7

7

 

7

 

7

 

7

7

7

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

8

8

8

8

 

8

 

8

 

8

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.39

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

Например, если умножитель n n разбить на 4 матрицы сумматоров, то

получим, что каждая матрица суммирует по

n m

чисел. Пирамидальный

сумматор строится следующим образом. Общее число слагаемых разбивается

на m групп, где

m1

n 4

. Полученные 2m слагаемых разбиваются на

m2

 

2m1

4

 

 

 

групп и так далее пока 2mi не будет меньше или равна 4. В результате на выходе образуется шесть слагаемых, которые суммируются на 6-входовом двухрядном сумматоре. Он имеет три слоя двухрядных сумматоров. Таким образом, общее время умножения складывается из суммирования в группах.

При таком разбиении группа содержит два слоя двухрядных сумматоров, так как складывает 4 операнда.

110