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

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

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

1.4. Методика анализа и построения арифметического устройства

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

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

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

Таким образом, анализ существующего арифметического уст­ ройства или построение нового целесообразно производить в сле­ дующей последовательности:

1)производится анализ алгоритмов операций и их оценка;

2)выявляется состав основных узлов арифметического устрой­ ства, необходимых для реализации принятых алгоритмов;

3)составляются микропрограммы операций и микрооперации привязываются к определенным моментам времени;

4)составляются логические выражения для управляющих сиг­ налов и строится управляющая часть;

5)рассматривается функционирование устройства при выпол­ нении каждой операции.

Рассмотрим подробней содержание каждого из указанных пунк­

тов.

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

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

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

ю

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

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

4.Микропрограмма, увязанная с синхросигналами, признаками операций и осведомительными сигналами, содержит в себе доста­ точно информации для составления логических выражений для уп­ равляющих сигналов. Каждый управляющий сигнал представляет­ ся в виде двузначной'логической функции обычными способами (запись по единицам или по нулям). Первоначальные логические выражений минимизируются с целью сокращения количества эле­ ментов управляющей части. По окончательным логическим выра­ жениям строится схема управляющей части, точно так же, как схе­ ма любого узла ЭЦМ при его синтезе.

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

вательности микроопераций должно привести к выполнению ариф­ метическим устройством заданной операции (команды программы).

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

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

11

Г л а в а II

АЛГОРИТМЫ И СХЕМЫ СЛОЖЕНИЯ И ВЫЧИТАНИЯ

2.1. Принципы выполнения операций сложения и вычитания в ЭЦМ

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

Если числа представлены прямым кодом, то для сложения чисел с одинаковыми знаками’необходимо использовать сумматор, а для сложения чисел с разными знаками — вычитатель. Использование вычитателя является нежелательным, так как увеличиваемся коли­ чество оборудования и усложняется выполнение операции сложе­ ния. Усложнение выполнения операций связано с тем, что входы, вычитателя неравнозначны: положительные числа должны пода­ ваться только на один определенный вход, а отрицательные — на другой. Это обстоятельство требует применения коммутирующей аппаратуры, обеспечивающей подачу слагаемого на тот или иной вход в зависимости от его знака.

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

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

Пример: 1)А = +

0,1110; £ = —0,1001; \А\ > В |,

0,1110

 

~~0ЛШ

 

0,0101

—результат получен в прямом коде.

2)Л~ + 0,1001; В = -0,1110;

'к \< \ В \.

0,1001

' ■

' 0,1110

 

1,1011 — — 0,0101—результат получен в дополни­ тельном коде.

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

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

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

- Для выполнения собственно сложения, как указывалось выше, необходимо_иметь сумматор.

Слагаемые до выполнения операции Сложения хранятся в опе­ ративном запоминающем устройстве. Поэтому для приема слагае­ мых и хранения их на время выполнения операции необходимо иметь регистры. Количество регистров Зависит от типа применен­ ного сумматора.

Если применен сумматор накапливающего типа, то его можно использовать для приема и хранения первого слагаемого, а также и для хранения результата операции. Для приема и хранения вто­ рого Слагаемого потребуется один регистр.

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

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

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

Выше были рассмотрены некоторые вопросы выполнения опера­ ции сложения, но все это полностью относится и к операции вычи­

13

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

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

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

2.2. Сложение дополнительных кодов

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

при А>0,

 

[А]доп= (а + 2"-2

при А<0,

(2,1)

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

Выражение для дополнительного кода правильных дробей бу­

дет

[Д1 - [ А

при

Л >0,

«

(2.2)

1 bon _ U + 2

при

Л < 0.

 

 

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

[А]допг (A+2n+2)(mod 2Я+2).

- (2.3)

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

[Л]доп = (А+2) (mod 2).‘

(2.4)

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

14

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

Случай 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

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