Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
архитектура_1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
300.54 Кб
Скачать

1. Методические указания

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

- умножение с младших разрядов множителя;

- умножение со старших разрядов множителя.

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

Пусть A=0, a1,a2, …, an – множимое в прямом коде (A≥0); B=0, b1,b2,…, bn – множитель в прямом коде (B≥0); C – произведение. Тогда C=0, c1,c2,…,cn

и C=AB=Ab1∙2-1+Ab2∙2-2+…+Abn∙2-n

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

Алгоритм 1. Умножение с младших разрядов множителя со сдвигом суммы частичных произведений вправо:

C=AB=(…((0+Abn) ∙2-1+Abn-1) ∙2-1+…+Ab1) ∙2-1.

Множимое A последовательно умножается на разряды множителя bn,bn-1,…,b1 и добавляется на каждом шаге к сдвинутой вправо на 1 разряд (умноженной на 2-1) сумме частичных произведений.

Алгоритм 2. Умножение с младших разрядов множителя со сдвигом множимого влево при неподвижной сумме частичных произведений:

C=AB=0+(2-nA) ∙bn+(21(2-nA)) ∙bn-1+(21(21(2-nA))) ∙bn-2+…+(2-1A) ∙b1

Множимое A , первоначально сдвинутое на n разрядов вправо (умноженное на 2-n), умножается последовательно на разряды множителя bn,bn-1,…,b1 и после сложения с суммой частичных произведений на каждом шаге сдвигается влево на 1 разряд (умножается на 21).

Алгоритм 3. Умножение со старших разрядов множителя со сдвигом суммы частичных произведений влево при неподвижном множимом:

C=AB=(…((0+2-nAb1) ∙21+2-nAb2)21+…+2-nAbn-1)21+2-nAbn

Множимое A , сдвинутое вправо на n разрядов, умножается последовательно на разряды множителя b1,b2,…,bn и добавляется на каждом шаге к младшим разрядам суммы частичных произведений, которая после этого сдвигается влево на 1 разряд (кроме последнего шага, когда производится умножение на bn).

Алгоритм 4. Умножение со старших разрядов множителя со сдвигом множимого вправо при неподвижной сумме частичных произведений:

C=AB=0+(2-1A) ∙b1+(2-1(2-1A)) ∙b2+…+(2-nA) ∙bn

Множимое A на каждом шаге сдвигается вправо на 1 разряд, умножается на соответствующий разряд множителя b1,b2,…,bn и добавляется к сумме частичных произведений.

Умножение чисел, представленных в дополнительном и обратном кодах, имеет следующие важные особенности:

а) в случае положительного множителя B=Bдк=Bок=0, b1b2bn при умножении получаем сразу дополнительный (обратный) код произведения:

Сдк = Адк∙0, b1b2bn =(AB)дк,

Сок = Аок∙0, b1b2bn =(AB)ок

б) в случае отрицательного множителя B=Bдк=Bок=1, ~b1b2bn дополнительный (обратный код произведения получается после введения одной (двух) коррекции):

Сдк = Адк∙0, b1b2bn -Aдк

Сок = Аок∙0, b1b2bn - Аок+ Аок∙2-n

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

Умножение чисел, представленных в форме с плавающей запятой, включает следующие этапы:

а) умножение мантисс, как чисел с фиксированной запятой, по одному из алгоритмов 1-4;

б) сложение порядков;

в) нормализация мантиссы с соответствующей коррекцией порядка результата.

Студентам следует обратить внимание на то, что при умножении чисел с плавающей запятой возможно переполнение разрядной сетки.

Из анализа алгоритмов умножения чисел с фиксированной точкой следует, что операционное устройство для умножения должно содержать операционные элементы:

а) регистр множимого;

б) регистр множителя;

в) накапливающий сумматор частичных произведений;

г) счетчик тактов умножения;

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

На операционных элементах должны выполняться микрооперации:

а) суммирование суммы частичных произведений и множимого;

б) сдвиги множимого, множителя и суммы частичных произведений влево и вправо;

в) получение дополнительного (обратного) кода множимого;

г) подсчет числа выполненных тактов умножения.

При выполнении умножения на операционных элементах должны вычисляться логические условия:

а) значение разряда множителя, на который производится умножение;

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

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

При подготовке к работе рекомендуется использовать литературу

[4, гл. 4], [1, с. 193-198, 228-229].