АЛУ для умножения чисел с фиксированной запятой




В ЭВМ операция умножения чисел с фиксированной запятой с помощью соответствующих алгоритмов сводится к операциям сложения и сдвига.

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

Произведение двух n – разрядных чисел с фиксированной запятой может иметь 2*n значащих разрядов. Поэтому необходимо предусмотреть возможность формирования в АЛУ произведения, имеющего двойную длину.

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

В зависимости от способа формирования суммы частичных произведений различают четыре метода выполнения умножения (рисунок 1):

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

;

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

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

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

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

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

Произведение в формате двойной длины имеет один знаковый разряд и 2*n-1 цифровых разрядов. Результат умножения n – разрядных чисел, где n-1 цифровых разрядов, содержит 2*(n-1)=2*n-2 цифровых разрядов.

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

Структурная схема АЛУ для умножения n – разрядных целых двоичных чисел со знаком представлена на рисунке 2.

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

§ входной регистр множимого Pr1;

§ регистры множителя Pr2 и Pr2, на которых с помощью косой передачи вправо выполняется сдвиг множителя вправо;

§ триггеры знаков ТгЗн1 и ТгЗн2 для хранения знаков множимого множителя соответственно;

§ сумматор См для образования суммы частичных произведений;

§ регистр PrA для формирования частичного произведения;

§ регистр PrB для накопления суммы частичных произведений;

§ регистр сумматора PrСм, где образуется новое значение суммы;

§ счетчик циклов СчЦ.

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

§ начальная установка;

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

§ коррекция результата в формате двойной длины.

Рисунок 1 – Возможные методы выполнения операции умножения

 

АЛУ работает следующим образом:

1. Первоначально в первом такте на Pr1 поступает множимое, одновременно с приемом множимого обнуляется PrB, хранящий сумму частичных произведений, а в СчЦ заносится число обрабатываемых цифровых разрядов множителя;

2. Во втором такте на Pr2 поступает множитель;

3. В зависимости от значения (0 или 1) младшего разряда модуля множителя к частичному произведению прибавляется либо 0, либо модуль множимого, для чего соответствующее значение присваивается PrA; на сумматоре См производится суммирование PrA и PrB; полученная сумма сдвигается путем передачи кода с выхода сумматора на регистр сумматора PrСм со сдвигом на один разряд вправо, и затем передается в регистр PrB.

4. Содержимое регистра Pr2 переносится в Pr2 со сдвигом вправо на один разряд. Разряд «0» в Pr2 оказывается свободным и в него заносится младший, (n - 1) – й, разряд суммы, выходящий при сдвиге за пределы разрядной сетки.

5. Содержимое Pr2 переносится в Pr2 и тем самым завершается сдвиг множителя; содержимое СчЦ уменьшается на единицу и проверяется на равенство нулю.

6. Если СчЦ установится в нуль, нужно переходить к выдаче результата; в противном случае – переходить к анализу младшего разряда Pr2.

Когда СчЦ установится в 0, в PrСм и Pr2 будут содержаться соответственно старшие и младшие разряды модуля произведения, требующие сдвига на один разряд вправо для правильного расположения в формате двойного слова.

После выполнения этого сдвига результат операции из PrСм и Pr2 последовательно поступает на шину выхода.

Рисунок 3 – Алгоритм умножения чисел с фиксированной запятой

 

Пусть X =+125, Y = -12. Вычислить Z=X*Y=125*(-12)= -1500, где X, Y, Z – числа с фиксированной запятой.

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

В данном примере для представления чисел X и Y выделим 8 разрядов, причем старший разряд знаковый (7 циклов умножения).

Умножение чисел с фиксированной запятой представим в виде таблицы (Таблица 1 – Умножение чисел с фиксированной запятой).

 

Таблица 1 - Умножение чисел с фиксированной запятой

№ бл. СчЦ Рг1 Рг2 РгA РгB См РгСм Рг2’
                 
               
               
                 
                 
               
               
                 
                 
               
               
                 
                 
               
               
                 
                 
               
               
                 
                 
               
               
                 
                 
               
               
                 
                 
               
               
  № бл.   СчЦ   Рг1   Рг2   РгA   РгB   См   РгСм   Рг2’
                 
               
               
               
               
               
               
               
               

 

Результат умножения чисел в формате двойной длины представлен на рисунке 4.

Рисунок 4 - Число Z = X × Y =125×(-12)= -1500 с фиксированной

запятой в формате двойной длины

 

 
 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: