ЭНИАК
ЭНИАК (Электронный числовой интегратор и вычислитель — англ. ENIAC, сокр. от Electronic Numerical Integrator and Computer[1][2]) — первый электронный цифровой вычислитель общего назначения, который можно было перепрограммировать для решения широкого спектра задач.
История создания
Архитектуру компьютера начали разрабатывать в 1943 году Джон Преспер Эккерт и Джон Уильям Мокли, учёные из Пенсильванского университета (Электротехническая школа Мура), по заказу Лаборатории баллистических исследований Армии США для расчётов таблиц стрельбы. В отличие от созданного в 1941 году немецким инженером Конрадом Цузе комплекса Z3, использовавшего механические реле, в ЭНИАКе в качестве основы элементной базы применялись электронные лампы.
Расчёты таблиц стрельбы в то время проводились вручную на настольных арифмометрах. Эту работу в лаборатории выполняли особые клерки — «вычислители» — в основном женщины. Таблицы стрельбы рассчитывались для каждого отдельного типа снаряда и орудия перед принятием на вооружение и при различных комбинациях множества параметров (возвышение ствола, номер заряда, скорость снаряда, скорость ветра, температура воздуха, давление воздуха, температура заряда) требовался кропотливый расчёт около 3000 траекторий полёта снаряда. Расчёт каждой траектории требовал примерно 1000 операций. Один вычислитель был способен выполнить этот расчет за 16 дней, а на вычисление всей таблицы потребовалось бы 4 года. Без этих таблиц артиллеристам просто невозможно было точно попасть в цель. В условиях Второй Мировой войны на фронт в Европу отправлялось всё больше и больше орудий и снарядов к ним, в 1943 году союзные войска высадились в Африке, где условия стрельбы были несколько иные и требовали новых таблиц, а Лаборатория не справлялась со своевременным их расчётом.
В Институте Мура имелся один из немногих «дифференциальных анализаторов» — механический вычислитель, к помощи которого прибегала лаборатория для выполнения хотя бы части расчётов. В этом институте Мокли работал преподавателем, а Эккерт — был простым студентом с незаурядными способностями инженера. В августе 1942 года Мокли написал 7-страничный документ «The Use of High-Speed Vacuum Tube Devices for Calculation», в котором предлагал Институту построить электронную вычислительную машину, основанную на электронных лампах. Руководство Института работу не оценило и сдало документ в архив, где он вообще был утерян.
Сотрудничество Института Мура с Баллистической лабораторией по вычислению таблиц стрельбы осуществлялось через капитана Германа Голдстайна, который до поступления на службу в армию работал профессором математики в Университете штата Мичиган. Лишь в начале 1943 года один из работников Института в случайной беседе сообщил Голдстайну об идее электронного вычислителя, с которой носился Мокли. Использование электронной вычислительной машины позволило бы лаборатории сократить время расчёта с нескольких месяцев до нескольких часов. Голдстайн встретился с Мокли и предложил ему обратиться с заявкой в лабораторию на выделение средств для постройки задуманной машины. Мокли по памяти восстановил утерянный 7-страничный документ с описанием проекта.
9 апреля 1943 года проект был представлен Баллистической лаборатории на заседании Комиссии по науке. В проекте машина называлась «электронный дифф. анализатор» (electronic diff. analyzer). Это была уловка, чтобы новизна проекта не вызвала отторжения у военных. Все они были уже знакомы с дифференциальным анализатором, и проект в их представлении просто предлагал сделать его не механическим, а электрическим. Проект обещал, что построенный компьютер будет вычислять одну траекторию за 5 минут.
После короткой презентации научный консультант комиссии Освальд Веблен одобрил идею, и деньги (61 700 долларов США на первые 6 месяцев исследовательских работ) были выделены. В контракте под номером W-670-ORD-4926, заключенном 5 июня 1943 года, машина называлась «Electronic Numerical Integrator» («Электронный числовой интегратор»), позднее к названию было добавлено «and Computer» («и компьютер»), в результате чего получилась знаменитая аббревиатура ENIAC. Куратором проекта «Project PX» со стороны Армии США выступил опять-таки Герман Голдстайн.
К февралю 1944 года были готовы все схемы и чертежи будущего компьютера, и группа инженеров под руководством Эккерта и Мокли приступила к воплощению замысла в «железо». В группу вошли также:
- Роберт Шоу (Robert F. Shaw) (функциональные таблицы)
- Джеффри Чуан Чу (Jeffrey Chuan Chu) (модуль деления/извлечения квадратного корня)
- Томас Кайт Шарплес (Thomas Kite Sharpless) (главный программист)
- Артур Бёркс (Arthur Burks) (модуль умножения)
- Гарри Хаски (модуль чтения выходных данных)
- Джек Дэви (Jack Davis) («аккумуляторы» — модули для сложения чисел)
- Джон фон Нейман — присоединился к проекту в сентябре 1944 года в качестве научного консультанта. На основе анализа недостатков ЭНИАКа внёс существенные предложения по созданию новой более совершенной машины — EDVAC
В середине июля 1944 года Мокли и Эккерт собрали два первых «аккумулятора» — модули, которые использовались для сложения чисел. Соединив их вместе, они перемножили два числа 5 и 1000 и получили верный результат. Этот результат был продемонстрирован руководству Института и Баллистической лаборатории и доказал всем скептикам, что электронный компьютер действительно может быть построен.
Компьютер был полностью готов лишь осенью 1945 года. Так как война к тому времени уже была закончена и острой необходимости в быстром расчёте таблиц стрельбы уже не было, военное ведомство США решило использовать ENIAC в расчётах по разработке термоядерного оружия.
Будучи сверхсекретным проектом Армии США, компьютер был представлен публике и прессе лишь много месяцев спустя после окончания войны — 14 февраля 1946 года. Через несколько месяцев — 9 ноября 1946 года — ENIAC был разобран и перевезён из Университета Пенсильвании в г. Абердин в Лабораторию баллистических исследований Армии США, где с 29 июля 1947 года он успешно проработал ещё много лет и был окончательно выключен 2 октября 1955 года в 23:45.[3]
В Баллистической лаборатории на ENIAC выполнялись расчеты по проблеме термоядерного оружия, прогнозам погоды в СССР для предсказания направления выпадения ядерных осадков на случай ядерной войны, инженерные расчёты, и конечно же таблиц стрельбы, включая таблицы стрельбы ядерными боеприпасами.
Первыми программистами ЭНИАКа стали шесть девушек[4]:
Использование
В качестве испытания ЭНИАКу первой была поставлена задача по математическому моделированию термоядерного взрыва супербомбы по гипотезе Улама-Теллера. Фон Нейман, который одновременно работал консультантом и в Лос-Аламосской лаборатории, и в Институте Мура, предложил группе Теллера использовать ЭНИАК для расчётов ещё в начале 1945 года. Решение проблемы термоядерного оружия требовало такого огромного объёма вычислений, что справиться с ним не могли никакие электромеханические калькуляторы, имевшиеся в распоряжении лаборатории. В августе 1945 физики Лос-Аламосской лаборатории Николас Метрополис и Стенли Френкель посетили институт Мура, и Герман Голдстайн вместе со своей женой Адель, которая работала в команде программистом и была автором первого руководства по работе с ЭНИАКом[5], познакомили их с техникой программирования ЭНИАКа. После этого они вернулись в Лос-Аламос, где стали работать над программой под названием «The Los Alamos Problem».
Производительность ЭНИАКа была слишком мала для полноценного моделирования, поэтому Метрополис и Френкель сильно упростили уравнение, игнорируя многие физические эффекты и стараясь хотя бы приблизительно рассчитать лишь первую фазу взрыва дейтерий-тритиевой смеси в одномерном пространстве. Детали и результаты выполненных в ноябре-декабре 1945 года расчётов до сих пор засекречены. Перед ЭНИАКом была поставлена задача решить сложнейшее дифференциальное уравнение, для ввода исходных данных к которому понадобилось около миллиона перфокарт. Вводная задача была разбита на несколько частей, чтобы данные могли поместиться в память компьютера. Промежуточные результаты выводились на перфокарты и после перекоммутации снова заводились в машину. В апреле 1946[6] года группа Теллера обсудила результаты расчётов и сделала вывод, что они достаточно обнадёживающе (хотя и очень приблизительно) доказывают возможность создания водородной бомбы.
На обсуждении результатов расчёта присутствовал Станислав Улам. Поражённый скоростью работы ЭНИАКа, он предложил сделать расчёты по термоядерному взрыву методом Монте-Карло. В 1947 году на ЭНИАКе было выполнено 9 расчётов этим методом с различными исходными параметрами. После этого метод Монте-Карло стал использоваться во всех вычислениях, связанных с разработкой термоядерного оружия.
Британский физик Дуглас Хартри в апреле и июле 1946 года решал на ЭНИАКе проблему обтекания воздухом крыла самолета, движущегося быстрее скорости звука. ЭНИАК выдал ему результаты расчётов с точностью до седьмого знака. Об этом опыте работы Хартри написал в статье в сентябрьском выпуске журнала Nature за 1946 год[7].
В 1949 году фон Нейман использовал ЭНИАК для расчёта чисел π и e с точностью до 2000 знаков после запятой. Фон Неймана интересовало статистическое распределение цифр в этих числах. Предполагалось, что цифры в этих числах появляются с равной вероятностью, а значит — компьютеры могут генерировать действительно случайные числа, которые можно использовать как вводные параметры для вычислений методом Монте-Карло. Вычисления для числа e были выполнены в июле 1949 года, а для числа π — за один день в начале сентября. Результаты показали, что «цифры в числе π идут в случайном порядке, а вот с числом e всё обстояло значительно хуже»[8].
На ЭНИАКе весной 1950 года был произведён первый успешный численный прогноз погоды командой американских метеорологов Жюлем Чарни, Филипом Томсоном, Ларри Гейтсом, норвежцем Рагнаром Фьюртофтом и математиком Джоном фон Нейманом. Они использовали упрощённые модели атмосферных потоков на основе уравнения вихря скорости для баротропного газа. Это упрощение понизило вычислительную сложность задачи и позволило произвести расчёты с использованием доступных в то время вычислительных мощностей[9]. Расчёты велись начиная с 5 марта 1950 года в течение 5 недель, пять дней в неделю в три 8-часовые смены. Ещё несколько месяцев ушло на анализ и оценку результатов. Описание расчётов и анализ результатов были представлены в работе «Numerical Integration of Barotropic Vorticity Equation»[10], опубликованной 1 ноября 1950 года в журнале Tellus. В статье упоминается, что прогноз погоды на следующие 24 часа на ЭНИАКе был выполнен за 24 часа, то есть прогноз едва успевал за реальностью. Большая часть времени уходила на распечатку перфокарт и их сортировку. Во время расчётов приходилось на ходу вносить изменения в программу и ждать замены перегоревших ламп. При должной оптимизации работы ЭНИАКа, говорилось в работе, расчёт можно было бы выполнить за 12 часов, а при использовании более совершенных машин — за 30 минут. Для прогноза использовались карты погоды над территорией США и Канады за 5, 30, 31 января и 13 февраля 1949 года. После расчётов прогнозные карты сравнивались с реальными для оценки качества прогноза[11].
Характеристики, архитектура и программирование
На создание ENIAC ушло 200 000 человеко-часов и 486 804,22 доллара США. Всего комплекс включал в себя 17 468 ламп 16 различных типов, 7200 кремниевых диодов, 1500 реле, 70 000 резисторов и 10 000 конденсаторов.
- Вес — 30 тонн.
- Объём памяти — 20 число-слов.
- Потребляемая мощность — 174 кВт.
- Вычислительная мощность — 357 операций умножения или 5000 операций сложения в секунду.
- Тактовая частота — 100 кГц, то есть один импульс каждые 10 микросекунд. Основной вычислительный такт состоял из 20 импульсов и занимал 200 микросекунд. Сложение выполнялось за 1 такт, умножение — за 14 тактов (умножение заменялось многократным сложением, так что 1 умножение равнялось 14 операциям сложения и выполнялось, таким образом, за 2800 микросекунд).
- Устройство ввода-вывода данных — табулятор перфокарт компании IBM: 125 карт/минуту на ввод, 100 карт/минуту на вывод[12].
Вычисления производились в десятичной системе, после тщательного анализа ей было отдано предпочтение перед двоичной системой. Компьютер оперировал числами максимальной длиной в 20 разрядов[13].
Многие специалисты Института скептически предсказывали, что при таком количестве ламп в системе компьютер просто не сможет работать сколь-нибудь продолжительное время, чтобы выдать стоящий результат — слишком много точек отказа. Выход из строя одной лампы, одного конденсатора или резистора означал остановку работы всей машины, всего существовало 1,8 миллиарда различных вариантов отказа в каждую секунду[14][15]. До этого человечество не создавало ни один прибор такой сложности и с таким требованием к надёжности. Для того, чтобы вакуумные лампы реже перегорали, Экерт придумал подавать на них минимальное напряжение — 5,7 вольта вместо номинальных 6,3 вольта[16], а после произведения вычислений ЭНИАК продолжал работать, поддерживая лампы в «тёплом» состоянии, чтобы перепад температуры при охлаждении и накаливании не приводил к их перегоранию. За неделю сгорало примерно 2-3 лампы[16], а среднее время работы лампы составляло 2500 часов[17]. Особо высокие требования предъявлялись к отбору радиодеталей и качеству монтажа и пайки. Так инженеры добились того, чтобы ЭНИАК работал минимум 20 часов между поломками — не так много по нынешним меркам, но за каждые 20 часов работы ЭНИАК выполнял месячный объём работы механических вычислителей.
До 1948 года для перепрограммирования ENIAC нужно было перекоммутировать его заново, в то время как Z3 умел считывать программы с перфорированной ленты. Программирование задачи на ЭНИАКе могло занимать до двух дней, а её решение — несколько минут. При перекоммутировании ЭНИАК превращался как бы в новый специализированный компьютер для решения специфической задачи. Ещё на этапе конструирования ЭНИАКа Экерт и Мокли понимали недостатки своего детища, но на этапе проектирования они не считались критическими, поскольку компьютер изначально предназначался для выполнения однотипных баллистических расчётов[18].
В январе 1944 года Экерт сделал первый набросок второго компьютера с более совершенным дизайном, в котором программа хранилась в памяти компьютера, а не формировалась с помощью коммутаторов и перестановки блоков, как в ЭНИАКе. Летом 1944 года военный куратор проекта Герман Голдстайн случайно познакомился со знаменитым математиком фон Нейманом и привлёк его к работе над машиной. Фон Нейман внёс свой вклад в проект с точки зрения строгой теории. Так был создан теоретический и инженерный фундамент для следующей модели компьютера под названием EDVAC с хранимой в памяти программой. Контракт с Армией США на создание этой машины был подписан в апреле 1946 года.
Научная работа фон Неймана «Первый проект отчёта о EDVAC», обнародованная 30 июня 1945 года, послужила толчком к созданию вычислительных машин в США (EDVAC, BINAC, UNIVAC I) и в Англии (EDSAC). Из-за огромного научного авторитета идея о компьютере с программой, хранимой в памяти, приписывается фон Нейману («архитектура фон Неймана»), хотя приоритет на самом деле принадлежит Экерту, предложившему использовать память на ртутных акустических линиях задержки. Фон Нейман подключился к проекту позднее и просто придал инженерным решениям Мокли и Экерта академический научный смысл.
С 16 сентября 1948 года ENIAC превратился в компьютер с хранимой программой (весьма примитивный). По предложению фон Неймана, высказанному в июне 1947 года[19], две функциональные таблицы были использованы для хранения всех команд ENIAСа, чтобы команды вызывались как подпрограммы во время исполнения кода. Компьютер стал работать несколько медленнее, но его программирование сильно упростилось. Старый метод перекоммутирования с тех пор больше не использовался[20].
В июле 1953 года к ЭНИАКу был подключен двоично-десятичный модуль памяти на магнитных сердечниках, увеличивший объём оперативной памяти компьютера с 20 до 120 число-слов.
Влияние
ЭНИАК нельзя было назвать совершенным компьютером. Машина создавалась в военное время в большой спешке с нуля при отсутствии какого-либо предыдущего опыта создания подобных устройств. ЭНИАК был построен в единственном экземпляре, и инженерные решения, реализованные в ЭНИАКЕ, не использовались в последующих конструкциях компьютеров. ЭНИАК — скорей компьютер не первого, а «нулевого» поколения. Значение ЭНИАКа заключается просто в его существовании, которое доказало возможность построения полностью электронного компьютера, способного работать достаточно продолжительное время, чтобы оправдать затраты на его постройку и принести ощутимые результаты.
В марте 1946 года Экерт и Мокли из-за споров с Пенсильванским университетом о патентах на ЭНИАК и на EDVAC, над которым они в то время работали, решили покинуть институт Мура и начать частный бизнес в области построения компьютеров, создав компанию Electronic Control Company, которая позднее была переименована в Eckert–Mauchly Computer Corporation. В качестве «прощального подарка» и по просьбе Армии США они прочитали в институте серию лекций о конструировании компьютеров под общим названием «Теория и методы разработки электронных цифровых компьютеров», опираясь на свой опыт построения ENIAC и проектирования EDVAC. Эти лекции вошли в историю как «Лекции школы Мура». Лекции — по сути первые в истории человечества компьютерные курсы — читались летом 1946 года с 8 июля по 31 августа только для узкого круга специалистов США и Великобритании, работавших над той же проблемой в разных правительственных ведомствах и научных институтах, всего 28 человек. Лекции послужили отправной точкой к созданию в 40-х и 50-х годах успешных вычислительных систем CALDIC, SEAC, SWAC, ILLIAC, машина Института перспективных исследований и компьютер Whirlwind, использовавшийся ВВС США в первой в мире компьютерной системе ПВО SAGE.
Память о компьютере
- Некоторые детали компьютера ENIAC выставлены в Национальном музее американской истории в Вашингтоне[21].
- В честь компьютера назван астероид (229777) ENIAC[22].
- В 1995 году была создана кремниевая интегральная микросхема ENIAC-on-A-Chip размерами 7,44 мм × 5,29 мм, в которой с помощью 250 000 (в других источниках — 174 569[18]) транзисторов была реализована логика, аналогичная 30-тонному ЭНИАКу. ИС работала на частоте 20 МГц, то есть значительно быстрее, чем ЭНИАК[23].
См. также
- EDSAC — британский компьютер, первый реализовавший «архитектуру фон Неймана» (1948)
- EDVAC — следующий компьютер Института Мура, созданный для Армии США на принципах «архитектуры фон Неймана» (1949)
Литература
- Herman H. Goldstine. The Computer from Pascal to von Neumann. — Princeton University Press, 1980. — 365 p. — ISBN 9780691023670. (англ.)
- Nancy B. Stern. From Eniac to UNIVAC: An Appraisal of the Eckert-Mauchy Computers. — Digital Press, 1981. — 286 p. — ISBN 0932376142. (англ.)
- William Aspray. John von Neumann and the Origins of Modern Computing. — MIT Press, 1990. — 394 p. — ISBN 0262011212. (англ.)
- Scott McCartney. ENIAC: The Triumphs and Tragedies of the World's First Computer. — Berkley Books, 2001. — 262 p. — ISBN 9780425176443. (англ.)
- Raúl Rojas, Ulf Hashagen. The First Computers: History and Architectures. — MIT Press, 2002. — 471 p. — ISBN 9780262681377. (англ.)
- Kristine C. Harper. Weather by the Numbers: The Genesis of Modern Meteorology. — MIT Press, 2008. — 320 p. — ISBN 9780262083782. (англ.)
- Thomas Haigh, Mark Priestley, Crispin Rope. ENIAC in Action: Making and Remaking the Modern Computer. — The MIT Press, 2016. — 360 p. — ISBN 0262033984. (англ.)
Примечания
- ELECTRONIC COMPUTERS WITHIN THE ORDNANCE CORPS by Karl Kempf November 1961 Electronic Numerical Integrator and Computer
- Report on the ENIAC (Electronic Numerical Integrator and Computer): Operating Manual, June 1, 1946
- The ENIAC Story (англ.) // O R D N A N C E. — 708 Mills Building - Washington, DC: American Ordnance Association. — No. January—February 1961. Архивировано 14 августа 2011 года.
- Хейли Уильямс. Invisible Women: The Six Human Computers Behind The ENIAC (англ.) на сайте lifehacker.com.au, 10 ноября 2015
- A REPORT ON THE ENIAC (Electronic Numerical Integrator and Computer) June 1, 1946
- 18-20 апреля 1946 г.
- The Eniac, an Electronic Computing Machine // Nature (12 October 1946) vol. 158. — p.500—506
- Nicholas Metropolis, George Reitwiesner, and John von Neumann. Statistical treatment of values of first 2000 decimal digits of e and of pi calculated on the ENIAC (англ.) // Mathematics of Computation. — 1950. — No. 4. — P. 109—111.
- American Institute of Physics. Atmospheric General Circulation Modeling. 2008-01-13.
- Репринт работы Numerical Integration of Barotropic Vorticity Equation на сайте Университета Дублина
- Harper, 2008, p. 154.
- ELECTRONIC COMPUTERS WITHIN THE ORDNANCE CORPS by Karl Kempf November 1961 Техническая спецификация ЭНИАКа
- Rojas, 2002, p. 130.
- A Short History of the Second American Revolution
- Goldstine, 1980, p. 155.
- Goldstine, 1980, p. 145.
- Goldstine, 1980, p. 154.
- Rojas, 2002, p. 177.
- Goldstine, 1980, p. 270.
- Goldstine, 1980, p. 233.
- ENIAC Accumulator #2
- База данных JPL НАСА по малым телам Солнечной системы (229777) (англ.)
- Jan Van Der Spiegel (1996-03). «ENIAC-on-a-Chip» Архивная копия от 11 октября 2012 на Wayback Machine
Ссылки
- ARTHUR W. BURKS. ELECTRONIC COMPUTING CIRCUITS OF THE ENIAC (англ.) (PDF). — статья Артура Бёркса об устройстве ЭНИАКа. Дата обращения: 10 декабря 2014.
- Документация на ЭНИАК (англ.). — на сайте bitsavers.org. Дата обращения: 10 декабря 2014.