Поделиться Поделиться

Микропрограмма выполнения операции сложения/вычитания

V1 РВ=Швх

V2 Р1=Швх

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 1

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

Существуют 4 основных подхода для выполнения операции умножения. 1 и 2 подходы связаны с анализом множителя, начиная с младших разрядов; 3 и 4 – анализ множителя, начиная со старших разрядов.

Подход

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

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 2

Подход

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

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 3

Подход

Метод умножения, начиная с анализа старших разрядов множителя и сдвигом множимого вправо (зеркален 1-ому методу).

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 4

Подход

Метод умножения, начиная с анализа старших разрядов множителя, со сдвигом суммы частичных произведений влево (зеркален 2-ому методу). Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 5

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 6

Наиболее экономичным по аппаратуре является 2 метод, так как он требует n-разрядных регистров для представления множимого, множителя и суммы частичных произведений.

Структурная схема АЛУ для выполнения операции умножения над числами с фиксированной точкой, представленных в прямом коде (по 2 методу)

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 7

Р1- регистр множимого;

Р2 – регистр множителя;

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

СМ – выход сумматора (каждый цикл на нем фиксируется сумма частичных произведений до сдвига);

РС – регистр сумматора (на нем фиксируется сумма частичных произведений после сдвига и затем заносится на регистр РВ);

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

Результат выполнения операции умножения имеет 2n разрядов. Старшая часть образуется на регистре РС, младшая часть образуется на регистре Р21.

Триггер знака предназначен для фиксирования знака выполняемой операции умножения путем выполнения операции сложения по модулю 2 знаковых разрядов операндов.

c=a(+)b

a b c

После этого знаковые разряды операндов обнуляются.

На счётчик цикла (СчЦ) в начале выполнения операции заносится (n-1), т.е. число значащих разрядов.

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 8

n=4 – длина разрядной сетки

(n-1)– число значащих разрядов

Цикл

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 9

2 циклМикропрограмма выполнения операции сложения/вычитания - Инвестирование - 10

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 11 3 цикл

Этапы умножения

Этап.

Определили знак результата. Знаковые разряды операндов складываются по модулю 2, и результат заносится в знаковый разряд. Знаковые разряды после этого обнуляются.

Этап.

В счётчик цикла заносится число (n-1)– число значащих разрядов, а n– длина разрядной сетки.

На втором этапе происходит обработка (n-1)циклов.

На каждом цикле анализируется очередной младший разряд множителя (регистр Р2 ). Если младший разряд равен 1 , то переписываем на РАсодержимое регистра Р1(это переход на микропрограммный уровень) (См. «Микропрограммное УУ»); а если младший разряд равен 0 , то обнуляем РА . После этого в сумматоре складывается содержимое РАи РВ(РВпредварительно обнулили), и на выходе сумматора СМобразуется сумма частичных произведений до сдвига. На РСзаносится сумма частичных произведений после сдвига, которая потом переписывается на РВ . Младший разряд сумматора при сдвиге будет заноситься в старший разряд Р21 , и он будет (освобождающийся) представлять собой младший разряд произведения. В этом же цикле множитель сдвигается на один разряд вправо путём пересылки с Р2на Р21 , и после записываем на Р2 . Счётчик цикла уменьшаем на 1 . Если счётчик цикла равен 0 , то дальше идёт коррекция результата: старшая часть на РС , младшая на Р21 , происходит сдвиг на один разряд. Либо сразу вместо коррекции можно взять n .

Этап.

Это этап коррекции результата. Для этого на РАнадо поставить нули, либо в счётчик заносить не (n-1) , а n .

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 12 (*) результат

0 0 1 1 0 0 1 0з сдвинуть вправо на 1 разряд

РС Р21

0 0 0 1 1 0 0 1

РС Р21

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 13

Блок-схема алгоритма микропрограммы

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 14 Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 15

Р1:=Швх

Р2:=Швх

РВ:=0

СчЦ:=n (n-1)

Тзн:=Р1(n-1)+P2(n-1)

Р1(n-1):=0

Р2(n-1):=0

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 16 Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 17 Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 18

CM:=PA+PB

P21:=n(P2)

P21(n-2):=CM(0)

P2:=P21

PC:=n(CM)

PB:=PC

CчЦ:=СчЦ-1

Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 19 Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 20 Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 21 Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 22 Швых:=Тзн+РС Микропрограмма выполнения операции сложения/вычитания - Инвестирование - 23 если в СчЦ не n, а n-1, то тут

этап коррекции результата

← Предыдущая страница | Следующая страница →