В ходе развития компьютерных технологий были разработаны сотни разных компьютеров. Многие из них давно забыты, но некоторые сильно повлияли на современные идеи. Мы рассмотрим только основные моменты развития, оставив многие подробности за скобками.
Компьютеры, которые мы будем рассматривать, представлены в табл. 1.1.
Таблица 1.1. Основные этапы развития компьютеров
Год выпуска
Название компьютера
Создатель
Примечания
Аналитическая машина
Бэббидж
Первая попытка построить цифровой компьютер
Z1
Зус
Первая релейная вычислительная машина
COLOSSUS
Британское правительство
Первый электронный компьютер
Mark I
Айкен
Первый американский многоцелевой компьютер
ENIAC I
Экерт/Моушли
Отсюда начинается история современных компьютеров
EDSAC
Уилкс
Первый компьютер с программами, хранящимися в памяти
Whirlwind I
МТИ
Первый компьютер реального времени
IAS
Фон Нейман
Этот проект используется в большинстве современных компьютеров
PDP-1
DEC
Первый мини-компьютер (продано 50 экземпляров)
IBM
Очень популярный маленький компьютер
IBM
Очень популярная небольшая вычислительная машина
B5000
Burroughs
Первая машина, разработанная для языка высокого уровня
IBM
Первое семейство компьютеров
CDC
Первый суперкомпьютер для научных расчетов
PDP-8
DEC
Первый мини-компьютер массового потребления (продано 50 000 экземпляров)
PDP-11
DEC
Эти мини-компьютеры доминировали на компьютерном рынке в 70-е годы.
Intel
Первый универсальный 8-битный компьютер на микросхеме
CRAY-1
Cray
Первый векторный супер-компьютер
VAX
DEC
Первый 32-битный суперминикомпьютер
IBM PC
IBM
Началась эра современных персональных компьютеров
MIPS
MIPS
Первый компьютер RISC
SPARC
Sun
Первая рабочая станция RISC на основе процессора SPARC
Первым человеком, создавшим счетную машину, был французский ученый Блез Паскаль (1623–1662), в честь которого назван один из языков программирования. Паскаль сконструировал эту машину в 1642 году, когда ему было всего 19 лет, для своего отца, сборщика налогов. Она была механическая: с шестеренками и ручным приводом. Счетная машина Паскаля могла выполнять только операции сложения и вычитания.
Тридцать лет спустя великий немецкий математик Готфрид Вильгельм Лейбниц (1646–1716) построил другую механическую машину, которая кроме сложения и вычитания могла выполнять операции умножения и деления. В сущности, Лейбниц три века назад создал подобие карманного калькулятора с четырьмя функциями.
Еще через 150 лет профессор математики Кембриджского университета Чарльз Бэббидж (1792–1871), изобретатель спидометра, разработал и сконструировал разностную машину. Эта механическая машина, которая, как и машина Паскаля, могла только складывать и вычитать, подсчитывала таблицы чисел для морской навигации. У этой машины был довольно интересный способ вывода информации: результаты выдавливались стальным штампом на медной дощечке, что предвосхитило более поздние средства ввода-вывода — перфокарты и компакт-диски.
Хотя это устройство работало довольно неплохо, Бэббиджу вскоре наскучила машина, выполнявшая только один алгоритм. Он потратил очень много времени, большую часть своего семейного состояния и еще 17000 фунтов, выделенных правительством, на разработку аналитической машины. У аналитической машины было 4 компонента: запоминающее устройство (память), вычислительное устройство, устройство ввода (для считывания перфокарт), устройство вывода (перфоратор и печатающее устройство). Память состояла из 1000 слов по 50 десятичных разрядов, каждое из которых содержало переменные и результаты. Вычислительное устройство принимало операнды из памяти, затем выполняло операции сложения, вычитания, умножения или деления и возвращало полученный результат обратно в память. Как и разностная машина, это устройство было механическим.
Преимущество аналитической машины заключалось в том, что она могла выполнять разные задачи. Она считывала команды с перфокарт и выполняла их. Некоторые команды приказывали машине взять 2 числа из памяти, перенести их в вычислительное устройство, произвести над ними операцию (например, сложить) и отправить результат обратно в запоминающее устройство. Другие команды проверяли число, а иногда совершали операцию перехода в зависимости от того, положительное оно или отрицательное. Если в считывающее устройство вводились перфокарты с другой программой, то машина выполняла другой набор операций. А разностная машина могла осуществлять только один алгоритм.
Поскольку эта аналитическая машина программировалась на ассемблере, ей было необходимо программное обеспечение. Чтобы создать это программное обеспечение, Бэббидж нанял молодую женщину — Аду Августу Ловлейс, дочь знаменитого британского поэта Байрона. Ада Ловлейс была первым в мире программистом. В ее честь назван современный язык программирования Ada.
К несчастью, Бэббидж никогда не отлаживал компьютер. Ему нужны были тысячи и тысячи шестеренок, сделанных с такой точностью, которая была невозможна в XIX веке. Но идеи Бэббиджа опередили его эпоху, и даже сегодня большинство современных компьютеров по строению сходны с аналитической машиной. Поэтому справедливо будет сказать, что Бэббидж был дедушкой современного цифрового компьютера.
В конце 30-х годов XX века немец Конрад Зус сконструировал несколько автоматических счетных машин с использованием электромагнитных реле. Ему не удалось получить денежные средства от правительства на свои разработки, потому что началась война. Зус ничего не знал о работе Бэббиджа, и его машины были уничтожены во время бомбежки Берлина в 1944 году, поэтому его работа никак не повлияла на будущее развитие компьютерной техники. Однако он был одним из пионеров в этой области.
Немного позже счетные машины были сконструированы в Америке. Машина Атанасова была чрезвычайно развитой для того времени. В ней использовалась бинарная арифметика и информационные емкости, которые периодически обновлялись, чтобы избежать уничтожения данных. Современная динамическая память (ОЗУ) работает точно по такому же принципу. К несчастью, эта машина так и не стала действующей. В каком-то смысле Атанасов был похож на Бэббиджа: мечтатель, которого не устраивали технологии своего времени.
Компьютер Стибитса действительно работал, хотя и был примитивнее, чем машина Атанасова. Стибитс продемонстрировал работу своей машины на конференции в Дартмутском колледже в 1940 году. На этой конференции присутствовал Джон Моушли, ничем не знаменитый профессор физики из университета Пенсильвании. Позднее он стал очень известным в области компьютерных разработок.
Пока Зус, Стибитс и Атанасов разрабатывали автоматические счетные машины, молодой Говард Айкен с трудом проектировал ручные счетные машины как часть своей докторской диссертации в Гарварде. После окончания исследования Айкен осознал важность автоматических вычислений. Он пошел в библиотеку, узнал о работе Бэббиджа и решил создать из реле такой же компьютер, который Бэббиджу не удалось создать из зубчатых колес.
Работа над первым компьютером Айкена «Mark I» была закончена в 1944 году. Компьютер содержал 72 слова по 23 десятичных разряда каждое и мог выполнить любую команду за 6 секунд. На устройствах ввода-вывода использовалась перфолента. К тому времени, как Айкен закончил работу над компьютером «Mark II», релейные компьютеры уже устарели. Началась эра электроники.