книги / Элементы автоматики и счетно-решающие устройства
..pdfдовательном суммировании большого количества чисел) этого не требуется, т. е. одноадресная система оказывается более экономич ной, чем трехадресная, так как позволяет уменьшить емкость за поминающего устройства.
Легко подсчитать, чему должна быть равна емкость ячеек за поминающего устройства. Если код операции записывается двоич ным числом с максимальным числом разрядов I, адрес ячейки — двоичным числом с максимальным числом разрядов т, а число
адресов в команде /С, то емкость ячеек должна быть не меньше чем
Кт + 1,
т.е. ячейка должна запоминать коды с таким общим числом раз рядов.
Для пояснения порядка составления программ рассмотрим
простейший пример составления программы в трехадресной систе ме для решения задачи определения
х = A D — В С
при заданных числовых значениях параметров. В более сложных задачах необходимо предварительно составить порядок (алгоритм) машинного решения. В данном примере порядок очевиден — надо произвести два перемножения и один результат вычесть из другого, поэтому можно непосредственно заняться составлением програм мы. Запись кодов операций и адресов команд программы будем выполнять, как это обычно принято, в восьмеричной системе, а ис ходных данных — в десятичной системе. Для введения программы в запоминающее устройство машины она преобразуется по двоич ной системе и в таком виде пробивается на перфокартах или пер фоленте. Для ввода программы в машину используется специаль
ная программа ввода, наносимая на |
отдельную перфокарту. |
В простейшем случае программа ввода |
может содержать всего |
одну команду, например: «Ввести 15 чисел с перфокарт в ячейки запоминающего устройства начиная с ячейки номер 20».
При предварительном составлении программы и записи ее на бланке обычно бывает неизвестно, сколько потребуется ячеек за поминающего устройства на команды, сколько на исходные данные, сколько на промежуточные результаты и т. п. Поэтому вначале нельзя конкретно определить номера ячеек для каждой операции и программа составляется в условных адресах ячеек. Так, адреса
ячеек, |
в которых будут |
располагаться команды, обозначим |
а + 1, |
|
а+ 2, |
а + 3,. .. Адреса |
ячеек для исходных данных А, В, С и D |
||
обозначим 6 + 1, 6 + 2, |
6 |
+ 3 и 6+ 4 . Адреса ячеек для промежуточ |
||
ных и окончательного |
результатов обозначим с + 1, с + 2 , ... |
(вели |
чины а, 6 и с определятся позднее). Тогда в самом общем виде предварительная программа запишется так:
Номер |
|
Адреса |
чисел |
Адрес |
|
Исходные дан |
|
Операция |
|
|
Номер |
ные, промежуточ |
|||
|
|
резуль- |
|||||
ячейки |
1-й |
2-й |
ячейки |
ные результаты |
|||
|
тата |
||||||
|
|
|
|
|
|
и ответ |
|
д+1 |
10-»2 |
6+1 |
03 |
6+ i |
6 + i |
А |
|
д+2 |
Умн. |
6+1 |
Ь+ 4 |
с+1 |
6+2 |
В |
|
д-ЬЗ |
Умн. |
6+2 |
н - з |
с+ 2 |
^+3 |
С |
|
а-\-4 |
Выч. |
с + 1 |
с+2 |
с+3 |
Ь+ 4 |
D |
|
я+5 |
2+10 |
с+3 |
00 |
с+3 |
с+1 |
AD |
|
д+6 |
Вывод |
с+ 3 |
00 |
00 |
с+2 |
ВС |
|
д+7 |
Стоп |
00 |
00 |
00 |
с+3 |
AD—BC |
Первая команда в ячейке а + 1 предназначена для перевода ис
ходных данных в двоичный код. Такой перевод может быть пред варительно сделан оператором и тогда эта команда была бы не нужна. Однако целесообразно эту операцию поручать также ма шине, так как в процессе решения задачи часто приходится менять исходные данные данной программы и выполнение этой операции будет отнимать слишком много времени.
Команда расшифровывается так: «число А извлечь из ячейки
6 + 1, перевести его в двоичную систему и отправить снова в ячейку
6+1; затем к 1-му адресу |
(6+1) прибавить единицу, чтобы полу |
|||||||
чить адрес |
(6+ 2) |
числа |
В, |
с которым |
проделать |
аналогичную |
||
операцию, |
к 6 + 2 |
снова добавить единицу, чтобы получить адрес |
||||||
(6 + 3) числа С, |
с которым |
проделать |
аналогичную |
операцию, |
||||
к 6 + 3 снова добавить единицу, чтобы получить адрес |
(6+ 4) числа |
|||||||
D, с которым проделать аналогичную операцию |
(перевод в двоич |
|||||||
ную систему и возвращение |
в свою ячейку)». |
Число |
03 во 2-м |
адресе первой команды означает, что добавление единицы проис ходит три раза.
Вторая команда, записанная в ячейке а + 2, означает умножение А на В и запись промежуточного результата AD в ячейку с + 1.
Третья команда (ячейка а + 3 ) означает умножение В на С и запись промежуточного результата ВС в ячейку с+ 2. Четвертая команда
(ячейка |
а + 4 ) означает вычитание |
ВС из AD и |
запись разности |
в ячейку с+ 3 . Пятая команда означает перевод |
окончательного |
||
ответа, |
хранящегося в ячейке с+ 3, |
в десятичную |
систему для вы |
вода на печать, осуществляемого шестой командой. Наконец, седь мая команда останавливает машину. Теперь надо выбрать а, 6 и с, т. е. определить конкретные рабочие адреса всех ячеек и закоди ровать программу (номера ячеек команд, коды операций и адреса записываются в восьмеричной системе). При определении рабочих адресов следует учитывать конкретные особенности машины, для которой составляется программа, так как ряд ячеек у нее может быть постоянно занятым для записи стандартных подпрограмм,
программы ввода и т. п. Обычно бывают заняты примерно первые 16 ячеек, поэтому принимаем а = 20, 6= 27 и с= 3 3 (в восьмеричной
системе). После этого, закодировав операции разными цифрами, окончательно переписываем программу:
Номер |
|
|
Адрес*1 |
чисел |
Адрес |
Номер |
Исходные дан |
|
|
Код опера |
|
|
ные, промежуточ |
||||
|
1-й |
2-й |
резуль |
|||||
ячейки |
ции |
тата |
ячейки |
ные результаты |
||||
|
|
|
|
|
|
|
и ответ |
|
21 |
|
6 |
30 |
03 |
30* |
30 |
А |
|
22 |
|
5 |
30 |
33 |
34 |
31 |
В |
|
23 |
|
5 |
31 |
32 |
35 |
32 |
С |
|
24 |
|
3 |
34 |
35 |
36 |
33 |
D |
|
25 |
|
7 |
36 |
00 |
36 |
34 |
(AD) 1 |
Не |
26 |
|
4 |
36 |
00 |
00 |
35 |
(ВС) |
пи |
' |
шут |
|||||||
27 |
2 |
00 |
00 |
00 |
36 |
(.AD—BC) |
ся |
Более сложные программы составляются примерно по таким же принципам. Так, например, система из двух линейных уравнений с двумя неизвестными
А х -}- В у = С,
D x -\-E y= F
при условии, что определитель ее
АВ
D E
сводится к двум выражениям
EC — BF |
__AF — CD |
ХАЕ —BD ' У~ А Е — В й '
т.е. требует несколько более усложненной по сравнению с рас смотренным примером программы и т. п.
Очень часто для облегчения программирования сложных за дач используются отдельные стандартные подпрограммы для ти повых частей решения задачи. Такие подпрограммы обычно хра нятся в специальных картотеках и ими всегда при необходимости можно воспользоваться. Иногда дальнейший ход вычислений за висит от полученных в процессе вычислений промежуточных ре зультатов. В этом случае используются так называемые разветв ляющиеся программы, в которых в зависимости от полученного
промежуточного результата машина может направить ход дальнейших вычислений по одному из разных вариантов, преду смотренных программой.
9. 2.3. Основные элементы ЦВМ
Как уже указывалось, в ЦВМ основными видами операций яв ляются запоминание, логические и арифметические действия, сдвиг и перенос. Для их выполнения используются весьма разнообразные по физической природе и принципу действия логические и запоми нающие элементы. Ниже будут кратко рассмотрены основные прин ципы осуществления наиболее важных логических и запоминающих элементов и необходимых операций.
Л о г и ч е с к и е э л е м е н т ы
Рассмотрим наиболее важные логические операции.
О т р и ц а н и е (инверсия) обозначается буквами «НЕ». В фор мальной логике имеют дело с суждениями, причем любое суждение может быть либо истинным, либо ложным. Поэтому операция от
|
|
рицания означает, что если А (неко |
||||||||
|
|
торое суждение) |
истинно, то его от |
|||||||
|
|
рицание А ложно, и наоборот. Каж |
||||||||
|
|
дый разряд двоичной системы также |
||||||||
|
|
может |
иметь |
только |
два |
состоя |
||||
|
|
ния — 1 |
и 0. Следовательно, законы |
|||||||
|
|
формальной логики могут воспроиз |
||||||||
|
|
водиться элементами |
двоичной |
си |
||||||
|
|
стемы ЦВУ. |
Истинность |
суждения |
||||||
|
|
может |
интерпретироваться |
как |
1 |
|||||
|
|
(наличие сигнала), а ложность какО |
||||||||
|
|
(отсутствие сигнала), или наоборот. |
||||||||
|
|
Тогда простейшая схема |
отрицания |
|||||||
|
|
(схема |
НЕ, инвертор), |
показанная |
||||||
|
|
на рис. |
9.7, а, |
должна |
выполнять |
|||||
|
6) |
следующие функции — когда |
на |
ее |
||||||
• |
■вход приложен сигнал |
(>4 = 1), на ее |
||||||||
Рис. 9.7. Основные^логические |
выходе |
сигнала |
не |
должно |
быть |
|||||
схемы и их условные изобра |
(Д = 0), |
а когда сигнал на ее входе |
||||||||
|
жения |
отсутствует, |
сигнал на |
ее |
|
выходе |
||||
(Я=1) |
есть (лампа запирается напряжением |
Ucо отрицательного |
||||||||
смещения на сетку). |
|
|
|
|
|
|
|
|
|
|
Для фиксации наличия (1) |
и отсутствия |
(0) сигналов на входе |
и выходе сигнал не всегда должен обращаться точно в нуль. Обыч но достаточно бывает заметного изменения уровня сигнала, на ко торое уже может прореагировать следующий элемент, а в ряде случаев сигналы можно представлять кратковременными электри ческими импульсами.
У м н о ж е н и е (конъюнкция), обозначаемое буквой «И» — суж дение АВ истинно только в том случае, если истинны все (в данном случае два) входящие в него суждения (А и В). Схема совпадения
(рис. 9. 7,6), реализующая эту операцию, и создает сигнал (1) на выходе только в том случае, если на все ее входы поданы сиг
налы (1). Если хотя бы на одном из диодов рис. 9. 7,6 не будет положительного потенциала, то он откроется и выходное напря жение резко упадет. Если один из входов этой схемы рассматри вать KaiK управляемый, а другой как управляющий, то она может выполнять функции клапана (вентиля, ключа).
С л о ж е н и е (дизъюнкция), обозначаемое буквами «ИЛИ» — суждение А + В истинно, если истинно хотя бы одно (или А или В)
из входящих в него суждений (в данном случае из двух). Собира тельная схема (рис. 9. 7, в), реализующая эту операцию, и создает сигнал (1) на выходе, когда на одном или нескольких его входах появляется сигнал (1). Действительно, в схеме рис. 9. 7, в в этом
случае открывается хотя бы один из диодов и выходное напряже ние резко увеличивается. Диоды обеспечивают разделение входов, исключая возможность прохождения сигналов с одного из входов на другие.
Помимо рассмотренных логических элементов, в современных ЦВУ применяются и некоторые другие типы. Кроме того, из про стейших логических элементов при необходимости могут строиться и более сложные логические схемы. Чаще всего логические эле менты выполняются на лампах, полупроводниковых приборах и феррит-триодных ячейках.
Сравнивая основные функции логических элементов с основны ми правилами выполнения арифметических действий в двоичной системе счисления, рассмотренными выше, легко убедиться, что они могут быть использованы и для построения арифметического уст ройства. Арифметические действия с двоичными числами в цифро вых вычислительных машинах могут выполняться либо последо вательно (разряд за разрядом), либо параллельно (все разряды одновременно). Машины параллельного действия, естественно, выполняют арифметические действия быстрее, чем машины последо вательного действия, но они более сложны. Рассмотрим, напри мер, как выполняется сложение двоичных чисел в машинах после довательного действия. В табл. 9. 2 показана необходимая после довательность операций при сложении трех чисел А, Б и В,
связанная, как известно, |
с необходимостью |
переноса |
единицы |
из |
|||||
младшего разряда в старший, если складываются две единицы. |
|
||||||||
|
|
|
|
|
|
|
|
Таблица 9.2 |
|
|
Последовательность |
операций |
при сложении |
|
|
||||
№ |
тактовых |
импуль |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
сов |
и двоичных |
разря |
|
|
|
|
|
|
|
дов |
|
|
|
|
|
|
|
|
|
Слагаемое А (82) |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Слагаемое Б (52) |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
Слагаемое В (104) |
|
1 |
1 |
0 |
1 |
0 |
0 |
0 |
|
Сумма С |
|
|
0 |
0 |
0 |
1 |
1 |
1 |
0 |
Переносится в |
стар |
|
1 |
1 |
1 |
0 |
0 |
0 |
0 |
ший разряд (П) |
|
|
|
|
|
|
|
|
|
Окончательный |
ре |
1 |
1 |
1 |
0 |
1 I |
1 |
1 |
0 |
зультат (238) |
|
|
|
|
|
1 |
|
|
|
При сложении многоразрядных чисел работа схемы управляет ся генератором тактовых импульсов, причем за один такт выби раются из запоминающего устройства и складываются цифры
Рис. 9.8. Структурная схема одноразрядного двоичного сумма тора
одного разряда начиная с младшего. Если при сложении оказы вается необходимым перенести 1 в старший разряд, то это осу ществляется через специальную схему задержки так, чтобы она попала в схему сложения в момент прихода следующего тактового импульса.
Структурная схема одноразрядного двоичного сумматора (рис. 9.8), реализующая необходимую логику сложения, показана для наглядности в момент действия тактового импульса № 5. На схемы Иь И2 и И3 подаются все возможные комбинации по две цифры из трех слагаемых А, Б и В. Если хотя бы в одной комби нации будет две единицы (что означает необходимость переноса), то единица будет передана через соответствующую схему И (на
схеме ИО и схему HJIHi на перенос в старший разряд. Если такой комбинации не создастся, то на клемме П будет нуль. Остальные элементы схемы служат для получения на выходе С нужной циф ры данного разряда суммы — единицу, если единица есть только
водном слагаемом, и нуль (с переносом), если единицы имеются
вдвух слагаемых. Это обеспечивается комбинацией схем НЕ и И5.
Действительно, наличие переноса дает во всех возможных при этом случаях нуль на выходе схемы И5 и входе схемы ИЛИ3. Сле
довательно, на выходе С сумматора единица может появиться только при наличии единиц во всех трех слагаемых (тогда схема И4 дает на выходе единицу).
При отсутствии переноса на входе схемы И5 единица, т. е. до
статочно иметь единицу хотя бы в одном из слагаемых, чтобы она
через схемы ИЛИ2, И5 и ИЛИ3 поступила на выход С сумматора.
В качестве третьего слагаемого (В) обычно используется сигнал переноса единицы в старший разряд, т. е. выход П через схему задержки (на один тактовый импульс) подсоединяется к входу В одноразрядных сумматоров. По аналогичным принципам строят ся и другие узлы арифметического устройства, достаточно подроб но освещенные в специальной литературе *.
Рассмотренная схема сумматора имеет довольно сложную ло гическую структуру, неочевидную с первого взгляда. Для облегче ния построения подобных схем по заданной логической задаче часто пользуются таблицами истинности. Покажем возможности
их применения на примере рассмотренной задачи суммирования
трех |
величин |
А, |
Б |
и |
В. |
|
должны |
быть записаны |
все |
|||||
В таблице |
истинности (табл. 9. 3) |
|||||||||||||
возможные |
сочетания цифр |
сла |
|
|
|
Таблица 9.3 |
||||||||
гаемых (очевидно их всего во |
|
|
|
|||||||||||
|
Значения |
величин |
|
|||||||||||
семь), значения сумм С для этих |
|
|
||||||||||||
сочетаний и необходимость ( 1 ) |
|
|
|
|
|
|||||||||
переноса П. На основании табли |
А |
Б |
в |
с |
п |
|||||||||
цы истинности может быть запи |
|
|
|
|
|
|||||||||
сано логическое уравнение решае |
0 |
0 |
0 |
0 |
0 |
|||||||||
мой логической задачи для С и П. |
||||||||||||||
В |
уравнении |
должно |
быть |
1 |
0 |
0 |
1 |
0 |
||||||
столько |
слагаемых, |
сколько |
еди |
0 |
1 |
0 |
1 |
0 |
||||||
ниц |
в |
получаемом |
результате. |
1 |
1 |
0 |
0 |
1 |
||||||
Каждое |
из |
слагаемых уравнения |
||||||||||||
соответствует |
строке |
таблицы, |
0 |
0 |
1 |
1 |
0 |
|||||||
в которой |
результат |
равен |
еди |
1 |
0 |
1 |
0 |
1 |
||||||
нице, и равно произведению вхо |
0 |
1 |
1 |
0 |
1 |
|||||||||
дящих в строку |
величин. |
Если |
1 |
1 |
1 |
1 |
1 |
|||||||
в данной строке величина X рав |
||||||||||||||
|
|
|
|
|
||||||||||
* |
Н. |
Г. Б р у е в и ч , |
В. |
Г. Д о с т у п о в , Основы теории |
счетно-решающих |
|||||||||
устройств, |
изд. |
«Советское |
радио», 1964; |
|
изд. «Энергия», 1964. |
|
||||||||
Э. И. |
Гит не, Автоматика радиоустановок, |
|
на 1, то соответствующий сомножитель записывается как_Х, |
если |
Х = 0, то соответствующий сомножитель записывается как X. |
|
Для табл. 9. 3 логические уравнения имеют вид |
|
С =А Б В + АБВ+АБВ + АБВ, |
(9.6) |
П = АБВ + А Б В +А Б В +А Б В . |
(9.7) |
Используя рассмотренные выше понятия о логических прави лах и соответствующих им элементах, на основании данных урав нений можно строить необходимую схему. Эти уравнения могут также различным образом преобразовываться и упрощаться для создания наиболее оптимальных схем из минимального коли
чества логических |
элементов. |
Так, например, |
написанные выше |
уравнения можно |
упростить * |
до следующих: |
|
|
С = (А + Б + В ).П + АБВ, |
(9.8) |
|
|
П = А Б + АВ + БВ. |
(9.9) |
В этом случае, как видно, понадобится всего лишь один элемент отрицания [по сравнению с выражениями (9. 6) и (9. 7)].
В справедливости всех написанных выше логических уравнений легко убедиться, перебирая всё возможные значения А, Б и В и подставляя их в уравнения.
При параллельном суммировании за один такт одновременно суммируются все одинаковые разряды, для чего нужно использо вать столько одноразрядных сумматоров, сколько разрядов име ется в слагаемых числах, соединяя их последовательно между собой. Время параллельного суммирования значительно меньше, чем последовательного, но сложность схемы сильно возрастает.
Для сравнения на рис. 9. 9 показаны блок-схемы последователь ного (а) и параллельного (б) суммирования с использованием
одноразрядных сумматоров. ЛЗ — линия задержки на 1 импульс. Остальные обозначения такие же, как на схеме рис. 9. 8.
З а п о м и н а ю щ и е э л е м е н т ы
Запоминающие устройства предназначены для хранения чисел и состоят из запоминающих элементов, обладающих двумя устой чивыми состояниями, т. е. способными хранить один двоичный раз ряд (0 или 1 ) числа. Для создания запоминающих устройств могут
быть использованы самые разнообразные физические или химиче ские явления, однако в ЦВМ наибольшее распространение полу чили триггеры (ламповые и полупроводниковые), ферритовые сер дечники, магнитные барабаны и ленты. К запоминающим элемен там относятся также перфокарты и перфоленты, в которых двоич ные числа изображаются в виде системы отверстий. Однако запись
* Э. И. Г и т и с, Автоматика радиоустановок, изд. «Энергиям 1964.
и считывание в этом случае требуют относительно большого вре мени, и, кроме того, записанные числа не могут быть изменены. Поэтому перфокарты и перфоленты применяются в ЦВМ только для ввода исходных данных и программы и для вывода результа тов вычислений.
Принцип действия триггера (бесконтактного реле) был рассмот рен в гл. III. При использовании триггера в качестве запоминаю-
Ь)
Рис. 9.9. Последовательное (а) и параллельное (б) сум мирование
щего элемента одно из его состояний принимается за 1 (высокий выходной потенциал), а другое за 0. При этом каждый из выход
ных зажимов |
может использоваться |
как самостоятельный выход |
||
с состоянием, противоположным второму выходу. |
|
|||
Цепочка триггеров, соединенных последовательно, |
может ис |
|||
пользоваться |
как регистр |
(рис. 9. 10, а) для запоминания двоич |
||
ного числа с |
количеством |
разрядов, |
равным числу |
триггеров. |
В этом случае ко вторым половинам триггеров делаются дополни тельные входы для подачи «сдвигающих» импульсов. Предполо жим, что в исходном состоянии со всех триггеров снимаются нули
(двоичное число 0000) и в регистр надо ввести число 1 0 1 1 , заданное (рис. 9. 10, а) в виде соответствующей последовательности импуль сов на основном входе старшего (Т4) триггера.
Последовательность работы регистра при этом будет такая. Первый входной импульс перебрасывает Т4, на выходе которого устанавливается 1 , а возникающий при этом положительный по
тенциал не воздействует на Тз. В регистре зафиксировано число 1000. После этого поступает импульс сдвига, перебрасывающий Т4 в исходное состояние (0) и вследствие возникающего при этом
Рис. 9.10. Структурные схемы двоичного регистра (а) и счетчика
(б) на триггерах
отрицательного потенциала перебрасывающий Тз на 1. Произошел сдвиг числа на один разряд вправо и в регистре зафиксировано число 0100. Далее процесс протекает аналогично. Следующий вход ной импульс записывает 1 в Т4 (на регистре число 1100), а следую
щий импульс сдвига сдвигает это число на разряд вправо, так как сбрасывает единицы в Т4 и Тз и переносит их в Тз и Тг (на регистре число ОНО). Так как в этом случае Т3 одновременно должен и сбро
сить единицу от импульса сдвига и записать единицу от Т4, необ ходимо несколько задержать импульс от Т4. Эту функцию выпол няют линии задержки (ЛЗ), устанавливаемые между триггерами. Следующий входной импульс отсутствует и состояние регистра не меняется, а следующий импульс сдвига сдвигает записанное в нем число на разряд вправо (в регистре число ООП). Последний вход ной импульс записывает на Т4 единицу и процесс ввода заканчи вается (в регистре число 10 1 1 ).
Записанное число может быть выведено в виде параллельного кода непосредственно с триггеров, в виде последовательного кода с выхода регистра путем подачи серии импульсов сдвига в коли