книги из ГПНТБ / Чеботарев Н.А. Построение схем сложения и вычитания в электронных цифровых машинах [пособие]
.pdfЕдиница — это перенос из старшего числового разряда, поэто му вычитание единицы в фигурных скобках фактически не выпол няется, а отбрасывается (не учитывается) перенос из старшего числового разряда.
Таблица б
м А
случая
1 +
1 . . . .
1
2 +
1
2 , —
3 + •
В А+В Примечание
+I
1 |А1—[—1В} 1
____
t + \
1А|>;в;
+— •1
— |
— |
'| |
|
) |А|<|В: |
3 |
+ |
+ |
> |
1 |
|
|
|
|
i |
При словесной записи |
алгоритма |
(2.16) |
получим следующее |
правило.
П р а в и л о . Для получения прямого кода суммы двух чисел во втором случае необходимо к модулю числа А прибавить допол нение модуля числа В и отбросить перенос из старшего разряда; результату приписать знак числа А.
' Проиллюстрируем данное правило примером.
Пример: |
|
|
|
1) |
+ = + ■?!.• |
в = —21-> |
А + В = + — • |
' |
~ 3 2 ’ |
32 |
r tT D ^ 32 |
[A]nj,=0.11011; |
(В]пр= 1 .10101; |
:В+=0,01011;' |
|
|
:А1+:В|Д—0,11011+0,01011 =1,00110; |
||
|
{Р]пР=0,00110. |
|
|
2) А— |
в = + |
А+В— + |
|
[А]пр=1. ПОП; |
[В]Гф= 0 ,10101; [В]д=0,01011; |
||
|
А |+;Вд= 0 ,11011+0,01011 = 1,00110; |
||
|
|
[Р]„р= 1,00110. |
|
30
Случай 3. Знаки чисел разные, модуль числа А меньше модуля
числа В: |
. |
ЗнА^ЗнВ |
и 1А1 < |В|. |
По общему правилу для второго случая нужно из модуля чис ла А вычитать модуль числа В и результату приписывать знак чис ла В:
[Р]пр=ЗиВ - {IBi-iAj}.
Однако такое вычитание в ЭЦМ выполнять неудобно, так как уменьшаемым оказывается второе число и для преобразования этого числа необходим дополнительный преобразователь. Для того чтобы сохранить число А уменьшаемым, как и в предыдущих слу чаях, преобразуем выражение числовой части результата следу ющим образом:
{|В'-|А1} = ~{|А‘-!В|} = -{|А 1+!В |д-!}-1-{|А |-НВ |,}.
Полученное в правой части выражение является дополнением выражения в фигурных скобках. Следовательно,
{;В— :А|}= {|А|-НВ|д}д.
В качестве знака используем значение знака числа А, а именно ЗнР = ЗнВ —ЗнА, Таким образом, прямой код результата будет
[Р]пр=3^{|А!+1В,д| я . |
(2.17) |
При словесной записи этого алгоритма получим следующее пра вило.
П р а в и л о . Для получения прямого кода суммы двух чисел в третьем случае необходимо к модулю числа А прибавить допол нение модуля числа В, от полученного результата взять дополне ние и приписать инверсию знака числа А.
Проиллюстрируем данное правило примером.
П р и м е р : |
- |
|
|
|
А = ~ - ||; |
В = 4 - § ; |
А-гВ = + |
- | - |
|
[А]пр—1.10101: |
|В]пр=0.11011; В;д= 0,00101; |
|||
|
;А! + В г= 0 ,10101 +0,00101 =0,11010; |
|||
|
||А|+|В|д}д—0,00110; |
|
||
|
|
(Р]пр—0.00110. |
(2.16) и алгоритм |
|
Если сравнить алгоритм для второго случая |
для третьего случая (2.17), то можно увидеть, что вначале в обоих алгоритмах производятся одинаковые действия. Отличие заклю чается в образовании результата. Во втором случае сумма модуля первого слагаемого (А: и дополнения модуля второго слагаемого
31
дают- -окончательный результат, а в третьем случае для по лучения окончательного результата нужно найти дополнение ука занной суммы и в качестве знака принять инверсию знака числа А.
Рассмотрим, какой признак может быть использован для того, чтобы различить второй и третий случаи.
Очевидно, проверять соотношение модулей чисел нецелесооб разно, так как для того, чтобы установить, какой из модулей боль ше, нужно выполнить операцию вычитания. Записи алгоритмов второго (2.16) и третьего (2.17) случаев показывают, что во вто ром случае возникает перенос в старшем разряде (наличие в фор муле «-—1»), а в третьем — не возникает. Следовательно, этот пере нос можно использовать в качестве признака различия между вто рым и третьим случаями.
Если при разных знаках при сложении возникает перенос в старшем разряде, то имеет место второй случай, если не возни кает,— то третий.
Определим состав блока операции. Так же как и для предыду щих алгоритмов, в состав узлов блока операций должны входить сумматор и один или два регистра. Для определенности в дальней шем будем рассматривать блок операций с сумматором комбина ционного типа и, следовательно, с двумя регистрами. Кроме ука занных основных узлов, необходимо иметь узлы связи: регистров с числовой магистралью, регистров с сумматором, сумматора с ре гистром результата.
Приведенный состав блока операций содержит минимально не обходимое количество оборудования и может рассматриваться как один из возможных вариантов. При необходимости увеличения быстродействия или улучшения других характеристик в состав блока операций может быть введено дополнительное оборудование.
Укрупненная структурная схема блока операций приведена на рис. 15. На схеме каждый узел, в соответствии с алгоритмом, со стоит из двух частей — числовых разрядов (модули чисел) и зна ковых разрядов. Собственно операция сложения выполняется толь ко с числовыми разрядами.
Рассмотрим подробней назначение узлов блока операций и их структурные схемы. " .
Регистр (Рт1) предназначается для хранения первого слагае мого или уменьшаемого (число А) и результата операции. Посколь ку результат операции существует на выходе сумматора, только при наличии на входе кодов слагаемых, прием результата в ре гистр Рг1 должен происходить без предварительной очистки ре гистра. Следовательно, регистр Рг1 должен иметь инверсные вхо ды (информация на входы регистра подается в прямом и инверс ном виде одновременно).
Узел связи сумматора с регистром (Уз. св. См—Рг1) представ ляет собой группу логических элементов «И» по два на каждый разряд. Для передачи результата из сумматора в регистр при опе рациях сложения и вычитания на один вход элементов «И» дол-
32
жен быть подан потенциал, который можно снять с триггера (Тг Км Сл), хранящего признаки операций q сл или дяч.
Необходимость в этом узле вызвана тем, что при разных опера циях связь сумматора с регистром 1 осуществляется по-разному. При операции сложения узел связи" обеспечивает связь одноимен ных разрядов сумматора и регистра.
Сумматор комбинационного типа для выдачи числа в регистр
Рис. 16
З1 Зак. 701 |
33 |
должен иметь как прямые, так и инверсные выходы. Для построе ния сумматора на диодных элементах (наиболее простые) нужно обеспечить также и инверсные входы. Возможная схема одного разряда сумматора приведена на рис. 16.
Узел связи второго регистра с сумматором (Уз. св. Рг2-С,м) яв ляется преобразователем числовой части в дополнение. В одном случае на выходе'узла связи будет числовая часть, а в другом — ее инверсии. Дополнение получается путем подачи вместе с ин версией числовой части единицы в младший разряд сумматора. Структурная схема одного разряда узла связи приведена на рис. 17.
Рис. 17
Узел связи первого регистра с сумматором (Уз. св. Рг1-См)
участвует в преобразовании результата из дополнительного кода в прямой при выполнении сложения по алгоритму (2.17) третьего случая. Для подачи в сумматор слагаемого или уменьшаемого из регистра (Рг 1.) используется непосредственная жесткая связь выхо дов триггеров со входами сумматора. Преобразование результата осуществляется путем его инвертирования и прибавления едини цы в младший разряд. В этой операции участвуют элементы сум матора и элементы узла связи (Уз. св. P rl-См) (рис. 18).
Регистр (Рг2) предназначается для хранения второго слагае мого или вычитаемого. Это обычный регистр на триггерах, требу ющий предварительной очистки перед приемом кода числа.
Узел связи числовой магистрали с регистром Рг2 служит для приема кода числа из числовой магистрали в регистр и состоит из логических элементов «И».
Схема одного разряда блока операций, в котором раскрыта структура узлов, приведена на рис. 18.
При составлении структурных схем узлов блока операций (рис. 18) учитывалось, что для работы сумматора с инверсными входами обязательно должен быть единичный сигнал на одном из
34
входов в каждом разряде, т. е. если В к равно единице, сигнал, рав ный единице, должен быть на единичном, входе, а если Вк = 0
(Вк = 1),— на нулевом. В противном случае входные элементы «И» сумматора будут закрыты и на выходах сумматора никаких сигна лов не будет.
Рассмотрим, как происходит подача на сумматор инвертиро ванного результата, и выясним, какие элементы составляют Уз. св. Рг1-См.
При сложении двух чисел А и В входные элементы «И» сумма тора образуют логические выражения.
35
ЛВ; (AB VAB); А В.
При преобразовании результата нужно на входы сумматора по
дать А вместо А и В =0 |
(В = |
1). |
Указанные логические выражения должны принять вид |
||
АО-0; |
(А - |
IVА - 0) = А- 1; А - 1. |
Подача 1 осуществляется управляющим сигналом <Здк-ик- Следовательно, для преобразования результата к элементам сум матора следует добавить элементы «И», реализующие выражения
А Фдк—пк ИА Qдк—пк ■Эти элементы входят в узел связи (Уз. св. Рг1-См).
Составим микропрограмму операции сложения применительно к одноадресной системе команд. При этом будем учитывать воз можность выполнения каждого из трех случаев сложения.
Для получения суммы двух чисел нужно подать на сумматор содержимое числовой части первого и второго регистра и затем со держимое сугиматора передать в первый регистр. Как было указа но, выходы первого регистра жестко связаны со входами суммато ра; а выходы сумматора через элементы «И» со входами первого регистра. Элементы «И» открываются напряжением с единичного выхода триггера (Тг Км Сл.) на все время операции. Поэтому для выполнения указанных действий достаточно двух микроопераций: выдачи содержимового второго регистра в непосредственном виде или в виде дополнения.
При составлении микропрограммы учтем, что преобразование результата выполняется только при наличии определенного приз нака, определяемого знаками слагаемых. Поэтому этот признак нужно хранить от начала операции до момента преобразования, для чего используется триггер (Тг Пр).
Микропрограмму операции сложения представим в виде табл. 6. Микропрограмму операции вычитания составлять не будем, так как она содержит те же микрооперации, что и микропрограмма операции сложения. Однако условия, при которых выполняются эти микрооперации, будут другие. Для того чтобы учесть это, при составлении логических выражений для управляющих сигналов со ставим таблицу, связывающую микрооперации с условиями их вы
полнения при сложении и вычитании, в-зависимости от знаков чи сел (табл. 7).
В габл. 7 приняты обозначения:
Ра—значение знакового разряда числа А; рв—значение знакового разряда числа В; !*р1 —сигнал переноса из старшего разряда сумматора.
36
|
|
|
|
|
|
Таблица € |
|
№ |
МО |
Содержание ЛЮ |
Обознач. МО |
р |
Ч |
|
Q |
эт |
|
||||||
|
|
' |
|
1 |
|
|
|
|
1 |
Очистка регистра 2 |
0-»Рг2 |
Рз |
; |
— |
QoI>r2 |
] |
2 |
Очистка триггера |
0->ТгПр |
|
? С л |
— |
QoTrifp |
|
|
преобраз. |
|
|
|
|
|
|
3 |
Установка триггера |
1 ~>ТгКмСл |
Р4 |
1 - |
QoTrKMc |
|
|
|
|
|
|
i |
||
2 |
4 |
Прием числа из ячей |
(а)-*Рг2 |
|
|
- |
|
|
|
ки |
Р4 |
|
jQiiM |
||
|
|
|
|
|
I |
|
|
|
5 |
Выдача модуля числа |
,(Рг2)|-*См |
Рт |
|
IхA ~iUB |
(?В чП К |
|
|
|
|||||
|
|
в сумм. |
|
|
|
|
|
|
6 |
Подача 0 на вход |
0 - Р Д |
— |
— |
|
Qopj |
|
|
|
переноса
3 7 Выдача дополнения мо
дуля числа в сумматор
8Подача „1“ на вход переноса
9Занесение 1 в триггер
преобраз.
10 Выдача инвертированно
го результата в суммах.
4 П Подача „1“ на вход переноса
(рг2 );ок -см |
— |
i’ A ' Iх В Q fiqO K |
1 -Р Д |
|
Q i i ’/i |
1-н-ТгПр |
|
1 |
|
QlTrllp |
|
|
|
” |
(Pri)0K ,См |
|
PTrll pPPl Одк-пк |
1 -РД |
—„— V |
<?1РД |
П р и м е ч а н и е . Прочерк в таблице означает независимость микрооперации от указанных условий.
Перейдем теперь к составлению логических выражений для уп равляющих сигналов, используя табл. 6 и 7:
1) QoPr2 ~P%i
2) |
QoTrTlp~Pu(Pi :i |
4'U\)' |
3) |
QlTi-КмСл ~- Pj (t/о.- У:>.ч) - |
|
4) |
Qnn—p^'/e.iV Pm); |
|
5) |
ОвчПК=Р79гсл(!а.4 |
I'-B ) '.'P^tftvi.PA' |
6) |
Qop.t =(2вчпк ; |
~Ув) VPlQnчСрА ~!Ав ); |
7) |
Qb'iOK |
|
8.) |
Qjp.a=QB4nKV <3дк-пк7 |
|
9) |
Q lT rnp==Q B 40K ; |
|
10) |
фдП-ПК^ДОвчСлОэаи • Цр1~РГгПр — [ipj |
где (*тгпр—сигнал состояния триггера преобразования. Выражения для ф в ч п к и Q B 4o k развернем и совместно преобра зуем с целью сокращения оборудования в схеме управляющей части:
Q B M |
n K ^ A P B / M |
c . i V P A f W |
^ c . ' i |
V |
|
М |
Р |
в / ^ в ч Х / ^ А Р |
||||||
= |
Ра [ р в |
(РпЧся) V |
|
Р В ( Р ^ |
в ч |
) ] |
V > A |
[ Р |
В |
( р |
7 ? с л(Р) 'VД>вчB)]', |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 1 |
|
С л у ч а й |
|
|
Чел—1 |
|
|
|
|
|
Чвч— |
1 |
|
|
Q |
|
№ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
А |
|
в |
|
|
|
А |
|
В |
|
|
|
и |
|
|
|
|
|
1* |
|
|
|
|
|
|
|||||
|
+ |
|
+ |
|
|
|
+ |
|
— |
|
|
|
|
|
1 |
— |
|
— |
|
~ ^ 'в |
|
— |
+ |
|
Н д ~ ! Ч > |
Ф в ч П К |
|||
|
|
|
|
|
|
|
|
|
|
|||||
|
+ |
|
— |
|
|
|
+ |
|
+ |
|
|
|
|
О В ч О К |
2 |
|
|
^ |
А |
~ 1 ^ в |
|
|
|
|
|
|
|
~Рв |
|
— |
|
|
— |
— |
|
|
|
|
||||||
|
|
+ |
|
|
|
|
|
|
|
|
||||
|
+ |
|
— |
|
|
|
4 |
“ |
4 |
" |
|
|
|
|
3 |
— |
|
( | * А ~ а!в)М > 1 |
|
— |
— |
|
О * А |
~ Н в ) ? р ! Q a K - r i K |
|||||
|
|
+ - |
|
|
|
|
|
|
|
|
||||
Q b4OK= |
PA Р в Р т^ слХ/Н'АРв Р тР слХ/Н'А [J'BPt^'bhV P A |
И’ВРчб[вч— |
|
|||||||||||
= |
1 * |
А [ ( » |
в ( Р 7 ? е |
л |
) \ / И В |
( Р |
тV1M^ в ч,[PB) ] ( Р |
7 < 7 с лV) > B ( р 7 ? в |
ч ) ] |
По полученным выражениям для управляющих сигналов по строена схема управляющей части, приведенная на рис. 19.
Последовательность выполнения микроопераций определяется синхросигналами р. Выбор необходимых синхросигналов произве ден исходя из равных интервалов между каждыми двумя соседни ми синхросигналами и интервалов, необходимых для выполнения микроопераций.
Сравним алгоритм сложения модулей чисел с алгоритмами сло
38
жения дополнительных и обратных кодов при хранении чисел в прямом коде.
Сравнивая табл. 3 и 5, нетрудно увидеть, что в случае примене ния алгоритма сложения модулей чисел сокращается количество преобразований результата с 50 до 33% от всех случаев и исклю чается необходимость преобразования первого слагаемого (послед нее особенно существенно). Поэтому алгоритм сложения модулей чисел является наиболее распространенным при хранении чисел в оперативном запоминающем устройстве в прямом коде.
Недостатком алгоритма сложения модулей чисел является то, что необходимость прибавлять единицу в младший разряд при пре образовании результата вдвое увеличивает время собственно сло жения. Для устранения этого недостатка иногда производят преоб разование результата без прибавления единицы в младший раз ряд, а просто инвертированием. Это незначительно снижает точ ность вычислений, но зато сокращает время выполнения операции.
39