- •Особенности сложения чисел, представленных в форме с плавающей запятой
- •Алгоритм умножения чисел, представленных в прямом коде, начиная с младших разрядов, со сдвигом суммы частичных произведений вправо
- •Операционный автомат и микропрограмма для умножения чисел с фиксированной запятой в прямом коде.
- •Ускорение операции умножения
- •Матричные методы умножения
- •Деление чисел с фиксированной точкой в прямом коде
- •§ Система счисления в остаточных классах(сок)
- •§ Контроль по модулю.
- •Контроль работы цифрового автомата § Кодирование информации как средство обеспечения контроля работы ца
Алгоритм умножения чисел, представленных в прямом коде, начиная с младших разрядов, со сдвигом суммы частичных произведений вправо
Берутся модули от сомножителей.
Исходное значение суммы частичных произведений принимается равным нулю.
Если анализируемая цифра множителя равна 1, то к сумме частичных произведений прибавляется множимое; если эта цифра равна 0, прибавление не производится.
Производится сдвиг суммы частичных произведений вправо на 1 разряд.
Пункты 3 и 4 последовательно выполняются для всех цифровых разрядов множителя, начиная с младшего
Произведению присваивается знак плюс, если знаки сомножителей одинаковы; в противном случае – знак минус.
Операционный автомат и микропрограмма для умножения чисел с фиксированной запятой в прямом коде.
Пусть необходимо построить операционное устройство для выполнения умножения чисел, представленных в форме с фиксированной запятой. Исходные операнды поступают на вход устройства последовательно за два такта по шине DI(0:7) в следующем формате:
Результат должен быть выдан на шину DO(0:7) в таком же формате и сопровождаться выдачей сигнала Ready.
Тогда структурная схема ОУ будет иметь вид.
Напишем микропрограмму и построим операционный автомат умножения чисел с фиксированной запятой.
Можно предложить следующий алгоритм выполнения операции умножения чисел, представленных в форме с фиксированной запятой.
Принять операнды по входной шине на регистры А и В.
Присвоить счетчику циклов значение 0. Присвоить сумме промежуточных произведений значение 0.
Провести анализ на равенство нулю каждого из сомножителей. Если хотя бы один из сомножителей равен нулю, то перейти к п.10.
Провести анализ младшего разряда множителя. Если младший разряд множителя равен 0, то перейти к п.6.
Выполнить сложение суммы промежуточных произведений и множимого.
Сдвинуть множитель и сумму частичных произведений множителя вправо на один разряд. Прибавить 1 к содержимому счетчика циклов.
Если содержимое счетчика циклов не рано 0, перейти к п.4.
При необходимости произвести округление.
Произведению присвоить знак плюс, если знаки сомножителей одинаковы, и знак минус, если знаки сомножителей разные.
Выдать результат на выходную шину, сопровождая выдачу сигналом Ready/
Конец.
Микропрограмма выполнения операции умножения чисел, представленных в форме с фиксированной точкой в прямом коде приведена ниже.
Микропрограмма содержит исходные данные для построения ОУ. На ее основе можно построить операционный и управляющий автоматы, а, следовательно, и все операционное устройство в целом.
Для построения управляющего автомата строится кодированная ГСА и синтез УА проводится одним из ранее рассмотренных методов.
Для построения ОА используются следующие списки:
Список слов и их типов, которые были использованы при написании микропрограммы (ее описательная часть). Он имеет следующий вид.
РгА(0:7) – внутреннее слово с памятью;
РгВ(0:7) – внутреннее слово с памятью;
РгС(0:7) – внутреннее слово с памятью;
Cnt(0:2) – внутреннее слово с памятью;
DI(0:7) – входное слово без памяти;
Ready – выходное слово без памяти;
DO(0:7) – выходное слово без памяти.
Список микроопераций.
y1: РгА:= DI;
y2: РгС := 0
y3: РгB:= DI;
y4: Cnt := 0
y5: РгС:= РгС + РгА(1:7);
y6: Cnt:=Cnt+1
y7: РгС:= R1(0.РгC);
y8: РгB(1:7):= R1(РгC(7).РгB(1:7));
y9: РгС:= РгС + 1
y10: РгС(0):= 1;
y11: DO := РгС;
y12: Ready := 1.
Список логических условий.
x1 = РгА(1:7)=0;
x2 = РгB(1:7)=0;
x3 = РгB(7);
x4 = Cnt =7;
x5 = РгВ(1);
x6 = РгА(0)РгВ(0)
С труктурная схема ОА будет иметь следующий вид.
Умножение чисел, представленных в форме с фиксированной запятой в дополнительных кодах
Так как, для выполнения операции сложения целесообразнее использовать сумматор дополнительного кода, то желательно и умножение производить над числами, представленными в дополнительных кодах.
Алгоритм умножения, начиная с младших разрядов множителя, со сдвигом суммы частичных произведений и использованием дополнительного кода для представления чисел.
Исходное значение суммы частичных произведений принимается равным нулю.
Если анализируемая цифра множителя равна 1, то к сумме частичных произведений прибавляется множимое в том коде, в котором оно представлено; если эта цифра равна 0, прибавление не производится.
Сумма частичных произведений сдвигается на один разряд вправо, при этом, если сумма отрицательна, осуществляется модифицированный сдвиг.
П.п. 2 и 3 последовательно выполняются для всех цифровых разрядов множителя, начиная с младшего.
Если множитель – положителен, то полученный результат представляет собой произведение. Если множитель отрицателен, то для получения произведения к результату прибавляется множимое с обратным знаком.
Прибавление производится с выравниванием складываемых чисел по старшим разрядам.
Если результат размещается в двойном слове, то он предварительно сдвигается на один разряд вправо. Произведение получается в дополнительном коде.