6. Структура АЛУ для сложения и вычитания чисел с фиксированной запятой
При выполнении сложения положительные слагаемые представляются в прямом коде, отрицательные – в дополнительном. Производится сложение двоичных кодов, включая разряды знаков. Если при этом возникает перенос из знакового разряда суммы при отстуствии переноса в этот разряд или перенос в знаковый разряд при отсутствии переноса из разряда знака, то имеется переполнение разрядной сетки соответственно при отрицательной и положительной суммах. Если нет переносов из знакового разряда и в знаковый разряд суммы или есть оба этих переноса, то переполнения нет и при 0 в знаковом разряде сумма положительна, а при 1 отрицательна и представленя в ДК.
Алгоритм работы:
1) Из памяти по входной информационной шине в АЛУ поступают операнды, причем положительные числа – в прямом, а отрицательные – в дополнительном коде.
2) РгВ – первое слагаемое или уменьшаемое
3) РгА – второе слагаемое или вычитаемое. Рг1 связан с РгА цепями прямой и инверсной передачи кода. Прямая передача используется при сложении, инверсная - вычитания
4) Результат операции выдается из АЛУ в оперативную память по выходной информационной шине ШИВых. 5)При выполнении операции в АЛУ формируется 2-разрядный код признака результата ПР.
Результат | Признак | результата |
0 | 0 | 0 |
<0 | 0 | 1 |
>0 | 1 | 0 |
Переполнение | 1 | 1 |
6) Операция алгебраического вычитания Z=X-Y=X+(-Y) может быть сведена к изменению знака вычитаемого Y и операции алгебраического сложения. Изменение знака – принятый в Рг1 код инверсно передается в РгА и при сложении осуществляетя подсуммирование 1 в младший разряд сумматора.
7) Передача информации в регистрах АЛУ производится отдельными микрооперациями, инициируемыми соотвествующими УСами.
7. Структура АЛУ для умножения чисел с фиксированной запятой (сумматор частичных произведений)
В ЭВМ операция умножения чисел с фиксированной запятой с помощью соответствующих алгоритмов сводится к операциям сложения и сдвига. Произведение двух (n-1)-разрядных чисел может иметь 2(n-1) значащих разрядов. Т.о. при операции умножения целых чисел необходимо предусмотреть возможность формирования в АЛУ произведения, имеющего двойную по сравнению с сомножителем длину. В ЭВМ, в которых числа с фиксированной запятой являются дробями, младшие n-1 разрядов произвдения часто отбрасываются (возможно с операцией округления).
Для выполнения умножения АЛУ должно содержать регистры множимого, множителя и схемы формирования суммы частичных произведений – сумматор частичных произведений, в котором путем соответствующей организации передач производится последовательное суммирование частичных произведений.
Операция умножения состоит из n-1 [(n-1) – число цифровых разрядов множителя] циклов. В каждом цикле анализируется очередная цифра множителя, и если это 1, то к сумме частичных произведений прибавляется множимое, в противном случае прибавления не происходит. Цикл завершается сдвигом множимого относительно суммы частичных произведений либо сдвигом суммы частичных произведений относительно неподвижного множимого.
8. Умножение начиная с младших разрядов множителя со сдвигом суммы частичных произведений вправо и при неподвижном множимом
Регистр множителя и сумматор частичных произведений при этом должны иметь цепи сдвига вправо. Регистр множимого может не иметь цепей сдвига. Последовательность действий в каждом цикле выполнения умножения определяется младшим разрядом регистра множителя, куда последовательно одна за другой поступают цифры множителя. Поскольку по мере сдвига множителя вправо старшие разряды регистра множителя освобождаются, он может быть использован для хранения младших разрядов произведения, поступающих из младшего разряда сумматора частичных произведений по мере выполнения умножения. Для этого при выполнении сдвига младший разряд регистра сумматора частичных произведений соединяется со старшим разрядом регистра множителя. После выполнения умножения старшие разряды произведения находятся в ргеистре сумматора, младшие – в регистре множителя. При данном методе умножения все три регистра имеют одинаковую длину, равную числу разрядов сомножителей. Этот метод нашел наибольшее применение в ЭВМ.
Алгоритм: 1. Берутся модули от сомножителей.
2. Исходное значение суммы частичных произведений принимается равным 0
3. Если анализируемая цифра множителя равна 1, то к сумме частичных произведений прибавляется множимое; если эта цифра 0, прибавление не производится.
4. Производится сдвиг суммы частичных произведений вправо на один разряд.
5. Пункты 3 и 4 последовательно выполняются для всех цифровых разрядов множителя, начиная с младшего.
6. Произведению присваивается знак плюс, если знаки сомножителей одинаковы, минус – в противном случае.
9. Умножение, начиная с младших разрядов множителя при сдвиге множимого влево и неподвижной сумме частичных произведений
Регистр множителя должен иметь цепи сдвига вправо, регистр множимого – влево, сумматор не должен иметь цепей сдвига. Последовательность действий определяется младшим битом регистра множителя. При этом методе регистр множимого и сумматор частичных произведений должны иметь двойную длину. Этот метод требует больше оборудования, но никаких преимуществ не дает, поэтому его применение нецелесообразно.
10. Умножение, начиная со старших разрядов множителя при сдвиге суммы частичных произведений влево и неподвижном множимом
Регистр множителя и сумматор частичных произведений должны иметь цепи сдвига влево. Регистр множимого не имеет цепей сдвига. Последовательность действий в каждом цикле выполнения умножения определяется старшим разрядом регистра множителя. При этом методе сумматор частичных произведений должен иметь двойную длину. И данный метод требует дополнительного по сравнению с первым методом оборудования. Но он применяется в некоторых АЛУ, т.к. позволяет без дополнительных цепей сдвига выполнять и деление (а при первом методе для выполнения деления необходимы дополнительные цепи сдвига влево в регистре множимого (частного) и в сумматоре частичных произведений (разностей).
11. Умножение, начиная со старших разрядов множителя при сдвиге вправо множимого и неподвижной сумме частичных произведений
Регистр множителя должен иметь цепи сдвига влево, регистр множимого – цепи сдвига вправо. Сумматор частичных произведений не имеет цепей сдвига. Последовательность действий на каждом шаге определяется старшим разрядом регистра множителя. При этом методе и регистр множимого, и сумматор частичных произведений должны иметь двойную длину. Однако, как и третий метод, он не требует дополнительных цепей сдвига для выполнения деления. Также в случае этого метода можно совмещать во времени операции сдвига и сложения и за этот счет увеличить быстродействие АЛУ при выполнении умножения (а также деления). Если необходимо образование произведения двойной длины (напр. при операциях с целыми числами), то наиболее экономичным является первый способ (т.к. все регистры одинарной длины). Если в результате умножения достаточно иметь произведение одинарной длины, то целесообразно использовать либо 1ый, либо 4ый метод умножения. При использовании 1го требуется введение дополнительных цепей сдвига для реализации деления, а при использовании 4го необходимо удлинение сумматора. При образовании произведений одинарной длины простое отбрасывание младших разрядов вносит погрешность, которая будет накапливаться, т.к. произведение всегда будет вычисляться с недостатком. Поэтому для повышения точности вычислений часто производят округление результата умножения, вследствие чего погрешность становится знакопеременной. Для округления длина сумматора увеличивается на 1 разряд. После образования произведения к этому дополнительному разряду добавляется 1. Если он был равен 0, то произведение получается с недостатком. Если был равен 1, то произведение получается с избытком. При этом максимальное значение погрешности равно половине 1 младшего разряда.
12. Методы ускорения умножения. Умножения на 2 разряда множителя
Классификация: 1) аппаратное 2) логическое (за счет развертывания процесса умножения во времени) 3) алгоритмическое (смешанные)
Устранение фиктивных операций сложения и объединение одноразрядных сдвигов в единые многоразрядные сдвиги.
Аппаратные методы – развертывание процесса умножения в пространстве, за счет укрупнения блоков обрабатываемой информации и уменьшения числа этих блоков.
Эти методы вызывают усложнение схемы АЛУ и не затрагивают схемы управления. При реализации логических методов ускорения умножения усложняется в основном схема управления АЛУ.
Виды аппаратных методов ускорения умножения: 1) Ускорение выполнения операций + и >> (за счет элементной базы и технологии) 2) Введение дополнительных цепей сдвига, которые за один такт могут производить сдвиг информации в регистрах сразу на несколько разрядов. 3) Совмещенные по времени операции + и >>. Классификация логических методов ускорения умножения. В основе логических методов УУ лежит целенаправленный анализ цифр множителя. Этот анализ позволяет исключить из процесса умножения ряд микроопераций сложения и сдвига. Анализу подвергается или 1 разряд или 2-3-4. 1) Метод, позволяющий уменьшить количество сложений 2) количество сдвигов. Если при выполнении умножения в множителе встречается группа 1, то вместо сложений, число которых равно количеству единиц в группе можно выполнить одно сложение и одно вычитание. Выполнить следующее: 1) множитель сдвигается до появления первой единицы. 2) производится вычитание множимого и сдвиг множителя до появления первого нуля. 3) производится прибавление множимого и вновь сдвигается множитель до появления первой единицы.