Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
История информационных технологий I.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
8.02 Mб
Скачать

13.6.Равнодоступная адресная машина

Машина с произвольным доступом к памяти (или, иначе, рав­нодоступная адресная машина — сокращенно РАМ) является усовершенствованием машины Тьюринга по следующим направлениям.

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

Состояние машины определяется содержимым регистров оперативной памяти. Смена состояния – изменение содержимого одного (любого) регистра.

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

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

Оперативная память состоит из последовательности регистров r0 r1, . . ., ri . . , каждый из которых способен хранить произвольное натуральное число. Как сказано выше, после доступа к ячейке ri возможен доступ к ячейке rj (произвольный доступ).

Рис. 52. Машина с произвольным доступом к памяти (РАМ)

_|Программа для РАМ (или РАМ-программа) хранится в отдельной памяти. Поэтому предполагается, что программа не может изменять сама себя. Программа является, в сущности, последовательностью (возможно) помеченных команд. Мы пред­полагаем, что имеются арифметические команды, команды ввода-вывода, и команды разветвления. Все вычисления производятся в первом регистре r0, называемом сумматором, который, как и всякий другой регистр памяти, может хранить произвольное натуральное число. Пример набора команд для РАМ показан в нижеследующей таблице. Каждая команда состоит из двух частей — кода операции и адреса регистра памяти. Если a – адрес регистра памяти, то a* - содержимое этого регистра.

Команда

Действие

1

LOAD a

r0a*

2

STORE i

rir0*

3

ADD a

r0ro*+a*

4

SUB a

r0ro*-a*

5

MULT a

r0ro*a*

6

DIV a

r0ro*/a*

7

READ i

riвходной символ, входная лента сдвигается на ячейку влево.

8

WRITE a

a* печатается в доступной ячейке, выходная лента сдвигается на ячейку влево.

9

JAMP b

В счетчик команд засылается адрес b

10

JGTZ b

Если r0*>0, то в счетчик команд засылается адрес b

11

JZERO b

Если r0*=0, то в счетчик команд засылается адрес b

12

HALT

Останов

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

Можно показать, что РАМ может вычислять в точности частично рекурсивные функции.

Поскольку РАМ-программа хранится в отдельной памяти, она не может изменять сама себя. Хранение программы в оперативной памяти (наряду с данными) превращает РАМ в равнодоступную адресную машину с хранимой программой (РАСП). Такая машина изображена на рис ?.

Рис. 53. Машина с хранимой программой (РАСП)

Можно доказать [], что модель вычисления в виде РАСП эквивалентна машине Тьюринга по своим вычислительным возможностям. Но замена управляющей таблицы (автоматное программирование) на программу (лингвистическое программирование) делает ее более пригодной для массового решения прикладных программ. Это объясняет тот факт, что не только первые, но и современные компьютеры реализуют, по сути дела, модель вычисления РАСП.

[А. Ахо, Дж. Хопкрофт, Дж. Ульман. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979]