Паровой компьютер или разностная машина Бэббиджа 1840 года

Knjazh 15 ноября в 03:35 17,8k
Где-то в 1800-х годах Чарльз Бэббидж изобрел первый компьютер, тогда слово «компьютер» имело иное значение, и он назвал свое изобретение Разностной машиной или Аналитической машиной. Гениальный изобретатель опережал свое время, но, к сожалению, не завершил свое изобретение, и лишь спустя сто лет был изобретен первый настоящий компьютер, но это уже другая история. А сегодняшняя статья об Аналитической Машине Бэббиджа.

Согласно чертежам Бэббиджа машина должна была состоять из следующих частей:


1. Склад — жесткий диск, память; 2. Мельница — процессор; 3. Паровой двигатель — блок питания; 4. Принтер — принтер; 5. Карты операций — программы; 6. Карты переменных — система адресации; 7. Числовые карты — для ввода чисел; 8. Управляющие барабаны — микропрограммы.

Самовычисляющая машина


В этой статье мы попробуем выяснить устройство Аналитической Машины, но для начала следует отметить, что она принадлежала к распространенному с 1740-х годов семейству «автоматических» (само-) механизмов.



И хотя Бэббидж избегал использования этого понятия, в новостях и изданиях ее описывали именно так:
За завтраком я имела удовольствие сидеть рядом с мистером Бэббиджем, известным в наших кругах изобретателем самовычисляющей машины. Взгляд его кажется столь проницательным, будто он видит науку — или любой другой предмет, ставший объектом его внимания, — насквозь.
Эди Седжвик, 1841 г.
Центробежный регулятор — первый из «самодействующих» механизмов индустриальной эпохи. Кстати, именно он является одной из самых узнаваемых частей парового двигателя.


При разгоне двигателя шары отклоняются от оси под воздействием центробежной силы, из-за этого муфта сдвигается и ограничивает приток пара, а машина замедляет ход. Замедление машины опускает шары и этим открывает клапан — открывается приток пара, цикл замкнулся.

Сама же конструкция Разностной машины была схожа с арифмометрами, и, как арифмометры, Машина состояла из длинной череды зубчатых колес, которые складывают числа, а потом выдают сумму.



Где-то в 1834 году Бэббидж усовершенствовал конструкцию, и благодаря возврату суммы обратно в машину стали доступны более сложные вычисления.

Работа Аналитической машины основывалась именно на «пожирании своего хвоста», и работала система благодаря сложной цепи шестерней, которые управлялись перфокартами и барабанами, вычисляя суммы и отправляя результаты на склад, который состоял из ряда зубчатых колес.

Примерно все взаимодействовало так:



  1. Карты операций (А) указывают картам переменных (В), что нужно запросить числа для расчетов;
  2. Числа вводятся с числовых карт (С) или со склада (D) и поочередно поступают на ось ввода (Е);
  3. Ось ввода передает числа на центральные колеса (F);
  4. Карта операции дает команду сложения чисел или умножения или иную, а барабаны (G) поворачиваются до положения, в котором их штифты будут соответствовать операции.
  5. Барабаны активируют рычаги, соединяя шестерни мельницы (H) с центральными колесами. А уже в мельнице определенные устройства отвечают за сложение, умножение и иные действия;
  6. Шестерни выполняют умножение исходных чисел;
  7. Мельница при необходимости может зацикливать действия, передавая команды на разные участки перфокарты;
  8. Результат попадает на ось вывода (I).
  9. Ось вывода передает данные на принтер (D) или отправляет на склад согласно картам переменных;
  10. Карты операций подают команду на подачу звонка (J) и на остановку Машины. Всё!



Память: склад



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

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

Кроме зубчатых колес числа могли храниться на числовых картах в виде комбинаций отверстий:

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



Рейки и карты переменных для передачи данных


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


Колеса склада А подключено к рейке В с помощью шестеренки. Обнуляясь, колесо слада поворачивает ось ввода до позиции переданного числа.


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

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




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

Мельница вычислений


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

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

В своих публикациях Бэббидж очеловечивал Машину и про «сквозной перенос» писал:
В случае сквозного переноса Машина способна предвидеть и действовать в соответствии с предвидением.
Чарльз Бэббидж
Конечно, до переноса числа необходимо было сложить, и происходило это примерно так:



Колесо А обнуляется и на нем задается первое число. Второе число задается на колесе В, которое в сцепке с колесом А. Обнуление первого колеса прибавляет число, которое там содержалось, к значению на колесе В.

Возьмем для примера:



Вспомним школьную арифметику, а именно сложение в столбик и перенос единиц. Если расположить цифры обоих чисел по столбцам, как это сделано в Машине, и складывать их по разрядам, то в первом случае не будет переноса, во втором будет перенесена единица, а в третьем сумма будет равна 9, но перенесенная ранее единица инициирует перенос.

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


Эта штука переносит единицу снизу вверх по одной!

Программы


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


Карта операций

Программами занималась Ада Лавлейс, и, как истинные аристократы, они отдавали приказы барабанам и картам переменных не контактируя с рабочими механизмами. Даже простое сложение задействовало множество деталей, и при помощи большого барабана один рычаг мог задавать любое значение для восьмидесяти других рычагов.

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



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



Карты операций управляют и барабанами, и картами переменных, и выглядят примерно так:



Перфокарты


Первой системой, построенной на перфокартах, был жаккардов станок, и именно им вдохновлялся Бэббидж.


Карта Жаккара, 1850 г.

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



Логика и циклы


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



Этот рычаг автоматически опускается, если результат вычислений требует дальнейших действий со стороны программы. И если на определенной позиции барабана стоит штифт, а затем рычаг опускается — запускается новый цикл вычислений.

Таким образом, условный рычаг замыкает цикл, и Машина «поедает собственный хвост»: перфокарты управляют барабанами, барабаны Машиной, Машина барабанами, а барабаны перфокартами.





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

Всем хорошего дня и точных вычислений!



Литература:
«Невероятные приключения Лавлейс и Бэббиджа. Почти правдивая история первого компьютера»
Автор: Сидни Падуа
Издательство: Манн, Иванов и Фербер, 2017 г.
ISBN: 978-5-00100-943-6
Проголосовать:
+54
Сохранить:
Лучшее на Habrahabr

 «Угнать за 60 секунд» на примере одного каршеринга

из песочницы
Valya-rollerсегодня в 11:34
24

Intel устранила найденную экспертами Positive Technologies уязвимость в подсистеме Management Engine

ptsecurityвчера в 18:51
21

Обзор программы Heisenbug 2017 Moscow: сколько нужно тестировщиков, чтобы запустить тесты на атомной электростанции?

olegchirвчера в 17:14
1

Новая многообещающая методология разработки, которую уже назвали «убийцей Agile»*

botyaslonimсегодня в 14:30
6

Выпуск Rust 1.22 (и 1.22.1)

перевод
ozkriffсегодня в 06:19
4

Данные из Google Таблиц на вашем сайте

tutorial
dkomarovskiyсегодня в 11:09
9

Трёхмерная графика с нуля. Часть 2: растеризация

перевод
PatientZeroсегодня в 11:38
2

Развитие стратегий устойчивости

перевод
AloneCoderсегодня в 13:11
0

Черная пятница айтишника, или Сказ о потере данных

JetHabrсегодня в 15:02
3

HPE ProLiant for Microsoft Azure Stack: частичка облака Azure под вашим полным контролем

Tiggerсегодня в 07:40
2