ИСТОРИЯ ВТ

     Окончание. Начало см. PC Week/RE, № 1/ 2006, с. 36.

О движении карт при выполнении операций Бэббидж писал так: “Средства, которые я применил, ежедневно используются при ткачестве. Они включают систему карт с различными отверстиями, которые объединяются в массив до достижения любого требуемого объема. Два больших ящика, один из которых пустой, а другой - наполненный картами с отверстиями, располагаются спереди и сзади многогранной призмы. Эта призма прерывисто вращается на своей оси и каждый раз продвигается вперед на короткое расстояние, после чего немедленно возвращается. Карта проходит над призмой только перед каждым ходом челнока. Те карты, что прошли, падают вниз, пока не достигнут пустого ящика для сбора карт, в котором они располагаются одна над другой. При заполнении одной коробки устанавливается другая пустая коробка для приема поступающих карт, а новая полная коробка на противоположной стороне заменяет только что опустевшую. Когда число карт на входной стороне точно соответствует числу карт на выходной, они полностью уравновешивают друг друга, так что вне зависимости от рассчитываемой формулы, крайне сложной или очень простой, сила, которая должна быть приложена, всегда остается почти той же самой”.

Остается лишь сожалеть, что Бэббидж не оставил подробного описания того, как взаимодействовали между собой два уровня управления. Однако очевидно, что использование карт и жаккаровского механизма расширяли “программные” возможности Аналитической машины. Например, цикл (если пользоваться современной терминологией) реализовывался путем движения “управляющих карт” вперед или назад. Если карты продвигались вперед, то часть программы пропускалась. Если же они двигались в обратном направлении, то повторялась. Тем самым можно было повторять некоторую последовательность операций нужное число раз.

Другой пример - библиотеки подпрограмм. “За исключением цифровых карт, - писал Бэббидж, - все карты, однажды использованные и изготовленные для одной задачи, могут быть использованы для решения тех же задач с другими данными, поэтому нет необходимости готовить их во второй раз - они могут быть тщательно сохранены для будущего использования. Каждая формула требует своего массива карт, и со временем машина будет иметь собственную библиотеку”.

Часть Аналитической машины -

“мельница” и печатающее устройство (с сайта www.virtualtravelog.net)

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

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

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

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

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

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

О новом изобретении Бэббиджа стало известно не только в научных кругах его страны, но и за рубежом. В 1840 г. итальянский математик Джованни Антонио Амадео барон Плана (1781-1868), президент Туринской Академии наук, пригласил его принять участие в конференции итальянских ученых. Плана писал о том, что от многих англичан слышал об удивительной вычислительной машине, которую изобрел Бэббидж, и надеется при встрече узнать подробности этого изобретения: “До настоящего времени законодательная часть анализа была весьма мощной, исполнительная - совершенно ничтожной; ваша машина, кажется, предоставляет нам возможность управления исполнением, которую мы имели ранее только над законодательной частью” (курсив Планы. - Ю. П.). Весьма польщенный, Бэббидж собрал имеющиеся чертежи и плакаты, поясняющие действие машины, и отправился в Турин.

Впоследствии он писал: “В комнате заседания были развешаны плакаты с формулами, чертежи и различные иллюстрации, которые я привез с собой. В первый день был представлен краткий набросок идеи. Мои друзья время от времени просили объяснить те места, о которых я выразился недостаточно четко. Плана первым предложил делать заметки с целью описания принципов работы машины. Но собственные напряженные занятия заставили его отказаться от этого замысла и предложить эту задачу своему более юному другу Менабреа”. (военный инженер Луиджи Федерико граф Менабреа (1809-1806), впоследствии генерал в армии Гарибальди, а затем премьер-министр Италии, подробно законспектировал выступление докладчика, и через два года в швейцарском научном журнале Bibliotheque Universelle de Geneve появилась его статья “Очерк Аналитической машины, изобретенной Чарльзом Бэббиджем”.)

На той же конференции, отвечая на вопрос одного из видных итальянских математиков профессора Мосотти, докладчик пояснил, как выполняется операция условной передачи управления. “Он заметил, - вспоминал Бэббидж, - что вполне готов поверить в способность механизма овладеть арифметическими и даже алгебраическими соотношениями в любой нужной степени. Но добавил, что не понимает, как машина может сделать выбор, который часто необходим при Аналитическом исследовании (т. е. в процессе вычислений. - Ю. П.), когда представляются два или более путей, особенно в том случае, когда правильный путь, как это часто бывает, неизвестен до тех пор, пока не проделаны предшествующие вычисления”. В ответ Бэббидж сказал, что решение вопроса о выборе одного из двух возможных путей зависит от того, какой знак (плюс или минус) имеет некоторая вычисляемая величина. Если она отрицательна, то это значит, что из меньшего числа вычитается большее. Процесс переноса приведет в этом случае к тому, что на всех местах слева от значимых цифр появятся девятки. Движение механизма переноса, который заставил бы девятку появиться левее самого левого из существующих в машине разрядов, можно использовать для пуска любой требуемой последовательности действий.

Куратор лондонского Музея науки Дорон Суэйд у “Разностной машины 2”,

воспроизведенной к 200-летию рождения

Чарльза Бэббиджа (с сайта www.es.flinders.edu.au)

Бэббидж многократно, вплоть до июня 1852 г., пытался убедить высоких правительственных чиновников в необходимости выделить средства на постройку Аналитической машины, хотя и понимал тщетность этих попыток. В письме американскому ученому Натаниэлю Баудичу (1773-1838) он писал: “Вы можете оценить влияние такой машины (Аналитической. - Ю. П.) на будущий прогресс науки. Я же живу в стране, которая не в состоянии это понять... Я уже принес большие жертвы и готов к тому, что принесу в дальнейшем еще большие. Однако есть предел, за которым мой долг перед моими детьми требует, чтобы я остановился после завершения разработки чертежей... Они останутся, когда я уйду и когда другая страна, более просвещенная, чем моя, в будущем осознает значение моего изобретения...”.

Но мог ли ученый построить действующую Аналитическую машину, имей он необходимое финансовое обеспечение? На основе анализа чертежей машины и возможностей современной Бэббиджу техники Алан Бромли и некоторые другие историки отвечают на этот вопрос утвердительно. Доказательствами такой точки зрения (отчасти косвенными) могут служить следующие факты.

1. В 1887 г. под руководством Генри Превоста Бэббиджа была изготовлена “мельница” Аналитической машины, соединенная с печатающим устройством, и 21 января 1888 г. она вычислила и напечатала 20-значную таблицу результатов умножения числа на члены натурального ряда (от 1 до 44).

2. В 1848 г., завершив работу над документацией Аналитической машины, Бэббидж сделал полный комплект чертежей нового варианта машины для вычисления таблиц, которую назвал Разностной машиной N 2 (в ней, в частности, использовалась схема сквозного переноса). В 1991 г. английские инженеры под руководством сотрудника Лондонского научного музея Дорона Суэйда изготовили эту машину по чертежам Бэббиджа, обнаружив в них лишь две ошибки!

Видимо, не совсем прав был Норберт Винер, когда, отмечая большое значение работ британского первопроходца, писал: “он имел удивительно современные представления о вычислительных машинах, однако имевшиеся в его распоряжении технические средства намного отставали от его представлений”.

Что же нового предложил Бэббидж в 1857-1871 гг.? К сожалению, чертежи, выполненные им в этот период, и записи в рабочих тетрадях не всегда позволяют однозначно интерпретировать его новые идеи. Тем не менее многое из того, к чему пришел в своих размышлениях ученый, рассматривается его благожелательными биографами как прорыв в следующий компьютерный век. Примером может служить план Аналитической машины, помеченный 1858 г.

На нем изображена совершенно новая, матричная структура машины, в которой имеется 18 “складов”, расположенных вертикально и параллельно друг другу. Каждый “склад” содержит свой набор зубчатых реек для передачи чисел в “мельницы”, и, кроме того, имеется реечная “главная магистраль” (мы бы сказали сегодня - общая шина), которая расположена под прямым углом к “складам” и служит для обмена данными между ними, а также между “мельницами”. Еще одна группа реек связывает между собой “мельницы”. Работой всей машины управляют два “больших барабана” (Great Barrels), а для “складов” и “мельниц” предусмотрено индивидуальное управление с помощью “малых барабанов” (Small Barrels). Относящаяся к этому плану запись в рабочей тетради Бэббиджа позволяет понять его общий замысел: “Таким образом, видно, что 18 Разностных машин... могут работать одновременно”. Хотя “привязывать” идеи Бэббиджа к современной терминологии следует с большой осторожностью, в описанном плане можно увидеть прообраз матричного процессора.

Вызывает интерес и другой план Бэббиджа, относящийся к 1860 г. и показывающий, насколько близко ученый подошел к современной концепции выполнения операций над адресами памяти и командами. В соответствии с этим планом верхнее колесо каждого регистра “склада”, как обычно, отводилось для представления знака числа, но следующие шесть колес должны были хранить не число, а его адрес. Назначение оставшихся трех колес Бэббидж не определил. Может быть, он планировал использовать их для хранения команд?

Есть и другие идеи “позднего” Бэббиджа, достойные упоминания. Размышляя над тем, как увеличить быстродействие машины, он придумал новую схему вычислений, при которой перенос осуществлялся при переходе колеса не через “0”, а через “5” (он называл такой перенос “полунулевым”); предложил то, что через много лет назовут “совмещением операций”, - передачу чисел между “складом” и “мельницей” во время выполнения арифметических операций; планировал присоединить к вычислительной машине широкий круг периферийных устройств, в том числе пишущую машинку и графопостроитель, расположив их дистанционно (в соседней с машиной комнате)...

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

Аналитическая машина практического влияния на развитие ВТ не оказала, за исключением (может быть!) влияния на автора электромеханической машины ASCC Говарда Эйкена (этот вопрос будет рассмотрен в одной из следующих статей). И тем не менее вопреки тому, что было заявлено в предисловии к циклу, я не мог не посвятить первую статью трудам британского провидца*1, памятуя его слова, как бы адресованные современным компьютерщикам: “Если некто, не предостереженный моим примером, достигнет успеха в конструировании машины, воплощающей в себе целый исполнительский отдел математического анализа, я не побоюсь оставить свою репутацию на его ответственность, так как только он один сможет полностью понять характер моих усилий и ценность их результатов”.

_____

*1 Как и следующую статью о возникновении программирования в работе А. А. Лавлейс.

Версия для печати