Top.Mail.Ru
Выберите ваш город

В 500 раз слабее калькулятора, но гениален: как ENIAC заложил основы современных ПК

14.02.2025
20 мин на чтение
463

Представьте, что ваш компьютер весит 30 тонн, занимает половину офиса и требует отдельной электростанции. Так выглядел ENIAC — первый программируемый компьютер, с которого началась эра информационных технологий: он стал прототипом всех современных ПК, а также подарил нам (одиноким айтишникам) международный праздник 14 февраля — День компьютерщика и программиста.

Итак, перед вами редкий жанр в блоге Сервер Молл — увлекательная беллетристика про технологии. Заваривайте кофе и откидывайте спинку кресла: в этой статье есть всё, что вы хотели знать об ENIAC, но было лень искать.

Ах да, и 15 интересных фактов приберёг для вас — в конце статьи, разумеется :)

Что такое ENIAC: 30 тонн, 160 кВт и самый мощный компьютер своего времени

ENIAC (Electronic Numerical Integrator and Computer, он же Электронный числовой интегратор и вычислитель, он же ЭНИАК) — это первый программируемый электронный компьютер, реально работающий над практическими задачами.

Его создали в 1945 году, но широкой публике представили только в 1946 г. Компьютер основан на десятичной системе счисления (все современные на двоичной: «0» и «1»), а разработкой занимались исследователи в Институте Мура Пенсильванского университета для Лаборатории баллистических исследований Армии США. Да, проект создавали на военные деньги, а потому компьютер засекретили на время разработки (и ещё на некоторое время после).

Зачем создали ENIAC? В середине XX века шла самая большая война в истории человечества. Для военных задач нужно было выполнять сложные и быстрые расчёты: артиллерийские вычисления, баллистические таблицы и наведение оружия — это стало критически важным в ведении боевых действий.

В условиях Второй мировой войны армия США остро нуждалась в автоматизированной системе, которая могла бы заменить трудоёмкие ручные расчёты. Так появилась идея ENIAC — первого электронного цифрового компьютера для ускорения решения дифференциальных уравнений и других математических задач.

У ЭНИАКа есть две важнейшие особенности, которые задали вектор всему компьютеростроению на десятилетия (а, возможно, и на века) вперёд. Его презентация — без преувеличения историческое событие. Именно поэтому День компьютерщика и программиста празднуют в день, когда ЭНИАК показали миру — 14 февраля.

Что это за особенности? Он был одновременно электронным и программируемым (обе характеристики ранее встречались в компьютерах, но по отдельности). Сейчас расскажу, почему это так важно.

Во-первых, ЭНИАК был одним из первых полностью электронных компьютеров, и здесь нужна ремарка — он не был первым компьютером в принципе. До него уже существовали:

  • BMW Z3 (Германия, 1941 г.) — первый программируемый и компьютер, но на основе механических реле, то бишь электромеханический.

  • Colossus (Великобритания, 1943 г.) — электронный, но специализированный только под дешифровку (криптоанализ) перехваченных сообщений из нацистской Германии во время Второй мировой войны.

Да и многие другие механические вычислительные машины, появившиеся ещё во времена Архимеда (287-212 г. до н. э.). Однако его предшественники работали на механических или электромеханических компонентах (например, реле или шестерёнки), ЭНИАК же работал на электронных лампах. Это позволило ему выполнять вычисления с огромной для того времени скоростью — тысячи операций в секунду. Тогда как механические компьютеры были медленными, шумными и ненадёжными. 

Кстати, у нас есть отдельная статья про доэлектрический счёт: от пальцев к арифмометрам (можно почитать на Хабре).

Кто создал ENIAC? Проект начали разрабатывать в 1943 году в Пенсильванском университете. За ним стояли два главных инженера — Джон Преспер Эккерт и Джон Уильям Мокли. Их работа была революционной, но вскоре к проекту подключился Джон фон Нейман, чьи идеи о хранимых программах оказались столь значимыми, что его вклад в проект затмил самих создателей.

Отцы ENIAC: Джон Эккерт слева, Джон Мокли справа

Вторая важнейшая особенность — программируемость. Это возможность настроить компьютер на выполнение новых задач без изменения его физической конструкции. Достаточно изменить последовательность команд (инструкций), а в нашем случае — соединений. Да, изначально ЭНИАК имел огромный недостаток — программировать нужно было переключением кабелей и рычагов, коих было 6000. Дело это крайне непростое и долгое — иногда длилось неделями. Из-за этого статус программируемого компьютера ему можно дать с натяжкой (до модификаций). Но само свойство очень важно — оно задало вектор в компьютеростроении вплоть до сегодняшнего дня.

Впервые гибкость уровня современных устройств (когда переключать кабели и рычаги не нужно было) появилась в проекте EDVAC (Electronic Discrete Variable Automatic Computer). Вернее её описали в первом черновике отчёта об EDVAC в 1945 году. Гибкость эта означала, что программа (то бишь инструкции) будет храниться в той же памяти, что и данные. Всё это дело назвали архитектурой Джона фон Неймана — в честь исследователя и инженера, который внёс важный вклад и написал тот самый черновик. 

Джон фон Нейман справа

Если сильно упростить, то архитектура выглядела так:

  • Процессор с арифметико-логическим устройством (АЛУ) и процессорными регистрами;

  • Блок управления, содержащий регистр команд и программный счётчик;

  • Память, в которой хранятся данные и инструкции;

  • Внешнее массовое запоминающее устройство;

  • Входные и выходные механизмы.



Это достижение сильно ускорило изменение алгоритмов — без физической перекоммутации. Позже ЭНИАК постоянно улучшали. Например, в 1947 году добавили примитивный механизм программирования с помощью таблиц функций (выступали они аналогом современных жёстких дисков — ПЗУ).

Программирование хранимой в памяти программы на ЭНИАКе показали в апреле 1948 года. Модификация ускорила перепрограммирование до нескольких часов, но снизила производительность в 6 раз, а также закрыла доступ к параллельным вычислениям. Это не стало проблемой, так как производительность всё равно упиралась в ограниченные возможности ввода-вывода.

Модификация, конечно, важнейшая, но даже до неё ЭНИАК был универсальным. 

Да, сегодня компьютером общего назначения никого не удивишь. Ваш смартфон позволяет работать, играть, фотографировать, оплачивать счета. ЭНИАК, конечно, не умел ни снимать селфи, ни запускать TikTok, но мог вычислить траекторию баллистической ракеты, решить проблему термоядерной бомбы или (в теории) рассчитать угол для прибивания полки на кухне. Важное отличие от предшественников — он мог выполнять разные задачи, а не одну заранее заложенную инженерами.

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

Характеристики и компоненты ENIAC — компьютер первого поколения

Строительство ЭНИАКа обошлось правительству США в 400 000 долларов (а по некоторым оценкам 500 000). Его создавали, чтобы ускорить победу во Второй мировой, но война закончилась быстрее. Не смотря на это, первой задачей компьютера стали расчёты для создания водородной бомбы. 

Кстати, если вы захотите прикоснуться к истории, то посмотреть на часть компьютера можно в Смитсоновском институте в Вашингтоне, округ Колумбия. Другие части есть в музеях Британии и Германии. Далековато, но всё же :)

Характеристики ENIAC: 

  • Масса: ~30 коротких тонн, что эквивалентно 27 классическим тоннам;

  • Размеры: Находился в подвале (15 на 9 метров) школы Мура, где 40 панелей установили в форме буквы U вдоль трех стен. Каждая панель была шириной около 0.6 метра, глубиной 0.6 метра и высотой 2.4 метра;

  • Энергопотребление: ~150-160 кВт (мог вызвать падение напряжения в штате Филадельфия), работал непрерывно, чтобы продлить срок службы ламп;

  • Элементы:

    • Два ядра, два гига;

    • 17 468 электронных ламп — это основные вычислительные элементы компьютера, которые выполняли функции логических элементов и памяти;

    • 6000 переключателей — операторы (сисадмины того времени) могли вручную настраивать программы и управлять выполнением задач с помощью переключателей и кабелей;

    • 1 500 реле — устройства для переключения и управления различными частями системы;

    • 70 000 резисторов;

    • 10 000 конденсаторов;

    • 5 млн паяных соединений;

  • Память: изначально не было системы хранения данных, а для внешней памяти использовали перфокарты и перфоленты (внешние носители для ввода-вывода данных; выглядели как карточки из тонкого картона). В 1953 году через модификации добавили 100-словную память на магнитных сердечниках.

  • Производительность:

    • 5000 операций сложения/вычитания в секунду, что несколько раз выше предшественников (у Intel Pentium 133, выпущенного в 1996 году, было ~50-100 млн операций/с, у Pentium 4 их уже миллиарды, а у современных — триллионы);

    • 357 операций умножения в секунду;

    • 38 операций деления в секунду;

    • 3 операции извлечения квадратного корня в секунду. 

  • Десятичная логика: число в ЭНИАК представлялось в виде десятичного слова, состоящего из 10 десятичных разрядов (цифр от 0 до 9) плюс знак. Каждый разряд хранился в одном из 20 аккумуляторов (регистров), а каждая цифра кодировалась с помощью 36 вакуумных ламп.

    Например, число 34 259 в ENIAC выглядело так:
    3 хранилось в одном регистре (загорался третий разряд ламп).
    4 — в следующем разряде.
    2, 5 и 9 — аналогично.
    Если число было отрицательным, использовалась отдельная лампа для знака.

  • Как и с какой скоростью работал ENIAC?

    ЭНИАК — это скорее суперкомпьютер по современным меркам, а не классический ПК. Большой, многокомпонентный и сложный в обслуживании. При этом он оперировал десятичными числами, а не двоичными, как современные компьютеры. Десятичная логика — это система, в которой данные и вычисления представлены в десятичной системе счисления (основание 10), то есть в привычном для человека формате (0, 1, 2, ..., 9).

    Итак, у ЭНИАКа было 20 числовых аккумуляторов (регистров), которые работали с этой десятичной логикой. Именно они и могли совершать до 5000 простых операций сложения/вычитания и до 357 операций умножения в секунду. С делением чуть хуже — до 40 операций в секунду; а извлечение квадратного корня — до 3 в секунду. При этом возможны были и параллельные вычисления — несколько регистров можно было подключить для одновременной обработки данных.

    Сложная техническая информация (изучать по желанию)!

    Базовый машинный цикл ЭНИАКа — 200 микросекунд (20 тактов при частоте тактового генератора 100 кГц в циклическом блоке). Получаем эквивалент 5000 операций в секунду для 10-значных чисел. За один такой цикл ЭНИАК мог выполнить одну из трёх базовых операций: записать число в регистр, считать число из регистра или сложить/вычесть два числа.

    Операция умножения 10-значного числа на число с количеством цифр d (где d не превышает 10) занимала d+4 цикла. Умножение двух 10-значных чисел требовало 14 циклов, или 2800 микросекунд, что позволяло выполнять до 357 операций умножения в секунду. Если одно из чисел содержало меньше 10 цифр, операция выполнялась быстрее.

    Операции деления и извлечения квадратного корня занимали 13(d+1) циклов, где d — количество цифр в результате (частном или корне). В худшем случае, при 10-значном результате, такие операции требовали до 143 циклов, или 28 600 микросекунд, что соответствовало 35 операциям в секунду.

    Главное в работе ЭНИАКа — скорость. Раньше вычисления подобной сложности на самых продвинутых устройствах занимали часы, а новый компьютер справлялся с ними за секунды. Его производительность оценивали примерно в 500 FLOPS. У современных устройств это триллионы операций в секунду (TFLOPS) — разница в миллионы раз.

    Пример сложения на ENIAC. Допустим, нужно сложить 34 259 + 18 473:
    Числа вводятся в два регистра — один для 34 259, другой для 18 473.
    Электронные схемы прибавляют цифры побитно (как в столбик), перенося лишние разряды. Результат записывается в третий регистр: 52 732.

    Отличие от современных компьютеров. Современные машины хранят числа в двоичном коде (например, 34 259 в десятичной системе — это в двоичной 1000010111010011). ENIAC же работал ближе к человеческой арифметике, но из-за этого его схемы были сложнее.

    Если сравнить с современными процессорами, то эквивалентная тактовая частота ЭНИАКа — всего 5 кГц (а для сложных операций умножения и деления — менее 1 кГц). Для сравнения, процессоры сегодня работают на 3-6 ГГц, выполняя в 600 000 – 4 300 000 (и выше) раз больше операций в секунду. Разница колоссальная, если бы ЭНИАКу пришлось решать современную задачу, он бы работал над ней годами, а современные компьютеры справляются за доли секунды.

    Как использовали ENIAC?

    На этом снимке офицер по гражданской обороне подполковник У. Артур Крото указывает на модель взрыва атомной бомбы над картой Оттавы во время учений 1952 года в Халле, Квебек. (Библиотеки Йоркского университета, архивы Клары Томас и специальные коллекции, Toronto Telegram).

    Хотя ЭНИАК разработали на деньги военных и для военных задач, он выполнял первые компьютерные прогнозы погоды, значительно ускорил исследования в области ядерной физики и даже применялся для ранних экспериментов с криптографией. Его вычислительные возможности на тот момент казались фантастическими — он был примерно в 1000 раз быстрее любых существующих механических калькуляторов.

    Немного подробнее о том, на что был способен ЭНИАК:

    • Баллистические расчёты — его изначальная задача. ЭНИАК помогал армии рассчитывать таблицы стрельбы для артиллерии, что позволяло быстрее и точнее определять траектории снарядов.

    • Прогнозирование погоды — один из первых компьютеров, который пытался моделировать атмосферные процессы. Конечно, до современных метеорологических суперкомпьютеров ему было далеко, но это был важный шаг в сторону компьютерных прогнозов. Например, на ЭНИАКе в 1950 году сделали первый успешный прогноз погоды. Команда американских метеорологов и математиков использовала упрощённые модели атмосферных потоков, что позволило произвести расчеты с доступными в то время вычислительными мощностями.

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

    • Инженерные и математические расчёты — ЭНИАК применяли для решения сложных уравнений в науке и промышленности, от аэродинамики до электротехники.

    Но, пожалуй, главный вклад ЭНИАК внёс в развитие программирования. Первоначально, чтобы поменять алгоритм, инженерам приходилось вручную переключать провода и перенастраивать соединения между модулями — процесс мог занимать недели. Однако в 1948 году ENIAC модернизировали, и он смог хранить программы в памяти — это стало первым шагом на пути к современным компьютерам.

    15 интересных фактов об ENIAC

    Итак, часть интересных фактов я уже затронул в статье, но тем, кто сразу пролистал сюда (или зашёл из поиска), будет интересно. Начнём!

    Интересный факт №1: баг

    Начну не с фич, а с багов. Термин баг (в значении программной ошибки) произошел от английского слова bug — «букашка» или «жучок». Да, именно жучки (и различные паучки, мотыльки), но не в переносном, а в буквальном смысле. 

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

    Если по правде, то термин баг использовал ещё Томас Эдисон в 1878, но его связь с программной ошибкой началась в 1947 году, когда в релейный механизм компьютера Harvard Mark II попала настоящая здоровенная моль и вызвала сбой в системе.

    Грейс Хоппер, американская исследовательница (разработала первый компилятор), проследила ошибку до релейного механизма, где нашла поджаренного мотылька. Она вклеила насекомое в технический дневник с комментарием «First actual case of bug being found» (Первый реальный случай обнаружения жучка).

    Ну а ЭНИАК, как система того времени, страдала этой же проблемой.

    Интересный факт №2: тайна, ставшая сенсацией

    Первый запуск ЭНИАКа случился 5 декабря 1945 года где-то в секретных подземных лабораториях в обстановке строжайшей секретности. Презентация публике состоялась только 14 февраля 1946 года, поэтому День компьютерщика празднуем именно в этот день.

    Интересный факт №3: перепрограммирование — это кошмар, ассемблер проще

    Перепрограммирование ЭНИАКа — это физическое переключение тысяч кабелей и тумблеров вручную. Даже у опытных инженеров процесс занимал несколько дней, а иногда недель. Это сравнимо с полным перезапуском системы, перекроем аппаратной логики, а не просто загрузкой нового кода (как в современных системах). Поскольку у ЭНИАКа не было запоминающей программы, чтобы заставить его выполнять новую задачу, приходилось переключать провода вручную, а не просто загружать код.

    Интересный факт №4: современный калькулятор круче

    Память ЭНИАКа была весьма скромной — всего 20 команд по 22 бита каждая, что в сумме составляло 440 бит. Сегодня даже самый простой калькулятор имеет гораздо больший объём памяти. В 1995 году была разработана микросхема ENIAC-on-A-Chip, которая занимала площадь 7,44 мм × 5,29 мм и содержала 174 569 транзисторов. Эта микросхема способна выполнять те же операции, что и 30-тонный ЭНИАК, но с гораздо большей скоростью — на частоте 20 МГц.

    Интересный факт №5: работал на десятичной системе

    В отличие от современных компьютеров, которые работают с двоичным кодом (0 и 1), ЭНИАК изначально использовал десятичную систему. Это делало вычисления медленными и сложными. Только в 1953 году его перевели на двоичный код.

    Интересный факт №6: участвовал в расчётах для ядерных испытаний

    ЭНИАК использовался для расчёта мощности первых термоядерных взрывов и моделирования распространения ядерных осадков. В том числе он помогал прогнозировать, куда может дрейфовать радиоактивное облако после взрыва.

    Интересный факт №7: первый компьютерный прогноз погоды

    В 1950 году на ЭНИАК был выполнен первый успешный численный прогноз погоды. Это был эксперимент, который показал, что компьютеры могут использоваться для сложного моделирования.

    Интересный факт №8: горячая, требовательная и капризная штучка

    Из-за 17 468 электронных ламп ЭНИАК выделял огромное количество тепла. Иногда помещение с машиной приходилось проветривать, чтобы избежать перегрева. Из-за колоссального энергопотребления (160 кВт) ЭНИАК не работал постоянно. Его включали только по необходимости, так как каждая сессия требовала значительных затрат электроэнергии.

    Интересный факт №9: женщины-программисты

    Первыми программистами ЭНИАКа были женщины: Джин Бартник, Бетти Холбертон, Кей Макнолти, Рут Лихтерман, Мэрилин Веспер и Фрэнсис Спенс. Они вручную настраивали его для выполнения различных задач.

    Интересный факт №10: вес и размеры — как приличный дом

    ЭНИАК занимал 167 м² площади, весил примерно 30 (коротких) тонн и состоял из около 5 миллионов проводных соединений.


    Интересный факт №11: стоил баснословных денег

    Разработка ЭНИАКа обошлась в 500 000 долларов (что эквивалентно 9 миллионам долларов в современных ценах).

    Интересный факт №12: без монитора

    Данные вводились с помощью перфокарт и перфолент, а результаты выводились на печатающее устройство или световые индикаторы.

    Интересный факт №13: покорял космос

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

    Интересный факт №14: его хватило всего на 30 минут

    На первой публичной демонстрации в 1946 году ЭНИАК сломался — через полчаса работы из-за перегрева ламп.

    Интересный факт №15: работал 9 лет и был разобран

    ЭНИАК был выключен навсегда 2 октября 1955 года в 23:45. Часть его компонентов сейчас можно увидеть в восьми музеях США, Великобритании и Германии.

    Пост сдал — ENIAC ушел, наследие осталось

    Пускай ЭНИАК выключился навсегда. Пускай ни одна его лампа больше не будет гореть, но его наследие будет с нами всегда (на наш век точно хватит). Он оставил неизгладимый след в истории вычислительной техники в частности и человечества в целом. 

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

    Если сравнить современный ПК и ЭНИАК, разница колоссальна: в триллионы раз быстрее, миниатюрнее, энергоэффективнее. Но суть — ядро, если угодно, — осталась той же: двоичная система, процессор, память, ввод-вывод.

    День компьютерщика и программиста, 14 февраля, напоминает нам, что великое начинается с малого (хотя 30 тонн малым не назвать), что один научный прорыв может изменить всё.

    Мир не всегда был таким технологичным, как сегодня. За это спасибо ЭНИАКу, исследователям, которые его создали, а также всем современным специалистам, работающим в IT-сфере.

    С праздником, коллеги! :D



Получить совет по подбору современного оборудования

Автор

СЕРВЕР МОЛЛ

Поделиться
Комментарии
(0)
Ещё не добавлено ни одного комментария
Написать комментарий
Поля, отмеченные *, обязательны для заполнения

Больше статей

Подписаться на новости

Нажимая кнопку «Подписаться», я даю согласие
на обработку и хранение персональных данных и принимаю соглашение
icon-recall
Отправить ТЗ
client consultations icon-delivery discount icon-facebook franchise icon-google_plus it-solutions icon-jivosite icon-menu icon-up icon-message payment icon-recall shops-local shops-network icon-solutions icon-support tasks icon-twitter Group 8 icon-user icon-viber icon-vk icon-watsup icon-watsup-2
Мы используем файлы 'cookie', чтобы обеспечить максимальное удобство пользователям.