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

книги / Элементы автоматики и счетно-решающие устройства

..pdf
Скачиваний:
2
Добавлен:
20.11.2023
Размер:
13.63 Mб
Скачать

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

Легко подсчитать, чему должна быть равна емкость ячеек за­ поминающего устройства. Если код операции записывается двоич­ ным числом с максимальным числом разрядов 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 ).

Записанное число может быть выведено в виде параллельного кода непосредственно с триггеров, в виде последовательного кода с выхода регистра путем подачи серии импульсов сдвига в коли­

Соседние файлы в папке книги