Главная > Прикладная теория цифровых автоматов
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

6.4. УМНОЖЕНИЕ ЧИСЕЛ В Д-КОДАХ

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

Самым простым приемом расшифровки тетрады является последовательное вычитание единицы из значения тетрады до получения нуля

и соответственно прибавление множимого в сумматор на каждом такте. Так как при умножении множимого на тетраду возможно переполнение разрядной сетки сумматора (вследствие того что множимое прибавляется к сумме частичных произведений столько раз, сколько единиц содержится в данном десятичном разряде множителя), то в нем необходимо предусмотреть дополнительную тетраду для учета возникающих переносов. Из четырех возможных способов умножения в двоично-десятичной системе целесообразно применять только один: умножение младшими разрядами множителя со сдвигом суммы частичных произведении вправо. Умножение обычно производится в прямом коде, т. е. знак результата определяется суммой цифр сомножителей по модулю 2.

Пример. Умножить в прямом Д2 коде числа

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

(см. скан)

Таким образом,

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

Такой состав оборудования объясняется следующим образом. Если очередная цифра множителя, находящаяся в младшей тетраде (счетчике) регистра множителя, равна или меньше 510, то производится многократное прнбанлепие множимого к сумме частных произведений сумматора. При каждом суммировании множимого вычитается 1 из счетчика. Такие действия выполняются до пор, лока на счетчике не появится код 0. Если же очередная цифра множителя равна или больше 610, то производится многократное вычитание (сложение в дополнительном Д-коде) множимого из суммы частичных произведений сумматора. При каждом вычитании множимого к содержимому счетчика прибавляется 1. Вычитания продолжаются до тех пор, пока в счетчике не появится код При этом в специальный разряд записывается 1.

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

В результате получается -разрядное произведение.

Таким образом, описанный алгоритм позволяет существенно сократить время умножения практически без изменения состава оборудования. Если необходим -разрядный результат, то произведение округляется путем прибавления к ДДР, т. е. к тетраде, числа 510.

Пример. Задано Найти произведение округлить до разрядов. Все действия для простоты выполняем в десятичном коде. Квадратной рамкой обведен счетчик в регистре множителя , счетчик тактов (разрядов) умножения (СЧТ) и специальный разряд (СПР). На сумматоре (СМ) самый левый разряд (от запятой) — двоичный (знаковый), а второй слева (разряд переполнений) — десятичный,

(см. скан)

Таким образом,

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

Таблица 6.2

формируется следующим образом в зависимости от текущей цифры множителя В (табл, 6.2).

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

Другой прием, применяемый для ускоренного умножения, сводится к следующим пошаговым преобразованиям произведения:

Пример. Задано Найти

Таким образом,

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

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

1. Только суммирование множимого. Количество сложений:

2. Суммирование и вычитание множимого, которое при этом практически имеет вид где черта над цифрой означает вычитание. Тогда количество сложений составит:

3. Суммирование и вычитание кратных множимого. Количество сложений:

4. Пошаговое формирование произведения путем двоичного сдвига множимого множителя. Количество сложений:

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

1
Оглавление
email@scask.ru