
- •Машины общего назначения (пк и др.).
- •Специализированные эвм.
- •Проблемно-ориентированные машины.
- •Арифметико-логическое устройство эвм как операционное устройство.
- •2. Умножение , начиная с младших разрядов множителя со сдвигом множимого.
- •Умножение, начиная со старших разрядов множителя со сдвигом множимого.
- •Синхронный метод
- •Асинхронный метод
- •2Такт – y(-)(сдвиг)
2. Умножение , начиная с младших разрядов множителя со сдвигом множимого.
В умножении присутствуют такты суммирования и сдига, выход из цикла осуществляется по нулевому значению В (сигнал х2), знак суммы вычисляется как сложение по модулю 2 знаков сомножителей.
Преимущества:
в сумматоре нет сдвигов (суммирование будет осуществляться быстрее)
не нужен счетчик.
Недостаток:
удвоенная разрядность сумматора и регистра множимого(аппаратные затраты).
Умножение, начиная со старших разрядов множителя со сдвигом суммы частных произведений.
Старшая часть сумматора может быть не сумматором, а счетчиком, т.к. там учитывается только операция переноса из младших разрядов, В освобождается от разрядов при вычислении, его можно использовать для хранения старших разрядов суммы частных произведений. Тогда в В должен быть на один разряд больше и являться счетчиком, т.е. иметь цепи межразрядных переносов.
Недостаток:
сумматор должен быть в 2 раза больше.
Умножение, начиная со старших разрядов множителя со сдвигом множимого.
Если не нужна удвоенная точность, то в регистре А можно оставить n+L+1 разрядов. L разрядов нужны для правильного округления. L – среднее число разрядов, через которое происходит перенос через суммирование.
L=log2(n+L+1)
N=32
L=6
Множимое помещается в старшие разряды сумматора и в каждом цикле сдвигается на один разряд вправо. Вначале алгоритма А сдвигается вправо на один разряд, чтобы при первом суммировании не возникло переполнение. Выход из цикла по совокупности условий: (В=0)OR(А=0).
Достоинства:
нет сдвигов в сумматоре(схема работает быстрее)
не нужен счетчик.
Недостаток:
большая стоимость автомата.
Если критична стоимость, то применяют первый метод умножения. Если важно быстродействие, то четвертый метод, второй и третий методы используются редко.
Методы повышения быстродействия операции умножения:
логические
аппаратные.
При использовании логических методов усложняется управляющий автомат, т.е. микропрограмма, и почти не меняется ОА.
При использовании аппаратных методов основные средства вкладываются в ОА.
Логические методы ускорения умножения.
умножение на два разряда множителя за один такт:
bn bn+1 микрооперация
0 0 нет
0 1 +А
1 0 +2А
1 1 -А
Bn |
bn+1 |
P |
мко |
P' |
0 |
0 |
0 |
- |
0 |
0 |
0 |
1 |
+A |
0 |
0 |
1 |
0 |
+A |
0 |
0 |
1 |
1 |
+2A |
0 |
1 |
0 |
0 |
+2A |
0 |
1 |
0 |
1 |
-A |
1 |
1 |
1 |
0 |
-A |
1 |
1 |
1 |
1 |
- |
1 |
В базовом алгоритме Тумн= n(Тсдв+0,5Тсум).
В этом алгоритме Тумн=n/2(Тсдв+3/4Тсум).
М
икропрограмма
умножения на два разряда множителя.
При прибавлении к сумме частных произведений n+1 разрядного частного произведения 2А,. Результат может получиться n+2 разрядным. С учетом разряда переноса и знакового разряда сумматор должен быть n+3 разрядным, предполагается, что n – четное.
В качестве аппаратной поддержки необходим формирователь дополнительного кода, чтобы вычесть А.
умножение с последовательным преобразованием цифр множителя.
В …01111110…
+А -А
…1 0 1 0 1 0 1 0 1… (*)
-А+А-А+А-А+А-А+А-А
Для приодаления ситуации (*) договорились игнорировать серии длиной в 1 бит. Для реализации микропрограммы умножения вводится триггер , который задает режим сдвига, и тогда возможны 4 ситуации:
=0 – сдвиг по 0ж
=1 – сдвиг по единицам.
начало серии единиц
=0
bn+1=1
bn=1
-A :=1
начало серии нулей
=1
bn+1=0
bn=0
+A :=0
единица среди нулей
00001000
=0
bn+1=1
bn==0
+A =0(без изм.)
ноль среди единиц
…111101111…В
=1
bn+1=0
bn=1
-A =1(без изм.).
В начале алгоритма :=0. сдвиг осуществляется на первый разряд. Цикл проверки bn, bn+1, p повторяются n раз. Если при выходе из цикла =1, то делается дополнительное суммирование С:=С+1.
-
№
bn
bn+1
M\o
’
1
0
0
0
-
0
2
0
0
1
+A
0
3
0
1
0
+A
0
4
0
1
1
-
1
5
1
0
0
-
0
6
1
0
1
-A
1
7
1
1
0
-A
1
8
1
1
1
-
1
Пример:
В = 0 1 1 0 1 1 1 0 1 0 1 1 1
+А - - -А - - - -А - -А - - -
Тумн.=n*(Тсдв+1/3Тсум.);
Для ускорения алгоритма можно ввести цепи сдвига на 2 разряда. При встречи комбинации, описанной в 4 и 5 строках, выполнить микрооперацию сдвига на 1 разряд, для остальных – на 2 разряда.
Аппаратные методы ускорения умножения.
Использование дополнительных сумматоров для распараллеливания процесса вычисления суммы частичных произведений.
С:=А*В
В=b1b2b3…bm bm+1bn
B1=(b1b2…bm)*2m
B2=(bn+1bm+2…bn)
m=n/2
C=AB1+AB2
Произведения AB1 и AB2 представляются 3/2 n – разрядными кодами и вычисляются параллельно на сумматорах С1 иС2( например с использованием базового алгоритма умножения). После этого производится объединяющее сложение, в результате чего определяется 2n – разрядное произведение.
Пример:
А В
01101*0111
+
+ +
В
1
0 11 0 11 0 01 0 01 0
00 0 00
В2 11 11 01 01 00 00
С1 0 000000 0 110100 0 011010 1 001110 0 100111 0 110000
С2 0 000000 0 110100 0 011010 1 001110 0 100111 0 110111
А 0 1101 0 1101 0 1101 0 1101 0 1101 0 1101
Cч 0 0 1 1 0 0
100111
+
100111
11000011
13/16*15/16=195/256
12/16+3/256=195/256
результат: 0 11000011
Способы управления вычисления сумм частичных произведений: