книги из ГПНТБ / Чеботарев Н.А. Построение схем сложения и вычитания в электронных цифровых машинах [пособие]
.pdf1.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. Сложение дополнительных кодов
Дополнительный код положительного числа равен самому чис лу. Дополнительный код отрицательного числа в числовых разря дах содержит дополнение до единицы, следующей за старшим раз рядом, а в знаковом разряде — единицу. Рассматривая знаковый разряд как обычный числовой, выражение для дополнительного ко да можно представить в виде
IА |
при А>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