IV. Цифровые вычислительные машины
То, что мы имеем в виду, говоря о цифровых вычислительных машинах, можно пояснить следующим образом. Предполагается, что эти машины могут выполнять любую операцию, которую мог бы выполнить человек-вычислитель. Мы считаем, что вычислитель придерживается определенных, раз навсегда заданных правил и не имеет права ни в чем отступать от них. Мы можем также считать, что эти правила собраны в книге, которая заменяется другой, когда вычислитель приступает к новой работе. У человека-вычислителя имеется также неограниченный запас бумаги, на которой он производит вычисления. Кроме того, он может выполнять операции сложения и умножения с помощью арифмометра – это несущественно.
Если данное выше пояснение принять за определение, то возникает угроза того, что наше рассуждение окажется движущимся в замкнутом круге. Чтобы избежать этой опасности, мы приведем перечень тех средств, с помощью которых достигается требуемый эффект. Можно считать, что цифровая вычислительная машина состоит из трех частей:
1) запоминающего устройства;
2) исполнительного устройства;
3) контролирующего устройства.
Запоминающее устройство – это склад информации. Оно соответствует бумаге, имеющейся у человека-вычислителя, независимо от того, является ли эта бумага той, на которой производятся выкладки, или той, на которой напечатана книга правил. Поскольку человек-вычислитель некоторые расчеты проводит в уме, часть запоминающего устройства машины будет соответствовать памяти вычислителя.
Исполнительное устройство – это часть машины, выполняющая разнообразные индивидуальные операции, из которых состоит вычисление. Характер этих операций изменяется от машины к машине. Обычно можно проделывать весьма громоздкие операции, например: «Умножить 3 540 675 445 на 7 076 345 687», однако на некоторых машинах можно выполнять только очень простые операции, вроде таких: «написать 0».
Мы уже упоминали, что имеющаяся у вычислителя «книга правил» заменяется в машине некоторой частью запоминающего устройства, которая в этом случае называется «таблицей команд». Обязанность контролирующего устройства – следить за тем, чтобы эти команды выполнялись безошибочно и в правильном порядке. Контролирующее устройство сконструировано так, что это происходит непременно.
Информация, хранящаяся в запоминающем устройстве, разбивается на небольшие части, которые распределяются по ячейкам памяти. Например, для некоторых машин такая ячейка может состоять из десяти десятичных цифр. Тем ячейкам, в которых хранится различная информация, в некотором определенном порядке приписывают номера. Типичная команда может гласить:
«Число, хранящееся в ячейке 6809, прибавить к числу, хранящемуся в ячейке 4302, а результат поместить в ту ячейку, где хранилось последнее из чисел».
Нет необходимости говорить о том, что если все это выразить на русском языке, то машина не выполнит такую команду. Более удобно было бы закодировать эту команду в виде, например, числа 6809430217. Здесь 17 говорит о том, какую из различных операций, которые можно выполнять с помощью данной машины, следует проделать с числами, хранящимися в указанных ячейках. В данном случае имеется в виду описанная выше операция, т. е. операция «число… прибавить к числу…». Следует заметить, что сама команда занимает 10 цифр и, таким образом, заполняет одну ячейку памяти, что весьма удобно. Обычно контролирующее устройство выбирает необходимые команды в том порядке, в котором они расположены, но иногда могут встречаться и такие команды:
«Теперь выполнить команду, хранящуюся в ячейке 5606, и продолжать оттуда»
или же:
«Если ячейка 4505 содержит 0, выполнить команду, хранящуюся в ячейке 6707, в противном случае продолжать идти по порядку».
Команды этих последних типов очень важны, так как они позволяют повторять снова и снова некоторую последовательность операций до тех пор, пока не будет выполнено определенное условие, причем для повторения данной последовательности операций не приходится прибегать к новым командам. Машина просто выполняет вновь и вновь одни и те же команды. Воспользуемся аналогией из повседневной жизни. Допустим, что мама хочет, чтобы Томми по дороге в школу заходил каждое утро к сапожнику, для того чтобы справиться, не готовы ли ее туфли. Она может каждое утро снова и снова просить его об этом. Но она может также раз и навсегда повесить в прихожей записку, которую Томми будет видеть, уходя в школу, и которая будет напоминать ему о том, чтобы он зашел за туфлями. Когда Томми принесет туфли от сапожника, мама должна разорвать записку.