Изменить стиль страницы

Вторая идея Голлерита была следствием первой — он создал первый в мире счетно-перфорационный комплекс, включавший в себя входной перфоратор (для пробивки отверстий) и табулятор с устройством для сортировки перфокарт. Перфорация осуществлялась вручную на пробойнике, состоявшем из чугунного корпуса с приемником для карты и собственно пробойника. Над приемником помещалась пластина с несколькими рядами отверстий; при нажиме рукояти пробойника над одним из них карта под пластинкой пробивалась нужным образом. Сложный пробойник пробивал на группе карт общие данные одним нажатием руки. Сортировочная машина представляла собой несколько ящиков с крышками. Карты продвигались вручную между набором пружинных штырей и резервуарами, наполненными ртутью. Когда штырь попадал в отверстие, он касался ртути и замыкал электрическую цепь. При этом приподнималась крышка определенного ящика, и оператор клал туда карту. Табулятор (или суммирующая машина) прощупывал отверстия на перфокартах, воспринимая их как соответствующие числа и подсчитывая их. Принцип его действия был аналогичен сортировочной машине и базировался на использовании электромеханического реле (в качестве них также применялись пружинные штыри и чашечки с ртутью). Когда стержни при движении перфокарт попадали через отверстия в чашечки с ртутью, электрическая цепь замыкалась, и электрический сигнал передавался на счетчик, добавлявший к имеющемуся в нем числу новую единицу. Каждый счетчик имел циферблат со стрелкой, которая перемещалась на единицу шкалы при обнаружении отверстия. Если в табуляторе было 80 счетчиков, он мог одновременно подсчитывать результаты по 8 вопросам (с десятью вариантами ответов на каждый из них). Для подсчета результатов по следующим 8 вопросам та же перфокарта вновь пропускалась через табулятор другим своим участком. За один прогон сортировалось до 1000 карточек в час.

Первый патент (на идею) Голлерит получил в 1884 году. В 1887 году его машина была испытана в Балтиморе при составлении таблиц смертности населения. В 1889 году состоялось решающее испытание системы — проводилась пробная перепись в четырех районах города Сан-Луи. Машина Голлерита намного опередила две конкурирующие с ней ручные системы (она работала в 10 раз быстрее). После этого правительство США заключило с Голлеритом договор о поставке оборудования к переписи 1890 года. Результаты этой переписи благодаря табулятору были обработаны всего за два года. Вследствие этого машина очень быстро получила международное признание и употреблялась во многих странах при обработке данных переписи населения.

В 1902 году Голлерит создал автоматический табулятор, в котором карты подавались не вручную, а автоматически, и модернизировал свою сортировочную машину. В 1908 году он создал принципиально новую модель суммирующей машины. Вместо чашек с ртутью здесь применялись контактные щетки, с помощью которых замыкались электрические цепи электромагнитов. Последние обеспечивали соединение и разъединение непрерывно вращающегося вала с цифровыми колесами счетчика сумматора. Цифровые колеса поворачивались через зубчатые зацепления от непрерывно вращающегося вала, который нес на себе скользящие кулачковые муфты, управляемые электромагнитами. Когда под контактной щеткой оказывалось отверстие, замыкалась электрическая цепь соответствующего электромагнита, и он включал муфту, которая подсоединяла цифровое колесо к вращающемуся валу, после чего содержимое счетчика в данном разряде увеличивалось на число, пропорциональное одному повороту колеса. Передача десятков осуществлялась примерно так же, как в разностной машине Бэббиджа.

Дело, начатое Голлеритом, имеет продолжение и в наше время. Еще в 1896 году он основал фирму «Табьюлейтинг Машин Компани», специализирующуюся на выпуске счетно-перфорационных машин и перфокарт. В 1911 году, после того как Голлерит оставил предпринимательскую деятельность, его фирма слилась с тремя другими и была преобразована в широко известную сейчас во всем мире корпорацию IBM — крупнейшего разработчика в области вычислительной техники.

В табуляторе Голлерита впервые были использованы электромеханические элементы. Дальнейшее развитие вычислительной техники было связано с широким и многогранным применением электричества. В 1938 году немецкий инженер Конрад Цузе создал первую в истории релейную электронно-вычислительную машину Z1 на телефонных реле (записывающее устройство в ней оставалось механическим). В 1939 году появилась более совершенная модель Z2, а в 1941 году Цузе собрал первую в мире действующую вычислительную машину с программным управлением, в которой использовалась двоичная система. Все эти машины погибли во время войны и поэтому не оказали большого влияния на дальнейшую историю вычислительной техники.

Независимо от Цузе постройкой релейных вычислительных машин занимался в США Говард Айкен. Будучи аспирантом Гарвардского университета, Айкен при работе над своей диссертацией был вынужден делать много сложных вычислений. Чтобы сократить время на вычислительную работу, он стал придумывать несложные машины для автоматического решения частных задач. В конце концов он пришел к идее автоматической универсальной вычислительной машины, способной решать широкий круг научных задач. В 1937 году его проектом заинтересовалась фирма IBM. В помощь Айкену была выделена бригада инженеров. Вскоре началась работа над постройкой машины «Марк-1». Реле, счетчики, контактные и печатающие устройства ввода и вывода перфокарт были стандартными частями табуляторов, выпускаемых IBM. В 1944 году машина была собрана и передана Гарвардскому университету.

«Марк-1» оставался машиной переходного типа. В ней широко использовались механические элементы для представления чисел и электромеханические для управления работой машины. Как и в аналитической машине Бэббиджа, числа хранились в регистрах, состоящих из десятизубых счетных колес. Всего в «Марке-1» было 72 регистра и, кроме того, дополнительная память из 60 регистров, образованных механическими переключателями. В эту дополнительную память вручную вводились константы — числа, которые не изменялись в процессе вычисления. Каждый регистр содержал 24 колеса, причем 23 из них использовались для представления самого числа, а одно — для представления его знака. Регистры имели механизм для передачи десятков и поэтому использовались не только для хранения чисел, но и для выполнения операций над ними: число, находящееся в одном регистре, могло быть передано в другой и добавлено к находящемуся там числу (или вычтено из него). Эти операции выполнялись следующим образом. Через счетные колеса, образующие регистр, проходил непрерывно вращающийся вал, причем любое колесо с помощью электромеханических переключателей могло быть присоединено к этому валу на время, составляющее некоторую часть его оборота. К каждому числу присоединялась щетка (считывающий контакт), которая при вращении колеса пробегала по неподвижному десятисегментному контакту. Это позволяло получить электрический эквивалент цифры, хранящейся в данном разряде регистра. Для выполнения операции суммирования устанавливались такие соединения между щетками первого регистра и механизмом переключения второго регистра, что колеса последнего связывались с валом на часть периода оборота, пропорционального цифрам, находившимся в соответствующих разрядах первого регистра. Все переключатели автоматически выключались в конце фазы сложения, занимавшей не более половины периода оборота. Сам механизм суммирования по существу не отличался от сумматора голлеритовских табуляторов.

Умножение и деление производились в отдельном устройстве. Кроме того, в машине имелись встроенные блоки для вычисления функций sin x, log x и некоторых других. Скорость выполнения арифметических операций в среднем составляла: сложение и вычитание — 0, 3 секунды, умножение — 5, 7 секунды, деление — 15, 3 секунды. То есть «Марк-1» был эквивалентен примерно 20 операторам, работающим с ручными счетными машинами.

Работой «Марк-1» управляли команды, вводимые с помощью перфорированной ленты. Каждая команда кодировалась посредством пробивки отверстий в 24 колонках, идущих вдоль ленты, и считывалась с помощью контактных щеток. Пробивка на перфокартах преобразовывалась в набор импульсов. Совокупность электрических сигналов, полученных в результате «прощупывания» позиций данного ряда, определяла действия машины на данном шаге вычислений. Устройство управления на основании этих команд обеспечивало автоматическое выполнение всех вычислений в данной программе: осуществляло выборку чисел из ячеек памяти, давало команду требуемой арифметической операции, отправляло результаты вычислений в запоминающее устройство и т.д. В качестве устройства вывода Айкен использовал пишущие машины и перфораторы.