История вычислительной техники помнит разные компьютеры: и самые большие, и рекордно маленькие, и чрезвычайно мощные, и крайне медленные. В этом ряду электронная вычислительная машина Whirlwind — это компьютер с удивительной судьбой, проектировавшийся с одной целью, а использовавшийся совершенно с другой. Whirlwind стал самой быстродействующей вычислительной машиной своего времени, на нем впервые был испытан в деле принципиально новый вид памяти, и кроме того, именно благодаря Whirlwind в структуре Массачусетского технологического института появилась Лаборатория Линкольна, подарившая человечеству широчайший спектр перспективных IT-технологий. Вот история появления на свет этого компьютера.


Еще в самый разгар Второй мировой войны, в 1944 году, руководство ВМС США (которому подчинялась военно-морская авиация) пришло к очевидному выводу: чтобы сократить потери самолетов и личного состава, летчикам требуется как можно больше тренажерной практики. Проблема заключалась в том, что на американских авианосцах базировалось несколько типов палубных бомбардировщиков в разных модификациях, для каждого из них требовались свои авиатренажеры, а они и без того были штучным товаром. Поразмыслив, руководство Исследовательской лаборатории ВМС США (Naval Research Lab) решило: нужен универсальный тренажер с изменяемыми настройками, способный имитировать любую существующую модель самолета.

Создать такое устройство поручили специалистам из Массачусетского технологического института (MIT). К работе подключилась возглавляемая профессором Гордоном Брауном лаборатория сервомеханизмов, а непосредственным руководителем проекта стал ассистент Брауна Джей Райт Форрестер. В группу входили 175 человек, в том числе 70 инженеров и техников. Изначально исследователи планировали построить электромеханический тренажер с аналоговой системой управления, которая реагировала бы на действия пилота и пересчитывала параметры движения самолета в режиме реального времени, но примерно через год осознали, что устройство получится слишком сложным и громоздким.



К 1945 году всем, кто так или иначе был связан с техникой, стало понятно, что будущее — за электронно-вычислительными машинами. Член команды разработчиков тренажера, Перри Кроуфорд, побывал в Пенсильванском университете на презентации ENIAC, и, кроме того, определенную известность получили труды немецкого инженера Конрада Цузе. Тренажер решили подключить к ЭВМ и менять его настройки с помощью редактируемых программ — это позволило бы адаптировать его не только для существующих, но даже для еще не запущенных в серию перспективных самолетов. Кроме того, это открывало возможность повысить точность моделирования за счет добавления кода в компьютерную программу, а не за счет подключения новых электронных блоков, что в перспективе обещало заметную экономию.

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

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

Поскольку в процессе управления самолетом одновременно меняется большое число различных параметров — режимы двигателя, положение механизации и органов управления, а на сам летательный аппарат воздействуют внешние факторы, зависящие от высоты, давления, скорости самолета, силы и направления ветра, компьютер должен был обладать значительной вычислительной мощностью и высоким быстродействием. Большинство компьютеров той эпохи работали в побитовом режиме со словами размером 48 или 60 бит, обрабатывая по одному биту за раз. Этого быстродействия явно не хватало для заявленных целей. Поэтому машину решили сделать двоичной, оперирующей с 16-разрядными значениями, исходя из требований специально разработанной одноадресной системы команд — 5 разрядов отводилось для кода операции, и 11 — для адреса операнда.

Новый компьютер включал в себя шестнадцать таких математических модулей, обрабатывающих полное 16-битное слово в каждом цикле в параллельном режиме. Таким образом, компьютер мог распознавать 32 команды, а объем адресуемой памяти составлял 2048 слов. Машина работала, передавая один адрес почти с каждой инструкцией, тем самым уменьшая количество обращений к памяти. При этом память была оборудована аккумулятором, в котором хранились текущие результаты вычислений. Примечательно, что сначала в архитектуре машины предусматривалось только ПЗУ на основе реле, состоящее из 32 регистров, содержимое которых можно было изменить с использованием переключателей. Аккумулятор состоял из 5 запоминающих регистров на триггерах (причем каждый из пяти регистров был изготовлен из более чем 30 электронных ламп). Оперативную память планировали добавить уже на финальном этапе разработки, поскольку изначально инженеры не могли решить, как физически реализовать такое устройство.



ЭВМ могла выполнять побитово-параллельные операции, что увеличивало ее быстродействие и расширяло возможности, сильно ограниченные изначально выбранной разрядностью двоичных чисел. Арифметико-логическое устройство умело выполнять все 4 арифметические операции с фиксированной точкой и операцию логического «И». Машина работала со скоростью до 35 тыс. целочисленных операций в секунду, что сделало ее самой быстродействующей ЭВМ своего времени. Причем этот рекорд продержался вплоть до 1957 года, когда был побит компьютером IBM 709.

Платы компьютера разработчики решили собрать на вакуумных лампах, в качестве устройств ввода-вывода использовался телетайп и перфолента. Синхронизация всех элементов ЭВМ осуществлялась с помощью импульсного тактового генератора, работавшего в двух режимах: для арифметико-логического устройства базовая частота составляла 2 Мгц, для устройства управления, памяти и прочих элементов — 1 Мгц. При этом в конструкции компьютера впервые был применен принцип общей шины — все элементы ЭВМ подключались к единому каналу передачи данных, который разные блоки компьютера использовали совместно. Позже этот принцип лег в основу многих поколений более совершенных ЭВМ.



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

Осенью 1947 года специалисты MIT полностью завершили проектирование ЭВМ, получившей название Whirlwind — «Вихрь», и построили прототип 5-разрядного двоичного умножителя, который успешно прошел технические испытания. Однако фактические затраты лаборатории на этот проект уже тогда превысили 1,5 млн. долларов в год и значительно вышли за пределы изначально запланированного бюджета. Который Министерство обороны США к тому же стало активно сокращать в связи с окончанием войны. Да и нужда в большом количестве военных летчиков у ВМС отпала по той же самой причине. В результате ведомство прекратило финансировать разработки, и Джей Форрестер принялся спешно искать нового заказчика для своего детища.



В качестве такового выступили ВВС США, которым тоже требовался мощный компьютер, правда, не для авиатренажеров, как можно было бы подумать, а для управления сложной системой противовоздушной обороны. ЭВМ должна была в режиме реального времени получать информацию от множества радиолокаторов, радаров и систем слежения, расположенных по всему побережью и в глубине территории США, анализировать ее и формировать единую картину воздушной обстановки в зоне действия ПВО. Предполагалось, что компьютер будет автоматически выполнять вычисления, позволяющие сопровождать цель по данным от 3 радаров, а также точно вычислять местоположение высоколетящей цели по координатам, получаемым от 14 радаров. Для этих задач Whirlwind, как раз и спроектированный для обработки больших объемов данных, подходил как нельзя лучше. Оставалось только решить проблему с оперативной памятью, которая пока еще не была реализована «в железе».

К весне 1949 года компьютер был практически полностью собран, к нему подключили устройства ввода-вывода и прогнали тесты, доказав его работоспособность. А вот в процессе проектирования ОЗУ для Whirlwind разработчики столкнулись с непредвиденными сложностями. С самого начала инженеры не могли определиться, какую технологию использовать при создании оперативной памяти. Первая идея с ртутными линиями задержки была отброшена из-за недостаточного быстродействия. Затем было решено собрать память на вакуумных лампах. Но обычные «трубки Уильямса» для этого не подходили, потому в составе лаборатории выделили отдельную группу исследователей под руководством инженера Стивена Додда, взявшуюся за разработку специальных «запоминающих трубок» для Whirlwind.

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



К 1950 году группе Додда удалось собрать работоспособный модуль оперативной памяти на электронных трубках объемом 256 слов (16 трубок по 256 бит), который регулярно выходил из строя — максимальное время безотказной работы составляло всего лишь 1 час. В результате Форрестер был вынужден искать альтернативу этой конструкции. В одном из своих экспериментов он обратил внимание на ферромагнитные материалы, которые могли сохранять состояние намагниченности даже после удаления внешнего магнитного поля. Этот принцип можно было использовать для хранения информации в двоичной форме.

Форрестер начал проводить эксперименты с ферритовыми сердечниками – крошечными кольцами из ферромагнитного материала, которые могли переключаться между двумя состояниями: намагниченности по часовой стрелке и против часовой стрелки. Эти состояния могли представлять бинарные значения 1 и 0. Он понял, что если создать массив таких сердечников и управлять ими с помощью проводов, то можно получить устойчивую и быстродействующую память. Однако на пути к реализации этой идеи стояли значительные технические трудности: нужно было разработать метод точного управления магнитным состоянием каждого сердечника и считыванием информации с них. Форрестер и его команда во главе с инженером Вильямом Папианом начали с создания опытных образцов и управляющей системы. Первые схемы содержали матрицу из четырех сердечников, затем матрицу 16х16. После множества проб и ошибок им удалось сконструировать рабочую модель памяти, построенную на этом принципе.



Первый массив памяти на ферритовых сердечниках был установлен на специально построенном для испытаний экземпляре Whirlwind в 1953 году, и результаты превзошли все ожидания. Новая память оказалась не только быстрее и надежнее, но и дешевле в производстве. Это открытие стало революцией в вычислительной технике, положив начало эпохе ферритовой памяти, которая доминировала в компьютерной технике на протяжении как минимум десятилетия. Позже память на ферритовых сердечниках стала активно использоваться в архитектуре UNIVAC и компьютеров IBM.



В конструкции Whirlwind появилось и еще одно революционное для своего времени изобретение: поскольку машина должна была отслеживать воздушные цели, вывод на телетайпную ленту оказался не слишком удобен для военных. Поэтому разработчики подключили в качестве устройства вывода Whirlwind электронно-лучевую трубку, первый прототип ЭЛТ-монитора. Позже ученые и инженеры, занимавшиеся созданием Whirlwind, стали ядром коллектива специально созданной лаборатории Линкольна — научно-исследовательского учреждения в структуре MIT, которое проводило исследования и разработки в интересах Министерства обороны США и подарило миру множество уникальных изобретений в сфере компьютерных технологий.

Тем временем, в начале 50-х напряженность в отношениях между СССР и США росла, и Whirlwind (вернее, его усовершенствованная модель, Whirlwind II), стал сердцем системы SAGE (Semi-Automatic Ground Environment), предназначенной для обнаружения и отслеживания самолетов вероятного противника. Whirlwind анализировал огромные потоки данных, поступающих от радаров, и мгновенно вычислял траектории полетов. Эта информация затем передавалась операторам, которые принимали решения о перехвате целей. Одной из ключевых задач было обучение операторов системы SAGE. Whirlwind моделировал различные сценарии нарушения воздушного пространства США, позволяя операторам тренироваться в условиях, максимально приближенных к реальным боевым. Машина помогала выявлять слабые места в системе воздушной обороны и отрабатывать действия в чрезвычайных ситуациях.

Однако роль Whirlwind не ограничивалась военными задачами. Вскоре потенциал ЭВМ заметили и ученые. Например, в области метеорологии Whirlwind проводил сложные расчеты для прогнозирования погоды, анализируя большие объемы данных и моделируя атмосферные явления. Компьютер просчитывал экономические данные, получая информацию о биржевых котировках в реальном времени, и помогал бизнесу в разработке экономических прогнозов.

Whirlwind продолжал работать до 1959 года, когда на рынке стали доступны более дешевые серийные ЭВМ от DEC и IBM. С их появлением дальнейшая эксплуатация Whirlwind стала нецелесообразной, и 30 июня 1959 года компьютер был выключен. Сейчас эта удивительная машина стала музейным экспонатом, но история Whirlwind — это история о том, как одна ЭВМ, созданная для тренировки пилотов, стала катализатором революционных изменений в архитектуре компьютеров на долгие годы вперед. Ее наследие живет в каждой современной персоналке, напоминая нам о тех днях, когда мечты о мощных и быстрых компьютерах только начинали воплощаться в реальность.
Статья поддерживается командой Serverspace.

Serverspace — провайдер облачных сервисов, предоставляющий в аренду виртуальные серверы с ОС Linux и Windows в 8 дата-центрах: Россия, Беларусь, Казахстан, Нидерланды, Турция, США, Канада и Бразилия. Для построения ИТ-инфраструктуры провайдер также предлагает: создание сетей, шлюзов, бэкапы, сервисы CDN, DNS, объектное хранилище S3.

IT-инфраструктура | Кешбэк 17% по коду HABR

Комментарии (2)


  1. SIISII
    07.06.2024 10:54
    +3

    Существовавшие тогда ЭВМ (прежде всего ENIAC) работали в диалоговом режиме: заранее сформированные входные данные передавались в компьютер, который обрабатывал их и выдавал готоввый результат.

    Такой режим -- не диалоговый, а пакетный. В диалоговом режиме машина как раз ждёт реакции человека, отвечает на неё, опять ждёт и т.д., а не обрабатывает заранее подготовленные данные. Авиатренажёр, по сути, -- это как раз диалоговый режим, просто ввод человека осуществляется не через клавиатуру/мышь/сенсорный экран и т.п., а через органы управления самолётом или их имитацию (джойстик, например).

    Ну и очепятка в слое "готоввый" :)


    1. CyberPaul Автор
      07.06.2024 10:54

      Тут скорее поток данных, который обрабатывается в реальном времени - "оператор" одновременно воздействует на несколько устройств ввода (педали, штурвал/ручка, РУД, рычаг управления шагом винта), машина обсчитывает эти изменения и потоком возвращает данные "оператору", который исходя из этого снова что-то меняет. Суть в том, что не должно быть пауз между "рога до пупа - домики маленькие, рога от себя - домики большие". ЭНИАК так не умел.