Борис Малиновский - История вычислительной техники в лицах
3). Должно быть устройство для введения в машину чисел в виде таблицы.
Чтение таблицы и, если нужно, интерполирование может производиться основными узлами машины или с помощью отдельного интерполятора. Применение отдельного интерполятора увеличивает скорость работы машины, упрощает программирование и уменьшает необходимую емкость памяти.
4). Быстродействующая цифровая вычислительная машина должна иметь орган для управления выбором устройств, участвующих в операции, и последовательностью вычислительных операций, в соответствии с планом решения данной задачи. Скорость управления должна быть одного порядка со скоростью выполнения арифметических операций.
Орган управления должен выбирать по ходу вычисления (применяя соответствующий критерий) между двумя или более различными последовательностями действия и проводить операцию в соответствии с результатом выбора.
Для этого должно быть устройство, определяющее знак числа, а также равенство и неравенство двух чисел.
6). Машина должна иметь входное и выходное устройство для ввода числовых данных и для выпуска результатов вычислений.
Входное и выходное устройство должны работать со скоростью органа управления.
7). Наконец, цифровая вычислительная машина должна иметь средство для «переноса» чисел между различными частями машины и для передачи программных сигналов.
АЦВМ состоит из следующих основных элементов:
1). Входного блока, содержащего клавиатуру для записи входных числовых данных и устройство для приготовления программной ленты и автоматического перевода входных данных из десятичной системы в двоичную систему счисления.
2). Главного программного датчика, управляющего работой всей машины. Главный программный датчик, в соответствии с планом решения данной задачи записанном по определенному (двоичному) коду, на программную ленту, выбирает отдельные узлы машины, участвующие в данной операции, управляет последовательностью и видами вычислительных операций.
3). Определителя знака, равенства и неравенства двух чисел, дающего возможность главному программному датчику выбирать по ходу вычисления между двумя или более различными последовательностями операций и проводить их в зависимости от результата, доставляемого определителем.
4). Двух сумматоров.
5). Умножителя.
6). Делителя.
7). Накопителя «для хранения» числовых данных, промежуточных результатов вычислений и т. д.
8). Интерполятора для автоматического вычисления промежуточных значений функции, заданной таблицей для небольшого числа дискретных значений аргумента.
Интерполятор содержит устройство для автоматического набора таблицы.
9). Выходного устройства для записи результатов вычислений на ленту (в двоичном представлении).
10). Устройства для перевода результатов вычислений из двоичной системы в десятичную и печатания их на бумаге.
11). Цифровых и программных магистралей для связей между элементами машины и передачи программных сигналов.
Рис. № 1.
Блок-схема АЦВМ показана на рис. № 1.
План (программа) решения задачи в виде определенной последовательности действий над числами с помощью входного устройства записывается на программную ленту по логической схеме: «откуда» — «куда» — «что делать». Это соответствует вычислительной схеме при численном (разностном) методе решения задачи.
Для того чтобы машина могла работать по такой схеме, все ее элементы имеют, общую структуру входных и выходных цепей, показанную на рис. 2. (Рисунок опущен. — Прим. авт.).
Все цифры числа (и знак числа) от одного элемента машины к другому переходят одновременно. Через всю машину проходит одна цифровая магистраль (33 линии для цифр и одна для знака), к которой через «клапанные» устройства подключены цифровые входы и выходы всех элементов машины.
Клапанные устройства управляются главным программным датчиком; выбор их производится с помощью дешифраторов программного сигнала, подключенных к программной магистрали, проходящей также через всю машину. Каждому дешифратору присвоено число, двоичное представление которого является ключом для данного дешифратора. Таким образом, если на программной ленте в полосе «откуда» записан номер (ключ) дешифратора выхода умножителя, а в полосе «куда» — номер дешифратора входа сумматора № 1, то число из умножителя перейдет в сумматор. В полосе программной ленты «что делать» указывается действие, которое должно быть произведено в данном элементе машины (например, принять, передать, «стереть», умножить и т. д.). На программной ленте, кроме номеров дешифраторов и командных сигналов, наносится в каждой строке (для каждого такта) пусковой сигнал, запускающий элементы машины, участвующие в вычислении в данном такте и в тех тактах программы, где это необходимо, в полосе «цифры» записываются входные данные, заранее переведенные в двоичную систему.
Входное устройство, служащее для приготовления программной ленты, является переходным устройством между человеком-оператором и машиной и принципиально может работать только на небольших скоростях. Поэтому оно отделено от быстродействующей машины. Программная лента для решения данной задачи приготовляется заранее. Для устранения разрыва между производительностью машины и входного устройства можно предусмотреть несколько входных (приготовительных) устройств для одновременной подготовки к решению нескольких задач. Программная лента при использовании в машине практически не изнашивается и поэтому может быть сохранена для повторного использования при решении аналогичной задачи. В этом случае входные данные должны быть переписаны. При многократном повторении одной и той же последовательности вычислений программная лента может быть склеена в кольцо.
В машине возможен и другой способ введения числовых данных. Числа записываются не на программной ленте, а на специальной «числовой» ленте.
При этом способе числовые данные читаются с небольшого (по емкости) накопителя, который постоянно пополняется с «числовой» ленты при получении сигнала от главного программного датчика. Этот способ применяется и в устройстве для набора таблицы.
Программная лента, приготовленная по указанной выше логической схеме, закладывается в главный программный датчик, который «читает» программную ленту и, в соответствии с записью на ней, выбирает отдельные элементы машины, участвующие в данной операции, управляет последовательностью и видами отдельных операций.
Необходимо отметить, что хотя управление машиной полностью централизовано, главный программный датчик выбирает отдельный элемент машины и дает команду для начала операций. Сама операция проводится автоматически и независимо от главного программного датчика с помощью автономного программного датчика данного элемента. Например, главный программный датчик выбирает умножитель и дает сигнал «умножить». С этого момента местный программный датчик умножителя управляет последовательным сложением частичных произведений столько раз, сколько цифр в множителе, сдвигая частичное произведение каждый раз на один разряд влево. Самостоятельный цикл вычислений отдельных элементов заканчивается к началу следующего такта программы (за исключением интерполятора). Одновременно (в один и тот же такт) может работать только один элемент машины (за исключением интерполятора). АЦВМ работает вынужденными тактами, длительность которых целиком определяется скоростью движения программной ленты. Таким образом, скорость машины легко регулируется от очень малых значений до предельной, определяемой скоростью выполнения арифметических операций и достигающей 2000 тактов в секунду.
В тех случаях, когда необходимо в зависимости от знака или величины модуля промежуточного результата вычисления изменить ход решения задачи, на программной ленте наносятся оба или более ходов решения и в полосе «что делать» отмечается, в каком случае данный ход решения не должен быть использован («если*», «если*», «если+»). В определитель знака равенства и неравенства двух чисел посылается число, с которым сравнивается промежуточный результат, и сам промежуточный результат.
В зависимости от результата, полученного на выходе определителя, будет выбран необходимый ход решения.
В АЦВМ для каждой арифметической операции (кроме вычитания) и для интерполирования применяется отдельное устройство. Это значительно упрощает программирование, увеличивает скорость работы машины и сокращает необходимую емкость накопителя.
В машине применены два сумматора, один из которых может быть использован в качестве накапливающего для суммирования рядов.