Введение

Компьютер на электронных лампах, разработанный в MIT, Whirlwind I был компьютером эпохи холодной войны, разработанным Лабораторией сервомеханизмов MIT для ВМС США. Введенный в эксплуатацию в 1951 году, он был одним из первых цифровых электронных компьютеров, работавших в режиме реального времени для выдачи результатов, и первым, который не являлся просто электронной заменой устаревших механических систем. Это был один из первых компьютеров, выполнявших вычисления параллельно по битам (а не последовательно), и первым, использовавшим магнитную память на сердечниках. Его разработка напрямую привела к созданию Whirlwind II, который послужил основой для системы ПВО SAGE ВВС США, а косвенно – почти для всех бизнес-компьютеров и мини-компьютеров 1960-х годов, особенно благодаря принципу "малая разрядность, скорость, люди".

Предыстория

Во время Второй мировой войны военно-морская лаборатория ВМС США обратилась в MIT с просьбой о создании компьютера для управления лётным симулятором, предназначенным для обучения экипажей бомбардировщиков. Они представляли себе довольно простую систему, в которой компьютер непрерывно обновлял бы имитируемую приборную панель на основе управляющих сигналов от пилотов. В отличие от более ранних систем, таких как Link Trainer, задуманная система должна была иметь значительно более реалистичную аэродинамическую модель, которую можно было бы адаптировать к любому типу самолета. Это было важным соображением в то время, когда на вооружение вводилось много новых конструкций. Лаборатория сервомеханизмов в здании 32 MIT провела краткое исследование, которое показало, что создание такой системы возможно. Управление военно-морских исследований ВМС приняло решение о финансировании разработки в рамках проекта «Вихрь» (и его сопутствующих проектов «Тайфун» и «Циклон» с другими учреждениями), и назначило Джея Форрестера руководителем проекта. Вскоре они построили большой аналоговый компьютер для этой задачи, но обнаружили, что он недостаточно точен и гибок. Решение этих проблем в общем виде потребовало бы гораздо более крупной системы, возможно, настолько большой, что её создание было бы невозможным. Джуди Клэпп была одним из первых старших технических специалистов этой команды. Перри Кроуфорд, ещё один член команды MIT, в 1945 году увидел демонстрацию ENIAC. После этого он предложил, что цифровой компьютер будет наилучшим решением. Такая машина позволила бы повысить точность моделирования путём добавления большего количества кода в компьютерную программу, а не путём добавления деталей в саму машину. Пока машина была достаточно быстрой, не существовало бы теоретических ограничений на сложность моделирования. До этого момента все построенные компьютеры были предназначены для выполнения отдельных задач и работали в пакетном режиме. Серия входных данных заранее задавалась и вводилась в компьютер, который вычислял ответы и печатал их. Это не подходило для системы «Вихрь», которая должна была непрерывно работать с постоянно меняющимися входными данными. Скорость стала ключевой проблемой: в то время как в других системах это просто означало более длительное ожидание результатов печати, в «Вихре» это означало серьёзное ограничение сложности, которую могло включать в себя моделирование.

Дизайн и строительство

К 1947 году Форрестер и его коллега Роберт Эверетт завершили разработку высокоскоростного компьютера с хранимой программой для решения этой задачи. Большинство компьютеров того времени работали в последовательном режиме, используя однобитовую арифметику и вводя большие слова, часто размером 48 или 60 бит, по одному биту за раз. Это было недостаточно быстро для их целей, поэтому в Whirlwind было включено шестнадцать таких арифметических устройств, работающих с полным 16-битным словом каждый цикл в параллельном режиме. Не учитывая скорость памяти, Whirlwind ("20 000 операций с одним адресом в секунду" в 1951 году) был в шестнадцать раз быстрее других машин. Сегодня почти все процессоры выполняют арифметические операции в "параллельном" режиме. Размер слова был выбран после тщательного обдумывания. Машина работала, передавая один адрес с почти каждой инструкцией, тем самым уменьшая количество обращений к памяти. Для операций с двумя операндами, например, при сложении, "другой" операнд предполагался последним загруженным. В этом отношении Whirlwind работал аналогично калькулятору с обратной польской нотацией, за исключением того, что вместо стека операндов использовался только аккумулятор. Разработчики считали, что 2048 слов памяти – это минимальный полезный объем, требующий 11 бит для представления адреса, и что 16–32 инструкции – это минимум, требующий еще пяти бит, и поэтому было выбрано 16 бит. Конструкция Whirlwind включала блок управления, управляемый главным тактовым генератором. Каждый такт выбирал одну или несколько сигнальных линий в диодной матрице, которая активировала логические элементы и другие схемы машины. Специальный переключатель направлял сигналы в различные части матрицы для выполнения разных инструкций. В начале 1950-х годов Whirlwind I "в среднем выходил из строя каждые 20 минут". Строительство Whirlwind началось в 1948 году, в проекте было задействовано 175 человек, включая 70 инженеров и техников. Появление умножения с сохранением разряда, по-видимому, впервые было реализовано в компьютере Whirlwind в конце 1940-х годов. В третьем квартале 1949 года компьютер достиг достаточного уровня развития, чтобы решить уравнение и отобразить его решение на осциллоскопе, а также для создания первой анимированной и интерактивной компьютерной графической игры. Наконец, 20 апреля 1951 года Whirlwind "успешно выполнил цифровые вычисления траекторий перехвата".

Подсистема памяти

Первоначальная конструкция машины предусматривала 2048 (2K) слов по 16 бит для памяти с произвольным доступом. Единственными двумя доступными в 1949 году технологиями памяти, способными хранить такой объем данных, были ртутные линии задержки и электростатическая память. Ртутная линия задержки состояла из длинной трубки, заполненной ртутью, механического преобразователя на одном конце и микрофона на другом, напоминая пружинный ревербератор, позднее использовавшийся в звукообработке. Импульсы посылались в ртутную линию задержки с одного конца и требовали определенного времени для достижения другого конца. Они обнаруживались микрофоном, усиливались, приводились к нужной форме импульса и отправлялись обратно в линию задержки. Таким образом, память, как говорили, находилась в циркуляции. Ртутные линии задержки работали примерно со скоростью звука, поэтому были очень медленными по компьютерным меркам, даже по стандартам компьютеров конца 1940-х и 1950-х годов. Скорость звука в ртути также сильно зависела от температуры. Поскольку линия задержки содержала фиксированное количество битов, частота тактового генератора должна была изменяться в зависимости от температуры ртути. Если было много линий задержки, и они не поддерживали одинаковую температуру все время, данные в памяти могли легко быть повреждены. Разработчики Whirlwind быстро отказались от линии задержки как от возможной памяти – она была слишком медленной для предполагаемого авиационного симулятора и слишком ненадежной для воспроизводимой производственной системы, для которой Whirlwind должен был стать функциональным прототипом. Альтернативным типом памяти была так называемая "электростатическая" память. Это была память на электронно-лучевой трубке, во многом похожая на раннюю телевизионную трубку или осциллограф. Электронная пушка посылала пучок электронов на дальний конец трубки, где он попадал на экран. Пучок отклонялся, чтобы попасть в определенную точку на экране. Затем пучок мог накапливать отрицательный заряд в этой точке или изменять уже существующий заряд. Измеряя ток пучка, можно было определить, был ли этот участок изначально нулем или единицей, и пучок мог сохранить новое значение. В 1949 году существовало несколько типов электростатических трубок памяти. Наиболее известной сегодня является трубка Уильямса, разработанная в Англии, но существовало и несколько других, разработанных независимо различными исследовательскими лабораториями. Инженеры Whirlwind рассмотрели трубку Уильямса, но пришли к выводу, что динамическая природа хранения и необходимость частых циклов обновления не соответствовали целям проектирования Whirlwind I. Вместо этого они остановились на конструкции, разрабатывавшейся в Радиационной лаборатории MIT. Это была двухпушечная электронная трубка. Одна пушка создавала резко сфокусированный луч для чтения или записи отдельных битов. Другая пушка была "заливающей", распыляя весь экран электронами низкой энергии. В результате этой конструкции трубка была больше похожа на статическую RAM, не требующую циклов обновления, в отличие от динамической RAM на трубке Уильямса. В конечном итоге выбор этой трубки оказался неудачным. Трубка Уильямса была значительно лучше разработана, и, несмотря на необходимость обновления, могла легко хранить 1024 бита на трубку и была достаточно надежной при правильной эксплуатации. Трубка MIT все еще находилась в разработке, и хотя целью было хранить 1024 бита на трубку, эта цель так и не была достигнута, даже спустя несколько лет после того, как план предусматривал использование полноразмерных функциональных трубок. Кроме того, спецификация требовала времени доступа в шесть микросекунд, но фактическое время доступа составляло около 30 микросекунд. Поскольку базовое время цикла процессора Whirlwind I определялось временем доступа к памяти, весь процессор работал медленнее, чем было запланировано.

Меморию с магнитным ядром

Джей Форрестер отчаянно искал подходящую память для своего компьютера. Изначально компьютер имел всего 32 слова памяти, и 27 из этих слов представляли собой регистры, доступные только для чтения, изготовленные из переключателей. Оставшиеся пять регистров были реализованы на триггерах, причем каждый из пяти регистров состоял более чем из 30 вакуумных ламп. Эта "тестовая память", как её называли, предназначалась для проверки работоспособности процессорных элементов до готовности основной памяти. Основная память задерживалась настолько, что первые эксперименты по отслеживанию самолетов с использованием данных с радаров в реальном времени проводились с программой, вручную загруженной в тестовую память. Форрестер наткнулся на рекламу нового магнитного материала, производимого одной компанией. Понимая его потенциал в качестве носителя данных, Форрестер получил рабочий стол в углу лаборатории и несколько образцов материала для экспериментов. В течение последующих нескольких месяцев он проводил в лаборатории столько же времени, сколько и в офисе, управляя всем проектом. В конце концов, он изобрел основы магнитной памяти на сердечниках и продемонстрировал её принципиальную осуществимость. Его демонстрация состояла из небольшой плоскости сердечников, содержащей 32 сердечника диаметром три восьмых дюйма каждый. После подтверждения практичности концепции оставалось лишь разработать работоспособную конструкцию. Осенью 1949 года Форрестер привлек аспиранта Уильяма Н. Папиана к тестированию десятков отдельных сердечников, чтобы определить образцы с наилучшими характеристиками. Работа Папиана была усилена, когда Форрестер попросил студента Дадли Аллена Бака заняться изучением материала и предоставил ему рабочий стол, в то время как сам Форрестер вернулся к управлению проектом в полном объеме. (Бак впоследствии изобрел криотрон и память с адресным доступом по содержимому в этой же лаборатории.) После примерно двух лет дальнейших исследований и разработок им удалось продемонстрировать плоскость сердечников размером 32x32, или 1024 сердечника, способную хранить 1024 бита данных. Таким образом, они достигли первоначально запланированного объема хранения, который должна была обеспечить электростатическая трубка – цели, которую самим трубкам еще не удалось достичь, поскольку в последнем поколении их конструкция позволяла хранить лишь 512 бит на трубку. Вскоре была изготовлена основная память на 1024 слова, заменившая электростатическую память. Разработка и производство электростатической памяти были немедленно прекращены, что позволило сэкономить значительные средства и перенаправить их на другие исследовательские области. Позже были изготовлены еще два блока магнитной памяти, увеличив общий доступный объем памяти.

Вакуумные трубки

В конструкции использовалось около 5000 вакуумных ламп. Большое количество ламп, использованных в Whirlwind, приводило к высокой частоте отказов, поскольку отказ даже одной лампы мог вызвать сбой системы. Стандартным пентодом того времени был 6AG7, но испытания, проведенные в 1948 году, показали, что его ожидаемый срок службы был слишком коротким для данного применения. В результате был выбран 7AD7, но и он демонстрировал слишком высокую частоту отказов в процессе эксплуатации. Расследование причин отказов выявило, что кремний в вольфрамовом сплаве нити накала вызывал отравление катода: отложения ортосиликата бария на катоде снижали или полностью блокировали его способность к эмиссии электронов. Для Whirlwind компания Sylvania специально разработала лампу 7AK7 с нитью накала из вольфрама высокой чистоты. Отравление катода наиболее сильно проявляется, когда лампа работает в режиме отсечки при включенном нагревателе. Коммерческие лампы предназначались для радио (а позже, телевидения), где они редко работают в таком режиме. Аналоговые устройства поддерживают лампу в линейной области, в то время как цифровые устройства переключают лампу между режимами отсечки и насыщения, лишь кратковременно проходя через линейную область. Кроме того, производители коммерческих ламп рассчитывали, что их лампы будут использоваться всего несколько часов в день. Даже этих мер оказалось недостаточно для достижения необходимой надежности. Скрытые дефекты активно выявлялись путем тестирования ламп во время технического обслуживания. Они подвергались стресс-тестам, называемым маржинальными, поскольку к лампам подавались напряжения и сигналы вплоть до пределов их рабочих характеристик. Эти тесты были разработаны для преждевременного выявления ламп, которые могли бы выйти из строя в процессе эксплуатации. Тестирование проводилось автоматически с помощью специальной программы. Самолеты отслеживались системой Whirlwind I. Система Кейп-Код впоследствии продемонстрировала компьютеризированную систему противовоздушной обороны, охватывающую южную Новую Англию. Сигналы от трех радиолокационных станций дальнего действия (AN/FPS 3), одиннадцати радиолокационных станций ближнего действия и трех высотомеров передавались по телефонным линиям на компьютер Whirlwind I в Кембридже, штат Массачусетс. Проект Whirlwind II, предусматривавший создание более крупной и быстрой машины (который так и не был завершен), лег в основу системы ПВО SAGE IBM AN/FSQ 7 Combat Direction Central.

Наследие

В "Вихре" использовалось около 5000 вакуумных ламп. Также были предприняты усилия по переводу конструкции Whirlwind на транзисторную основу, возглавляемые Кеном Олсеном и известные как TX-0. TX-0 оказался очень успешным, и были разработаны планы по созданию еще более крупной версии, известной как TX-1. Однако этот проект оказался слишком амбициозным, и его пришлось сократить до меньшей версии, известной как TX-2. Даже эта версия оказалась проблемной, и Олсен покинул проект в середине работы, чтобы основать Digital Equipment Corporation (DEC). PDP-1 от DEC по сути представлял собой набор концепций TX-0 и TX-2 в более компактном исполнении. После поддержки системы SAGE, Whirlwind I был арендован (за 1 доллар в год) с 30 июня 1959 года по 1974 год участником проекта Уильямом М. Вольфом (1928–2015). Электроэнергия для работы машины стоила 2500 долларов в месяц, а корпорация Wolf Research and Development Corporation выполняла работы для ВВС и над проектом "Всемирная игра" Бакминстера Фуллера. В конечном итоге, перемещение Whirlwind I обошлось в 250 000 долларов, а компания заработала 100 000 долларов. Wolf R&D Corporation была продана EG&G в 1967 году за 5,5 миллиона долларов. Кен Олсен и Роберт Эверетт спасли машину, которая стала основой для Бостонского компьютерного музея в 1979 году. Хотя большая часть машины была утеряна при выводе из эксплуатации, многие ее компоненты сейчас находятся в коллекции Музея истории компьютеров в Маунтин-Вью, Калифорния, и в Музее MIT. С февраля 2009 года модуль основной памяти экспонируется в Музее промышленности и инноваций Чарльз-Ривер в Уолтеме, штат Массачусетс. Одна плоскость основной памяти, взятая в аренду из Музея истории компьютеров, представлена в качестве части исторических экспозиций по компьютерным наукам в здании компьютерных наук Гейтса в Стэнфорде. Здание, в котором размещался Whirlwind, до недавнего времени было домом для IT-отдела MIT, Службы информационных услуг и технологий, а в 1997–1998 годах оно было восстановлено до своего первоначального внешнего вида.