Архитектура компьютеров: чем современные компьютеры похожи на совсем древние

Говорим «архитектура» — подразумеваем здания. Но в компьютерных делах архитектура тоже бывает — правда, внутренняя: это компоненты, из которых состоит компьютер, и их взаимодействие друг с другом.

Всё это не зря называют архитектурой. Когда-то сами компьютеры были размером с дом!

Пожалуй, с этого и начнём.

Первые компьютеры — и их первые проблемы

Первой универсальной ЭВМ был ENIAC (Electronic Numerical Integrator and Computer, «электронный цифровой интегратор и вычислитель»), который закончили к 1945 году.

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

Главные разработчики ENIAC, Джон Мокли и Джон Преспер Эккерт из Пенсильванского университета, понимали недостатки своего детища ещё в 1943 году.

Счастливые Джон Мокли и Джон Преспер Эккерт держат в руках блок от ENIAC, отвечающий за работу с одним десятичным разрядомСчастливые Джон Мокли и Джон Преспер Эккерт держат в руках блок от ENIAC, отвечающий за работу с одним десятичным разрядом

Мокли и Эккерт начали думать над будущими компьютерами ещё до запуска «Эниака». Чтобы побороть один из главных недостатков — длительный и неудобный процесс перепрограммирования — Эккерт предложил хранить саму программу вычислений в той же памяти, что и данные, необходимые для расчёта. Назвать более совершенную машину предполагалось EDVAC (Electronic Discrete Variable Automatic Computer, «электронный дискретный настраиваемый автоматический вычислитель»). Она, конечно, тоже была размером с дом: лампы требуют много места.

Архитектура фон Неймана

В сентябре 1944 года к разработчикам ENIAC присоединился Джон фон Нейман — выдающийся американский математик и участник Манхэттенского проекта.

Фон Нейман был единственным участником проекта, который не появился в фильме «Оппенгеймер» Нолана. Потому что он был бы довольно скучным персонажем: математика интересовали не интриги, а формулы.

Джон фон Нейман в 1952 году на фоне компьютера IAS machineДжон фон Нейман в 1952 году на фоне компьютера IAS machine

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

Фон Нейман составил «Черновик доклада об EDVAC» (First Draft of a Report on the EDVAC), в котором описал основные архитектурные принципы:

  1. В состав компьютера входит устройство для выполнения арифметических операций, устройство управления, память, устройства ввода и устройства вывода.
  2. Программы состоят из команд, каждая из которых требует от компьютера выполнить одну из доступных ему операций.
  3. По умолчанию команды выполняются последовательно, но этот порядок можно изменить за счёт выполнения специальных команд.
  4. И данные, и команды хранятся в памяти. Над командами можно выполнять те же действия, что и над данными.
  5. Память состоит из пронумерованных ячеек, к каждой из которых можно обратиться по её адресу.
  6. Данные и команды представлены в двоичной системе счисления.

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

Отчёт поступил математику Герману Голдстайну, курировавшему проект со стороны военных. Тот был настолько впечатлён перспективностью изложенных идей, что в июне 1945 года решил разослать копии отчёта разным учёным, не спрашивая разрешения разработчиков и не вникая в тонкости авторства. В итоге на титульном листе отчёта осталась лишь фамилия составителя — Джона фон Неймана. С лёгкой руки Голдстайна изложенный в документе подход к конструированию компьютеров стал известен как «архитектура фон Неймана».

В СССР независимо от Джона фон Неймана к тем же выводам касательно оптимального устройства ЭВМ в конце 1940-х годов пришёл Сергей Лебедев. В Германии схожие принципы сформулировал Конрад Цузе, хотя от идеи совместно хранить программы и данные в памяти он всё же отказался.

Из-за ухудшения отношений между фон Нейманом, Эккертом и Мокли работа над постройкой EDVAC сильно затормозилась. В итоге первый компьютер с фоннеймановской архитектурой был создан не в США, а в Великобритании. Он получил название EDSAC (Electronic Delay Storage Automatic Calculator, «электронный автоматический вычислитель с памятью на линиях задержки»).

EDSAC, 1949 год. Компьютер всё ещё похож на шкафы с коллекцией ламп и проводочковEDSAC, 1949 год. Компьютер всё ещё похож на шкафы с коллекцией ламп и проводочков

EDSAC навсегда останется в истории вычислительной техники не только как одна из первых ЭВМ современного типа, но и как первый компьютер, для которого была написана компьютерная игра. Сегодня мы знаем её как OXO либо Noughts and Crosses — это был вариант хорошо всем известных крестиков-ноликов.

Noughts and Crosses на экране электронно-лучевой трубки компьютера EDSACNoughts and Crosses на экране электронно-лучевой трубки компьютера EDSAC

Устройство компьютера

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

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

Устройства ввода и устройства вывода тоже можно объединить в одну группу. Таким образом, обязательные части любого компьютера — это:

  1. Процессор.
  2. Память.
  3. Устройства ввода-вывода.

В общем, всё как сегодня. Правда, сейчас всю логику ЭВМ первого поколения, таких как ENIAC и EDVAC, можно «зашить» в крошечную микросхему, которую получится увидеть только в микроскоп.

Миниатюризация базовых элементов электроники на картинке из рекламной брошюры IBMМиниатюризация базовых элементов электроники на картинке из рекламной брошюры IBM

Процессор современного компьютера — это одна микросхема размером с почтовую марку. Если, конечно, вы ещё помните, что это такое.

Функции памяти выполняют несколько разных устройств: модули оперативной памяти и накопители. Обо всём этом мы обязательно скоро расскажем!

P.S. Спасибо, мистер фон Нейман!