За сумиране на двоични числа с фиксирана запетая, представени в модифициран обратен код (МОК) се използва следната процедура:
- Преди сумирането операндите се преобразуват в МОК (с два знакови разреда).
- МОК на операндите се сумират като обикновени двоични многоразредни числа с паралелен многовходов суматор.
- Анализира се полученият МОК на знака на резултата : при неправилен код (01,10) се формира признак за препълване от АЛУ; при правилен код (00, 11) МОК на сумата се преобразува в прав код.
Подобният алгоритъм за паралелно сумиране има следната блок-схема:
Този алгоритъм е изграден на основата на микрооперации изпълнявани по стробиращите сигнали Ci.
C1
|
:Tст:=0
|
- Нулиране на флагов тригер Тст
|
C2
|
:ТКО:=0
|
- Нулиране на флагов тригер Тко
|
C3
|
:S:=(X)пк
|
- Зареждане в суматора на Х
|
C4
|
:R:=(Y)пк
|
- Зареждане в регистъра на У
|
C5
|
:S[1]:=1
|
- Проверка стойността на S[1]
|
C6
|
:S[2n]:=\S[2n]
|
- Инвертиране на суматора
|
C7
|
:S[1]:=0
|
- Нулиране на разред от суматора
|
C8
|
:S:=(S)+(-R)MOK
|
- Сумиране в допълнителен код
|
C9
|
:S:=(S)+(R)MOK
|
- Сумиране в допълнителен код
|
C10
|
:TKO:=1
|
- Активизиране на флагов тригер
|
Операцията в АЛУ започва да се изпълнява, щом се активизира външният управляващ сигнал за стартиране на АЛУ. Нулират се признаците за стартиране на АЛУ (Тст) и за завършване на операцията (Тко), за да се избегне повторното изчисляване на същата двойка операнди, и се зареждат стойностите на двата операнда X и Y съответно в суматора S и в регистъра R. В зависимост от знака на Х в суматора се получава неговият МОК. На входа на суматора се подава формираният МОК на вторият операнд Y и се изпълнява сумирането. Полученият код на знака се анализира, като при препълване се формират признака за препълване S[1] и Tko, след което устройството преминава в начално състояние. Ако при сумирането не е отбелязано препълване, получената сума се преобразува в суматора до пряк код, признака за препълване се нулира и се формира признака за края на операцията Тко.
Бързодействие. Определя се при най-неблагоприятното съчетание на стойностите на операндите. За тази цел се избира най-дългият клон от алгоритъма като отчетем и цикличното повторение.
След сегментиране на алгоритъма на работа на АЛУ, се получава следният резултат:
1
|
=
|
{D1
|
|
[P1]
|
|
|
|
|
|
|
|
|
|
|
[D1]
|
}
|
|
|
|
|
|
2
|
=
|
{P1
|
|
P2
|
|
P3
|
|
P4
|
|
[D2]}
|
3
|
=
|
{D2
|
|
P5
|
|
P6
|
|
D3
|
|
[P8]
|
|
|
|
|
|
|
P7
|
|
|
|
[P9]}
|
4
|
=
|
{P8
|
|
[D4]
|
}
|
|
|
|
|
|
5
|
=
|
{P9
|
|
[D4]
|
}
|
|
|
|
|
|
6
|
=
|
{D4
|
|
[P5]
|
|
|
|
|
|
|
|
|
|
|
D5
|
|
P6
|
|
[P7]}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7
|
=
|
{P5
|
|
P10
|
|
[D1]}
|
|
|
|
|
8
|
=
|
{P7
|
|
P10
|
|
[D1]}
|
|
|
|
|
Най-дългият клон на алгоритъма е :{D1|P1P2P3P4|D2P5P6D3|P8|D4D5P6|P7P10}, който се изпълнява за 6 такта. Избора на тактовата честота зависи от времето за изпълнение на най-дългата микрооперация в алгоритъма - в случая сумирането - Р8 и Р9. Следователно за повишаване на бързодействието на АЛУ е добре да се намали времето за сумиране по Р8 и Р9, например чрез поставяне на ИС за ускорен пренос при реализацията на суматора S.
Сподели с приятели: |