Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Чеботарев Н.А. Построение схем сложения и вычитания в электронных цифровых машинах [пособие]

.pdf
Скачиваний:
12
Добавлен:
29.10.2023
Размер:
3.46 Mб
Скачать

Единица — это перенос из старшего числового разряда, поэто­ му вычитание единицы в фигурных скобках фактически не выпол­ няется, а отбрасывается (не учитывается) перенос из старшего числового разряда.

Таблица б

м А

случая

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)|-*См

Рт

 

A ~iUB

(?В чП К

 

 

 

 

 

в сумм.

 

 

 

 

 

 

6

Подача 0 на вход

0 - Р Д

 

Qopj

 

 

 

переноса

3 7 Выдача дополнения мо­

дуля числа в сумматор

8Подача „1“ на вход переноса

9Занесение 1 в триггер

преобраз.

10 Выдача инвертированно­

го результата в суммах.

4 П Подача „1“ на вход переноса

(рг2 );ок -см

i’ A ' В 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

Соседние файлы в папке книги из ГПНТБ