Как работали первые электронные компьютеры?

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

Что считать первым компьютером

Единственного бесспорного победителя в соревновании «кто был первым» нет, потому что критерии различаются. Машина может быть электронной или электромеханической, программируемой или построенной для одной задачи, двоичной или десятичной, универсальной или специальной. Одни проекты существовали в секрете, другие были экспериментами, третьи стали рабочими службами.

Например, немецкий Z3 Конрада Цузе был программируемым и двоичным, но использовал электромеханические реле. Британские Colossus были электронными и чрезвычайно быстрыми для криптоанализа, однако решали специализированный класс задач. Американский ENIAC был электронным универсальным вычислителем, но первоначально программировался физической коммутацией. Поэтому полезнее сравнивать свойства, а не назначать одно магическое начало.

Почему электроника оказалась быстрее реле

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

Цена скорости была высокой. Лампы потребляли энергию, нагревали помещение и занимали место. Тысячи деталей требовали питания, охлаждения и поиска неисправностей. Но для баллистических таблиц, криптоанализа и научных расчётов выигрыш во времени оправдывал сложность.

Как машина представляла числа

Не все ранние компьютеры использовали одну систему. Z3 работал с двоичными числами с плавающей запятой. ENIAC был десятичным: его аккумуляторы хранили цифры с помощью кольцевых счётчиков, где импульсы последовательно меняли состояние. Colossus обрабатывал потоки символов и логические условия, важные для анализа шифра.

Общий принцип заключался в кодировании. Физическое состояние узла соответствовало символу или разряду, а схема определяла допустимые переходы. Электроны не «знали» числа. Значение возникало потому, что инженеры сопоставили состояниям математические правила.

Как программировали ENIAC

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

Эта работа была интеллектуальным программированием, даже если код не выглядел как текст. Программистки ENIAC, включая Кэтлин Антонелли, Джин Бартик и коллег, должны были понимать архитектуру, последовательность сигналов и способы проверки. Они не просто переставляли провода по готовой картинке, а превращали математический метод в работу реальной машины.

Как вводили данные и получали результат

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

Оператор готовил колоды, следил за порядком и сравнивал контрольные значения. Машинный зал был не одиночным «мозгом», а производственным процессом с людьми, носителями, журналами и обслуживанием.

Что изменила хранимая программа

Если команды представлены в той же памяти, что и данные, программу можно загрузить и изменить без перекоммутации всей панели. Процессор последовательно извлекает инструкцию, расшифровывает её, выполняет и переходит к следующей. Условная команда меняет этот порядок на основании результата.

Идею формализовали и реализовали несколько исследовательских групп. Доклад по EDVAC связан с Джоном фон Нейманом, но развитие было коллективным и опиралось на работу участников проектов ENIAC, EDVAC и других лабораторий. В 1948 году Manchester Baby выполнил программу из электронной памяти и стал важным экспериментальным доказательством принципа.

Где хранились биты

Ранняя память принимала разные формы. Линия задержки сохраняла последовательность импульсов, непрерывно прогоняя её по замкнутому пути. Трубка Уильямса использовала зарядовые точки на экране электронно-лучевой трубки. Магнитный барабан записывал состояния на вращающейся поверхности. Позже ферритовые сердечники дали более устойчивую оперативную память.

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

Насколько надёжными были ламповые системы

Расхожая картина, будто лампа перегорала каждую минуту, слишком груба. Инженеры снижали нагрузку, поддерживали стабильное питание и заменяли компоненты профилактически. Машины могли выполнять полезные длительные расчёты, иначе их не стали бы эксплуатировать.

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

Почему первые машины не были похожи на персональный компьютер

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

Тем не менее основные роли уже узнаваемы: ввод, память, управление, арифметика и вывод. Проект Бэббиджа предлагал похожее разделение механически, о чём рассказывает статья про Аналитическую машину. Электроника дала необходимую скорость, а хранимая программа – гибкость.

Как компьютер вышел из машинного зала

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

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