АНАЛИТИЧЕСКАЯ МАШИНА

Разностная машина Бэббиджа отличалась от пред­шествовавших тем, что в процессе вычислений не требо­вала вмешательства человека. Это был, конечно, шаг вперед по сравнению с простыми суммирующими устрой­ствами, но и разностная машина обладала ограниченны­ми возможностями. Она, пользуясь современной терми­нологией, представляла собой специализированное вы­числительное устройство с фиксированной программой действий: установив в регистрах машины некоторые исходные данные, можно было табулировать многочлен одного вида. Чтобы перейти к вычислению другой функ­ции, необходимо вмешательство человека — он должен ввести в регистры новые исходные данные. Кроме того, «арифметические способности» разностной машины, как мы помним, были невелики, она могла выполнять толь­ко одно действие — сложение.

А нельзя ли создать машину, которая была бы уни­версальным вычислителем, то есть выполняла бы все действия без вмешательства человека и в зависимости от полученного на определенном этапе решения резуль­тата сама выбирала дальнейший путь вычислений?

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

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

Развивая эту идею, Бэббидж пришел к мысли о воз­можности создания других способов и устройств для

* «Машина, съедающая собственный хвост»,—говорил о такой конструкции сам изобретатель.


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

Аналитическая машина имела следующие составные части:

1) «склад» для хранения чисел (по современной тер­минологии «накопитель», или «запоминающее устрой­ство», «память»);

2) «мельницу» — для производства арифметических действий над числами («арифметическое устройство») ;

3) устройство, управляющее в определенной последо­вательности операциями машины * (сейчас — «устрой­ство управления»);

4) устройства ввода и вывода данных.

Для хранения чисел Бэббидж предложил использо­вать регистры из десятичных счетных колес. Каждое из колес могло останавливаться в одном из 10 положений и таким образом «запоминать» один десятичный знак.

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

Бэббидж считал, что запоминающее устройство долж­но иметь емкость в 1000 чисел по 50 десятичных знаков «для того, чтобы иметь некоторый запас по отношению к наибольшему числу, которое может потребоваться». Для сравнения укажем, что запоминающее устройство одной из первых английских ЭВМ (EDSAC) имело объем 2НСГ десятиразрядных чисел.

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

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

Бэббидж не дал ему названия.


переноса. Он придумал более 20 (I) вариантов его ис­полнения, пока не понял, что для кардинального ускоре­ния -процесса необходим совершенно новый принцип.

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

Во время фазы сложения импульсы, представляющие добавляемое слагаемое, прикладываются ко входным зажимам счетных колес Ci—€4 регистра, в котором на­ходится второе слагаемое. Двухпозиционные ключи Si— Sz замыкаются, если соответствующие колеса (Ci—Сз) проходятот 9 к 0. В следующей фазе импульсы перено­са последовательно прикладываются к проводникам 1, 2 и 3; если ключи замкнуты, то они перемещают колеса Ci, Са и Сз соответственно на одну позицию каждое. За­метим, что между импульсами переноса должно оста­ваться определенное время для переключения; если со­ответствующее колесо передвинулось в этой фазе от 9 к 0 (рис. 62).

В схеме сквозного переноса, разработанной Бэбби-джем, перенос во всех разрядах происходит одновремен­но. В этой схеме переключатели нормально находятся в нейтральном положении."Если соответствующее колесо переходит от 9 к 0, то замыкается верхний контакт; если оно оказывается в положении 9, то — нижний, а во всех остальных случаях переключатель остается в нейтраль­ном положении. Единственный импульс, приложенный к линии переноса, производит одновременный перенос во всех разрядах (рис. 63).

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

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

Бэббидж предполагал указывать алгебраический знак числа особым зубчатым колесом, не соединенным с другими колесами устройством переноса и располо-


женным над регистром. Если это колесо показывало чет­ное число, то знак должен был считаться положитель­ным, в случае нечетного числа — отрицательным. .

При умножении знак образовывался сложением, при делении — вычитанием чисел на знаковых колесах.

Умножение и деление в аналитической машине вы­полнялись последовательными сложениями и вычитания­ми соответственно. Каждому сложению соответствовал поворот очередного колеса регистра множителя в нуле­вое положение. Когда в некотором разряде это положе­ние достигалось, кулачок, расположенный на колесе, тол­кал рычаг, который разрывал «цепь сложения» и полу­чалась «цепь сдвига» частичной суммы на один разряд, а затем снова восстанавливал «цепь сложения».

Время на производство арифметических операций оценивалось Бэббиджем так: сложение или вычитание — 1 секунда: умножение (двух 50-разрядных чисел) — 1 минута; деление (100-разрядное число на 50-разряд­ное) — 1 минута.

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

Ткань представляет собой переплетение взаимно пер­пендикулярных нитей. Нити основы (продольные) про­деты через глазки — отверстия в проволочных петлях. При самом простом переплетении петли через одну под­нимаются, соответственно приподнимая продетые через них нити основы. Между поднятыми и оставшимися на месте нитями образуется промежуток, в который челнок протягивает за собой нить утка (поперечную), после чего поднятые петли опускаются, остальные поднимаются. Ес­ли нужен более сложный узор, переплетения петли сле­дует приподнимать в различных других комбинациях.

Сын лионского ткача Жаккар после настойчивой 30-летней работы изобрел в 1801 году механизм, позво­лявший автоматизировать движения петель в соответ­ствии с заданным законом с помощью набора картонных карт с пробитыми в них отверстиями — перфокарт. В станке Жаккара глазки связаны с длинными иглами, упирающимися в перфокарту. Встречая отверстие, иглы продвигаются, в результате чего связанные с ними глаз­ки будут приподниматься. Иглы, упирающиеся в карты


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

Идея Бэббиджа заключалась в том, чтобы заставить два жаккаровских механизма с цепочкой карт в каждом управлять действиями машины.

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

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

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

Бэббидж довольно подробно рассматривал вопросы, связанные, как мы сейчас говорим, с программированием. В частности, им была разработана весьма важная в'про-граммировании идея «условной передачи управления».

Один из видных итальянских математиков того вре-' мени, профессор Мосотти обратился к Бэббиджу во вре­мя его пребывания в Италии по поводу следующего затруднения. «Он заметил, что теперь вполне готов пове­рить в способность механизма овладеть арифметически­ми и даже алгебраическими соотношениями в любой нужной степени. Но он добавил, что не может понять,


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

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

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

В аналитической машине предусматривались три раз­личных способа вывода полученных результатов: печа­тание одной или двух копий, изготовление стереотипного отпечатка, пробивки на перфокартах.

Аналитическая машина не была построена. Но Бэб­бидж сделал более 200 чертежей ее .различных узлов и около 30 вариантов общей компоновки машины. При этом было. использовано более 4 тысяч «механических обозначений»!