Согласно чертежам Бэббиджа машина должна была состоять из следующих частей:
1. Склад — жесткий диск, память; 2. Мельница — процессор; 3. Паровой двигатель — блок питания; 4. Принтер — принтер; 5. Карты операций — программы; 6. Карты переменных — система адресации; 7. Числовые карты — для ввода чисел; 8. Управляющие барабаны — микропрограммы.
Самовычисляющая машина
В этой статье мы попробуем выяснить устройство Аналитической Машины, но для начала следует отметить, что она принадлежала к распространенному с 1740-х годов семейству «автоматических» (само-) механизмов.
И хотя Бэббидж избегал использования этого понятия, в новостях и изданиях ее описывали именно так:
За завтраком я имела удовольствие сидеть рядом с мистером Бэббиджем, известным в наших кругах изобретателем самовычисляющей машины. Взгляд его кажется столь проницательным, будто он видит науку — или любой другой предмет, ставший объектом его внимания, — насквозь.Центробежный регулятор — первый из «самодействующих» механизмов индустриальной эпохи. Кстати, именно он является одной из самых узнаваемых частей парового двигателя.
Эди Седжвик, 1841 г.
При разгоне двигателя шары отклоняются от оси под воздействием центробежной силы, из-за этого муфта сдвигается и ограничивает приток пара, а машина замедляет ход. Замедление машины опускает шары и этим открывает клапан — открывается приток пара, цикл замкнулся.
Сама же конструкция Разностной машины была схожа с арифмометрами, и, как арифмометры, Машина состояла из длинной череды зубчатых колес, которые складывают числа, а потом выдают сумму.
Где-то в 1834 году Бэббидж усовершенствовал конструкцию, и благодаря возврату суммы обратно в машину стали доступны более сложные вычисления.
Работа Аналитической машины основывалась именно на «пожирании своего хвоста», и работала система благодаря сложной цепи шестерней, которые управлялись перфокартами и барабанами, вычисляя суммы и отправляя результаты на склад, который состоял из ряда зубчатых колес.
Примерно все взаимодействовало так:
- Карты операций (А) указывают картам переменных (В), что нужно запросить числа для расчетов;
- Числа вводятся с числовых карт (С) или со склада (D) и поочередно поступают на ось ввода (Е);
- Ось ввода передает числа на центральные колеса (F);
- Карта операции дает команду сложения чисел или умножения или иную, а барабаны (G) поворачиваются до положения, в котором их штифты будут соответствовать операции.
- Барабаны активируют рычаги, соединяя шестерни мельницы (H) с центральными колесами. А уже в мельнице определенные устройства отвечают за сложение, умножение и иные действия;
- Шестерни выполняют умножение исходных чисел;
- Мельница при необходимости может зацикливать действия, передавая команды на разные участки перфокарты;
- Результат попадает на ось вывода (I).
- Ось вывода передает данные на принтер (D) или отправляет на склад согласно картам переменных;
- Карты операций подают команду на подачу звонка (J) и на остановку Машины. Всё!
Память: склад
Любому компьютеру, паровому или электронному, необходима возможность хранения данных. В изобретении Бэббиджа он назывался складом, и, как практически вся машина, он состоял из зубчатых колес, расположенных в высоких столбцах. На каждом из столбцов хранилось только одно число не длиннее пятидесяти цифр, а верхнее колесо определяло положительно число или отрицательно.
Согласно моим оценкам, пройдет немало времени, прежде чем эти ограничения перестанут удовлетворять нуждам науки.На чертежах Бэббиджа склад состоял из двух параллельных рядов высоких числовых столбцов, и в каждом из них хранилось одно число. Одна из сторон склада сообщалась с мельницей.
Чарльз Бэббидж
Кроме зубчатых колес числа могли храниться на числовых картах в виде комбинаций отверстий:
На своих схемах Чарльз изображал ряд столбцов уходящим за край листа и не указывал конечное количество чисел, которые могла бы запоминать заключительная версия Машины.
Рейки и карты переменных для передачи данных
Для передачи чисел со склада в Машину Бэббидж использовал
Колеса склада А подключено к рейке В с помощью шестеренки. Обнуляясь, колесо слада поворачивает ось ввода до позиции переданного числа.
Для передачи числа с дальнего конца склада требовалась зубчатая рейка длинной в несколько метров.
На картах переменных нанесены адреса на складе, с которых производится выборка чисел. Эти же карты могут быть запрограммированы на получение значений с числовых карт.
Каждый адрес нанесен на карты переменных в виде отверстий, и их сочетание переключает определенные рычаги:
При отсутствии отверстия на перфокарте рычаг не задействован, но как только отверстие появлялось, рычаг соединял шестеренку со скобой. И шестеренка, поднимаясь вместе со скобой, соединяла колесо ввода с зубчатой рейкой.
Мельница вычислений
После попадания чисел в мельницу начинается главная часть работы Машины — арифметические действия, выполняемые снова и снова.
Бэббиджем были разработаны отдельные узлы сложения, вычитания, умножения и деления, а также один из любимых его механизмов — перенос с предварением.
В своих публикациях Бэббидж очеловечивал Машину и про «сквозной перенос» писал:
В случае сквозного переноса Машина способна предвидеть и действовать в соответствии с предвидением.Конечно, до переноса числа необходимо было сложить, и происходило это примерно так:
Чарльз Бэббидж
Колесо А обнуляется и на нем задается первое число. Второе число задается на колесе В, которое в сцепке с колесом А. Обнуление первого колеса прибавляет число, которое там содержалось, к значению на колесе В.
Возьмем для примера:
Вспомним школьную арифметику, а именно сложение в столбик и перенос единиц. Если расположить цифры обоих чисел по столбцам, как это сделано в Машине, и складывать их по разрядам, то в первом случае не будет переноса, во втором будет перенесена единица, а в третьем сумма будет равна 9, но перенесенная ранее единица инициирует перенос.
Когда Разностная машина работает, можно наблюдать волнообразные движения рычажков переноса в задней части Машины. Волны происходят из-за последовательных переносов единиц снизу вверх с проверкой инициации новых переносов.
Эта штука переносит единицу снизу вверх по одной!
Программы
В то время программ не существовало, ну точнее они уже были придуманы, но тогда они назывались картами операций и выглядели примерно так:
Карта операций
Программами занималась Ада Лавлейс, и, как истинные аристократы, они отдавали приказы барабанам и картам переменных не контактируя с рабочими механизмами. Даже простое сложение задействовало множество деталей, и при помощи большого барабана один рычаг мог задавать любое значение для восьмидесяти других рычагов.
Согласно отверстиям на картах барабан поворачивается к рычагам разными секциями, которые содержат определенный шифр и задействуют разные наборы рычагов.
И хотя барабаны напоминают валики шарманок, действуют они иначе. Вместо непрерывного вращения барабан поворачивается до определенной позиции и затем двигается вперед, толкая и активируя набор необходимых рычагов.
Карты операций управляют и барабанами, и картами переменных, и выглядят примерно так:
Перфокарты
Первой системой, построенной на перфокартах, был жаккардов станок, и именно им вдохновлялся Бэббидж.
Карта Жаккара, 1850 г.
Принцип их работы прост и гениален одновременно: удерживающий перфокарты рычаг опускается, прижимая карту к набору подпружиненных горизонтальных штырьков. Если под штырьком отсутствует отверстие, то карта сдвигает штырек и наклоняет стержень с крючком так, что он цепляется за штифт. Затем штифты движутся вверх вместе с зацепившимися за них крючками.
Логика и циклы
Перфокарты и шестеренки — это великолепно, но не они делают Разностную машину компьютером. Из устройства для обсчета десятичной арифметики Машина превращается в компьютер благодаря небольшой детали — условному рычагу.
Этот рычаг автоматически опускается, если результат вычислений требует дальнейших действий со стороны программы. И если на определенной позиции барабана стоит штифт, а затем рычаг опускается — запускается новый цикл вычислений.
Таким образом, условный рычаг замыкает цикл, и Машина «поедает собственный хвост»: перфокарты управляют барабанами, барабаны Машиной, Машина барабанами, а барабаны перфокартами.
На этом я закончу сегодняшнюю статью. Если у вас есть какие-то дополнения, то я буду рад обсуждениям в комментариях.
Всем хорошего дня и точных вычислений!
Литература:
«Невероятные приключения Лавлейс и Бэббиджа.
Автор: Сидни Падуа
Издательство: Манн, Иванов и Фербер, 2017 г.
ISBN: 978-5-00100-943-6
Комментарии (63)
tormozedison
15.11.2017 06:41Интересно, а если бы машину построили, какая бы у неё получилась наработка на отказ?
super-guest
15.11.2017 07:07Очень понравилась статья и иллюстрации, красиво, спасибо.
Boomburum
15.11.2017 12:01Ещё и свёрстано здорово :)
Knjazh Автор
15.11.2017 12:41Я рад, что мои старания были не напрасны)
ru_vlad
16.11.2017 00:38Спасибо большое!
А можно где скачать в электронном виде?Knjazh Автор
16.11.2017 02:55Конечно!
Специально для заинтересовавшихся источником иллюстраций в конце статьи есть вся информация.
Или тут«Невероятные приключения Лавлейс и Бэббиджа.Почтиправдивая история первого компьютера»
Автор: Сидни Падуа
potan
15.11.2017 08:01Эх, если бы он додумался вместо десятичной системы использовать более эффективную, смог бы до ума систему довести и на том уровне развития технологий.
artskep
15.11.2017 08:42А какую «более эффективную»?
Двоичная хороша для микроэлектроники, где можно очень легко создавать одинаковые элементы. Для механической машины же это означало бы раза в 3 больше всяких шестеренок и рычажков.
Можно было попробовать увеличить основание, но для снижения длины барабана (и количества деталей, соответственно) в 2 раза пришлось бы использовать 100ичную систему. Уже не очень удобно, а выгода не так уж и велика.Nuwen
15.11.2017 09:01Ну, на основе двоичных колёс можно было бы делать модульные заменяемые логические элементы, если бы первая машина взлетела, то до этого могли додуматься очень быстро.
vlad1988_1
15.11.2017 10:28+1С ростом количества элементов машины падает ее надежность, и поиск неисправности становится нетривиальной задачей. Есть сомнение что реальная машина вообще смогла бы работать, с учетом развития техники того времени.
Nuwen
15.11.2017 11:17+1Судя по иллюстрациям, машина обеспечивала лёгкий доступ к любой её части. Искать неисправности в шестерёночных механизмах можно просто визуально, либо расцепляя передачи между модулями и вручную проверяя проходимость. В то время уже существовали арифмометры, разностная машина была логическим их продолжением.
SvSh123
15.11.2017 11:56+1Двоичная система больше подходит для механизмов типа реле.
Теоретически, уже тогда можно было создать пневматический или гидравлический вычислитель. Булеву алгебру Бэббидж вполне мог знать, и попадись ему на глаза не станок Жаккара, а шарманка, например…
potan
15.11.2017 12:44Шестеренки с большим количеством зубчиков сложнее в изготовлении и менее надежны.
Надо выбирать из двоичной, троичной и четверичной. Шестеренок больше, но каждая из них проще, а в то время были проблемы с точностью изготовления сложных деталей.
myldy
15.11.2017 08:02У меня (как и у многих) в детстве была серия детских энциклопедий от «Росмэна»: «Наука», «География» и т.д. Так вот там были такие же потрясающие иллюстрации, как в статье (только цветные). Очень они мне нравились, статья погрузила меня в пучину ностальгии:)
Вот она, роднаяGeMir
15.11.2017 10:37Знакомая книжка :) Ещё была «Детская Энциклопедия» и серия «Иллюстрированная мировая история».
begemot_sun
15.11.2017 08:44А есть механические реализации (любительские) машин аналогичной Бэбиджа?
Арифмометр не предлагать. Интересует именно программируемые устройства.tyomitch
15.11.2017 10:44Конечно есть:
Основываясь на работах и советах Бэббиджа, шведский издатель, изобретатель и переводчик Георг Шутц (швед. Georg Scheutz) начиная с 1854 года сумел построить несколько разностных машин и даже сумел продать одну из них канцелярии английского правительства в 1859 году. В 1855 году разностная машина Шутца получила золотую медаль Всемирной выставки в Париже. Спустя некоторое время другой изобретатель, Мартин Виберг (швед. Martin Wiberg), улучшил конструкцию машины Шутца и использовал её для расчёта и публикации печатных логарифмических таблиц.
В период с 1989 по 1991 год к двухсотлетию со дня рождения Чарльза Бэббиджа на основе его оригинальных работ в лондонском Музее науки была собрана работающая копия разностной машины № 2. В 2000 году в том же музее заработал принтер, также придуманный Бэббиджем для своей машины. После устранения обнаруженных в старых чертежах небольших конструктивных неточностей обе конструкции заработали безупречно. Эти эксперименты подвели черту под долгими дебатами о принципиальной работоспособности конструкций Чарльза БэббиджаAPLe
15.11.2017 10:51Разностные машины, насколько я знаю, это немного другое. Они то ли вообще не программируемые, то ли программируются крайне ограниченно.
Я бы скорее компьютер Z-1 вспомнил.tyomitch
15.11.2017 11:04Что по сравнению с чем «немного другое»?
Разностные машины Шутца и Виберга по сравнению с разностной машиной Бэббиджа?APLe
15.11.2017 11:15Насколько я понимаю, в статье, на самом деле, описана не разностная машина Беббиджа (аналог инженерного калькулятора; одну разностную машину даже сам Беббидж достроил в 1822 году), а аналитическая (которая настоящий программируемый компьютер).
Их часто путают.tyomitch
15.11.2017 11:19Вы правы: их путают даже в самом первом предложении топика:
он назвал свое изобретение Разностной машиной или Аналитической машиной
OneOfUs
15.11.2017 16:24После устранения обнаруженных в старых чертежах небольших конструктивных неточностей обе конструкции заработали безупречно.
Судя по первой картинке (чертежу) для работы оказалось необходимо не менее 3 котов )) Или наоборот, коты лишними оказались ))
Keloraen
15.11.2017 12:43+1На основе чертежей Бэббиджа в начале 90-х воспроизвели его «Разностную машину №2», и, как говорят, она работает. Выставлена в музее в Лондоне.
Arxitektor
15.11.2017 10:33А если переместить Аду Лавлейс из того времени в наше смогла бы она стать программистом?
Её было бы интересно увидеть то что она предрекала.
GeMir
15.11.2017 10:34тогда слово «компьютер» имело иное значение
Какое же?Knjazh Автор
15.11.2017 12:54Вам правильно ответили. Компьютеры — это название счетоводов того времени.
А для иллюстрации оставлю это здесь:
SvSh123
15.11.2017 13:08<зануда>
Счетовод = бухгалтер.
Компьютер = расчетчик.
</зануда>
И в художественной литературе, и в мемуарах упоминаются расчетные бюро с «девушками, перемалывающими числа в ручных мельницах своих арифмометров».(с) кто-то из зарубежных классиков НФKnjazh Автор
15.11.2017 13:18Думаю, зачастую бухгалтера и расчетчики совмещали деятельность.
Все же смежные области, хотя все зависит от масштабов компании, в которой они работали.
olekl
15.11.2017 11:11+1А круто бы выглядела эта штука, если бы ее сегодня сделали… Какой-нибудь большой музей вполне мог бы себе это позволить.
MagisterLudi
15.11.2017 19:09+1так сделали вроде
Zenitchik
15.11.2017 19:12Нет. На всю машину целиком он даже проектную документацию не выпустил. Там нечего воссоздавать.
А отдельные элементы — да, по музеям стоят.
hoegni
15.11.2017 19:24Собственно, вот.
Видео ее работы. Правда, с ручным приводом. Таки да, впечатляет.Zenitchik
15.11.2017 19:54Это не то. Это разностная машина. То, что он таки сумел построить.
tyomitch
16.11.2017 16:37+1Нет, разностную машину он сам тоже не достроил, поскольку увлёкся созданием аналитической.
Zenitchik
16.11.2017 16:51Но она таки заработала. Видимо, бросил на высокой стадии готовности, и её закончили без него.
tyomitch
16.11.2017 17:05Заработал «прототип» (1/7 вычислительного модуля), демонстрацией которого в Парламенте Бэббидж сопроводил свою просьбу профинансировать постройку машины целиком.
Бюджетные деньги Бэббидж получил, но машину так и не достроил. Такое вот Сколково двухсотлетней давности.Zenitchik
16.11.2017 17:19+1Тем не менее, разностные машины были созданы и использовались.
Выходит, это была уже другая история?tyomitch
16.11.2017 18:33Были созданы, но уже без участия Бэббиджа, и на пару десятков лет позднее, когда производственные технологии достаточно развились.
Тут можно провести аналогию с Apple Newton и Apple iPad: когда идея на пару десятков лет опережает имеющиеся технологии, то она приносит лишь убытки; когда технологии её догоняют — она становится прибыльной.
SvSh123
15.11.2017 11:51Получается, архитектуру ЭВМ с раздельной памятью для программ и данных можно называть архитектурой Бэббиджа. :)
vilka-vtyk
15.11.2017 12:50Автор, спасибо за статью! Очень четко и подробно. И отдельный лайк за котиков :D
Ugrum
15.11.2017 13:17Долго втуплял на вторую иллюстрацию, не мог понять, что она мне напоминает (стиль). Вспомнил-вот оно!
dtBlack
15.11.2017 15:08Отличная статья, спасибо.
Но… несогласие вызывает самая первая строчка…
Почему именно это устройство Вы посчитали первым компьютером?
Почему не Лейбниц? Или Мюллер? или Жаккар?
Если бы Бэббидж достроил машину (по чертежам построили в конце 20-го века и она работала), то было бы меньше сомнений, а так я за Лейбница.
Лейбниц намного раньше выдвинул подобную идею, и тем более его вычислитель должен был работать в двоичном коде, но он понял, что не получиться построить такую машину на том уровне развития технологий.
Скорее правильней будет — Бэббидж первый, кто попытался построить первый десятеричный компьютер и описал привычные нам блоки вычислителя.
Knjazh Автор
15.11.2017 15:15+1Всегда пожалуйста!
Бэббидж не закончил постройку компьютера из-за своего перфекционизма и, возможно, он скорее не создатель, а проектировщик первого компьютера.
Лейбниц все же создал арифмометр, а наработки Бэббиджа ближе к современному понятию «компьютер», чем к арифмометру.Zenitchik
15.11.2017 15:28Лейбниц все же создал арифмометр
Зато за свои деньги и в свободное от работы время (многие годы на это ушли, хотя, чистого времени, вероятно, немного).
И нетехнологичен он у него был жутко. Что поделаешь Гаспар Монж ещё не родился.
dtBlack
15.11.2017 16:42Лейбниц все же создал арифмометр
Кроме арифмометра, он описал первый двоичный компьютер. Вот что в вики пишут (там с отсылками к источникам)
Он пытался применить двоичный код в механике и даже сделал чертёж вычислительной машины, работавшей на основе его новой математики, но вскоре понял, что технологические возможности его времени не позволяют создать такую машину[61]. Проект вычислительной машины, работающей в двоичной системе, в которой использовался прообраз перфокарты, Лейбниц изложил в труде, написанном ещё в 1679 году
Надо будет посмотреть на чертежи на досуге, если они доступны в интернете…
проектировщик первого компьютера
Полностью согласен, тем более с первенством идеи он опоздал, использовать подобный метод счисления раньше него предлагал Мюллер, работая над доработкой арифмометра Лейбница :) Санта-барбара целая выходит, тем более что Бэббидж не знал о работах Мюллера.
Хотя Жаккар вне конкуренции с первым "ЧПУ" станком...
Zenitchik
15.11.2017 18:07Кроме арифмометра, он описал первый двоичный компьютер.
Нет так. Он описал методы двоичных вычислений и предложил схему их механической реализации (кажется, на падающих дробинках, уже плохо помню).
Увы, преобразования между десятичной и двоичной системами сами по себе сложнее, чем большинство вычислений того времени. Поэтому не зашло.
vasimv
15.11.2017 21:43Вспомнилась манга с Бэббиджем и Адой Лавлейс в роли боргов. В ней он эту машину достроил, потом правда их победили. :)
vlad1988_1
К сожалению это оказался воздушный замок, не реализованный в железе. Сложность оказалась запредельной для 19 века.
Nuwen
Думаю, не сложнее сотни карманных часов. Сложность была в объяснении необходимости такой машины окружающим.
norguhtar
Там проблема была в недостаточной точности изготовления. Если для часов это еще могли сделать, да и просто на коленке подогнать детали к друг к другу, то вот в случае машины, требовалось очень большое количество одинаковых деталей. Машину не построили потому что Бэббидж был перфекционистом и требовал переделывать детали по много раз. Из-за этого возник существенный перерасход средств и сдвиг сроков.
Zenitchik
Проблема была ещё в том, что тогда даже теории зубчатого колеса толком не существовало. Привычная нам эвольвента тогда ещё не завоевала популярность. Каждую шестерёнку надо было приспосабливать к её паре — подобрать по номенклатуре было невозможно, за отсутствием номенклатуры.