Рефераты. Выполнение арифметических операций в АЛУ

Количество циклов операции умножения зависит от количества цифровых разрядов множителя. Так при умножении n-разрядных чисел без знака в формате с фиксированной запятой потребуется n циклов, а при умножении n-разрядных чисел со знаком в формате с фиксированной запятой – n-1 цикл.

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

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

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

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

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

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

 





а) б)





в) г)

Рис. 3.4. Методы выполнения умножения

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

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

Пусть X – множимое и Y – множитель, n-разрядные числа со знаком в формате с плавающей запятой. Числа X и Y имеют (n-1) цифровых разрядов с весами, изменяющимися от 20 для (n-1) разряда до 2n-2 для первого разряда. Произведение чисел Z = X×Y можно представить в виде скобочной записи, наглядно отображающей алгоритм умножения:

где yi = (0,1) – значение i-го разряда множителя Y, X×yi – частичная сумма для i-го разряда, 2-1 – сдвиг вправо суммы частичных произведений.

Для получения результата Z производятся вычисления по приведенной формуле. При этом:

X×yi =

а умножение на 2-1 осуществляется путем сдвига числа на один разряд вправо.

Особенностью умножения двух n-разрядных чисел со знаком в формате с фиксированной запятой является необходимость представления результата умножения Z разрядностью 2×n, где один знаковый разряд и 2×n-1 цифровых разрядов. При умножении n-разрядных чисел, где n-1 разрядов - цифровых, в произведении Z’ содержится 2×(n-1)=2×n-2 цифровых разрядов. Так как число цифровых разрядов результата умножения Z разрядностью 2×n-1 на единицу больше числа 2×n-2 цифровых разрядов произведения двух чисел Z’, то после получения числа Z’ в формате двойной длины, необходимо дополнительно сдвинуть его цифровые разряды на один разряд вправо, чтобы правильно расположить произведение в разрядной сетке.

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

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

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

После выполнения умножения старшие разряды произведения находятся в регистре сумматора, младшие – в регистре множителя.

На рис. 3.5 представлена структурная схема АЛУ для умножения n-разрядных целых двоичных чисел. В состав АЛУ входят: входной регистр множимого Рг1; регистры множителя Рг2 и Рг2’, на которых с помощью косой передачи вправо выполняется сдвиг множителя вправо; сумматор См для образования суммы частичных произведений; регистры сумматора: входные регистры РгА и РгВ, выходной регистр РгСм, на которых соответственно хранится текущее значение и образуется новое значение суммы; счетчик циклов СчЦ.


 
















Рис. 3.5. Структурная схема АЛУ для умножения

чисел в формате с фиксированной запятой

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

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

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

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

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

На рис. 3.6. этапы выполнения операции умножения разделены пунктирной линией.

Рис. 3.6. Алгоритм умножения чисел

с фиксированной запятой

Начальная установка выполняется в блоке 1. На этом этапе происходит прием операндов с шины входа: в первом такте на Рг1 поступает множимое, одновременно с приемом множимого обнуляется РгB, хранящий сумму частичных произведений, а в счетчик циклов заносится число обрабатываемых цифровых разрядов множителя; во втором такте на Рг2 поступает множитель.

Вычисление сумм частичных произведений вы-полняется в блоках 2-6. Этот этап выполняется циклически до тех пор, пока счетчик циклов не станет равен нулю. В зависимости от значения младшего разряда множителя Рг2[n-1] к частичному произведению прибавляется либо 0, либо множимое, для чего соответствующее значение присваивается РгА; полученная сумма передается в РгСм со сдвигом вправо на один разряд и записывается в РгB. Множитель, хранящийся в Рг2, с помощью Рг2’ сдвигается вправо на один разряд, при этом старший разряд Рг2 остается свободным, и в него заносится младший разряд суммы, выходящий при сдвиге за пределы РгСм. Счетчик циклов уменьшается на единицу и проверяется на равенство нулю.

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

Пример. Пусть X=+26, Y=+5. Вычислить Z=X×Y=26×5.

X, Y, Z - числа с фиксированной запятой. При

умножении использовать алгоритм умножения

целых положительных чисел c фиксированной

запятой начиная с младших разрядов, со

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


В данном примере для представления чисел с фиксированной запятой выделим 6 разрядов, причём старший разряд – знаковый. Множимое X и множитель У показаны на рис. 3.7.

Веса

разрядов

24

23

22

21

20

0

1

1

0

1

0

знак

модуль множимого

Веса

разрядов

24

23

22

21

20

0

0

0

1

0

1

знак

модуль множителя

а) б)

Рис. 3.7. Числа в формате с фиксированной запятой:

а) множитель Х = 26, б) множимое Y = 5

Умножение чисел с фиксированной запятой представим в виде таблицы (табл. 3.1) с указанием номеров блоков, состояния счётчика СчЦ, состояния сумматора, состояний регистров РгСм, РгB, Рг2, Рг2’, РгA, Рг1.

Табл. 3.1. Пример умножения чисел

с фиксированной запятой

№ бл.

СчЦ

См

РгСм

РгB

Рг2

Рг2’

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.