Файл: Трахтенброт, Б. А. Алгоритмы и вычислительные автоматы.pdf

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

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

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

Добавлен: 19.10.2024

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

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

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

трическне сигналы, изображающие выходные данные. Вход­ ные сигналы поступают в арифметический блок из ячеек па­ мяти, где они хранились, а выходной сигнал отправляется из него в ту ячейку, в которой он будет храниться. Схема­ тически это изображено на рис. 10, б, где числа из ячеек 11 и 12 складываются, а результат отправляется в ячейку 15. Для того чтобы такая операция была осуществлена в ма­ шине в некотором такте, необходимо, чтобы к началу этого такта были произведены соединения ячеек 11 н 12 с ариф­ метическим блоком и арифметического блока с ячейкой 15;

также необходимо, чтобы

арифмометр был включен на нуж­

ную операцию (в данном

случае на сложение). Все это вхо­

дит уже в «компетенцию»

блока управления.

3. Б л о к у п р а в л е н и я предназначен для выпол­ нения функций, которые в схеме рис. 10, а выполняет сам

вычислитель. Именно,

на каждом этапе

работы

машины

у п р а в л я ю щ е е

у с т р о й с т в о

создает

условия

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

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

ляет собой

определенную комбинацию команд и некоторых

вспомогательных

чисел (параметров), которые помещаются

в ячейки

«памяти».

Например, в вычислительной

машине

М-20 принята

так

называемая трехадресная

система

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

четырех

чисел: сфуб,

из которых

первое указывает н о-

м е р предписываемой

операции,

последующие

два — ад­

р е с а

двух

ячеек, над содержимым

которых

совершает­

ся операция,

а последнее — а д р е с

ячейки,

в которую

следует

поместить результат (всего три адреса)*).

*) В машине БЭСМ-6 и в машинах серии «Урал» принята одно­ адресная система; в машинах серии «Минск» — двухадресная.

50


Практически каждая команда записывается в одной ячейке в виде одного числа, цифры которого разбиваются на четыре группы, имеющие соответствующие назначения. Например, на рис. 10, б в ячейке 1 запоминающего устрой­ ства записано число 1 11 12 15, которое представляет собой следующий зашифрованный приказ:

«Сложить (операция № 1) числа из ячек 11, 12 и резуль­ тат отправить в ячейку 15».

(Здесь принято разделение на группы справа налево по два разряда. Для определенности мы будем и дальше при­ держиваться такого метода записи команд.)

Обычно система команд насчитывает несколько десятков команд (хотя наблюдается общая тенденция к увеличению

их числа

и разнообразия

до сотен, а в отдельных

случаях

до тысяч команд). Укажем самые употребительные.

1. А р и ф м е т и ч е с к и е

к о м а н д ы :

 

а) 1 Руб — с л о ж и т ь

число из

р с числом из у

и сумму

б) 2 Руб

отправить в б;

 

 

 

 

 

 

— в ы ч е с т ь

из числа, хранящегося в Р, число

 

из у и разность отправить в б;

 

в) 3 Руб у м н о ж и т ь

 

число из

Р

на число из у и про­

 

изведение отправить в б;

 

 

 

г) 4 Руб — р а з д е л и т ь

 

число из р на число из у и част­

 

ное отправить

в б.

 

 

 

 

П. К о м а н д ы

п е р е д а ч и

 

у п р а в л е н и я :

д) 5 00 00 б — переходить

 

к команде, хранящейся в б

 

(безусловная

передача

управления);

 

е) 5 01 уб — переходить к

команде,

хранящейся

в б, при

 

условии,

что

в ячейке

у

хранится

положи­

 

тельное число;

 

 

 

 

 

ж) 5 02 у б — переходить

к команде, хранящейся в б, при

 

условии, что в ячейке у хранится отрицатель­

 

ное число.

 

 

 

 

 

 

I I I .

К о м а н д а

о с т а н о в к и: 0 00 00 00.

 

Кроме перечисленных команд имеются еще и команды

так называемых логических

 

операций

и другие, на

которых

мы здесь

останавливаться

не будем. Перечисленных команд

вполне достаточно

для составления из них самых разнооб­

разных программ;

некоторые примеры будут рассмотрены

в следующем

параграфе.

Команды

е ж называются условными; они принима­

ются к исполнению лишь в том случае, если выполнено со-

51


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

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

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

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

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

§ 6. ПРОГРАММА (МАШИННЫЙ АЛГОРИТМ)

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

52

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

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

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

п5.3).

6.1.Программа для линейных уравнений. П р и м е р 1. Запрограммируем решение системы уравнений

ах - f by =

о,

dx + еу =

f.

Примем для определенности,

что коэффициенты а,Ь,

с, d, е, f помещены подряд в ячейки памяти, начиная с номе­ ра 51:

Адрес

Содержимое

Адрео

Содержимое

51

а

54

d

52

Ь

55

е

53

с

56

/

Далее для промежуточных и окончательных результатов вычислений отведем ячейки 31—50.

Как видно из формул

х =

се—fb

af — cd

,

— ,

У = -

 

ае—bd

ае—bd

 

для получения результата нужно совершить последователь­ но 6 умножений, три вычитания и два деления. В соответ­ ствии с этим предлагаемая нами программа состоит из 12

команд, записанных

в ячейках

1—12:

 

 

 

 

Адрес

Содержимое

Адрео

Содержимое

 

(команды)

 

(команды)

1

3

53

55

31

7

2

31

32

37

2

3

56

52

32

8

2

33

34

38

3

3

51

55

33

9

2

35

36

39

4

3

53

54

34

10

4

37

39

40

5

3

51

55

35

11

4

38

39

41

6

3

52

54

36

12

0

00

00

00

53


Команды поступают в блок управления и выполняются в порядке возрастания их адресов. После выполнения по­ следней команды в ячейках 31—41 приняты на хранение следующие числа:

Адрео

Содержимое

Адрео

Содержимое

31

се

37

се —/6

32

fb

38

af — cd

33

at

39

ае — bd

 

се—lb

34

cd

40

ае — bd

35

ае

 

 

af—cd

36

bd

41

ае — bd

 

 

 

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

6.2. Повторение.

П р и м е р

2.

Пусть требуется най­

ти решения п заданных систем уравнений:

atx+biy

= ct

. =

1 ) 2

п

dtx+

ely = ii

 

 

 

Разрешающий алгоритм представляет собой «-кратное

повторение алгоритма решения

одной системы такого вида,

и соответствующую программу для машины можно было бы легко составить по указанному выше образцу так, чтобы 6/г коэффициентов располагались в б/z ячейках памяти, и чтобы программа насчитывала lln + 1 команд.

После того, как первый цикл из 11 команд выработает решение первой системы, второй цикл из И команд выра­ ботает решение второй системы и так дальше п раз, (11/г -f- + 1)-й командой является команда остановки.

Однако такое значительное увеличение объема програм­ мы нецелесообразно и его можно избежать. Для этого за­ метим, что каждый последующий цикл из 11 команд может быть получен из предыдущего путем изменения адресов, участвующих в командах. Именно, если 6/z коэффициентов расположены по одному в ячейках, следующих подряд одна за другой, например, начиная с № 51, то в первых шести командах адреса множителей должны быть увеличены каж­ дый на 6, для того чтобы получить соответствующие коман­ ды второго цикла.

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

54