ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 145

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

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

«-разрядного сумматора подается либо множимое, либо 0. На второй вход посту-

пает содержимое

 п

 старших разрядов РЧП. Новое частичное произведение из сум-

матора пересылается в старшие разряды РЧП. Далее содержимое РЧП сдвигается
на один разряд вправо, причем в освободившийся старший разряд регистра зано-

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

гается на один разряд вправо. Описанная последовательность повторяется

 п

 раз.

Более экономичным в плане аппаратуры является иное решение, когда вместо двух
регистров — n-разрядного РМт и 2м-разрядного РЧП — используется один комби-
нированный 2л-разрядный регистр (показан на рис 7.16 справа). Множитель пер-
воначально заносится в младшие

 п

 разрядов этого регистра, а старшие разряды

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

СЧП. Обычно такой регистр строится из двух n-разрядных регистров, объединен-

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

схемы.

Алгоритм сдвига влево

Процедура традиционного умножения со сдвигом влево включает в себя следую-

щие шаги:

1. Исходное значение суммы частичных произведений принимается равным нулю.

2. Анализируется очередная цифра множителя (анализ начинается со старшей

цифры). Если она равна единице, то к СЧП прибавляется множимое, в против-
ном случае (цифра равна нулю) прибавление не производится.

3. Выполняется сдвиг суммы частичных произведений влево на один разряд.
4. Пункты 2 и 3 последовательно повторяются для всех цифровых разрядов мно-

жителя.

На рис. 7.17 приведен пример умножения со сдвигом влево(10х 11).

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

на рис. 7.18.

К преимуществу алгоритма сдвига влево следует отнести то, что он позволяет

совмещать во времени операции сложения и сдвига. Однако, по сравнению с алго-
ритмом сдвига вправо, он имеет и ряд недостатков. В первую очередь, СЧП и мно-
житель не могут совместно использовать один и тот же регистр. Для реализации
алгоритма требуется 2х-разрядный сумматор. Кроме того, схема со сдвигом влево

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

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

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

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


background image

Целочисленное умножение  3 4 3

Рис. 7.17. Пример умножения со сдвигом суммы частичных произведений влево

Рис. 7.18. Схема устройства умножения по алгоритму левого сдвига

Умножение чисел со знаком

Несколько сложнее обстоит дело с умножением чисел со знаком, когда n-разряд-

ные сомножители содержат знак (в старшем разряде слова) и

 п-

1 значащую циф-

ру. В дальнейшем условимся отделять знаковый разряд точкой, не забывая, одна-

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

Наиболее очевидная мысль — получить абсолютные значения операндов и пе-

ремножить их как числа без знака. Справедливость такого решения видна из при-

мера, приведенного на рис. 7.19, где показан процесс умножения чисел +13 и +10.

Во всех ВМ общепринято представлять числа со знаком в форме с фиксирован-

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

не отличаются от записи в прямом коде, а отрицательные записываются в виде

2

n

 -х,

 где

 х —

 фактическое значение числа. В двоичной системе запись отрица-


background image

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

Рис. 7.19. Умножение чисел при положительных сомножителях

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

Задержимся на особенностях операции умножения при различных сочетаниях

знаков сомножителей. Первая из них проявляется при выполнении операции ариф-

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

ница.

Множимое произвольного знака,

множитель положительный

Пример для положительных сомножителей (Л >= О,

 В >=

 0) уже был рассмотрен.

Б случае отрицательного множимого процедура умножения протекает аналогич-

но, с учетом сделанного замечания об арифметическом сдвиге СЧП, что подтверж-
дает пример, приведенный на рис. 7.20.

Поскольку результат умножения отрицательный, он получается в дополнитель-

ном коде.

Множимое произвольного знака,

множитель отрицательный

Так как множитель отрицателен, он записывается в дополнительном коде:

[В]

л

-

  2

n

- | В | , и в цифровых разрядах кода будет представлено число 2

n-1

 -|В|.

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

 В >

 0) получим

 Р

 =

 А

 (2

n-1

 - |

В|

|) -

=

 -|В| *А

 +

 А *2

n-1

.

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

 Р

 больше истинного произведения

 Р

 на


background image

Целочисленное умножение  3 4 5

Рис. 7.20, Умножение чисел при отрицательном множимом и положительном множителе

величину

 А

 х 2

n-1

, что и необходимо учитывать при формировании окончательного

результата. Для этого перед последним сдвигом из полученного псевдопроизведе-
ния необходимо вычесть избыточный член. На рис. 7.21 и 7.22 приведены приме-
ры умножения положительного и отрицательного множимого на отрицательный
множитель, в которых видна упомянутая коррекция результата

Рис. 7.21. Умножение чисел при положительном множимом и отрицательном множителе

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

реализованы с помощью ранее рассмотренного устройства (см. рис. 7,16). На прак-

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


Смотрите также файлы