Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЭВМ_лаб_4.doc
Скачиваний:
14
Добавлен:
01.12.2018
Размер:
487.42 Кб
Скачать

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

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

Анализ формул (5.1)—(5.4) показывает, что с формальной точки зрения процесс умножения двух чисел может быть представлен:

При последовательном выполнении — в виде многократно повторяющегося по количеству разрядов цикла

, (5.5)

где Si-1, Si суммы частных произведений на (i—1)-м и i-м шагах соответственно;

при параллельном выполнении — суммой членов диагональной матрицы, для которой заданы по строкам A*2i а по столбцам — bi где i — текущий номер разряда.

В дальнейшем основное внимание будет уделено последовательному принципу выполнения операции умножения.

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

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

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

§ 5.2. Умножение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода

Пусть заданы машинные изображения двух чисел:

Тогда их произведение

где ; — знак сложения по модулю 2.

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

Пример 5.1. Умножить числа [A]пр = 1,11010 и [В}пр = 0,11001.

При умножении будут использованы метод 2 и устройство, показанное на рис. 5.2.

Рис. 5.2 Структурная схема множительного устройства

Запись всех действий, выполняемых устройством, осуществляется с помощью условных обозначений, т.е.: = — оператор присваивания означает, что блоку, который указан слева от оператора, присваивается, значение указанное справа от оператора; — сдвиг содержимого регистра Рг вправо на один разряд; [CM] — содержимое сумматора СМ; И.П. — исходное положение.

Решение. Знак произведения определяем отдельно от цифровой части в соответствии с уравнением

Sgc = SgASgB = 1  0 = 1.

Получение цифровой части можно показать в

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

Последовательность действий в процессе выполнения операции

умножения представлена в виде табл. 5.1. Рис. 5.2.

Ответ: [С]пр = 1,1010001010.

Таблица 5.1

Сумматор

Регистр В

Примечание

0000000000

11001

+11010

1101000000

0110100000

-1100

0011010000

-110

0001101000

-11

+11010

1110101000

0111010100

-1

+11010

10100010100*

1010001010

Конец

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

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

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