Файл: Чеботарев Н.А. Построение схем сложения и вычитания в электронных цифровых машинах [пособие].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.04.2024

Просмотров: 29

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рассмотрим алгоритм сложения дополнительных кодов, учтя возможные комбинации знаков слагаемых, при условии, что запя­ тая фиксирована перед старшим разрядом.

Случай 1. Л >0; 5> 0; А + В< 1.

[^]доп“ ^> [В)лоа=В;

[Л]доп+[5] доп^^-Ь# —И+Д]д0п-

. *>

. Так как сумма является положительным числом, то можно ска­ зать, что получен дополнительный код суммы чисел.

Случай 2. Л > 0; В<С0; А !>|В;, следовательно А+ В у 0.

И]доп—А', [б]доп= В + 2;

И]доп+ [5]Д0П=(Л +В)+2.

Так как сумма — положительное число, то результат сложения не является дополнительным кодом (лишнее 2). Очевидно, для по­ лучения дополнительного кода суммы необходимо отбросить чис­ ло 2. Нетрудно видеть, что это число появилось в результате пере­ носа из знакового разряда. Следовательно, если не учитывать пере­ нос из знакового разряда (отбросить его), то будет получен допол­ нительный код суммы чисел:

И + В ]доп = И ]ДОп+[В]до„ -2 .

Случай 3. Л >0; В < 0; - |/4!< Sj, следовательно Д-+5<0.

]доп=^4; ( S U = f i+ 2 ;

И]доп-г[#]доп—(A+fi)-f 2—[A + B ]i0a.

Так как сумма А+В — число отрицательное, то результат сло­ жения является дополнительным кодом суммы чисел.

Случай 4. /4<0; В < 0; :Л + £ |< 1 .

\А]ЛОп—А +2; [В]мп*=В+2\

[Л] ДОП+ [Я]до„ -[(Л + 5 )+ 2 ]+ 2 .

Так как сумма А+В — число отрицательное, то дополнительный код этого числа представляется выражением в квадратных скоб­ ках. Следовательно,

[А+В] ДОП^[А] ДОП+[ В ] ДОП 2.

Рассмотренные случаи показывают, что в зависимости от зна­ ков и соотношения модулей чисел получаются различные записи алгоритма сложения дополнительных кодов. Однако можно запи­ сать алгоритм сложения дополнительных кодов одинаково для всех случаев. Действительно,''вычитание числа 2 означает определение

15

остатка по модулю 2 и, следоватедьно, алгоритм сложения допол­ нительных кодов можно записать в виде

[ А + в и ^ й А ]Wn+[5]„n) (mod 2).

(2.5)

Это выражение мож§т быть получено и на основе выражения

(2.4)

и правила сложения чисел по модулю.

 

Вычисление остатка по модулю 2 не требует никаких дополни­ тельных действий. Ограничение разрядной сетки знаковым разря­ дом (разряд единиц) приводит к тому, что любое число больше двух представляется остатком по модулю 2, так как для представ­

ления разряда двоек нет физического элемента.

Выражение (2.5) можно записать словами в виде следующего

правила.

П р а в и л о . Для получения дополнительного кода суммы двух чисел необходимо сложить дополнительные коды этих чисел как обычные положительные числа, включая и знаковый разряд; пере­ нос из знакового разряда не учитывается.

Таким образом, алгоритм сложения дополнительных кодов по­ зволяет использовать для сложения этих кодов сумматор положи­ тельных чисел комбинационного (рис. 2) или накапливающего ти­ па (рис. 3).

Определим время сложения для сумматоров каждого типа. Вре­ мя сложения определяется временем сложения з одном разряде и временем распространения переноса. При сложении «-разрядных чисел получим для времени сложения следующие выражения.

Для сумматора комбинационного типа (рис. 2):

 

7’Ксл=Я^пер+<1 =Я(^и+^илн) + <1 •

( 2.6)

где

 

tnep —время образования переноса в одном разряде;

 

h —время образования суммы-в одном разряде.

 

Для сумматора накапливающего типа (рис. 3):

 

^ Нсл~я(£гг+£3)-}-Дтг,

(2.7)

где

/тг—время изменения состояния триггера (время образова­ ния суммы;)

t3—время задержки в линии задержки.

В сумматоре накапливающего типа слагаемые подаются после­ довательно одно за другим. Сложение начинается с момента пода­ чи второго слагаемого. Поэтому с этого момента 'отсчитывается

и время сложения.

 

Сравнение

и Тнсл для сумматоров, построенных на эле­

ментах с одинаковым быстродействием, показывает, что ТКСЛ« Т НСЛ. Выясним состав блока операций, обеспечивающего выполнение операций сложения и вычитания. При этом будем исходить из то-


го, что числа в запоминающем устройстве хранятся в дополнитель­

ном коде.

Как указывалось выше, при выполнении операции вычитания изменяется знак у вычитаемого и, таким образом, операция вычи­ тания сводится к операции сложения. Изменение знака вычитаемо­ го производится путем преобразования дополнительного кода вы­ читаемого. При этом возможны два случая: вычитаемое В положи­

тельное, вычитаемое В отрицательное.

то после преобразова­

Если В>0,

например |В]ДОП=0.1Ш111,

ния получим

[ —В]доп= 1.001001.

то после преобразова­

Если В < О,

например [В]доп~ 1,001011,

ния получим [ —В]доп==0.110101.

В обоих случаях преобразование выполняется одинаковым об­ разом независимо от знака вычитаемого, а именно так, как обра­ зуют дополнительный код отрицательного числа: инвертируются

З н а к

ЧислоЗая часть

Рис. 2

значения разрядов и прибавляется единица в младший разряд. Анализируя алгоритм сложения дополнительных кодов по вы­

ражению (2.5) (в операции участвуют два числа и выполняется

17

сложение) и учитывая необходимость преобразования вычитаемого при выполнении операции вычитания, получим следующий мини­ мальный состав узлов блока операций:

— регистры для хранения кодов чисел, участвующих в опера­ ции:

сумматор для сложения дополнительных кодов чисел;

преобразователь кода вычитаемого;

узлы связи для связи блока операций с запоминающим уст­

ройством.

Укрупненная структурная схема блока операций с накаплива­ ющим сумматором при минимально возможном количестве обору­ дования приведена на рис. 4, а с комбинационным сумматором — на рис. 5. Смысл управляющих сигналов, указанных на схемах, рас­ крыт в табл. 1.

Рассмотрим структуру узлов блока операций, приведенного на рис. 4.

Числа из оперативного запоминающего устройства принимают­ ся в блок операций параллельным кодом. Для приема чисел слу­ жат элементы «И,», составляющие узел связи оперативного запо­ минающего устройства с арифметическим устройством.

Регистр (Рг) параллельного действия с количеством разрядов, определяемым разрядной сеткой ЭЦМ. Регистр служит для хране­ ния второго слагаемого или вычитаемого, поступающего из опера­ тивного запоминающего устройства.

Преобразователь (Пр) является узлом связи регистра (Рг) с сумматором (См) и служит для выдачи в сумматор слагаемого при выполнении операции сложения или преобразованнЬго вычи­ таемого при выполнении операции вычитания. Как указывалось выше, в процессе преобразования необходимо инвертировать зна-

Рис. 5

18


чение разрядов вычитаемого и в младший-разряд прибавить едини­ цу. Последняя задача выполняется сумматором, а преобразователь только выдает инвертированное вычитаемое. Исходя из этого, не­ трудно составить схему преобразователя. Схема одного разряда преобразователя приведена на рис. 6.

Сумматор параллельного действия (рис. 3) служит для хране­ ния первого слагаемого или уменьшаемого, сложения дополнитель­ ных кодов, хранения результата и участвует в преобразовании вы­ читаемого. В сумматоре должна быть предусмотрена цепь приема единицы в младший разряд при выполнении операции вычитания

(преобразование вычитаемого). Так как числа в сумматор могут подаваться-только последовательно друг за другом, то прием еди­ ницы в младший разряд осуществляется е задержкой после приема вычитаемого (рис. 7). Это обстоятельство приводит к увеличению

( Г г /

или ^ Г Ш .

йечгмПр

Рис. 7

времени вычитания по сравнению со временем сложения. Время вычитания Т \ ч будет

7’нВч=(д+1)(^тг-г4) + ^тг-

(2.8)

Элементы «И2» составляют узел связи арифметического устрой­ ства с оперативным запоминающим устройством и служат для вы­ дачи чисел в оперативное запоминающее устройство. Числа выда­ ются параллельным кодом.

Составим микропрограмму операций сложения и вычитания применительно к одноадресной системе команд. В этом случае об­ ращение, к оперативному запоминающему устройству при выпол­ нении операции происходит за вторым числом. Первое число (сла­ гаемое, уменьшаемое) находится в сумматоре. При составлении микропрограммы будем исходить из условия выполнения операции в четыре этапа: подготовки АУ, приема числа, собственно выполне­

ния операции и формирования результата. На первом этапе необ­ ходимо произвести очистку регистра, на в т оромприе м числа из ячейки а запоминающего устройства, на третьем — прибавление слагаемого или преобразованного вычитаемого. При выполнении третьего этапа уже получается результат. Поэтому четвертый этап

19


6 данном случае Отсутствует. Микропрограмму, состоящую из по­ следовательности микроопераций (МО), представим в виде Табл. 1.

 

 

 

 

 

 

 

 

 

Таблица I

 

 

 

 

 

 

Сигналы

 

 

 

: Содержание МО Обозн. МО

 

Р

<7

»- :

Q

этапа | МО

 

 

 

 

i

 

1

 

\

1

! 1

Очистка регистра

0-+Рг

1

Pi

 

1 '

Qopr

\

<7слчЯъчI

 

I ...

Прием числа из

 

1

 

 

i

 

2

 

2

{а)-+Рг

 

Ра

 

Опч

.

ячейки „а*

 

 

 

 

 

 

1

'

 

 

3

 

3

Выдача числа в

(Рг)-^См

\

Рл

-

Qbhcm

 

4сл

 

сумматор

|

 

 

4

Выдача преобра­

(Рг)аР->Сл[

Р-,

Чвч

Qbmcmnp

 

 

зованного числа в

 

 

 

сумматор

 

 

 

 

-

 

При записи микроопераций приняты следующие обозначения:

•->

— передача информации или занесение информации; направ­

ление стрелки указывает направление передачи информации;'

( ) — содержимое узла

(ячейки

 

хранения),

заключенного в

скобки.

Поставив в соответствие каждой микрооперации оператор А с номером, микрооперации, можно записать микропрограмму в опе­ раторной форме:

Операторная форма наглядно показывает, в каком направлении идет выполнение микропрограммы при тех или иных условиях.

Составим логические выражения для управляющих сигналов, используя данные табл. 1.

Управляющий сигнал Qopr должен быть сформирован при на­ личии синхросигнала р1 и признаков операции дсл или дт. Сле­ довательно,

Qopr—Р\ (9сл^*/вч)-

Аналогично получим выражения для остальных управляющих сигналов:

<3пч=/?2(^слу ^вч).

Qи’; см А3*7сл*

Q b4 см нр==Р з <7вч’

По логическим выражениям для управляющих сигналов можно

20


построить схему управления блоком операций при выполнении сло­ жения и вычитания. Эта схема приведена на рис. 8.

Для выработки управляющих сигналов необходимо, чтобы в арифметическое устройство поступали синхросигналы р и прйзнаки операций q. Синхросигналы можно формировать о помощью ге­ нератора импульсов и линии задержки с отводами (рис. 9), а приз-

Рис. 8 Рис. 9

наки операций с помощью дешифратора кода операции (рис. 10). Построением схемы управления заканчивается построение части арифметического устройства, предназначенной для выполнения

рассмотренных операций сложения и вычитания.

Составим теперь микропрограмму операций сложения и вычи­

тания применительно к трехадресной системе команд.

При составлении микропрограммы будем исходить из того, что для выполнения трехадресной команды необходимо выбрать из оперативного запоминающего устройства первое число и поместить его в сумматор, затем выбрать второе число, выполнить собственно

мд

Чсп

Чвч

опера -

1

 

Рис.

10

операцию, указанную в коде операции и результат отослать в опе­ ративное запоминающее устройство. Микрооперации, необходимые для выполнения указанных действий и составляющие микропро­ грамму операций сложения и вычитания, приведены в табл. 2.

Используя микропрограмму (табл. 2), составим логические вы­ ражения для управляющих сигналов:

Q ocm= V i (<7<ni7<7вч):

Q bm см^ Р з(<7слУ<7в'>Ь/>в</с л :

 

Qopr~ (PiVPi)(9csiУ<7вч)|

*2вч см пр~Р&вч>

 

Qji4~i.P2yP*)(4^ v4bh)j

Qbh Р'ХРсл^Явч) ■

(2*9)

21