Компьютер "Марк 1" - первый американский программируемый компьютер: размеры, возможности, год ввода в эксплуатацию
В 1936 году американский физик Говард Эйкен, будущий создатель компьютера "Марк 1", начал строить планы относительно автоматического вычислительного устройства. Сдвиг произошел, когда он занимался исследованиями для своей диссертации. Предметом дипломной работы был космический заряд. Вскоре его диссертационная работа состояла в основном из решения нелинейных (дифференциальных) уравнений. Единственными методами, доступные тогда для численного решения проблем, являлись разработки по созданию электромагнитных настольных калькуляторов. В статье речь пойдет о том, в каком году появился первый компьютер, и кого нужно благодарить за основу нынешней техники.
История создания прибора
Поскольку Эйкен полностью осознавал, что для создания такого компьютера потребуется много денег, он решил обратиться к одному из крупнейших производителей механических и электромеханических калькуляторов в США - компании Monroe Calculating Machine Company. 22 апреля 1937 года он представил главному инженеру Чейзу свои планы по автоматическим вычислениям в следующих областях:
- "четыре правила арифметики";
- предварительно установленный контроль последовательности;
- хранение и память установленных или вычисленных значений;
- управление последовательностью, которое может автоматически реагировать на вычисленные результаты или символы, вместе с печатной записью всего, что происходит в машине;
- запись всех вычисленных результатов.
Эйкен был воодушевлен энергичной поддержкой Чейза. Тот отправился к своему руководству в "Монро" и сделал все, что в его силах, чтобы убедить их в правильности своего выбора и идеях Эйкена. Чейз уверял, что проект "выстрелит", хоть и потребует немалых затрат на реализацию идеи. У него была некая прозорливость и дальновидность, чтобы признать, что предлагаемая машина будет иметь неоценимое значение в бизнесе компании в последующие годы. Несмотря на уговоры, в создании машины было отказано.
Поддержка проекта и провал идеи
Решение "Монро" не поддерживать проект Эйкена, безусловно, было ударом, но ученый, должно быть, был воодушевлен энтузиазмом Чейза относительно новой идеи. Кроме того, именно Чейз предложил Эйкену обратиться за помощью к профессору Теодору Брауну из Гарварда, близкому соратнику Томаса Дж. Уотсона, президента фирмы IBM.
Таким образом, Эйкен установил успешный контакт с IBM. Браун порекомендовал Эйкена старшему инженеру IBM, Брайсу, который одобрил его проект и порекомендовал, как сделать компьютер и построить машину его мечты. Мнение Брайса было решающим для решения IBM, и ученый получил поддержку президента Ватсона для создания проекта Гарварда.
Разработка вычислительной техники
Эйкен подготовил официальное предложение под названием «Предлагаемая автоматическая вычислительная машина». Оно занимало 22 печатных страницы с двойным интервалом. Начинался документ с краткой истории вспомогательных средств для вычислений, обсуждения механизмов Бэббиджа, упоминаний о разностных механизмах Шойца, Виберга и Гранта. Кратко было описано изобретение табулирования перфокарт, счетные, сортировочные и арифметические машины.
Известно, что Генри Бэббидж, сын Чарльза Бэббиджа, собрал около шести небольших демонстрационных вариантов для двигателей машины - то, как она будет выполнять последовательные операции и работы. Один из них он отправил в Гарвард. Эйкен также отмечает, что машины, производимые IBM, позволяли ежедневно делать в бухгалтериях промышленных предприятий по всему миру то, чего Бэббидж хотел достичь очень давно.
Затем Эйкен обращается к необходимости более мощных методов расчета в математических и физических науках. Он обрисовал в общих чертах области использования своего компьютера - теоретическую физику, радиосвязь и телевидение, астрономию, теорию относительности и даже быстро растущую науку математической экономики и социологии.
В чем нуждается наука?
Эйкен определил четыре конструктивные особенности, которые отличали обычные механизмы учета перфокарт и вычислительных механизмов, как это требуется в науке:
- Машина, предназначенная для математики, должна быть способна обрабатывать как положительные, так и отрицательные величины, в то время как учетная техника почти полностью предназначена для задач с положительными числами.
- Вычислительная техника для математических целей должна снабжать и использовать многие виды трансцендентных функций (например, тригонометрические), эллиптические, функции Бесселя и функции вероятности.
- Для математики вычислительная машина должна быть полностью автоматической в работе. При вычислении значения функции в ее разложении в ряд, оценке формулы или численном интегрировании (при решении дифференциального уравнения) процесс, как только он будет создан, должен продолжаться бесконечно, пока не будет охвачен диапазон независимых переменных.
- Вычислительные машины, предназначенные для математики, должны быть способны вычислять строки вместо столбцов, поскольку часто при численном решении дифференциального уравнения вычисление значения оказывается зависимым от предыдущих значений. Это, на самом деле, считается обратным способом, с помощью которого существующее вычислительное оборудование способно оценивать функцию поэтапно.
Первыми двумя задачами, поставленными для новой машины, было вычисление некоторых интегралов и таблиц.
Развитие и внедрение приборов для военных целей
В 1944 году машина была передана военно-морскому флоту на время войны. После этого стала числиться официальным прибором в подразделении "Бюро кораблей" под командованием Эйкена. К августу компьютер "Марк 1" работал с большим военно-морским штатом, включая ряд офицеров, среди которых были Грейс Хоппер и Ричард Блох. Они стали главными программистами.
Была забавная история о том, что именно Грейс Хоппер, занимающаяся программированием на компьютере Mark I, нашла первую компьютерную «ошибку»: мертвую моль, которая попала в Mark I, чьи крылья блокировали чтение отверстий в бумажной ленте. Слово «ошибка» использовалось для описания дефекта, по крайней мере, с 1889 года, но Хоппер приписывают слово «отладка» для описания работы по устранению ошибок программы.
В 1944 и 1945 годах компьютер "Марк 1" работал почти непрерывно, 24 часа в сутки, семь дней в неделю. Проблемы военного времени, которые машина должна была решить, включали в себя исследования магнитных полей, связанных с защитой кораблей от магнитных мин, а также математические аспекты проектирования и использования радара. Без сомнения, самой важной проблемой военного времени был набор вычислений для имплозий, привезенных из Лос-Аламоса Джоном фон Нейманом.
Только через год сотрудники узнали, что эти расчеты были сделаны в связи с разработкой атомной бомбы. Выдающийся успех и отставание в работе на компьютере привели к тому, что военно-морской флот попросил Эйкена в начале 1945 года спроектировать и построить вторую такую машину. Эйкен так и сделал. Компьютер стал известен как Марк II.
Характеристики первого прибора
Компьютер Mark 1 был гигантских внушительных размеров - целых 2,5 метра в высоту. Длина - 16 м, и почти 1 м в глубину. Такие размеры первых компьютеров никого не удивляли, наоборот, благодаря возможностям, они внушали свою мощь другим:
- Он весил пять тонн.
- Содержал 760 000 деталей.
- Использовал 530 миль проводов.
- 3 000 000 проводных соединений.
- 3500 многократных реле с 35000 контактов.
- 2225 счетчиков.
- 1484 десятиполюсных переключателей.
Опираясь на технологию, разработанную IBM в 1944 году, для статистических и бухгалтерских бизнес-машин использовались традиционные компоненты IBM, такие как электромагнитные реле, счетчики, кулачковые контакты, перфораторы и электрические пишущие машинки. Также присутствовали элементы нового дизайна, в том числе реле и счетчики, которые раньше не использовались в машине IBM.
Они были меньше и быстрее. Входные данные состояли из перфоленты, а выходные представляли собой серию перфокарт или распечатку со стандартной электрической машинки IBM.
Работа компьютера была приведена в действие длинным, горизонтальным, непрерывно вращающимся валом, который издавал гул, который описывали как шум гигантской швейной машины. Вал совершал около 3 оборотов в секунду. Устройства для хранения и вычисления выдавали слова длиной в 23 десятичных знака, а двадцать четвертое место было зарезервировано для алгебраического знака. Расчеты проводились в десятичных числах с фиксированной десятичной точкой.
Что умела машина прошлого века?
Машина состоит из 7 основных модулей, расположенных слева направо:
- Два раздела с 60 регистрами для ввода числовых данных (константы, которые появляются в любом алгебраическом или дифференциальном уравнении), каждый из которых содержал 24 переключателя, соответствующих 23 цифрам и 1 для знака (плюс/минус). Местоположению каждого из этих 60 регистров был присвоен номер, чтобы люди могли использовать это местоположение согласно инструкции по идентификации номера, вызываемого в ходе вычисления. Для любой проблемы они должны быть установлены вручную.
- Семь разделов, содержащих 72 дополнительных регистра (так называемые аккумуляторы, потому что они могут не только хранить числа, но и складывать и вычитать; фактически вычитание выполняется путем сложения).
- Каждый регистр состоял из 24 электромагнитных контрколес, опять-таки, обеспечивающих емкость для 23-значных чисел, причем одно место зарезервировано для знака. Этот второй набор панелей включает в себя как хранилище, так и блок обработки данных. Для сложения и вычитания требуется 1 цикл работы машины (около 330 мс).
- 70 аккумуляторов общего назначения, 2 - специального назначения. Очень интересным является последний аккумулятор, с помощью которого можно сделать что-то вроде подачи условного операторского сигнала (после сравнения двух чисел).
Однако более мощный сигнал был добавлен в программируемый компьютер после 1945 года, когда был встроен второй ленточный ридер для команд.
В самых правых частях находятся электрические пишущие машинки, считыватель магнитных лент для команд и перфоратор. На печатных машинках напечатано окончательное решение проблемы. Перфоратор карт автоматически пробивает карты с данными. Лента имела 24 столбца (то есть 24 отверстия в ряду). Один ряд данных требовал 4 строк (23 цифровых позиций и 1 для знака для каждого числа, каждая позиция требовала 4 лунок, 24 x 4 = 96).
Основные функции прибора
Первое поколение компьютеров оснащалось четырьмя ридерами. Один использовался для подачи инструкций в машину, а три других содержали таблицы функций и могли предоставлять значения по мере необходимости. Также была предусмотрена интерполяция значений, указанных на лентах. Таким образом были встроенные «подпрограммы» (как их называл Эйкен), предусматривающие преобразование числа с помощью некоторой встроенной функции (такой как синус, экспонента, логарифм или возведение в степень).
Характеристики "Марка 1" предполагали, что машина прослужит около 10 лет. Однако она продолжала функционировать в Гарварде в течение 14 лет после войны, производя полезную работу. И только к 1959 году прибор окончательно "вышел на пенсию". В течение этого времени он также служил объектом практических занятий нескольким студентам в Гарварде, где Эйкен создал новаторскую программу, которая была позже названа информатикой - с курсами для студентов и аспирантов, идущих к степени магистра или доктора философии. Много важных фигур в компьютерном мире были представлены на этой теме про Гарварда и "Марка I".
Прогресс опередил технологии - появление новых "умных" машин
Оглядываясь назад, можно сказать, в каком году появился первый компьютер на самом деле. Но самое большое значение "Марка I" заключалось в том, что он был первой полностью автоматической вычислительной машиной, не требовавшей какого-либо вмешательства человека в рабочий процесс, он выполнять автоматическую последовательность вычислений в соответствии с программой и делать это без ошибок.
Говард Эйкен продолжил работу над созданием новых вычислительных машин. За компьютером «Марк 1» последовал «Марк II», затем в 1949 году «Марк III/ADEC», а в 1952 году — «Марк IV». Компания IBM приступила к созданию нового компьютера SSEC уже без участия Говарда Эйкена.
Совершенствование техники и инновации в работе
Поскольку при создании первого компьютера использовались механические и релейные технологии, работа была очень медленной. Новый "Марк" выдавал результаты быстрее, чем обычные вычислительные методики, но не так быстро, как машины, которые вскоре были представлены миру позднее. К ним относились и такие, как ENIAC. Для сложения или вычитания требуется один машинный цикл, который занимает около 0,3 секунды. Умножение потребовало 20 циклов или 6 секунд, а деление может занять до 51 цикла или более 15 секунд. Из-за этого в более поздних моделях деление было заменено умножением взаимных величин.
Хотя Mark I был медленным, он не только был запрограммирован под конкретную операцию, но и универсальным. В то время, как ENIAC был ограничен в своем первоначальном дизайне миссией вычисления баллистических таблиц, "Марк I" смог приспособиться к большему числу встроенных программ.