Чтение онлайн

на главную

Жанры

Шрифт:

Этот же принцип управляющих перфокарт Бэббидж предполагал использовать в своей аналитической машине. Над ее устройством он работал в течение почти сорока лет: с 1834-го до конца своей жизни в 1871 году, но так и не смог ее закончить. Однако после него осталось более 200 чертежей машины и ее отдельных узлов, снабженных множеством подробных примечаний, объясняющих их работу. Все эти материалы представляют огромный интерес и являются одним из удивительнейших в истории техники примеров научного предвидения.

По мысли Бэббиджа, аналитическая машина должна была включать четыре основных блока.

Первое устройство, которое Бэббидж назвал «мельница», было предназначено для выполнения четырех основных арифметических действий. Второе устройство — «склад» — предназначалось для хранения чисел (исходных, промежуточных и окончательных результатов). Исходные числа направлялись в арифметическое устройство, а промежуточные и конечные результаты получались из него. Основным элементом двух этих блоков были регистры из десятичных счетных колес. Каждое из них могло устанавливаться в одном из десяти положений и таким образом «запоминать» один десятичный знак. Память машины должна была включать в себя 1000 регистров по 50 числовых колес в каждом, то есть в ней можно было хранить 1000 пятидесятизначных чисел. Скорость выполняемых вычислений напрямую зависела от скорости вращения цифровых колес. Бэббидж предполагал, что сложение двух 50-разрядных чисел будет занимать 1 секунду. Для переноса чисел из памяти в арифметическое устройство и обратно предполагалось использовать зубчатые рейки, которые должны были зацепляться с зубцами на колесах. Каждая рейка передвигалась до тех пор, пока колесо не занимало нулевое положение. Движение передавалось стержнями и связями в арифметическое устройство, где посредством другой рейки использовалось для перемещения в нужное положение одного из колес регистра. Базовой операцией аналитической машины, как и разностной, являлось сложение, а остальные сводились к ней. Для того чтобы вращать множество шестеренок, требовалось значительное внешнее усилие, которое Бэббидж рассчитывал получить за счет использования парового двигателя.

Третье устройство, управлявшее последовательностью операций, передачей чисел, над которыми производились операции, и выводом результатов, конструктивно представляло из себя два жаккаровых перфокарточных механизма. Перфокарты Бэббиджа отличались от перфокарт Жаккара, которыми управлялась только одна операция — подъем нити для получения нужного узора в процессе изготовления ткани. Управление работой аналитической машины включало различные виды операций, для каждой из которых требовался специальный вид перфокарт. Бэббидж выделил три основных вида перфокарт: операционные (или карты операций), переменные (или карты переменных) и числовые. Операционные перфокарты осуществляли управление машиной. Согласно выбитым на них командам происходило сложение, вычитание, умножение и деление чисел, находившихся в арифметическом устройстве.

Одной из наиболее дальновидных идей Бэббиджа было введение в совокупность команд, задаваемых последовательностью операционных перфокарт, команды условного перехода. Самого по себе программного управления (без использования условного перехода) было бы недостаточно для эффективной реализации сложной вычислительной работы. Линейная последовательность операций строго определена во всех пунктах. Это дорога известна во всех деталях до самого конца. Понятие «условный переход» означает переход вычислительной машины к другому участку программы, если предварительно выполняется некоторое условие. Имея возможность использовать команду условного перехода, составитель машинной программы был не обязан знать, по какой ступени расчета изменится признак, который оказывает влияние на выбор хода расчета. Применение условного перехода позволяло у каждой развилки дороги анализировать сложившуюся ситуацию и на основе этого выбирать тот или иной путь. Условные команды могли иметь самый различный вид: сравнение чисел, выборка требуемых численных значений, определение знака числа и т.п. Машина производила арифметические операции, сравнивала между собой полученные числа и сообразно с этим проводила дальнейшие операции. Таким образом, машина могла перейти к другой части программы, пропустить часть команд или вновь вернуться к выполнению какого-либо участка программы, то есть организовать цикл. Введение команды условного перехода знаменовало собой начало использования в машине логических, а не только вычислительных операций.

С помощью второго вида перфокарт — переменных (или, по терминологии Бэббиджа, «карт переменных») осуществлялась передача чисел между памятью и арифметическим устройством. На этих картах указывались не сами числа, а лишь номера регистров памяти, то есть ячеек для хранения одного числа. Регистры памяти Бэббидж называл «переменными», указывая этим, что содержание регистра меняется в зависимости от хранящегося в нем числа. Аналитическая машина Бэббиджа использовала три вида карт переменных: для передачи числа в арифметическое устройство с сохранением его далее в памяти, для аналогичной операции, но без сохранения в памяти, и для ввода числа в память. Они получили названия: 1) «нулевая карта» (число вызывается из регистра памяти, после чего в регистре устанавливается нулевое значение); 2) «сохраняющая карта» (число вызывается из памяти без изменения содержания регистра); 3) «получающая карта» (число передается из арифметического устройства в память и записывается в один из регистров). При работе машины на одну операционную перфокарту приходилось в среднем три карты переменных. Они указывали номера ячеек памяти (адреса, по современной терминологии), в которых хранились два исходных числа, и номер ячейки, куда записывать результат.

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

После выполнения предложенных вычислений машина выбивала ответ на отдельную перфокарту. Эти перфокарты оператор складывал по порядку их номеров и в дальнейшем использовал в работе (они являлись как бы ее внешней памятью). Например, когда в ходе вычислений машине требовалось значение логарифма 2303, она показывала его в особом окошечке и давала звонок. Оператор находил нужную перфокарту со значением этого логарифма и вводил в машину. «Все карты, — писал Бэббидж, — однажды использованные и изготовленные для одной задачи, могут быль использованы для решения тех же задач с другими данными, поэтому нет необходимости готовить их во второй раз — они могут тщательно сохраняться для будущего использования; со временем машина будет иметь собственную библиотеку».

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

В заключение следует отметить, что если разработка аппаратной части аналитической машины связана исключительно с именем Бэббиджа, то программирование решения задач на этой машине — с именем его хорошего друга — леди Адой Лавлейс, родной дочери великого английского поэта Байрона, которая горячо увлекалась математикой и великолепно разбиралась в сложных научных и технических проблемах. В 1842 году в Италии была напечатана статья молодого математика Менабреа с описанием аналитической машины Бэббиджа. В 1843 году леди Лавлейс перевела эту статью на английский язык, снабдив ее обширным и глубоким комментарием. Чтобы проиллюстрировать работу машины, леди Лавлейс приложила к статье составленную ею программу для вычисления чисел Бернулли. Ее комментарий по существу является первой в истории работой по программированию.

Аналитическая машина оказалась очень дорогим и сложным устройством. Английское правительство, поначалу финансировавшее работы Бэббиджа, вскоре отказало ему в помощи, поэтому он так и не смог завершить свой труд. Была ли оправдана сложность этой машины? Не во всем. Многие операции (особенно ввод-вывод чисел и передача их от одного устройства к другому) значительно упростились бы, если бы Бэббидж использовал электрические сигналы. Однако его машина была задумана как чисто механическое устройство без каких бы то ни было электрических элементов, что ставило ее изобретателя часто в очень трудное положение. Между тем электромеханическое реле, ставшее позже основным элементом вычислительных машин, в это время уже было изобретено: его придумали в 1831 году одновременно Генри и Сальваторе даль Негро.

Применение электромеханических реле в вычислительной технике ведет свою историю с изобретения американца Германа Голлерита, создавшего комплекс устройств, предназначенных для обработки большого объема данных (например, результатов переписи). Потребность в такой машине была очень велика. Например, результаты переписи 1880 года обрабатывались в США 7, 5 лет. Такой значительный срок объяснялся тем, что необходимо было отсортировать громадное количество карточек (по одной на каждого из 50 миллионов жителей) с очень большим — 210 рубрик — набором вариантов ответов на задаваемые в карточке вопросы. Об этих проблемах Голлерит знал не понаслышке — он сам был сотрудником Бюро цензов США — статистического учреждения, ведавшего проведением переписей населения и обработкой их результатов.

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

Популярные книги

Ветер перемен

Ланцов Михаил Алексеевич
5. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ветер перемен

Найди меня Шерхан

Тоцка Тала
3. Ямпольские-Демидовы
Любовные романы:
современные любовные романы
короткие любовные романы
7.70
рейтинг книги
Найди меня Шерхан

Совок 5

Агарев Вадим
5. Совок
Фантастика:
детективная фантастика
попаданцы
альтернативная история
6.20
рейтинг книги
Совок 5

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Измена. Истинная генерала драконов

Такер Эйси
1. Измены по-драконьи
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Истинная генерала драконов

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Менталист. Эмансипация

Еслер Андрей
1. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Менталист. Эмансипация

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Дворянская кровь

Седой Василий
1. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Дворянская кровь

Смертник из рода Валевских. Книга 1

Маханенко Василий Михайлович
1. Смертник из рода Валевских
Фантастика:
фэнтези
рпг
аниме
5.40
рейтинг книги
Смертник из рода Валевских. Книга 1

Попутчики

Страйк Кира
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попутчики

Измена. Без тебя

Леманн Анастасия
1. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Без тебя

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Случайная мама

Ручей Наталья
4. Случайный
Любовные романы:
современные любовные романы
6.78
рейтинг книги
Случайная мама