ИСТОРИЯ ВТ
Возникшая в обществе техническая проблема двигает науку вперед быстрее, чем дюжина университетов.
Ф. Энгельс
В этой статье речь пойдет не о знаменитой футбольной команде, а о том, как объединенными (united) усилиями Манчестерский университет и манчестерская компания Ferranti создали и организовали производство вычислительных машин (ВМ), в которых впервые в мире были использованы оперативная память с произвольной выборкой и индексные регистры.
Впрочем, предыстория этих машин началась не в Манчестере, а в городке Малверн английского графства Вустершир, где был расположен Научно-исследовательский институт дальней связи (Telecommunications Research Establishment, TRE), разрабатывавший в годы войны радарную технику. В 1942 г. сюда на работу пришел Томас Килберн (Tomas Kilburn, 1921-2001), незадолго до этого получивший диплом математика в Кембридже и окончивший краткосрочные курсы по электронике в Лондоне. Его определили в группу, которая разрабатывала электронные блоки для радаров различных типов. Возглавлял группу молодой доктор наук Фредерик Кэлланд Уильямс (Frederick Calland Williams, 1911-1977), специалист по шумам электронных ламп и автор первого в мире операционного усилителя. Через полвека член лондонского Королевского общества, почетный профессор Манчестерского университета, обладатель многих научных наград и один из выдающихся современных компьютерщиков Т. Килберн так вспоминал о своей первой встрече с шефом: "Я не был ранее знаком с Фредди Уильямсом и поэтому, когда он спросил: "О Господи, вы хоть что-нибудь знаете?" - я ответил: "Нет". Вот с такой беседы началась моя работа. Конечно, когда мы покидали Малверн - а это произошло через четыре года - наше отношение друг к другу было совсем иным".
Фредерик К. Уильямс
Уильямсу принадлежит множество изобретений, но, пожалуй, одно из самых выдающихся из них родилось после посещения им в 1945-м и июне 1946 г. Муровской школы Пенсильванского университета (родины ENIAC), Bell Labs и Массачусетского технологического института, в котором начинались работы над одной из самых выдающихся ламповых ЭВМ (Whirlwind - "Вихрь"). Убедившись, насколько важна разработчикам ВМ память для хранения цифровой информации, Уильямс по возвращении на родину начал экспериментировать с обычной электронно-лучевой трубкой (ЭЛТ), используя ее экран, покрытый люминофором, как запоминающую среду. К ноябрю 1946 г. он убедился в возможности хранения на экране и считывания с него одного двоичного разряда. В декабре того же года Уильямс принял в Манчестерском университете кафедру электротехники и продолжил эксперименты с "запоминающей трубкой", а заинтересованное в этих работах руководство TRE командировало ему в помощь Килберна. Проблема, которую они решали, заключалась в изыскании способа перехода от аналогового представления информации на экране трубки к дискретному. Необходимо было научиться управлять электронным пучком, так включая или выключая его в процессе сканирования внутренней поверхности ЭЛТ, чтобы либо создавать на экране заряженные точки, соответствующие "1", либо не создавать или стирать их ("0"). Для считывания информации с экрана Уильямс и Килберн предложили использовать группу специальных электродов, расположенных снаружи ЭЛТ. Опытным путем они установили, что для сохранения заряда на экране трубки он должен регенерироваться 30 раз в секунду. Поздней осенью 1947-го ученые построили память емкостью 2048 разрядов на основе стандартной 6-дюймовой в диаметре ЭЛТ. Это запоминающее устройство в литературе обычно именуется "трубкой Уильямса", хотя справедливее было бы называть ее "трубкой Уильямса - Килберна".
Томас Килберн
После завершения работы Килберн написал для TRE отчет, приведя в нем схему гипотетической ЭВМ, которую целесообразно было бы построить для окончательного испытания запоминающей трубки (так сказать, проверки боем). Тогда он еще не знал, что буквально по соседству с его лабораторией заведующий кафедрой математики Максуэлл (Макс) Герман Александр Ньюмен (M. H. A. Newman; 1897-1984, бывший кембриджский профессор, научный руководитель и друг Тьюринга) также планирует создание вычислительной машины. В годы войны Ньюмен, как и Тьюринг, работал в сверхсекретной Правительственной школе кодов и шифров (Government Code and Cypher School, GC&CS), расположенной неподалеку от Лондона в имении Блетчли-Парк. Здесь большая группа математиков, лингвистов и специалистов других профессий занималась дешифровкой радиограмм немецкой армии. Ньюмен был одним из идейных вдохновителей создания электронной вычислительно-логической машины COLOSSUS, которую разработали и изготовили под руководством инженера-электронщика Томаса Джеральда Флауэрса (Thomas Gerald Flowers, 1905-1998) в Научно-исследовательской лаборатории британского почтового ведомства (Post Office Station, POS), расположенной в местечке Доллис-Хилл к северу от Лондона. Десять таких машин не только сыграли выдающуюся роль в деле разгрома фашистской Германии, но и подтвердили возможность и эффективность использования сложной схемотехники, включающей несколько тысяч электронных ламп, для автоматизации вычислительных и логических операций. В те же военные годы Ньюмен проникся идеей собственно электронных вычислений. В феврале 1946-го он писал фон Нейману: "Я надеюсь организовать здесь (в Манчестерском университете. - Ю. П.) секцию вычислительных машин, так как в течение последних двух или трех лет проявляю интерес к электронным устройствам подобного рода. Примерно 18 месяцев тому назад (т. е. за год до появления "Первого варианта..." фон Неймана. - Ю. П.) я решил приложить усилия для создания задуманной мною машины - в этом и заключалась истинная причина моего перехода в Манчестерский университет. Разумеется, я намерен тесно сотрудничать с Тьюрингом..."
ЭВМ Manchester Mark I
Перейдя в университет вместе с двумя другими математиками из Блетчли-Парка и получив солидный грант от лондонского Королевского общества для организации Лаборатории вычислительной техники, Ньюмен немедленно послал одного из них - Дэвида Риса (D.Rees) в США на курс лекций, который в июле - августе 1946 г. читали в Муровской электротехнической школе американские специалисты (см. PC Week/RE, N 20/ 2006, с. 35), а в августе сам отправился за океан. Он провел в Америке три месяца, но не в Пенсильванском университете, а в Институте перспективных исследований, где в это время шла работа над проектом ЭВМ IAS. Так же, как Уилкс, взявший за прототип проект EDVAC, он решил воспроизвести принстонскую машину в своей лаборатории. Но, как я уже писал в одной из предыдущих статей, работа над IAS тормозились из-за неустойчивого функционирования запоминающего устройства на трубке Selectron, и это срывало планы Ньюмена. Каково же было его удивление, когда, вернувшись в Англию, он обнаружил, что в одной из лабораторий его университета ведутся успешные исследования по созданию аналогичной памяти на стандартной ЭЛТ. Узнав о предложении Килберна, он решил отказаться от своих намерений, ограничив себя ролью консультанта и потенциального пользователя будущей машины. Много позднее Уильямс писал: "Том Килберн и я ничего не знали о вычислительных машинах, но хорошо разбирались в электронных схемах. Профессор Ньюмен и д-р. Тьюринг... знали многое о вычислительных машинах, но понятия не имели о схемотехнике. Они взяли нас под руки и объяснили, как числа могут существовать по определенному адресу в доме и как их можно отслеживать в процессе вычислений". В этих словах Уильямса есть определенные неточности: во-первых, Тьюринг хорошо разбирался в ламповых схемах (об этом планируется рассказать в следующей статье), а во-вторых, Килберн к этому времени уже обладал определенными знаниями о ВМ, так как был знаком с американскими машинами (хотя и поверхностно) и посещал лекции, которые А. Тьюринг читал в Национальной физической лаборатории.
По рекомендации Ньюмена, пользовавшегося огромным авторитетом у военных и оборонщиков, TRE согласился финансировать создание макета ЭВМ, и в начале 1948-го Килберн вместе с инженером Джоффри К. Тутилом (Geoffrey C. Tootill, р. 1921), перешедшим в университет из TRE, приступил к разработке "Малой экспериментальной машины" (Small Scale Experimental Machine, SSEM), или, как ее ласково называли, Baby ("Малышка"). Хотя руководителем работы номинально числился Уильямс, его больше интересовали другие технические задачи и кафедральные проблемы, поэтому всем фактически заправлял Килберн*1.
_____
*1 В 1976 г. Ф. Уильямс писал: “Откровенно говоря, я никогда не интересовался проблемами автоматизации вычислений и не интересуюсь сейчас. Я инженер, и компьютер для меня всего лишь ящик, который содержит некое устройство, позволяющее облегчить выполнение математических вычислений...”
К середине года SSEM была изготовлена и отлажена, а 21 июня 1948 г. успешно выполнила программу, которую подготовил Т. Килберн (как утверждали некоторые его коллеги, это была первая и последняя написанная им программа). Задача, которую предложили решить Baby, заключалась в отыскании наибольшего сомножителя любого наперед заданного числа a. Для этого осуществлялся перебор всех чисел b<a, начиная c b=a-1, пока не находили число, на которое а делилось без остатка. Конечно, программа заработала не сразу. Ф. Уильямс вспоминал: "После тщательного ввода программы была нажата кнопка пуска. Немедленно точки на экране трубки-дисплея заметались в каком-то сумасшедшем танце. В первых испытаниях это был поистине танец смерти, который не приводил ни к какому полезному результату и, что хуже, не давал ни малейшего намека на причину ошибки. Но однажды танец прекратился и трубка ярко засветилась в ожидаемых точках". Сначала в качестве a выбрали небольшое число, но затем решили проверить работу программы (и машины) на a=2. "Малышка" перебрала около 130 тыс. чисел, использовав около 2,1 млн. команд и примерно 3,0 млн. обращений к памяти. Правильный ответ был получен через 52 минуты.
Что представляла собой SSEM?
С одной стороны, она обладала действительно "детскими возможностями". Это была одноадресная машина, оперировавшая с числами с фиксированной запятой, имевшая ОЗУ емкостью в 32 машинных слова по 32 двоичных разряда каждое и арифметическое устройство последовательного действия (несмотря на наличие ЗУ с произвольной выборкой!). По-видимому, использование разрядно-последовательной арифметики в первых манчестерских машинах связано с желанием сэкономить на оборудовании (о чем писал в "Первом варианте..." фон Нейман).
SSEM могла выполнять всего семь команд и имела четыре трубки: одна использовалась как оперативная память, вторая - как регистр-накопитель или аккумулятор (accumulator), в котором содержался результат предыдущей операции, третья хранила адрес текущей команды и саму команду, четвертая была дисплеем, на нем выводились результаты вычислений, а также (по желанию оператора) - содержимое остальных трех трубок. Исходные данные вводились поразрядно по выбранному адресу с помощью простейшей клавиатуры. Время выполнения одной команды составляло 1,2 мс. Весила Baby всего (!) одну тонну и содержала примерно 600 электронных ламп.
Но с другой стороны, машина представляла собой макет будущих ЭВМ, на ней впервые в мире был опробован принцип работы ВМ с хранимой в памяти программой!
После успешных испытаний SSEM компьютерная группа была усилена осенью 1948 г. недавними выпускниками Манчестерского университета Дэвидом Б.Г. Эдвардсом (D.B.G. Edwards, р.1928) и Дж. Э. Томасом (G. E. Thomas). Их коллега А.А. Робинсон (А.А. Robinson, р. 1924), трудившийся в университете над тезисами докторской диссертации, был привлечен к разработке множительного устройства. Эта небольшая команда в октябре приступила к созданию более мощной ЭВМ, которой дали имя Manchester Mark I, - в литературе встречаются и иные ее названия: "Манчестерская автоматическая цифровая вычислительная машина (Manchester Automatic Digital Machine, MADM) или Вычислительная машина Манчестерского университета (Manchester University Computer, MUC).
Примерно в это же время в жизни манчестерских компьютерщиков произошло знаменательное событие - их посетил главный научный советник правительства (впоследствии первый президент CERN) Бенджамин Локшпайзер (Benjamin Lockspeiser,1891-1990). Демонстрация "Малышки" (находившейся в стадии демонтажа) и пояснения Уильямса произвели такое впечатление на сэра Бенджамина, что он незамедлительно пробил решение о выделения Казначейством Короны средств (в размере 35 000 фунтов в год в течение пяти лет) для разработки конструкции и изготовления промышленных образцов вычислительной машины по спецификации профессора Уильямса (честь и хвала английским чиновникам, которые в отличие от чиновников советских быстро оценили важность промышленного выпуска ВМ, уверовали в способности университетских "высоколобых" и предложили заключить контракт даже при отсутствии технической документации). В качестве разработчика и изготовителя была выбрана известная манчестерская компания Ferranti Ltd.*1, производившая в военные годы, в частности, боеприпасы, различные электронные устройства и радарные системы*2.
_____
*1 Компания была основана в конце XIX в. выдающимся изобретателем и инженером Себастьяном де Ферранти (Sebastian de Ferranti, 1864-1930). Его дело продолжил сын - сэр Винсент де Ферранти (Vincent de Ferranti, 1893-1980).
*2 Правительственный контракт соответствовал интересам компании, которая и сама нащупывала возможности использования опыта своих инженеров-электронщиков в новой области бизнеса: в 1948 г. один из сотрудников Ferranti д-р. Дитрих Г. Принц (Dietrich G. Prinz) отправился в США для изучения американских ВМ и возможности их воспроизведения и коммерческого сбыта.
Так в ноябре 1948 г. началось многолетнее сотрудничество манчестерских университетских ученых и заводских инженеров. Месяцем раньше по приглашению Ньюмена в Лабораторию вычислительной техники перешел из Кембриджа Алан Тьюринг, чтобы заняться вопросами программирования для будущей машины. Килберн также сменил место работы, уйдя в конце того же года из TRE на кафедру Уильямса (после того как получил докторскую степень за работы по созданию запоминающей трубки и SSEM). Он и был фактическим руководителем работы, которая выполнялась в тесном контакте с инженерами организованного в Ferranti Департамента вычислительных машин во главе с Джеймсом Картером (James Carter, его впоследствии сменил Кейт Лонсдейл, Keith Lonsdale, р. 1923). Первый вариант Manchester Mark I (его называли промежуточным) был изготовлен в апреле 1949 г. Весна и лето того же года ушли на обкатку ЭВМ, испытания на надежность и прогон ряда программ, а к началу осени ее чертежи были переданы компании-изготовителю. Но окончательная доработка машины завершилась в октябре.
(Продолжение следует)