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

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х-разрядный сумматор. Кроме того, схема со сдвигом влево неудобна при выполнении умножения над числами с разными знаками.

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

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

Рис. 7.17.

й влево

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

Умноженижнеко,Неск2рnуы.-йраВотличаютсяхчтз,дальнприведенноггдпятвселькболзнаковыйхжителчевидВМйслйшемхфкаобщепакполттическусловчисларзсодечисемыслапинобтельноиучаствуезриняржадбезмся.о7значениакпрямодел.пред19,отделятсь —гд(вс.получитрзнакоммтавлятСправедлумнстаршпоказа.ьПчислазнаковыйложь,ьчислм.абсципрразрядтеВемтерицаодвлстьцессьныумнчиютныеоичнойряддзнакгслльчислзначениоства)моызнакцжчкой,рв фстезаписываютшениэтомормров-я1я,чисзнкогдямвидреефбывчларазрядами+13щуюкставлениnьдо-иря,трицфоприв+10днаанпеие-.

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

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

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

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

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

Пример для положительных сомножителей (Л>=О, В>=0) уже был рассмотрен. Б случае отрицательного множимого процедура умножения протекает аналогично, с учетом сделанного замечания об арифметическом сдвиге СЧП, что подтверждает пример, приведенный на рис. 7.20.

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

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

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

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

2n-1 -|В|.

При типовом умножении (как в случае В > 0) получим Р = А (2n-1

- |В||) -

= -|В|+ А *2n-1. ПсевдопроизведениеР больше истинного произведения Р на

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

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

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

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

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

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