Как идет вычисление на электронной машине
А. Д. Смирнов
В предыдущих параграфах мы разобрали по частям процессы, происходящие в отдельных устройствах машины во время счета. Проследим теперь еще раз более подробно, как будут взаимодействовать части машины при выполнении последних команд рассмотренной нами в предыдущем параграфе программы извлечения квадратного корня.
Для конкретности возьмем машину с оперативным запоминающим устройством на магнитном барабане (рис. 31). В устройстве управления, как мы уже говорили, имеется счетчик команд; после каждого оборота барабана (такта машины) в счетчик добавляется единица. Число из счетчика команд передается в другой счетчик — блок адреса команд, сокращенно БАК (на рис. 31 он расположен слева). Барабан вращается со скоростью 100 оборотов в секунду. В обмотках магнитных головок возникают импульсы от пробегающих под ними намагниченных участков, но клапаны 1, 2, 3 не пропускают эти импульсы дальше.
До рассматриваемого момента программа, составленная математиком, была пробита на ленте, введена в машину; машина сама перевела числа из десятично-двоичной системы в двоичную и выполнила команды из ячеек 19-24, т. е. произвела все действия, необходимые для нахождения следующего очередного уточнения значения корня. Остается найденное новое значение записать в ячейку барабана, сравнить его с предыдущим значением и в зависимости от результата сравнения или повторить уточнение, или отпечатать результат.
На устройство, называемое регистром команд (рис. 31), выбралась команда из ячейки 25 со следующим содержанием: 16 12. На счетчике команд стоит число 25 — номер ячейки, из которой команда выбралась. Из регистра команд команда 16 12 направилась по двум направлениям. Шифр операции 16, означающий запись числа из сумматора на барабан, попал на дешифратор устройства управления и подготавливает управляющие импульсы, а адрес ячейки, в которую надо записать число, попал в счетчик, называемый блоком адреса числа (сокращенно БАЧ) и в счетчике БАЧ стало число 12.
В счетчике команд к числу 25 прибавилась единица, и полученное число 26 передалось в блок адреса команд (БАК). Магнитный барабан закончил оборот и начал следующий, т. е. начался следующий такт работы машины.
При прохождении риски каждой ячейки под головкой “Серия” возникает импульс, благодаря которому вычитается единица из счетчиков БАК и БАЧ. В тот момент, когда под головками пойдет ячейка 12, счетчик БАЧ досчитает до нуля. В нулевом положении счетчик посылает импульс управления в клапан записи и в клапан 2. Но выше клапана 2 стоит еще клапан 3, управляющийся дешифратором. Поскольку идет операция записи, этот клапан закрыт и по линии от головок к регистру АУ через открытый клапан 2 ничего не пройдет. По линии же от сумматора через открытый дешифратором клапан 4 и через открывшийся в момент прохождения ячейки клапан записи импульсы, идущие из сумматора, пройдут в магнитные головки и запишутся на барабане в ячейке 12. После этого клапан записи закроется и дальнейшего поступления импульсов не будет. Барабан продолжает вращаться, единицы продолжают вычитаться из счетчиков БАК и БАЧ. Вот под головками оказалась ячейка 26. Теперь уже счетчик БАК оказался в нулевом положении и открыл клапан 1, через него и через открытый уже клапан 3 на регистр команд выбралось содержимое ячейки 26, т. е. 14 13.
Такт работы закончился, команда 16 12 выполнилась, в БАЧ перешло число 13, на дешифраторе стоит шифр 14 — операции сравнения, а на счетчике команд стало после прибавления единицы число 27 и передалось в БАК, машина подготовилась к выполнению очередной команды — сравнению.
При следующем обороте барабана картина повторится: при прохождении ячейки 13 под головками в нулевое положение встанет БАЧ, откроет клапан 2 (клапан 3 при операции сравнения все время открыт). Число из ячейки 13 попадет в арифметическое устройство и сравнится с числом в сумматоре. Так как мы делаем только первое приближение, то в сумматоре стоит 2,80148, а в ячейке 13 — число 3,5. Поэтому выработается сигнал несравнения ω. При проходе под головками ячейки 27 в нулевое положение встанет счетчик БАК и на регистр команды занесется команда 21 19, т. е. команда условного перехода.
В следующем такте эта команда должна выполниться. Поскольку в предыдущем такте из-за несравнения выработался признак ω, этим импульсом очистится счетчик команд, а затем через клапан Е, открывающийся только одновременным приходом импульсов ω и E1, в счетчик команд попадет адресная часть команды условного перехода, т. е. 19. В БАК занесется не номер следующей ячейки — 28, а число 19. И при прохождении этой ячейки под головками ее содержимое выберется на регистр команд, т. е. там будет 02 12: машина вернулась к выполнению первой команды нового цикла.
При этом описании один такт работы машины выглядит очень громоздким и долгим, в натуре же он выполняется за 1/100 секунды. А на более быстродействующих машинах время выполнения одной операции исчисляется уже десятитысячными долями секунды.
Глава из книги “Современные математические машины”, М., 1959 г., стр. 85.
Перепечатывается с разрешения автора.