Вступление
Каждый, кто умеет пользоваться компьютером, знает, что для выполнения какой-либо операции на нем необходимо открыть соответствующую программу, которая хранится в его памяти. Однако жизнь не всегда была такой простой, как сейчас. Первые большие электронные цифровые компьютеры, британский «Колосс» (1944 год) и американский ENIAC (1945 год), не умели хранить программы в памяти. Чтобы настроить эти компьютеры на новую задачу, необходимо было перекоммутировать их, то есть вручную переподключить кабели и переустановить переключатели. Основной принцип работы современного компьютера, подразумевающий управление машиной с помощью программы, которая хранится в ее памяти и представляет собой закодированные инструкции, был сформулирован Аланом Тьюрингом.
Абстрактная универсальная вычислительная машина, предложенная Тьюрингом в 1936 году и вскоре получившая название просто универсальной машины Тьюринга, состоит из неограниченной памяти, в которой хранятся данные и инструкции, и сканера, перемещающегося вдоль ячеек памяти, символ за символом считывающего найденные данные и записывающего в ячейки следующие символы. При вводе различных программ в память машина выполняет те или иные вычисления. Создание единой машины, которая имела бы фиксированную структуру и с помощью хранящихся в памяти закодированных инструкций, как хамелеон, превращалась бы из машины, предназначенной для выполнения одной задачи, в машину, успешно решающую совершенно другую, было поистине фантастической идеей.
Тьюринг показал, что его универсальная машина способна справиться с любой задачей, выполняемой путем механического заучивания (откуда и следует такая характеристика, как универсальность). В наше время, когда множество людей владеет устройствами, представляющими собой физическую реализацию универсальной машины Тьюринга, его концепция вычислительной машины, функционирующей по принципу «одного окна», может показаться столь же очевидной, как и идея колеса. Но в 1936 году, когда инженеры традиционно проектировали под разные задачи отдельные машины, она произвела настоящую революцию.
К концу 1945 года, благодаря разработкам военного времени в области цифровой электроники, группы ученых в Великобритании и Соединенных Штатах приступили к аппаратной реализации универсальной машины Тьюринга. Сам он возглавлял группу, работавшую в Национальной физической лаборатории (NPL) в Теддингтоне (Лондон). Технический отчет Тьюринга Proposed Electronic Calculator, датируемый концом 1945 года и содержащий его идеи об архитектуре Автоматической вычислительной машины (ACE), стал первым относительно полным описанием электронного цифрового компьютера, умеющего хранить программы в памяти.
В Соединенных Штатах мечту Тьюринга о создании универсальной вычислительной машины с хранимой в памяти программой разделял венгерско-американский математик Джон фон Нейман, который узнал о ней еще до войны. Они с Тьюрингом познакомились в 1936−1938 годах в Принстонском университете. Так же как и Тьюринг, фон Нейман осознавал потенциал военных разработок в сфере высокоскоростной цифровой электроники. В документе First Draft of a Report on the EDVAC, завершенном весной 1945 года, фон Нейман также описал устройство электронного цифрового компьютера с хранимой в памяти программой (EDVAC означает «Электронный автоматический вычислитель с дискретными переменными»). Отчет фон Неймана, на который Тьюринг ссылался в Proposed Electronic Calculator, носил более абстрактный характер по сравнению с работой Тьюринга, в нем мало говорилось о программировании и электронике. Гарри Хаски, инженер-электроник, который впоследствии разработал первый подробный проект аппаратной реализации EDVAC, утверждал, что информация в отчете фон Неймана не помогла ему. Тьюринг, напротив, представил подробные схемные решения, полные спецификации аппаратных средств, образцы программ в машинном коде и даже смету расходов на создание ACE.
Первая часть статьи «Алан Тьюринг, „отец“ современного компьютера» содержит обзор основного вклада Тьюринга в развитее компьютерной техники и вычислений, включая его новаторскую деятельность в областях, которые сейчас называют искусственным интеллектом и искусственной жизнью.
Вторая часть рассказывает о появлении тьюринговского ACE. Это одна из самых выдающихся историй, связанных с развитием компьютеров. Реализация проекта с самого начала вызвала множество разногласий. Тьюринг видел себя создателем «мозга». «В работе над ACE, — заявил он, — меня больше интересует возможность создания моделей мозга, чем практическое применение машины для вычислений». Работодатели Тьюринга, напротив, рассчитывали превратить ACE в национальный компьютер Великобритании, который станет единственной машиной, способной удовлетворить вычислительные потребности «всей страны». В целом история получилась довольно печальной. Легкомысленные администраторы растратили впустую блестящие технологические достижения Тьюринга и его группы. К моменту успешного завершения проекта Тьюринг навсегда отвернулся от своего детища. В основном вторая часть этой статьи посвящена словам непосредственных участников указанных событий, приведенным с опорой на документы того времени. (Сегодня они доступны онлайн в Архиве имени Тьюринга по истории вычислительной техники.)
Третья часть статьи «Алан Тьюринг, „отец“ современного компьютера» представляет собой цифровое факсимиле 48-страничного отчета Тьюринга Proposed Electronic Calculator, описывающего его революционную электронную вычислительную машину. В него включены оригинальные иллюстрации Тьюринга.
Хронология событий
1936 год | Универсальная машина Тьюринга.
Тьюринг уезжает из Кембриджа в Институт перспективных исследований в Принстоне, где продолжает свою новаторскую работу в области теории рекурсии. |
1938 год | Тьюринг возвращается в Кембридж. |
1939 год | В сентябре, в начале войны с Германией, Тьюринг перебирается в Правительственную школу кодов и шифров в Блетчли-Парке. |
1940 год | Первая машина Bombe Тьюринга установлена в Блетчли-Парке. |
1944 год | В Блетчли-Парке установлен первый в мире большой электронный компьютер «Колосс». |
1945 год | Распространен документ First Draft of a Report on the EDVAC фон Неймана, в котором описывается конструкция EDVAC.
Тьюринг начинает работу в Национальной физической лаборатории. Распространен отчет Тюринга Proposed Electronic Calculator, в котором описывается конструкция ACE. В своем отчете Тьюринг высказывает предположение, что компьютеры будут хорошо играть в шахматы. ENIAC (Электронный числовой интегратор и вычислитель) становится вторым запущенным в эксплуатацию большим электронным компьютером. |
1946 год | Тьюринг вместе со своей группой основоположников современного компьютерного программирования пишет библиотеку сложных программ для ACE, который на тот момент еще не был построен.
Тьюринг читает курс лекций о версиях V, VI и VII проекта ACE в Министерстве снабжения в Лондоне (декабрь 1946 года – февраль 1947 года). Килбурн приглашен в Манчестерский университет. |
1947 год | Лекции Тьюринга об ACE в Берлингтон-хаус в Лондоне, на которых впервые публично упоминается компьютерный интеллект.
Дарвин, директор Национальной физической лаборатории, останавливает работу над ACE Test Assembly, уступая приоритет Манчестеру. |
1948 год | Манчестер побеждает в гонке: 21 июня в лаборатории вычислительных машин Ньюмана на свет появляется первый в мире электронный компьютер с хранимой в памяти программой.
Во время работы в Манчестере на должности заместителя директора лаборатории вычислительных машин Тьюринг пишет Intelligent Machinery, первый манифест об искусственном интеллекте. Turochamp Тьюринга и Чемперноуна играет свою первую партию в шахматы. Превращение ENIAC в компьютер с хранимой в памяти программой (доступной только для чтения). |
1949 год | Ввод в эксплуатацию еще четырех электронных компьютеров с хранимой в памяти программой: EDSAC (Электронный автоматический вычислитель с памятью на линиях задержки) в Кембриджском университете, BINAC (Двоичный автоматический компьютер) в США, CSIR Mark I (компьютер Mark I Совета по научным и промышленным исследованиям) в Австралии и Whirlwind I в США.
Статья Тьюринга Checking a Large Routine открывает область, в настоящее время известную под названием верификации программ. |
1950 год | Запуск Pilot ACE. В США его предшественником стал SEAC (Восточный автоматический компьютер Национального бюро стандартов), за которым последовал SWAC (Западный автоматический компьютер Национального бюро стандартов).
Тьюринг публикует работу Computing Machinery and Intelligence, в которой предлагает имитационную игру, или тест Тьюринга. |
1951 год | Ferranti Mark I становится первым серийно выпускаемым электронным компьютером с хранимой в памяти программой. Первый экземпляр такого компьютера устанавливается в Манчестерском университете.
Тьюринг начинает использовать Ferranti Mark I для изучения биологического роста. UNIVAC становится первым серийно выпускаемым в США электронным компьютером с хранимой в памяти программой. Запуск компьютера фон Неймана в Институте перспективных исследований в Принстоне. Эттингер из Кембриджского университета пишет первую программу, способную к обучению. |
1952 год | EDVAC начинает работать в США.
Первое выполнение написанной Стрейчи программы игры в шашки на компьютере в Манчестере. |
1953 год | Тьюринг публикует свою классическую статью о компьютерных шахматах. |
1954 год | Тьюринг умирает у себя дома при загадочных обстоятельствах в возрасте 41 года.
Сборка первого в мире однопользовательского настольного компьютера G15 в Калифорнии. |
1955 год | В Национальной физической лаборатории установлен первый DEUCE, серийная версия Pilot ACE. |
1956 год | Дартмутский летний исследовательский проект по искусственному интеллекту. |
1958 год | В Национальной физической лаборатории введен в эксплуатацию Big ACE. |
Часть I
Роль Тьюринга в развитии вычислительной техники
Содержание
1. Универсальная машина Тьюринга
2. Криптоанализ во время Второй мировой войны
3. Проект автоматической вычислительной машины (АСЕ) Тьюринга
4. АСЕ как преемник универсальной машины Тьюринга
5. АСЕ и американский EDVAC
6. Влияние Тьюринга на Джона фон Неймана, одного из создателей EDVAC
7. Pilot АСЕ и серийная модель DEUCE
8. Семейство компьютеров АСЕ
9. Тьюринг и искусственный интеллект (AI)
10. Тьюринг и искусственная жизнь (A-Life)
11. Манчестерский компьютер
12. Манчестерский компьютер и Джон фон Нейман
13. Тьюринг становится участником Манчестерского проекта
14. Другие первые компьютеры с хранимой в памяти программой
1. Универсальная машина Тьюринга
Тьюринг описал свои абстрактные вычислительные машины в своей первой крупной публикации On Computable Numbers, with an Application to the Entscheidungsproblem (1936 год). (Он называл их просто вычислительными машинами, название «машины Тьюринга» дал им американский логик Алонзо Чёрч.) В работе On Computable Numbers впервые была выдвинута важная для современного компьютера идея, а именно концепция управления вычислительной машиной с помощью программы, хранимой в ее памяти и представляющей собой закодированные инструкции. Эта работа сильно повлияла на развитие электронного цифрового компьютера с хранимой в памяти программой в 1940 годах, что часто игнорировали или отрицали специалисты по истории компьютеров.
Машина Тьюринга — абстрактная концептуальная модель. В ее состав входит сканер и бесконечная лента памяти. Лента разделена на клетки, каждая из которых может быть пустой или содержать один символ (например, 0, 1 или любой другой символ конечного алфавита). Сканер перемещается вдоль ленты, сканируя по одной клетке за раз. Он считывает символы с ленты и записывает на нее новые. Лента одновременно служит как памятью, так и механизмом ввода-вывода, а кроме того, на ней может быть записана состоящая из инструкций программа. Сама лента при этом бесконечна — ведь целью Тьюринга было показать, что существуют такие задачи, которые машины Тьюринга не могут выполнить даже за неограниченное время при неограниченной рабочей памяти.
Машина Тьюринга способна совершать небольшой набор базовых операций: перемещение на одну клетку влево/вправо, печать и изменение состояния. Сканер всегда перемещается на одну клетку за раз и может напечатать символ в просканированной клетке (после удаления уже имеющегося в ней). Меняя свое состояние, машина может, как выразился Тьюринг, «вспомнить некоторые символы, которые она „видела“ (сканировала) ранее». Тьюринг не уточнил механизм изменения состояния — машина Тьюринга является абстракцией, так что описывать конкретный механизм необязательно, но его легко себе представить. Предположим, что устройство внутри сканера состоит из циферблата с конечным числом позиций, помеченных как a, b, c и т. д., так что каждая позиция считается отдельным состоянием. Изменение состояния происходит путем перемещения стрелки циферблата с одной помеченной позиции на другую. Это устройство функционирует как простая память — например, циферблат с тремя позициями можно использовать для записи того, содержала ли покинутая сканером клетка 0, 1 или была пустой.
Работа машины регулируется (как называет ее Тьюринг) таблицей инструкций. Он привел следующий простой пример: пусть машина, назовем ее M, снабжена бесконечной пустой лентой, а сканер установлен в любой ее клетке. M имеет четыре состояния, обозначенные как a, b, c, d, и изначально находится в состоянии a.
В приведенной таблице R — обозначение команды move right one square, а P[0]/P[1] — обозначение команд print 0/1 on the scanned square соответственно. Согласно верхней строке таблицы, если вы находитесь в состоянии a и сканируемая клетка пуста, вы должны вывести 0 в просканированной клетке, переместиться на одну клетку вправо и перейти в состояние b. В соответствии с этой таблицей инструкций (или программой) машина M печатает на ленте чередующиеся двоичные цифры 0 1 0 1 0 1 0 1.., разделяя их пустыми клетками и до бесконечности перемещаясь вправо относительно своей начальной позиции.
Универсальная машина Тьюринга (UTM)
Универсальная машина Тьюринга (UTM) универсальна в том смысле, что ее можно запрограммировать на выполнение любых расчетов, с которыми в принципе способен справиться человек-вычислитель — служащий, действующий в соответствии с «эффективной» или заученной процедурой. До появления электронного компьютера многие тысячи людей-вычислителей были заняты в бизнесе, на государственных предприятиях и в научно-исследовательских учреждениях. Универсальная машина имеет единую фиксированную таблицу инструкций, которая встроена, если так можно выразиться, «жестко вмонтирована» в нее. Согласно этой фиксированной таблице, UTM считывает и выполняет закодированные инструкции, записанные на ленте, то есть реализует концепцию вычислительной машины с хранимой в памяти программой, идею об управлении вычислительной машиной путем сохранения состоящей из инструкций программы в ее памяти.
Таблица инструкций по выполнению желаемой задачи помещается на ленту UTM в закодированной подходящим образом форме, так что первая строка таблицы занимает несколько первых клеток ленты, вторая строка — следующие несколько клеток и так далее. (Тьюринг называет эту закодированную форму инструкций «стандартным описанием» таблицы инструкций.) UTM считывает инструкции и выполняет их на ленте. На ленту могут быть внесены различные программы, что позволяет UTM выполнять любые задачи, для которых может быть составлена таблица инструкций машины Тьюринга. Таким образом, единая машина фиксированной структуры может производить любые вычисления, осуществляемые с помощью любой машины Тьюринга.
В 1936 году UTM существовала только лишь как идея. Но Тьюринг с самого начала интересовался возможностью построить ее в действительности. Знакомство ученого с электроникой в военное время стало ключевым связующим звеном между его ранней теоретической работой и проектом электронного цифрового компьютера с хранимой в памяти программой, разработанным в 1945 году.
2. Криптоанализ во время Второй мировой войны
Тьюринг завершил разработку логической структуры знаменитой машины Bombe, предназначенной для расшифровки сообщений немецкой «Энигмы», в последние месяцы 1939 года. Его проекты были переданы Гарольду Доку Кину из компании British Tabulating Machine в Летчуэрте, где и велась инженерная разработка. Первая Bombe, получившая название «Победа», была установлена в Правительственной школе кодов и шифров в Блетчли-Парке в начале 1940 года, а усовершенствованная модель Agnus Dei (позднее превратившаяся в «Агнес» и «Агги») — летом того же года. Agnus содержала гениальную диагональную доску Гордона Уэлчмана.
Bombe представляла собой вычислительную машину — этот термин обозначает любую машину, способную выполнять работу, с которой в принципе мог бы справиться человек-вычислитель, — но имела специализированное, очень узкое назначение, а именно нахождение позиций роторов «Энигмы», определяющих ключ зашифрованного сообщения, на сверхчеловеческой скорости. Bombe выдавала несколько вариантов, которые вручную проверялись на машине «Энигма» (или ее копии) — если какой-либо из них давал немецкий текст (даже если это были всего несколько слов, за которыми следовала чепуха), он считался верным.
«Энигма»
Bombe была построена на электромагнитных реле, хотя некоторые ее более поздние версии стали электронными (т. е. создавались на основе электронных ламп) и, как следствие, более быстрыми. Реле представляют собой небольшие переключатели с подвижным металлическим стержнем, который размыкает и замыкает электрическую цепь, перемещаясь под действием магнитного поля. Электронные лампы (в США их называли вакуумными лампами) работают в несколько раз быстрее, чем реле, поскольку в лампе отсутствуют какие-либо подвижные части, в ней движется только пучок электронов.
Во время атаки на «Энигму» Блетчли-Парк обратился на Исследовательскую станцию Центрального почтамта в Доллис-Хилл в Лондоне с просьбой о создании машины на основе реле для совместного использования с Bombe. При обнаружении с помощью Bombe настроек «Энигмы», отвечающих за шифрование того или иного сообщения, они должны были передаваться на эту машину, которая бы автоматически расшифровывала и распечатывала исходный немецкий текст. Доллис-Хилл направил в Блетчли-Парк инженера Томаса Флауэрса. В итоге построенная Флауэрсом машина не использовалась, но вскоре ему суждено было стать одной из величайших личностей в области криптоанализа в период Второй мировой войны. Благодаря своим довоенным исследованиям, Флауэрс (по его собственным словам), возможно, был единственным в Великобритании, кто осознавал, что электронные лампы подходят для широкого применения в сфере высокоскоростных цифровых вычислений.
Томас Флауэрс, создатель «Колосса»
Первый в мире большой электронный цифровой компьютер «Колосс» был спроектирован и построен Флауэрсом и его командой в Доллис-Хилл в 1943 году при участии кембриджского математика Макса Ньюмана, руководителя отдела в Блетчли-Парке, называвшегося просто «Ньюманри». (До войны Тьюринг посещал лекции Ньюмана по математической логике в Кембридже; эти лекции положили начало исследованиям, по результатам которых была написана статья On Computable Numbers.) «Колосс» был запущен в начале 1944 года, за два года до ввода в эксплуатацию первой аналогичной американской машины, ENIAC. Он использовался для расшифровки сообщений, зашифрованных с помощью машины «Лоренц», которая появилась в 1941 году и была более продвинутой, чем «Энигма».
Шифровальная машина «Schlüsselzusatz» компании Lorenz
Тьюринг на непродолжительное время присоединился к участию в атаке на машину «Лоренц» в 1942 году и разработал криптоаналитический метод, известный под названием «Тьюрингери». Он стал третьим гениальным вкладом Тьюринга в расшифровку немецких кодов — к двум другим относится предложенная им конструкция Bombe и определение типа «Энигмы», использовавшегося подлодками в Атлантике. Как отметил криптоаналитик Джек Гуд, «я не утверждаю, что сделанное Тьюрингом обеспечило нам победу в войне, но осмелюсь сказать, что без него мы могли бы ее проиграть».
«Тьюрингери» был ручным методом, для использования которого требовалась бумага, карандаш и ластик. В основе метода лежала идея формирования так называемой дельты потока букв. Она представляет собой поток, образующийся в результате объединения каждой пары соседних букв (метод «Тьюрингери» и процедура формирования дельты подробно объясняются в работе Colossus: The Secrets of Bletchley Park’s Codebreaking Computers). Тьюринг обнаружил, что процедура формирования дельты раскрывает информацию, которая иначе осталась бы нераскрытой. Его находка имела большое значение для последующих достижений: алгоритмы, реализованные в «Колоссе» (и в предшествовавшей ему машине «Хит Робинсон»), основывались на этом простом, но блестящем наблюдении. В этом смысле вся машинная атака на «Лоренц» берет начало в этой фундаментальной догадке Тьюринга.
«Робинсон», предшественник «Колосса». Эта машина, которая в конечном счете получила название «Старый Робинсон», заменила оригинальный «Хит Робинсон» (по внешнему виду они были похожи)
Британское правительство держало существование «Колосса» в секрете. До 1970 годов мало кто знал, что электронные вычисления успешно использовались в период Второй мировой войны, и только в 2000 году Великобритания и США, наконец, обнародовали полный отчет о роли «Колосса» в военное время. Таким образом, лишь спустя десятки лет после войны фон Нейман и другие сопричастные рассказали миру о том, что ENIAC был «первой электронной вычислительной машиной». (На самом деле устройство, которое, возможно, было первым малым электронным компьютером, собрали Джон Атанасов и его студент Клиффорд Берри в Колледже штата Айова. Их «крошечный» цифровой компьютер содержал около 300 электронных ламп, тогда как в «Колоссе» их насчитывалось 2400. Машина Атанасова, разработанная для одной очень специфической математической задачи (решение систем линейных алгебраических уравнений), практически не могла быть запрограммирована. Хотя электронные схемы компьютера функционировали, он в целом так никогда и не заработал из-за ошибок, обусловленных проблемами с устройством для считывания с двоичных перфокарт. Строительство компьютера было остановлено в 1942 году, когда Атанасов ушел из Колледжа штата Айова, и так и осталось незавершенным.)
«Колосс» и два оператора, Дороти дю Буассон (слева) и Элси Букер (справа)
Флауэрс первым убедительно доказал, что большая электронная вычислительная техника реализуема на практике. Однако, несмотря на то что «Колосс» в значительной мере обладал многофункциональностью, он был далеко не универсален и не мог хранить инструкции. Как и в случае с появившимся позднее ENIAC, для подготовки «Колосса» к новой задаче требовалось вручную перекоммутировать его с помощью штекеров и переключателей. Во время создания «Колосса» Нейман показывал Флауэрсу публикацию Тьюринга On Computable Numbers, ключевая идея которой состояла в сохранении закодированных инструкций в памяти, но Флауэрс не принял ее во внимание.
Флауэрс рассказывал, что как только Тьюринг увидел «Колосс» в действии, то сразу же начал ждать, когда появится возможность реализовать его универсальную вычислительную машину. Вне всяких сомнений, к 1944 году Ньюман также твердо планировал создать универсальную машину с использованием электронных технологий. В феврале 1946 года, через несколько месяцев после своего назначения профессором математики в Манчестерском университете, Ньюман написал фон Нейману в США:
Я… надеюсь заняться здесь секцией вычислительной техники, поскольку в последние два-три года очень заинтересовался подобными электронными устройствами. Примерно полтора года назад я решил попробовать запустить машину, когда преуспею в этой сфере. Конечно, я поддерживаю тесный контакт с Тьюрингом.
Дальнейшие события с участием Ньюмана описываются в главе «Манчестерский компьютер». Тьюринг же получил возможность воплотить задуманное с неожиданным появлением Джона Уомерсли (см. главу 15 «Уомерсли приглашает Тьюринга на работу в Национальную физическую лабораторию»). К тому времени Тьюринг усердно занимался электроникой (на завершающем этапе войны он читал вечерний курс лекций по теории электронных ламп).
3. Проект Автоматической вычислительной машины (АСЕ) Тьюринга
Тьюринг понял, что скорость и объем памяти играют решающую роль в вычислениях (по словам его помощника в Национальной физической лаборатории Джима Уилкинсона, Тьюринг был «одержим идеей о высокоскоростной машине»). Разработанная Тьюрингом конструкция ACE имела много общего с современной архитектурой RISC (компьютер с сокращенным набором команд) и требовала быстродействующей памяти примерно того же объема, что и первый компьютер Apple Macintosh. По стандартам того времени это был огромный объем.
ACE Тьюринга и EDVAC, который был завершен только в 1952 году, принципиально отличались друг от друга по конструкции. У EDVAC имелся (как он сейчас называется) центральный процессор, или ЦПУ, в то время как специфические логические или числовые функции ACE, например сложение, ассоциировались с различными временными хранилищами и другими устройствами памяти. Так, если два числа передавались какому-либо конкретному адресату в памяти, то там происходило их суммирование (результат которого мог быть передан куда-либо еще согласно следующей инструкции). В отличие от EDVAC с процессором, ACE не обладал единым узлом или блоком, где выполнялись бы все логические и числовые операции.
Программы ACE состояли исключительно из таких инструкций, как «перенос содержимого временного хранилища 15 во временное хранилище 16». Вместо того чтобы писать математически значимые инструкции вида
ADD x to y AND STORE THE RESULT IN z or MULTIPLY x BY y AND STORE THE RESULT IN z
программист ACE должен был составить серию «низкоуровневых» инструкций по передаче данных, которые давали бы такой же результат. Связанное с этим различие между ACE и EDVAC заключалось в том, что, согласно предложенному Тьюрингом проекту, сложные операции на его компьютере должны были выполняться за счет сложного программирования, а не сложного оборудования. Философия Тьюринга состояла в отказе от дополнительного оборудования (такого как умножители, делители и элементы для вычислений с плавающей запятой) в пользу программного обеспечения. Он пренебрежительно отзывался об «американской традиции решения проблем с помощью большого количества оборудования, а не интенсивной мыслительной деятельности».
Чтобы ускорить выполнение программы, Тьюринг предложил сохранять инструкции в памяти не последовательно, а на тщательно выбранных позициях, так чтобы каждая инструкция при этом содержала ссылку на позицию следующей. Такой подход означал доступ к любой инструкции без задержек, в точности тогда, когда в ней возникает необходимость. Кроме того, в целях ускорения работы Тьюринг предусмотрел быстродействующую память небольшого объема, предназначенную для временного хранения чисел, которые чаще всего используются на том или ином этапе вычислений. Как утверждал Уилкинсон в 1955 году, Тьюринг был «первым, кто понял, что можно преодолеть трудности, связанные со временем доступа к… ртутным линиям… или накопителям на магнитных барабанах, снабдив компьютер быстродействующим накопителем сравнительно небольшого объема. Многие коммерческие машины в США широко используют этот принцип».
Бюрократические проволочки в Национальной физической лаборатории (описанные во второй части этой статьи) привели к тому, что более-менее заметный прогресс в строительстве ACE был достигнут лишь спустя несколько лет после того, как Тьюринг в 1945 году завершил работу над статьей Proposed Electronic Calculator, посвященной проекту ACE. В ожидании сборки аппаратной части Тьюринг и его группа первыми начали заниматься компьютерным программированием и написали библиотеку сложных математических программ для проектируемой машины (см. главу 17 «Тьюринг становится основоположником компьютерного программирования»). В начале 1947 года группа Тьюринга приступила к постройке уменьшенной версии ACE под названием Test Assembly (см. главу 19 «Вторая попытка строительства ACE: эпоха Хаски и Test Assembly»). К сожалению, работа над этим маленьким компьютером была остановлена в том же году по распоряжению некомпетентного руководства Национальной физической лаборатории. Если бы проект не был прерван, Test Assembly, вероятно, стал бы первым в мире рабочим электронным компьютером с хранимой в памяти программой, так что эта честь не досталась бы манчестерскому Baby, который сам по себе отличался весьма ограниченной функциональностью (см. главу 11 «Манчестерский компьютер»).
Часть Национальной физической лаборатории. Test Assembly была построен здесь, в кладовке дворника
4. АСЕ как преемник универсальной машины Тьюринга
Как известно, универсальная машина Тьюринга, предложенная в 1936 году, не получила явного упоминания в работе Proposed Electronic Calculator, в связи с чем возникает вопрос, является ли универсальная машина родоначальницей ACE в принципе. Тем не менее некоторые из отрывочных заметок Тьюринга проливают свет на эту проблему. Заметки представляют собой отдельные страницы черновика Proposed Electronic Calculator, из которых следует, что Тьюринг считает АСЕ универсальной машиной Тьюринга. Он объясняет, почему устройство памяти, описанное в статье On Computable Numbers, нельзя «реализовать на практике как есть».
На лекции в 1947 году Тьюринг ясно дал понять, что рассматривает ACE как «практическую версию» универсальной машины Тьюринга:
Несколько лет назад я занимался тем, что сейчас можно описать как исследование теоретических возможностей и ограничений цифровых вычислительных машин. Я обдумывал возможность создания машин с центральным механизмом и бесконечной памятью, имеющей вид бесконечной ленты… Нетрудно показать, что можно создать специальную единую машину такого типа, которая будет решать любые задачи… Эту специальную машину можно назвать универсальной, работает она довольно просто. Когда мы решили, какую машину хотим имитировать, мы пробиваем на ленте универсальной машины описание… Универсальная машина должна лишь просмотреть это описание, чтобы понять, что нужно делать на каждом этапе. Таким образом, сложность машины, которую мы имитируем, сосредоточена на ленте и никак не проявляется в конструкции самой универсальной машины… Подобные ACE [ц]ифровые вычислительные машины… фактически представляют собой практические версии универсальной машины. Есть некий центральный комплекс электронного оборудования и память большого объема. Когда необходимо решить ту или иную задачу, инструкции по выполнению соответствующего вычислительного процесса помещаются в память ACE…
В письме Тьюринга кибернетику Уильяму Россу Эшби вновь подчеркивается принципиальный вопрос о сходстве АСЕ и универсальной машины Тьюринга:
ACE фактически аналогична «универсальной машине», описанной в моей статье On Conputable [sic] Numbers… [Б]ез изменения самой конструкции машину теоретически можно использовать в качестве модели любой другой машины, если заставить ее запомнить соответствующий набор инструкций.
5. АСЕ и американский EDVAC
Концепция цифрового компьютера с хранимой в памяти программой получила широкую известность сразу после Второй мировой войны благодаря работам и харизматичным публичным выступлениям Джона фон Неймана. Он написал First Draft of a Report on the EDVAC и впоследствии руководил проектом по созданию компьютера в Институте перспективных исследований в Принстоне. Построенная в ходе проекта машина, компьютер IAS, хоть и не была первой запущенной в эксплуатацию в США (она начала работать летом 1951 года), сильнее всего повлияла на первые американские компьютеры и стала предшественницей IBM 701, первого электронного компьютера с хранимой в памяти программой, серийно выпускавшегося компанией.
Фон Нейман рядом с компьютером IAS в Принстоне. Ряд контейнеров — это быстродействующая память. Каждый контейнер содержит одну электронно-лучевую трубку, называемую трубкой Уильямса по имени ее изобретателя Ф. К. Уильямса
Отчет First Draft of a Report on the EDVAC фон Неймана получил широкое распространение. Тьюринг, безусловно, рассчитывал, что читать его Proposed Electronic Calculator будут те, кто уже знаком с работой фон Неймана. В конце первого раздела Proposed Electronic Calculator он пишет:
В этом документе представлены достаточно полные сведения о предлагаемом вычислителе. Однако рекомендуется читать его вместе с отчетом фон Неймана First Draft of a Report on the EDVAC.
Насколько же First Draft of a Report on the EDVAC повлиял на содержание Proposed Electronic Calculator (который был выпущен на несколько месяцев позже)? Работа Тьюринга в некоторой степени сохраняет терминологию и обозначения фон Неймана, что разумно, так как делает текст более понятным. Для изображения логических элементов EDVAC фон Нейман использовал модифицированную версию схематической записи, введенной Мак-Каллоком и Питтсом для графического представления нейронных сетей. Тьюринг перенял эту модифицированную запись и к тому же значительно расширил ее. Нет сомнений в том, что Тьюринг попросту позаимствовал некоторые элементарнейшие материалы из First Draft of a Report on the EDVAC. Например, его схема сумматора (рис. 10 из Proposed Electronic Calculator) фактически аналогична рисунку 3 фон Неймана:
В 1946 году один газетный репортаж сообщил, что Тьюринг «выражает признательность американцам за выполнение всей черновой работы над ACE».
Однако логические схемы Тьюринга не только подробно описывают структуру логического управления и арифметическую часть вычислителя, но и выходят далеко за рамки содержимого First Draft. Сходство между Proposed Electronic Calculator и First Draft относительно невелико на фоне впечатляющих различий в конструктивных решениях, которые приведены в этих работах. Более того, незначительное влияние фон Неймана на Proposed Electronic Calculator не должно служить отвлекающим фактором в понимании того, насколько предложенная в 1936 году универсальная машина Тьюринга сама по себе оказала фундаментальное влияние на фон Неймана.
Кайт Шарплесс и EDVAC (Philadelphia Evening Bulletin, 3 марта 1947 года)
6. Влияние Тьюринга на Джона фон Неймана, одного из создателей EDVAC
Джон фон Нейман
В непрофильной литературе часто встречаются утверждения, что фон Нейман изобрел компьютер с хранимой в памяти программой, но он неоднократно подчеркивал, что принципиальная концепция такого устройства принадлежит Тьюрингу. Фон Нейман познакомился с идеями, изложенными в On Computable Numbers, в тот период, когда Тьюринг работал в Принстоне (1936–1938 годы), и вскоре заинтересовался концепцией универсальной вычислительной машины Тьюринга. Именно фон Нейман передал эту концепцию американским инженерам. Стэнли Френкель (физик из Лос-Аламоса, вместе с фон Нейманом и другими специалистами отвечавший за механизацию крупномасштабных расчетов, связанных с созданием атомной и водородной бомбы) записал мнение фон Неймана о важности On Computable Numbers:
Мне известно, что примерно в 1943 или 1944 году фон Нейман прекрасно осознавал исключительную важность работы Тьюринга On Computable Numbers 1936 года, описывающей принципиальное устройство универсального компьютера, воплощением которого является каждый современный компьютер (возможно, не ENIAC, как первый законченный, но определенно все последующие). Фон Нейман показал мне эту статью, и по его настоянию я внимательно изучил ее. Многие считают фон Неймана «отцом компьютера» (в современном смысле этого выражения), но я уверен, что сам бы он никогда не совершил эту ошибку. По всей видимости, его вполне можно назвать «акушером», но передо мной и всеми остальными он твердо упирал на то, что принципиальная концепция принадлежит Тьюрингу. Я думаю, основная роль фон Неймана заключалась в том, чтобы донести ее до мира и заниматься техническими разработками в Школе Мура и в других местах.
В 1944 году фон Нейман присоединился к группе Эккерта-Мокли, работавшей над созданием ENIAC в Электротехнической школе Мура при Пенсильванском университете. (В то время он участвовал в Манхэттенском проекте в Лос-Аламосе, где множество служащих, вооруженных настольными вычислительными машинами, выполняли утомительные масштабные расчеты, которые требовались физикам.) ENIAC, который строился с 1943 года, не был, как упоминалось выше, компьютером с хранимой в памяти программой — всё его «программирование» сводилось к переподключению кабелей и переустановке переключателей. Более того, ENIAC был далеко не универсальным, так как разрабатывался с прицелом лишь на одну очень специфическую задачу — расчет траекторий артиллерийских снарядов.
Фон Нейман применил свои знания о содержащихся в работе On Computable Numbers идеях на практике в Школе Мура. Благодаря работе Тьюринга, описывающей абстрактно-логические модели, фон Нейман знал, что с помощью закодированных инструкций, хранящихся в памяти, единая машина фиксированной структуры в принципе способна выполнить любую задачу, для которой можно составить программу. Когда занимавшийся разработкой ENIAC инженер Преспер Эккерт выдвинул предложение об использовании ртутных линий задержки, снабженных схемами рециркуляции сигналов, в качестве быстродействующей памяти, фон Нейман понял, что нашел способ для создания абстрактной универсальной вычислительной машины из On Computable Numbers. (Тьюринг объясняет принципы работы памяти на ртутных линиях задержки на страницах 4–5 третьей части.)
Когда в 1946 году фон Нейман приступил к реализации своего собственного проекта по созданию компьютера с хранимой в памяти программой в Институте перспективных исследований, то попросил своих инженеров ознакомиться с работой On Computable Numbers. Джулиан Бигелоу, главный инженер фон Неймана, отвечавший за инженерное проектирование компьютера, отметил:
Фон Нейман был тем человеком, который действительно… добился значительного прогресса в этой области, поскольку логически он куда глубже, чем кто-либо иной, осознавал, что означает [концепция компьютера с хранимой в памяти программой]… Причина этого, помимо всего прочего, заключается в том, что, благодаря работе Тьюринга… которую тот вел в 1936–1937 годах… фон Нейман хорошо разбирался в значительной части математической логики, на которой основывалась эта идея. Сегодня [универсальная] машина Тьюринга не очень похожа на современный компьютер, но тем не менее она им являлась. Это была идея в зародыше… Таким образом… [фон Нейман] понимал… что [ENIAC] — это лишь первый шаг, за которым грядут значительные усовершенствования.
На лекциях и в переписке фон Нейман неоднократно подчеркивал фундаментальное значение работы On Computable Numbers. В 1946 году он написал математику Норберту Винеру о «большом положительном математическом вкладе Тьюринга» — математической демонстрации того, что «один заданный механизм может быть „универсальным“». В 1948 году на лекции под названием «Общая и логическая теория автоматов» фон Нейман пояснил:
Около 12 лет назад английский логик Тьюринг взялся за решение следующей проблемы. Он хотел дать общее определение того, что подразумевается под вычислительным автоматом… Тьюринг тщательно проанализировал, какие математические процессы можно осуществить с помощью автомата такого типа… Он… также представи[л] и проанализирова[л] концепцию «универсального автомата»… «Универсальным» является такой автомат, который способен выполнить любую последовательность (цикл), произведенную любым другим автоматом. Разумеется, для этого требуется, как правило, иная инструкция. Главный вывод теории Тьюринга. Априори такое, на первый взгляд, далеко от реальности. Разве подобному автомату удастся достичь той же производительности, что и любому другому, в том числе, например, вдвое превосходящему его по размерам и сложности? Тем не менее Тьюринг доказал, что это возможно.
В следующем году на лекции под названием «Строгие теории управления и информации» в Иллинойском университете фон Нейман заявил:
Важность исследований Тьюринга заключается вот в чем: если правильно сконструировать автомат, то любые дополнительные требования к нему можно задавать с помощью достаточно подробных инструкций. Это верно лишь в том случае, если [автомат] достаточно сложный, если он достиг некоторого минимального уровня сложности. Другими словами… есть некая строго определенная конечная точка, по достижении которой автомат такой сложности при получении соответствующих инструкций приобретает способность делать всё, что вообще можно сделать с помощью автоматов.
Во многих опубликованных в США книгах по истории вычислительной техники ничего не говорится о Тьюринге. Несомненно, отчасти это объясняется отсутствием прямых ссылок на работу Тьюринга в технических отчетах, в которых фон Нейман с различными соавторами описывает логическую структуру электронного цифрового компьютера с хранимой в памяти программой. Тем не менее в этих документах имеются свидетельства того, что фон Нейман знал о работе Тьюринга On Computable Numbers. Например, в отчете Preliminary Discussion of the Logical Design of an Electronic Computing Instrument (1946 год) за авторством фон Неймана, Артура Бёркса и Германа Голдстайна (бывшие члены группы по созданию ENIAC, которые вместе с фон Нейманом перешли в Институт перспективных исследований) приведены следующие первые заметки об управлении и коде:
Благодаря методам формальной логики легко заметить, что существуют коды, которые абстрактно пригодны для управления и вызывают выполнение любой последовательности операций, по отдельности доступных в машине и в совокупности понятных для планировщика задач. Соображения, имеющие по-настоящему решающее значение при выборе кода с нынешней точки зрения, носят, скорее, практический характер — к ним относится простота оборудования, требуемого для выполнения кода, и прозрачность его применения по отношению к действительно важным задачам наряду со скоростью их решения.
Бёркс подтвердил, что первое предложение этого отрывка служит отсылкой к универсальной машине Тьюринга. (Отчет не был предназначен для официальной публикации, и никаких попыток указать на отсылки к другим работам не предпринималось.)
Процитированный выше отрывок на самом деле прекрасно резюмирует сложившуюся на тот момент ситуацию. В статье On Computable Numbers Тьюринг в абстрактной форме показал, что с помощью инструкций, выраженных в программном коде его «стандартных описаний», единая машина фиксированной конструкции способна выполнить любую задачу, которую «планировщик задач» может разбить на эффективные этапы. К 1945 году абстрактные соображения уступили место практической задаче создания эквивалентного программного кода, который мог бы быть эффективно реализован с помощью электронных схем. Зачатки кода фон Неймана появились в работе First Draft. Рукопись Proposed Electronic Calculator содержит собственный код Тьюринга, совершенно иной и гораздо более проработанный.
7. Pilot АСЕ и серийная модель DEUCE
Если бы ACE Тьюринга был построен в полном соответствии с исходным планом, эта машина намного превосходила бы другие первые компьютеры по уровню, но коллеги ученого из Национальной физической лаборатории посчитали его инженерные замыслы слишком амбициозными, в связи с чем итоговые размеры устройства были значительно уменьшены. Созданная в результате машина, известная под названием Pilot АСЕ, выполнила свою первую программу 10 мая 1950 года. Она имела тактовую частоту 1 МГц и была самым быстрым компьютером в мире. Несмотря на то что Pilot Ace получил лишь нескольких процентов от предусмотренного Тьюрингом объема памяти, в других аспектах этот компьютер достаточно точно соответствовал, как называл ее Тьюринг, «версии V» проекта ACE.
Pilot ACE Тьюринга. Был самым быстрым среди первых электронных компьютеров
Компания English Electric создала серийный вариант Pilot АСЕ, который носил название DEUCE (Универсальная цифровая электронная вычислительная машина). Первый DEUCE был выпущен в марте 1955 года (для Национальной физической лаборатории). DEUCE пользовался огромным успехом — всего было продано более 30 компьютеров, хотя еще в 1946 году директор Национальной физической лаборатории сэр Чарльз Дарвин предположил, что «одной машины, вполне возможно, будет достаточно для решения всех задач всей страны». Компьютеры DEUCE нашли широкое применение в научных, промышленных и коммерческих целях и в том числе служили для проектирования самолетов и атомных реакторов, исследований в сфере ядерного оружия, финансового анализа, расчета таблиц подоходного налога и множества других таблиц, обеспечения работы предприятий пищевой промышленности, составления карт, определения оптимального местоположения электростанций, решения задач кристаллографии и спектроскопии, разведки нефтяных месторождений и моделирования сложных систем (первые моделирования транспортных потоков проводились на Pilot АСЕ). Последний DEUCE был выведен из эксплуатации примерно в 1970 году.
DEUCE в Национальной физической лаборатории (1958 год)
8. Семейство компьютеров АСЕ
Еще одним компьютером, функционирование которого основывалось на принципах, заложенных в проекте ACE Тьюринга, стал G15 корпорации Bendix из Детройта. Его сконструировал Гарри Хаски, который в 1947 году состоял в отделе по разработке ACE в Национальной физической лаборатории. G15 можно считать первым персональным компьютером. Следуя философии Тьюринга по минимизации аппаратных средств в пользу программного обеспечения, Хаски удалось сделать G15 достаточно маленьким (размером с большой бытовой холодильник) и достаточно дешевым для продажи в качестве однопользовательского настольного компьютера. Тем не менее, благодаря похожей на ACE конструкции, G15 работал так же быстро, как и те компьютеры, которые во много раз превосходили его по размерам. Первый G15 был запущен в 1954 году. Эти компьютеры, которых по всему миру было продано более 400 штук, оставались в эксплуатации до 1970 года.
Реклама настольного компьютера Bendix G15, сконструированного на основе тьюринговского проекта ACE
Полномасштабный АСЕ был торжественно представлен в 1958 году (см. главу 24 «Big АСЕ»). К числу других машин, унаследовавших конструкцию тьюринговского ACE, относится MOSAIC (Автоматический интегратор и компьютер Министерства снабжения), сыгравший некоторую роль в противовоздушной обороне Великобритании в период холодной войны, EMI Business Machine, относительно медленный электронный компьютер с памятью большого объема (предназначенный для неглубокой обработки больших объемов данных, что часто требуется для решения экономических задач) и недорогой Packard-Bell 250 на транзисторах.
MOSAIC
MOSAIC, позаимствовавший логическую структуру у версии VII тьюринговского проекта ACE, выполнил свою первую программу в конце 1952-го – начале 1953 года. Уильям Чандлер и Аллен Кумбс, которые стали помощниками Флауэрса еще в период создания «Колосса», разработали инженерный проект MOSAIC (см. главу 18 «Первая попытка строительства ACE: эпоха Флауэрса»). При частоте импульсов 570 кГц (что примерно вдвое меньше частоты ACE) MOSAIC содержал около 7000 электронных ламп и 2000 полупроводниковых элементов (германиевые диоды). Первоначально планировалось использовать быстродействующую память из 96 ртутных линий задержки, но в окончательном виде машина имела 64 длинных линии задержки и несколько коротких линий задержки, рассчитанных в общей сложности на 1030 слов длиной в 40 разрядов. Из всех построенных компьютеров типа ACE именно MOSAIC стал самым точным воплощением предложенной Тьюрингом концепции (если не считать более низкой частоты импульсов).
В конце 1954-го – начале 1955 года MOSAIC был установлен в Научно-исследовательском институте радиолокации в Малверне, где служил для расчета траекторий летательных аппаратов по радиолокационным данным в целях противовоздушной обороны. (Детальная информация об использовании компьютера до сих пор засекречена.) Совместно с радиолокационной системой слежения работали два передвижных автоматических регистратора данных. Каждый включал около 2000 электронных ламп со специальными переключателями в виде электронно-лучевых трубок и пневматическим оборудованием для записи информации на бумажную перфорационную ленту.
Три стойки MOSAIC. Этот большой компьютер, построенный в соответствии с предложенным Тьюрингом проектом, использовался для секретных вычислений во время холодной войны
С учетом того что двум инженерам в одиночку удалось успешно простроить большой MOSAIC (как отметил Кумбс, «мы с Чандлером приложили руку к каждому винтику этой машины»), нет никаких сомнений в том, что при наличии достаточного количества человеческих ресурсов весьма близкий к версии VII тьюринговского ACE компьютер мог бы быть введен в эксплуатацию в самом начале 1950 годов. Благодаря участию в проекте по созданию «Колосса» в военное время, Чандлер и Кумбс обладали уникальным опытом и значительно превосходили кого бы то ни было в сфере большой цифровой электроники. Тьюринг, конечно, был прекрасно об этом осведомлен, но закон о неразглашении государственной тайны не позволил ему поделиться своими знаниями о «Колоссе» с директором Национальной физической лаборатории Дарвином. В противном случае Национальная физическая лаборатория, возможно, выделила бы Чандлеру и Кумбсу более существенные ресурсы, чтобы ускорить появление ACE.
9. Тьюринг и искусственный интеллект (AI)
МИФ
Нередко считается, что искусственный интеллект зародился в середине 1950 годов в США:
Искусственный интеллект, предложенный учеными Технической школы Карнеги осенью 1955 года, пробужденный к Рождеству и установленный на компьютер JOHNNIAC весной, произвел ошеломляющий эффект при первом упоминании на конференции, благодаря которой впоследствии и получил свое название.
«Установленная на JOHNNIAC» (калифорнийская копия компьютера фон Неймана, созданного в Институте передовых исследований) программа ИИ, Logic Theorist, была написана Алленом Ньюэллом, Гербертом Саймоном и Клиффом Шо и продемонстрирована во время Дартмутского летнего исследовательского проекта по искусственному интеллекту, проходившего в Дартмутском колледже в Нью-Гемпшире. Программа разрабатывалась для доказательства теорем из книги Уайтхеда и Рассела Principia Mathematica. Одно из доказательств, предложенных программой Logic Theorist, оказалось на несколько строк короче, чем у Уайтхеда и Рассела. Ньюэлл, Саймон и Шо описали доказательство и отправили материал в журнал Symbolic Logic. Это почти наверняка была первая статья, в число авторов которой входил компьютер, но, к сожалению, журнал отверг ее.
Дармутский колледж, Нью-Гемпшире, место проведения Дартмутского летнего исследовательского проекта по искусственному интеллекту
Ньюэлл и Герберт Саймон
Реальность
В Великобритании термин «машинный интеллект» был известен еще до появления термина «искусственный интеллект» и применялся гораздо раньше 1955 года. Если что и считать колыбелью ИИ, так это Блетчли-Парк. Тьюринг первым провел фундаментальные исследования в этой области. Еще в 1941 году он размышлял о машинном интеллекте и, в частности, о возможности создания вычислительных машин, способных решать задачи путем поиска в пространстве возможных решений в соответствии с так называемыми эвристическими принципами, а также обдумывал машинную реализацию игры в шахматы. На досуге Тьюринг вел дискуссии на эти темы с коллегами в Блетчли-Парке, а также обсуждал с ними машинное обучение. Он разослал некоторым из них рукопись о машинном интеллекте. Несомненно, это была самая первая статья в области ИИ, однако ее текст в настоящее время утрачен.
Первые программы искусственного интеллекта заработали в Великобритании в 1951–1952 годах в Манчестере и Кембридже. Отчасти это было связано с тем, что первые электронные компьютеры с хранимой в памяти программой появились именно в этой стране, а отчасти — с влиянием Тьюринга на первое поколение программистов. Даже в США Logic Theorist была не первой успешно запущенной программой ИИ. Программа игры в шашки за авторством Артура Сэмюэла впервые была выполнена в конце 1952 года на IBM 701, первом компьютере IBM с хранимой в памяти программой. В 1955 году Сэмюэл добавил в программу функцию обучения.
Артур Сэмюэль
Машина Bombe
Bombe стала первой вехой в истории машинного интеллекта. Концепция ее работы подчинялась центральной идее о решении задач путем управляемого механического поиска в пространстве возможных решений. В случае с Bombe это пространство состояло из конфигураций машины «Энигма» (в другом случае его могли составлять варианты расстановки фигур на шахматной доске). Для управления поиском, который вела Bombe, можно было использовать разные способы, один из которых подразумевал учет, как называл его Тьюринг, «условия многоалфавитного шифрования» и работу с подсказками (объясняются в главе 6 документа Treatise on the Enigma, написанного Тьюрингом во второй половине 1940 года; текст этой главы приведен в книге The Essential Turing, а весь документ доступен онлайн в Архиве имени Тьюринга по истории вычислительной техники). Поиск, проводимый таким образом, как утверждал Тьюринг, «сокращает число возможных позиций настолько, чтобы их легко было проверить вручную». Подсказками служили слова или фразы, которые, по мнению криптоаналитиков, могли содержаться в немецких сообщениях. Например, определенные сообщения с большой вероятностью включали слова WETTER FUR DIE NACHT (погода на ночь). Многие коммуникационные сети машин «Энигма» давали большое количество подсказок, поскольку немецкие военные обменивались достаточно стереотипными сообщениями, а операторы шифровальных машин нередко допускали небрежности, снижая безопасность шифрования. Одна станция в течение нескольких месяцев каждый вечер отправляла одно и то же сообщение: «Маяки зажжены согласно приказу».
Работа за машиной Bombe в Outstation Eastcote (база Министерства обороны в Исткот, в лондонском районе Хиллингдон).
Современные исследователи искусственного интеллекта говорят о методе генерации и тестирования. Потенциальные решения той или иной задачи генерируются путем управляемого поиска. Затем эти потенциальные решения тестируются с помощью вспомогательного метода, который позволяет определить, является ли какое-либо из них верным. В настоящее время в системах ИИ оба процесса, генерирование и тестирование, как правило, выполняет одна и та же программа. Машина Bombe служила для реализации первого процесса. Тестирование возможных решений (позиций роторов) затем проводилось вручную, путем соответствующей настройки копии «Энигмы», ввода зашифрованного текста и проверки того, дают ли заданные настройки слова на немецком.
Машинный интеллект в 1945–1948 годах
При проектировании ACE Тьюринг мечтал о машинном интеллекте — он описывал себя как создателя «мозга», заявляя: «В работе над ACE меня больше интересует возможность создания моделей мозга, чем практическое применение машины для вычислений». На 16-й странице Proposed Electronic Calculator он написал:
Может ли машина играть в шахматы? Довольно легко сделать так, чтобы она весьма посредственно играла в шахматы, что никуда не годится, поскольку шахматы требуют наличия интеллекта. В начале этого раздела мы отметили, что машину следует считать совершенно не обладающей интеллектом. Однако, судя по некоторым признакам, машину можно заставить демонстрировать интеллект с риском периодического совершения серьезных ошибок. В таком аспекте, вероятно, можно добиться того, чтобы машина очень хорошо играла в шахматы.
(Тьюринг, по всей видимости, полагал, что использование эвристического поиска несет риск периодического совершения ошибок машиной.)
Берлингтон-хаус, место проведения лекций Тьюринга в 1947 году
В феврале 1947 года (в помещении Королевского астрономического общества в Берлингтон-хаус в Лондоне) Тьюринг прочитал, насколько известно, самую первую публичную лекцию, на которой упоминался компьютерный интеллект, и в общих чертах дал головокружительное описание новой области. Он представил человеческий мозг как «цифровую вычислительную машину» и рассказал о перспективах внедрения машин, которые совершают разумные действия, способны обучаться и обыгрывать людей в шахматы. Он заявил, что «мы хотим, чтобы машина могла учиться на собственном опыте» и что «предоставление машине возможностей по изменению собственных инструкций обеспечивает необходимый для этого механизм». Использование компьютером собственной программы и возможность ее модификации в процессе работы, так же как и выполнение операций над данными в памяти, подразумеваются концепцией машины с хранимой в памяти программой.
В конце лекции Тьюринг сформулировал ответ на, как он назвал его позже, «математическое возражение» против того, что сознание ничем не отличается от машины. В настоящее время оно широко известно как аргумент Гёделя, который также приобрел большую популярность благодаря Роджеру Пенроузу. (На самом деле возражение было выдвинуто специалистом по математической логике Эмилем Постом еще в 1921 году). Тьюринг предложил интересный и обоснованно правильный ответ на возражение.
В середине 1947 года, когда в строительстве ACE не наблюдалось практически никакого прогресса, глубоко разочарованный Тьюринг решил на год уйти в творческий отпуск, с тем чтобы провести его в Кембридже. Цель отпуска, как описал ее Дарвин в июле 1947 года, состояла в том, чтобы дать Тьюрингу возможность
…уделить больше внимания биологии в работе над [АСЕ]. Чтобы максимально раскрыть суть вопроса, скажу, что до сих пор планировалось создать машину, которая бы представляла собой эквивалент нижних долей мозга, и [Тьюринг] хочет посмотреть, в какой степени машина сможет освоить функции верхних отделов, например, реально ли создать машину, которая бы училась на опыте. Это будет теоретическая работа, и лучше делать ее где-нибудь в другом месте.
Осенью 1947 года Тьюринг перебрался из Национальной физической лаборатории в Кембридж (см. главу 21 «Тьюринг покидает Национальную физическую лабораторию»).
Летом 1948 года Тьюринг завершил работу над отчетом под названием Intelligent Machinery, в котором описаны результаты этого исследования. Дональд Мичи вспоминает, что Тьюринг «волновался из-за визита к своему начальству в Национальной физической лаборатории: „Немного похудел за год отсутствия!“».
Чарльз Дарвин, директор Национальной физической лаборатории
Директор Дарвин, который когда-то жаловался на «расплывчатый» характер работы Тьюринга, был, как и ожидал Тьюринг, недоволен отчетом Intelligent Machinery. Он сравнил его с «сочинением школьника» и назвал «непригодным для публикации». На самом деле эта провидческая статья стала первым манифестом об искусственном интеллекте, но, к сожалению, Тьюринг так и не опубликовал ее.
Первый манифест об искуственном интелекте (1948 год)
Статья Intelligent Machinery представляет собой обширное и поразительно оригинальное исследование перспектив ИИ. В этой работе Тьюринг с блеском представил ряд концепций, которые впоследствии сформировали основу теории искусственного интеллекта и в некоторых случаях были признаны заслуживающими внимания лишь в трактовке других ученых. К числу таких концепций относится логически обоснованный подход к решению задач, широко используемый в настоящее время в экспертных системах, и концепция генетического алгоритма, описанная Тьюрингом в кратком отрывке о том, что сам он называл «генетическим или эволюционным поиском». Концепция генетического алгоритма важна как для теории искусственного интеллекта, так и для теории искусственной жизни. (Термин «генетический алгоритм» был введен только около 1975 года.) В свете работы Тьюринга над Bombe выдвинутая им в Intelligent Machinery гипотеза о том, что «интеллектуальная деятельность состоит в основном из различных видов поиска», не вызывает совершенно никакого удивления. Восемь лет спустя такую же гипотезу независимо предложили Ньюэлл и Саймон. Благодаря влиянию, которое имела их работа, эта гипотеза стала одним из главных постулатов теории ИИ. Intelligent Machinery также содержит самое первое описание (в ограниченной форме), как позже назвал ее Тьюринг, «имитационной игры», в настоящее время известной как тест Тьюринга. В отчете также приведено интригующее утверждение Тьюринга о том, что понятие интеллекта является «эмоциональным».
Тест Тьюринга
В 1950 году в своей статье Computing Machinery and Intelligence Тьюринг описал имитационную игру с участием ведущего и еще двух человек, одного мужчины (A) и одной женщины (B). Ведущий обращается к А и В из отдельной комнаты (сегодня это возможно благодаря экрану и клавиатуре), никаких других контактов друг с другом участники не имеют. Задача ведущего — выяснить, кто из двух игроков мужчина, задавая им вопросы. Игрок А должен постараться сделать так, чтобы ведущий не идентифицировал его. Насчет В Тьюринг сказал: «Цель… третьего игрока… заключается в том, чтобы помочь следователю. Лучшая стратегия для нее — давать правдивые ответы».
Затем Тьюринг задался вопросом: «Что произойдет, если в роли А участие в этой игре примет машина?» Пусть в описываемой игре теперь компьютер имитирует человека (мужчину или женщину). Задача ведущего — выяснить, роль кого из игроков выполняет компьютер. Для этого ведущему разрешается задавать любые вопросы. Компьютеру же разрешается делать всё, чтобы запутать ведущего и благополучно притвориться человеком.
Тест Тьюринга
Чтобы оценить, насколько хорошо компьютер справляется с поставленной задачей, мы спросим:
Будет ли ведущий ошибаться так же часто, когда компьютер имитирует человека, как и в том случае, когда игра идет между мужчиной и женщиной?
Если компьютер (в игре «Компьютер имитирует человека») действует не хуже, чем человек (в игре «Мужчина имитирует женщину»), он добивается успеха в игре. Способность успешно играть в имитационную игру и есть предложенный Тьюрингом «критерий наличия „мышления“». Однако роль игры «Мужчина имитирует женщину» часто понимают неправильно. Игра представляет собой часть протокола по оценке результатов теста. Будут ли ведущие так же часто ошибаться во время игр, когда мужчина имитирует женщину, как и во время игр, когда компьютер имитирует человека? Таким образом, Тьюринг предложил заменить этим вопросом вопрос «Могут ли машины думать?».
Прохождение теста Тьюринга: пример диалога (из «Computing Machinery and Intelligence»)
Некоторые комментаторы утверждают, что в ходе теста, предложенного Тьюрингом в Computing Machinery and Intelligence, компьютер должен изображать именно женщину (а не человеческое существо в принципе) и сравнивают степень его успеха с тем, насколько успешно игрок мужского пола справляется с той же задачей. Тем не менее, описывая свой тест на радиопередаче, Тьюринг заявил, что «его идея состоит в том, чтобы машина попыталась притвориться человеком… и он будет пройден только в том случае, если ей удастся притвориться им достаточно убедительно». Рассказывая о своем тесте в другой раз, ученый пояснил, что он призван определить, может ли компьютер «имитировать мозг».
Первые программы ИИ
Во время и после войны Тьюринг экспериментировал с машинными алгоритмами игры в шахматы: в отсутствие компьютера поведение машины моделировалось вручную, с помощью бумаги и карандаша. В 1948 году Тьюринг и Дэвид Чемперноун, экономист-математик, создали программу со свободной системой правил, получившую название Turochamp. Чемперноун рассказал, что его жена, начинающая шахматистка, проиграла Turochamp. Тьюринг пытался реализовать программу Turochamp для компьютера Manchester Ferranti Mark I, но, к сожалению, так и не закончил работу. Позже он опубликовал классическую первую статью о программировании игры в шахматы.
Первую программу игры в шахматы написал Дитрих Принц, работавший на Ferranti. Она была запущена на Ferranti Mark I в ноябре 1951 года. В отличие от Turochamp, программа Принца не могла сыграть полную партию и выбирала ходы методом перебора, а не с помощью эвристического алгоритма. Принц «узнал всё о программировании компьютера Mark I на семинарах, которые проводили Алан Тьюринг и Сисели Попплуэлл». Как и Тьюринг, он написал руководство по программированию для Mark I. Принц также использовал Mark I для решения логических задач. (В 1949 и 1951 годах компания Ferranti построила два небольших экспериментальных компьютера специального назначения для доказательства теорем и решения других логических задач.)
Программа игры в шашки за авторством Кристофера Стрейчи, если не считать «бумажные» программы Тьюринга, стала первой программой искусственного интеллекта, использующей алгоритм эвристического поиска. Стрейчи написал ее для Pilot ACE в мае 1951 года. Первая попытка Стрейчи запустить свою программу на этом компьютере провалилась из-за ошибок в коде. Когда он вернулся в Национальную физическую лабораторию с отлаженной версией программы, то обнаружил, что в аппаратную часть компьютера были внесены значительные изменения, в результате чего программа потребовала существенной переработки. В середине 1952 года Стрейчи наконец заставил свою программу работать на Ferranti Mark I благодаря поддержке Тьюринга и использованию руководства для программистов, подготовленного им незадолго до этого. К лету 1952 года программа могла на приемлемой скорости сыграть полную партию в шашки. Основные особенности программы Стрейчи были взяты на вооружение Артуром Сэмюэлем в США.
Кристофер Стрейчи
Первые программы искусственного интеллекта с функцией обучения, написанные Энтони Эттингером в Кембриджском университете, были запущены в 1951 году. Эттингер создал «программу, обучающуюся реагировать на заданное воздействие» и «программу похода за покупками» для кембриджского компьютера EDSAC. Эттингер, на которого сильно повлияли взгляды Тьюринга на машинное обучение, предположил, что программа похода за покупками, имитирующая поведение «маленького ребенка, отправленного за покупками», сможет пройти тест Тьюринга, если он «ограничится… вопросами вида „В каком магазине можно найти артикль j?“».
Энтони Эттингером написал первые программы которые умели обучаться
Тьюринг предвосхищает появление коннекционизма
Тьюринг не только предложил концепцию цифрового компьютера с хранимой в памяти программой, но и первым высказал идею об использовании искусственных нейронных сетей для проведения вычислений. Основная часть его статьи Intelligent Machinery 1948 года посвящена анализу, предсказывающему появление такого современного направления, как коннекционизм, того, что Тьюринг называл «неорганизованными машинами».
Стандартные цифровые компьютеры — это превосходные числодробилки. Попросите их спрогнозировать траекторию полета ракеты или рассчитать финансовые показатели для крупной многонациональной корпорации, и они выдадут ответ за считанные секунды. Однако простые на первый взгляд действия, которые с легкостью совершают люди, например распознавание лиц или чтение рукописных текстов, оказалось чрезвычайно сложно запрограммировать. Вполне возможно, для решения таких задач стандартным компьютерам не хватает тех природных возможностей, которыми обладают сети нейронов мозга.
Коннекционизм, который до сих пор находится в зачаточном состоянии, — это наука о проведении вычислений с помощью нейронных сетей. Коннекционизм как основывающийся на нейроподобных вычислениях подход возник в результате попыток понять, как работает мозг на нейронном уровне и, в частности, как мы учимся и запоминаем. Ученые обычно моделируют искусственные нейроны и связи между ними с помощью обычного цифрового компьютера — точно так же, как инженер использует компьютер для моделирования крыла самолета или метеоролог — для моделирования штормовой системы. О коннекционизме заговорили в середине 1980 годов, когда группа исследователей из Калифорнийского университета в Сан-Диего сообщила о некоторых поразительных экспериментах, по итогам которых искусственная нейронная сеть научилась формировать прошедшее время английских глаголов и правильно реагировать даже на ранее не встречавшиеся ей неправильные глаголы, такие как weep (wept) и cling (clung)! Термин «коннекционизм» подчеркивает тот факт, что результаты обучения искусственной нейронной сети сохраняются путем изменения паттернов межнейронных связей.
Неорганизованные вычислительные машины Тьюринга пребывали в забвении до публикации статьи On Alan Turing’s Anticipation of Connectionism в 1996 году, а затем и статьи в Scientific American в 1999 году об идеях Тьюринга, касающихся нейронных вычислений. Тьюринг определил класс неорганизованных машин как в основном случайный по своей первоначальной структуре, но способный обучаться с целью выполнения определенных задач. Неорганизованные машины Тьюринга на самом деле относятся к одним из первых нейронных сетей с двоичными нейронами и случайными связями и представляют собой, по утверждению Тьюринга, простейшую модель нервной системы. Тьюринг описал три типа неорганизованных машин. Его неорганизованные машины А-типа и В-типа, которые иногда называют сетями Тьюринга, состоят из случайным образом связанных двоичных «нейронов», работа которых синхронизируется с помощью центральных цифровых часов. Рассмотрение Тьюрингом машин B-типа как раз и предвосхищает современный коннекционизм. Описываемые Тьюрингом неорганизованные машины P-типа не являются нейроподобными, а представляют собой модифицированные машины Тьюринга: по его словам, они имеют «два влияющих друг на друга входа, один для сигнала „удовольствия“, или „вознаграждения“… и другой для сигнала „боли“, или „наказания“». Тьюринг изучал P-тип в надежде найти способы «обучить» машину выполнению той или иной задачи. Именно о машине P-типа Тьюринг говорил в ходе своего широко известного анализа стратегий создания машин, которые могли бы пройти тест Тьюринга: «Я провел несколько экспериментов с одной такой машиной, имитирующей ребенка, и мне удалось кое-чему ее научить».
Неорганизованная машина P-типа, воплощенная в жизнь. Машина в виде мыши разработана и построена в 2000 году Ови Крисом Рули в Университете штата Нью-Мексико. Более подробную информацию можно найти здесь.
Машины В-типа тоже способны к обучению. Самая важная идея, высказанная Тьюрингом при рассмотрении таких машин, несомненно, заключается в том, что изначально случайная сеть может научиться выполнять определенную задачу посредством, как он его описал, «обучения путем вмешательства»:
Многие неорганизованные машины имеют такую конфигурацию, что по ее достижении и при соответствующем ограничении вмешательства начинают вести себя как машины, которые были организованы с определенной целью.
В процессе обучения машин B-типа одни нейронные пути становятся эффективными, а другие неэффективными — таким образом, обучение оптимизирует сеть для выполнения той или иной задачи путем выборочного приведения связей в активное и неактивное состояние.
Тьюринг высказал теоретическое предположение о том, что «кора головного мозга младенца — это неорганизованная машина, которая может быть организована при обучении путем вмешательства», и описал неорганизованные машины А-типа как «самую простую модель нервной системы со случайным расположением нейронов». Он нашел «это представление коры головного мозга в виде неорганизованной машины… весьма удачным с точки зрения эволюции и генетики». Тьюринг не сомневался в важной роли своих неорганизованных машин. О сетях Тьюринга он сказал:
[М]ашины этого типа могут вести себя крайне сложным образом при большом количестве узлов… Поэтому было бы очень интересно узнать что-нибудь об их поведении.
Фрагмент сети Тьюринга
По части подхода к обучению работа Тьюринга Intelligent Machinery существенно выходит за рамки широко известной статьи Мак-Каллока и Питтса 1943 года о нейронных сетях. Мак-Каллок и Питтс лишь поверхностно рассмотрели обучение, отметив, что механизмы, предположительно лежащие в основе обучения мозга (они, в частности, упомянули формирование новых межнейронных связей и изменение «порога», при котором нейрон «возбуждается»), можно сымитировать с помощью сетей с фиксированными связями и пороговыми значениями. На идею Тьюринга об использовании контролируемого вмешательства для обучения сети с изначально случайным расположением нейронов у них нигде нет и намека. Следует также отметить, что Мак-Каллок особо подчеркивал, что статья по нейронным сетям, которую они с Питтсом написали в 1943 году, в значительной мере обязана своим появлением работе Тьюринга On Computable Numbers 1936 года. В 1948 году Мак-Каллок заявил: «Я выбрал совершенно неверный ракурс… и только после того, как увидел работу Тьюринга, начал двигаться в правильном направлении и с помощью Питтса сформулировал необходимое логическое исчисление. То, что мы, по нашему мнению, делали (и, полагаю, нам это довольно хорошо удавалось), — так это рассматривали мозг как машину Тьюринга».
Мак-Каллок
Уолтер Питтс
Тьюринг также предусмотрел процедуру, позволяющую внедрить алгоритмы обучения в компьютерную имитацию неорганизованной машины. В настоящее время такая процедура широко используется коннекционистами. В современном коннекционизме повторное применение алгоритма обучения (например, алгоритма обратного распространения ошибки) приводит к постепенному формированию требуемого паттерна межнейронных связей в сети на этапе обучения. Однако у Тьюринга не было алгоритма обучения машин B-типа. Основной задачей он видел разработку алгоритмов обучения для неорганизованных машин. С характерной для него проницательностью в завершение рассмотрения неорганизованных машин Тьюринг привел план программы исследований, которой сегодня придерживаются коннекционисты:
Я считаю, что в этих направлениях необходимо сделать больше. Я хотел бы исследовать другие типы неорганизованных машин… Я надеюсь, проводить такие исследования будет легче, когда какие-нибудь электронные машины действительно заработают. На такой UPCM [универсальной практической вычислительной машине] должно быть проще создавать модели тех или иных машин, чем, как сейчас, на бумаге. Достаточно четкие «правила обучения» при необходимости также можно запрограммировать на машине. Затем стоит дать всей системе поработать в течение длительного времени и проникнуть в нее в роли своего рода «школьного инспектора», чтобы оценить достигнутый прогресс.
Тьюрингу не удалось как следует углубиться в исследование неорганизованных машин. Единственным электронным компьютером с хранимой в памяти программой в то время был крошечный Manchester Baby. К 1951 году, когда Тьюринг получил доступ к Ferranti Mark I, интересы ученого поменялись, и он занялся моделированием биологического роста. Идеям Тьюринга относительно обучения последовали Дональд Дэвис и Майкл Вуджер, его коллеги по Национальной физической лаборатории. Их машина Cybernetic Model, созданная в 1949 году, представляла собой аппаратную модель шести булевых нейронов. В 1950 году она была продемонстрирована в программе BBC на телевидении, где использовалась для имитации обучения осьминога.
В 1954 году, в год смерти Тьюринга, двум ученым из Массачусетского технологического института, Уэсли Кларку и Бельмонту Фарли, удалось впервые смоделировать нейронную сеть на компьютере. Кларк и Фарли не знали о ранее проведенной Тьюрингом работе. Архитектура их нейронной сети сильно отличалась от предложенной им: Кларк и Фарли использовали «взвешенные» связи между нейронами, как это сейчас принято в коннекционизме. Ученые смогли обучить свои сети, содержавшие максимум 128 нейронов, распознавать простые образы. Кроме того, они обнаружили, что уничтожение до 10% случайным образом выбранных нейронов в обученной сети не влияло на ее способность к распознаванию, что не может не напоминать мозг, не утрачивающий своих функций при не слишком серьезных повреждениях.
Современная сеть Х
Работа, начатая Кларком и Фарли, была в значительной степени углублена Фрэнком Розенблаттом в Корнеллском университете. Розенблатт создал первый нейрокомпьютер, построенный на так называемом перцептроне, и ввел термин «коннекционизм» для обозначения использованного подхода. Его книга Principles of Neurodynamics 1962 года приобрела статус справочного пособия в новой области. Розенблатта считают основоположником коннекционизма, и до сих пор мало кто понимает, что еще в 1948 году Тьюринг во многом описал его примерную концепцию.
Фрэнк Розенблатт
10. Тьюринг и искусственная жизнь (A-Life)
В последние годы своей жизни Тьюринг работал над тем, что с 1987 года называют искусственной жизнью (A-Life). Главное назначение данной области науки состоит в построении теорий, объясняющих различные аспекты существования естественной биологической жизни, и, в частности, в исследовании наиболее выдающейся особенности живой материи, ее способности к самоорганизации (т. е. к спонтанному образованию формы и структуры). Термин «искусственная жизнь» обычно применяется по отношению к компьютерному моделированию живых и жизнеподобных систем. Кристофер Лэнгтон, который ввел этот термин, писал:
Компьютеры следует рассматривать как важный лабораторный инструмент для изучения жизни, заменяющий собой набор инкубаторов, чашек для культивирования микроорганизмов, микроскопов, гель-электрофоретических систем, пипеток, центрифуг и множество других принадлежностей для проведения экспериментов на практике, как одну простую в освоении единицу экспериментального оборудования.
Тьюринг первым использовал компьютерное моделирование для исследования теории морфогенеза — возникновения органов и эволюции структур живых организмов. Он приступил к этому исследованию сразу же после того, как в Манчестерском университете появился первый Ferranti Mark I. В феврале 1951 года Тьюринг писал:
Наша новая машина должна прибыть в понедельник. Прежде всего я надеюсь заняться «химической эмбриологией». В частности, я думаю, можно проиллюстрировать вид чисел Фибоначчи строением еловых шишек.
Модель пигментации ракушки, сформированная современным методом морфогенеза Тьюринга. (Модификацировал реакционно-диффузионный процесс Тьюринга — Ханс Майнхардт в 1952 году.)
Модель роста М. Идена на ровной поверхности, сформированная методом реакционно-диффузионного процесса Тьюринга.
Модель роста, обусловленная диффузионно-ограниченной агрегацией (DLA), еще один вариант реакции-диффузии описанный Тьюрингом.
Губкоподобный рост по модели DLA
Нейроподобные ветви нейронных структур, полученные с помощью модели DLA
Незадолго до того, как компьютер Ferranti был доставлен, Тьюринг написал биологу Дж. З. Янгу о своей работе по морфогенезу. В письме прослеживается связь между этой работой Тьюринга и его интересом к нейронным сетям. Оно в некоторой степени объясняет, почему Тьюринг отклонил предлагаемый в Intelligent Machinery вариант и не использовал компьютер Ferranti для моделирования своих неорганизованных машин.
Я боюсь, что пока очень далек от стадии, на которой возникает стремление задавать какие-либо вопросы об анатомии [мозга]. Согласно моим представлениям о способах решения этой задачи, такая стадия не наступит до тех пор, пока у меня не будет достаточно ясного представления о происходящих процессах.
В настоящее время я работаю вообще не над этой проблемой, а над своей математической теорией эмбриологии… Она поддается обработке и, насколько я могу судить, дает удовлетворительное объяснение:
I) гаструляции;
II) формированию структур с полигональной симметрией, например, у морских звезд и цветов;
III) закономерностям расположения листьев, а именно того, каким образом в них задействованы числа Фибоначчи (0, 1, 1, 1, 2, 3, 5, 8, 13, …);
IV) особенностям окраски животных, например наличию полос, пятен и крапинок;
V) образованию структур у сфероподобных организмов, таких как некоторые радиолярии, но это более сложно и спорно.Я действительно занимаюсь сейчас этой теорией, потому что ее проще формализовать. Думаю, она не так уж далека от другой проблемы. Мозг должен иметь такую структуру, которая может сформироваться посредством генетическо-эмбриологического механизма, и я надеюсь, что теория, над которой я сейчас работаю, поможет прояснить, какие ограничения этот механизм подразумевает. В связи с этим ваш рассказ о росте нейронов при стимуляции очень меня заинтересовал. Отсюда предположительно следует, что, возможно, существуют способы заставить нейроны расти так, чтобы они образовывали определенную цепь, а не достигали определенного места.
В июне 1954 года, в разгар работы над этой революционной теорией, Тьюринг умер. Он оставил множество рукописных заметок о морфогенезе и несколько программ. Эти материалы до сих пор не до конца изучены.
The Mark I Perceptron
11. Манчестерский компьютер
Тьюринг и Национальная физическая лаборатория проиграли гонку по созданию первого в мире электронного цифрового компьютера с хранимой в памяти программой — эта честь выпала Манчестерскому университету, где 21 июня 1948 года Manchester Baby выполнил свою первую программу. Как следует из его названия, Baby (Младенец) был очень маленьким компьютером, и новость о том, что он выполнил лишь крошечную программу, состоящую всего из 17 инструкций и предназначенную для решения математически тривиальной задачи, была, по словам Вуджера, «с радостью воспринята» группой Тьюринга.
Manchester Baby. Первый в мире компьютер с хранимой в памяти программой. Фредди Уильямс (справа) и Том Килбурн позируют перед катодно-лучевым дисплеем.
Manchester Baby
Проект по созданию Манчестерского компьютера был детищем Макса Ньюмана, друга и коллеги Тьюринга. В его отделе британского шифровального подразделения, штаб-квартира которого во время войны располагалась в Блетчли-Парке, работало десять компьютеров «Колосс», круглосуточно занятых взломом немецких кодов. На Ньюмана, как и на фон Неймана в США, сильно повлияла концепция универсальной вычислительной машины, предложенная Тьюрингом еще до войны. Именно в лаборатории вычислительных машин Ньюмана появилась на свет Baby — первая созданная на практике универсальная машина Тьюринга.
Манчестерский компьютер
Тьюринг и Ньюман не случайно приступили к проектам по аппаратной реализации универсальной машины Тьюринга сразу же после окончания войны. Даже в разгар атаки на «Танни» Ньюман думал об универсальной машине Тьюринга. Когда Флауэрс проектировал «Колосс», Ньюман показал ему статью Тьюринга 1936 года об универсальной машине (On Computable Numbers). Ключевая идея этой работы состояла в сохранении закодированных в символической форме инструкций в памяти машины. К 1944 году Ньюман решил реализовать свой собственный проект по созданию электронного компьютера, как только закончится война. Как следует из его письма фон Нейману (цитируется в главе 2 «Криптоанализ во время Второй мировой войны»), это был лишь вопрос того, когда ему удастся «выбраться» из Блетчли-Парка.
Более того, именно лекция Ньюмана, которую он прочел в Кембридже в 1935 году, положила начало исследованиям Тьюринга, приведшим к созданию универсальной машины Тьюринга. На лекции Ньюман дал определение конструктивного процесса, указав, что под ним следует понимать такой процесс, который может выполнять машина. В интервью он пояснил:
Я считаю, всё началось потому, что [Тьюринг] посетил мою лекцию по основам математики и логики… Кажется, на той лекции я сказал, что когда мы говорим о конструктивном процессе, то подразумеваем, что он может быть выполнен действующей чисто механически машиной, и, возможно, я даже сказал, что он может быть выполнен машиной.
И это, конечно, привело [Тьюринга] к вопросу о том, что это за машина, и побудило его попытаться сформулировать, что следует понимать под вычислительной машиной абсолютно общего назначения.
После того как в начале 1936 года Ньюман узнал об универсальной вычислительной машине Тьюринга, он заинтересовался компьютерной техникой, которая, как он выразился, в тот период существовала «в основном в теории». Сам Тьюринг был с самого начала заинтересован в создании универсальной вычислительной машины, но не знал подходящей технологии. И только лишь в Блетчли-Парке их с Ньюманом захватила мечта о создании сверхъестественно быстрого многоцелевого электронного компьютера.
Историки, которые не знали о существовании «Колосса», склонялись к предположению о том, что Тьюринг и Ньюман переняли свое представление о большой электронной вычислительной технике у группы, работавшей над созданием ENIAC в США. В действительности «Колосс» играл роль связующего звена между довоенной работой Тьюринга и их с Ньюманом послевоенными проектами по созданию электронного компьютера с хранимой в памяти программой. (Флауэрс видел ENIAC сразу после войны. По его мнению, ENIAC представлял собой обыкновенную числодробилку, тогда как «Колосс», отличавшийся развитыми возможностями по выполнению логических операций, был, по его словам, «в гораздо большей степени компьютером, чем ENIAC».)
В сентябре 1945 года, после назначения Филденсовским профессором математики в Манчестере, Ньюман разработал планы по созданию своей лаборатории вычислительных машин. Его выдающийся талант организатора, отточенный в «Ньюманри», теперь был направлен на разработку и конструирование электронного компьютера с хранимой в памяти программой. Ньюман обратился в Королевское общество за крупным грантом на создание такой машины, который был одобрен в мае 1946 года. Части «Колосса», включая некоторые электронные панели, были перевезены из Блетчли-Парка в Манчестер, однако перед этим все указания на их первоначальное назначение были удалены! Первые операции на компьютере Baby выполнялись с использованием «остова» «Колосса», огромной железной рамы (справа), на которой был установлен механизм перемещения ленты с сообщениями. «Она напоминает мне ребро Адама», — отметил Джек Гуд, один из криптоаналитиков «Ньюманри», перебравшийся в Манчестер с Ньюманом.
«Остов» компьютера «Колосс»
В Блетчли-Парке Ньюман руководил проектом, над которым работали более 300 человек. Он организовал и контролировал создание ошеломляющего множества машин, воплощавших в себе самые передовые технологии (сюда относятся не только «Робинсоны» и «Колоссы» — см. описания других машин «Ньюманри» в работах General Report on Tunny и Colossus: The Secrets of Bletchley Park’s Codebreaking Computers). Ньюман, который не был инженером, достиг этих выдающихся успехов благодаря умелому использованию простого принципа: привлечь инженеров, обладающих необходимой квалификацией, объяснить им, что нужно сделать, и позволить им выполнить задачу. (Как только Ньюман, по словам Дональда Мичи, его помощника в Блетчли-Парке, «доверился людям, он дал им свободу действовать по собственному усмотрению».) Неудивительно, что Ньюман снова прибегнул к тому же методу и в Манчестере. Он рассказал Фредерику Уильямсу, который перешел в Манчестерский университет из Научно-исследовательского института связи (TRE), об устройстве компьютера с хранимой в памяти программой. Уильямс и его помощник в TRE Том Килбурн были специалистами по схемотехнике и занимались проектированием радара. (Сами они ничего не знали о «Колоссе». Уильямс не слышал о том, что происходило в Блетчли-Парке, пока они «не погрузились в связанную с компьютерами область» и их «деятельность не начала представлять потенциальный интерес». Это произошло в 1952 году, когда Уильямс обратился за консультацией в Правительственную школу кодов и шифров и был приглашен в ее штаб-квартиру, которая к тому времени переместилась из Блетчли-Парка в Исткот вблизи Лондона.)
Макс Ньюман
В момент ухода из TRE в 1946 году Уильямс разрабатывал метод хранения последовательностей нулей и единиц на экране электронно-лучевой трубки. Благодаря Килбурну реализация этой идеи быстро привела к созданию быстродействующей памяти с произвольным доступом (RAM), известной как трубка Уильямса. (Хотя, поскольку Уильямс и Килбурн были соавторами позднее зарегистрированных патентов и поровну делили отчисления, уместнее было бы использовать название «трубка Уильямса — Килбурна».) Трубки Уильямса были ключевыми элементами первых вычислительных машин. Компьютеры с памятью на трубках Уильямса включают не только компьютеры, построенные Манчестерским университетом и манчестерской инженерно-технической компанией Ferranti, но и SWAC в Калифорнийском университете в Лос-Анджелесе, Wirlwind I в Массачусетском технологическом институте, IAS в Принстонском университете, IBM 701, собственный компьютер Научно-исследовательского института связи TREAC (Арифметический компьютер Научно-исследовательского института связи), а также ORDVAC, ORACLE, ILLIAC, MANIAC и другие компьютеры с занятными названиями.
Внешний вид компьютера TREAC
Фредди Уильямс
Летом 1946 года, примерно в то же время, когда Королевское общество одобрило грант Ньюману, Уильямс в TRE начал свои эксперименты над запоминающими устройствами на электронно-лучевых трубках. Уильямс пояснил, что привело его к работе над созданием компьютерной памяти:
[К]огда [немецкие армии] пали… никто уже не собирался запускать радар, и такие люди, как я… оказались бы в затруднительном положении, если бы не нашли себе другого занятия. И компьютеры были на слуху. Абсолютно ничего не зная о них, я взялся за проблему хранения данных и решил ее.
Ньюман узнал о работе Уильямса. Вместе со своим другом Патриком Блэкеттом (Лэнгуортским профессором физики и одной из самых влиятельных фигур в Манчестерском университете) Ньюман добился назначения 35-летнего Уильямса на недавно освободившуюся должность заведующего отделением электротехники. И Ньюман, и Блэкетт входили в комиссию по назначению. После получения должности Уильямс взял Килбурна в свое новое подразделение.
Трубка Уильямса
Уильямсу удалось добиться сохранения одного бита осенью 1946 года, за несколько недель до ухода из TRE. К тому времени Ньюман уже успел получить грант Королевского общества, но его лаборатория вычислительных машин оставалась всего лишь пустым помещением. «Таким образом, открылась очень полезная возможность для сотрудничества», — отметил Уильямс. Он красочно описал лабораторию вычислительных машин: «Она занимала помещение в здании, построенном в викторианском стиле, который вполне заслуживал названия „позднетуалетного“ из-за характерных архитектурных особенностей. Стены были из глазурованного коричневого кирпича, а на двери висела табличка с надписью „Комната магнетизма“». Здесь Килбурн и Уильямс построили Manchester Baby. Первая программа, которая сохранялась на экране трубки Уильямса в виде набора точек, вводилась вручную, бит за битом, с помощью панели переключателей. «Малая электронная цифровая вычислительная машина несколько недель успешно работает в лаборатории вычислительных машин Королевского общества», — сообщили Уильямс и Килбурн в письме в Nature, чтобы поделиться своими успехами со всем миром.
Биты, хранящиеся на внешней стороне катодной лучевой трубки
Принцип регенерации
Тьюринг упомянул о запоминающем устройстве на основе электронно-лучевой трубки на 48-й странице статьи Proposed Electronic Calculator, отметив, что это была «[п]очти самая многообещающая схема» запоминающего устройства. В действительности Тьюринг предвидел появление трубок Уильямса и довольно подробно описал их за шесть или более месяцев до того, как Уильямс впервые услышал о проблеме хранения данных в цифровом формате:
Вполне вероятно, что подходящую систему хранения можно разработать без использования новых типов трубок, на основе обычной электронно-лучевой трубки, если закрепить на внешней стороне ее экрана оловянную фольгу, так чтобы она играла роль сигнальной пластины. Периодически необходимо будет обновлять картину распределения зарядов, так как они имеют тенденцию рассеиваться… Если бы мы всегда сканировали картину регулярно, как это происходит в случае с телевизором, с этим бы не возникло никаких серьезных проблем… Но пока нам следует продумать схемы переключения, чтобы применять их для считывания той или иной части информации. Необходимо будет… переходить к точке с нужной информацией, выполнять сканирование, заменять информацию, удаленную в его процессе, и возвращаться к обновлению начиная с оставленной точки… Всё это не несет никаких принципиальных трудностей, но, несомненно, займет некоторое время.
Основная проблема, безусловно, состояла в «обновлении» (т. е. регенерации) сохраненной картины. Такая картина сохраняется в течение некоторого времени, но, если не отыскать способы для ее регенерации, в конце концов исчезает. Кроме того, сканирование сохраненной картины с целью считывания также приводит к ее уничтожению.
Самые первые образцы регенеративной памяти были построены на электрических конденсаторах, которые служили элементами запоминающих устройств. Работавшая в Блетчли-Парке во время войны дешифровальная машина Aquarius была снабжена регенеративной памятью, состоявшей из большого количества конденсаторов (детали держались в секрете до 2000 года). Данные, считываемые с бумажной перфоленты, сохранялись в виде картины распределения электрических зарядов, при этом заряженный конденсатор соответствовал единице, а незаряженный конденсатор — нулю. Поскольку с течением времени заряды постепенно утекали, картина регенерировалась с помощью периодического импульса, который подзаряжал те конденсаторы, которые уже содержали заряд, — в отчете того периода процесс регенерации описывался как выполняемый «согласно правилу „всякому имеющему дастся“». В памяти могло храниться более 1500 бит (315 символов телетайпа, записанных 5-битным кодом). Тремя-четырьмя годами ранее по другую сторону Атлантики Джон Атанасов также создал регенеративную память объемом 1500 бит на основе конденсаторов для своего электронного вычислителя, содержавшего 300 ламп, однако он так и не был завершен.
Машина Aquarius
Электронно-лучевая трубка, на тот момент уже широко распространенная в телевизионной промышленности и других областях, в теории намного лучше подходила на роль основного элемента быстродействующей компьютерной памяти, чем конденсатор. В фокусе первых неудачных экспериментов с запоминающими устройствами на основе электронно-лучевой трубки находились не обычная трубка, рекомендованная Тьюрингом и позже использованная Уильямсом, а более сложная трубка, называемая иконоскопом и применявшаяся в телекамерах. Иконоскоп, отличающийся высокой светочувствительностью, преобразовывал оптическое изображение, создаваемое объективом камеры, в электрический сигнал. Попадание изображения на внешнюю поверхность пластины (или мозаики) в торце иконоскопа приводило к формированию картины распределения электрического заряда, которая считывалась сканирующим электронным лучом внутри трубки и преобразовывалась в электрический ток. В ходе первых попыток создания запоминающих устройств картина формировалась на пластине иконоскопа не с помощью света, а с помощью электронного луча, отвечающего за считывание сохраненной картины. Описываемые эксперименты проводились в лаборатории излучений Массачусетского технологического института, и их целью было сохранение не цифровой информации для обработки электронными компьютерами, а аналоговой — различных фигур и линий — для подавления отраженных сигналов при радиолокации. Планировалось сохранять кривую радиолокационного сигнала, а затем «вычитать» ее из последующих кривых, что позволило бы оператору видеть только движущиеся объекты.
Иконоскоп
Проблема заключалась в том, что данные сохранялись лишь на очень короткий период времени. В отчете лаборатории излучений за февраль 1946 года сообщалось, что спиральная картина распределения хранилась «почти секунду при подходящих условиях». Приемлемых способов для увеличения длительности хранения обнаружить не удалось. Уильямсу (ведущему специалисту по радиолокации) продемонстрировали эксперименты по сохранению данных, когда он посетил лабораторию излучений в июне 1946 года. Позже он подытожил увиденное:
Если бы, сохранив свой сигнал, вы бы захотели взглянуть на него снова, то в первые полсекунды или около того смогли бы найти его, но уже на следующий день он бы исчез.
Фон Нейман упоминал иконоскоп в отчете First Draft of a Report on the EDVAC (1945 год) в качестве возможного средства для создания быстродействующего цифрового запоминающего устройства. Он осознавал необходимость регенерации сохраненной информации и предложил так называемый метод двух трубок. Согласно этому методу, два иконоскопа следовало соединить друг с другом, так чтобы сохраненная информация регенерировалась путем постоянного перемещения из одной трубки в другую. Неизвестно, то ли фон Нейман узнал о возможности использования иконоскопа в качестве регенеративной памяти от Преспера Эккерта (инженер-проектировщик компьютеров ENIAC и EDVAC), то ли, может быть, Эккерт узнал об этой идее от фон Неймана. Как бы то ни было, летом 1946 года Эккерт неоднократно читал лекции о возможностях запоминающих устройств на электронно-лучевых трубках в Школе Мура. Кайт Шарплесс, один из сотрудников Эккерта в Школе Мура (впоследствии ставший руководителем проекта по созданию EDVAC), ранее в том же году уже экспериментировал с сохранением битов на экране стандартной электронно-лучевой трубки, используя закрепленную на ее экране металлическую фольгу в качестве мишени. Базовая конфигурация была очень похожа на ранее описанную Тьюрингом. Тем не менее метод регенерации разработать не удалось, и эксперименты завершились безрезультатно. Специалистов Школы Мура также интересовала регенерация методом двух трубок, но реализовать его на практике было трудно. В лаборатории излучений Массачусетского технологического института предпринимались попытки сохранить аналоговые кривые методом двух трубок, но и они не увенчались успехом.
Радиационная лаборатория, обычно называемая Rad Lab, представляла собой исследовательскую лабораторию для микроволновых и радиолокационных исследований, расположенную в Массачусетском технологическом институте в Кембридже, штат Массачусетс.
В TRE Уильямс решил заняться проблемой хранения данных в цифровом формате. Он был свидетелем неудачной попытки команды Эккерта создать цифровое запоминающее устройство в Школе Мура, а во время посещения лаборатории излучений также наблюдал за экспериментом с использованием двух трубок для сохранения аналоговых данных. Килбурн объяснил:
Так вышло, что Фредди поехал в Штаты, где наблюдал над попыткой сохранения аналоговых сигналов с помощью электронно-лучевой трубки. Там использовалась система из двух трубок. Когда Фредди вернулся, он сам поставил такой же эксперимент, чтобы понять, как происходит весь процесс. Он взял две трубки, между которыми аналоговые сигналы должны были передаваться с целью регенерации.
Уильямсу так и не удалось заставить систему из двух трубок работать, но при попытках приспособить ее для хранения цифровых данных он обнаружил явление, которое могло бы помочь создать запоминающее устройство на основе электронно-лучевой трубки, — упреждающий импульс. Когда Уильямс пробовал сохранить прямую линию с разрывом — фактически один бит — на экране электронно-лучевой трубки, то заметил, что при отключении электронного луча в начале разрыва на экране оставалась электрически заряженная «метка». Метка немного растягивалась на экране, в результате чего, когда сканирующий луч возвращался к считыванию информации с экрана, заранее указывала на точку, где луч отключился. Такое заблаговременное уведомление в виде упреждающего импульса можно было использовать для управления регенерацией линии с разрывом путем отключения регенерационного луча в точке, где начинался разрыв. (Метка возникала вследствие вторичной эмиссии электронов, а формирование упреждающего импульса в целом объяснялось особенностями люминофора, которым был покрыт экран трубки.) Для реализации этого метода потребовалась всего одна стандартная электронно-лучевая трубка, так что Уильямсу успешно удалось сохранить один бит вскоре после того, как он обнаружил упреждающий импульс.
TRE (Центр телекоммуникационных исследований) в Мальверне, где Уильямс добился успеха в своей работе
Компьютер Baby в итоге был создан без использования упреждающего импульса. Килбурн вскоре открыл другие методы регенерации. В любом случае история с упреждающим импульсом, по словам Уильямса, послужила уроком, из которого можно было извлечь логические выводы: «Упреждающий импульс… стал настоящим прорывом, но стоило его обнаружить, как вы вдруг поняли, что можно реорганизовать весь процесс… вы идете посмотреть на свою находку с вопросом „Что там?“, а там и без нее порядок, и вы возвращаете всё как было». Упреждающий импульс был не нужен.
Килбурн позирует перед реконструированным в 1998 году Манчестерским Baby
В 1953 году Уильямс и Килбурн отметили, что «на понимание того, что для сохранения записи вполне достаточно прочитать ее один раз, при условии что прочитанное тут же перезаписывается на исходную позицию, ушло на удивление много времени». Тьюринг догадался об этом еще в 1945 году и очень четко сформулировал соответствующую идею в работе Proposed Electronic Calculator (см. процитированный ранее отрывок). Национальная физическая лаборатория прислала Уильямсу копию этой статьи в октябре 1946 года, примерно в то же время, когда он обнаружил упреждающий импульс (в октябре или ноябре). Ему потребовалось лишь раз взглянуть на ее содержание, чтобы заметить главу с притягательным названием «Альтернативные формы хранения». Тьюринг описал проблему регенерации с точки зрения логика. Его слова:
Необходимо будет… переходить к точке с нужной информацией, выполнять сканирование, [затем] заменять информацию, удаленную в его процессе…
— вполне могли бы помочь Уильямсу прийти к логическому выводу, что считывания и перезаписывания достаточно для решения проблемы регенерации.
Уточнение фактов
Во времена машины Baby и ее преемника, компьютера Manchester Mark I, математики в Манчестерском университете не видели особой ценности в работе Уильямса и Килбурна по аппаратной реализации логико-математической концепции компьютера с хранимой в памяти программой. Их считали отличными инженерами, но не «генераторами идей». Сегодня ситуация кардинально изменилась — манчестерский триумф обычно ставят в заслугу исключительно Уильямсу и Килбурну. К счастью, слова покойного Фредди Уильямса сохранились до наших дней, что помогает прояснить ситуацию:
Прежде чем двигаться дальше, поясним, что ни Том Килбурн, ни я ничего не знали о компьютерах, когда приехали в Манчестерский университет. Мы получили достаточно объяснений, чтобы понять, в чем суть проблемы с сохранением данных и какие данные нужно сохранять, и добились желаемого, после чего нам представилась возможность узнать кое-что о компьютерах… Королевское общество уже выделило Ньюману грант на создание компьютера, но на самом деле он пока не приступал к его созданию. Действительно, Ньюман, как математик, не слишком подходил на роль создателя компьютера. Таким образом, нам выпал шанс наладить плодотворное сотрудничество между отделениями математики и электротехники, и Ньюман в подробностях рассказал нам, как работает компьютер… [Строительство компьютера Baby] представляло собой незамысловатый процесс: у нас был метод хранения и указания Ньюмана относительно того, какими возможностями должен обладать компьютер.
Историки либо игнорируют, либо недооценивают роль Тьюринга и Ньюмана в разработке компьютера с хранимой в памяти программой в Манчестере. Даже сам Ньюман, что характерно, достаточно скромен в этом вопросе. Уильямс, однако, прекрасно понимает, кому принадлежат реальные заслуги:
Мы с Томом Килбурном ничего не знали о компьютерах… В отличие от профессора Ньюмана и господина А. М. Тьюринга… Они протянули нам руку помощи и объяснили, как числа могут жить в «домах» с адресами…
Согласно более позднему комментарию Уильямса (приведен ниже), объяснение принципов работы компьютера с хранимой в памяти программой, которое Ньюман дал Уильямсу и Килбурну в начале 1947 года, было очень похоже на его отчет Королевскому обществу 4 марта 1948 года, текст которого дошел до печати:
В современном мире идея универсальной вычислительной машины была выдвинута Тьюрингом независимо от Бэббиджа… Она предусматривает сохранение чисел, скажем, в двоичной записи, когда каждое число представлено в виде ряда, скажем, сорока нулей и единиц, занимающих определенные места, или «дома», в машине… Некоторые из этих чисел, или «слов», считываются друг за другом, как команды. У одного из типов машин команда состоит из четырех чисел, например 11, 13, 27, 4. Число 4 означает «добавить», так что при передаче управления этому слову «дома» H11 и H13 подключаются к сумматору в качестве входов, а H27 — в качестве выхода. Числа, хранящиеся в «домах» H11 и H13, проходят через сумматор, суммируются, а сумма отсылается в H27. Затем управление передается следующей команде. У большинства реальных машин описанный выше процесс будет выполняться с использованием трех отдельных команд: первая должна передавать ‹H11› (=содержимое H11) в центральный аккумулятор, вторая — добавлять в аккумулятор ‹H13›, а третья — отправлять результат в H27. Таким образом, для каждой команды потребуется только один адрес… Машина с запоминающим устройством, с таким коммутатором и со всеми необходимыми сумматорами, вычитателями и т. д. уже является универсальной машиной…
Здесь Ньюман объясняет как введенный Тьюрингом трехадресный формат инструкций (отправитель 1, отравитель 2, адресат, операция), так и одноадресный формат (адрес, операция), переход к которому возможен при использовании центрального «аккумулятора». (Аккумулятор — это блок ячеек памяти, в котором происходит формирование суммы переданного в него числа и уже сохраненного числа, которая затем заменяет прежнее содержимое памяти.) Упоминание Ньюманом одноадресного формата и центрального аккумулятора было отсылкой к централизованной архитектуре, за которую фон Нейман выступал в работах First Draft of a Report on the EDVAC (1945 год) и Preliminary Discussion of the Logical Design of an Electronic Computing Instrument (1946 год) (далее см. главу 12 «Манчестерский компьютер и Джон фон Нейман»). Трехадресный формат был введен Тьюрингом в версиях VI и VII проекта ACE (см. главу The Turing-Wilkinson Lecture Series в книге Alan Turing’s Automatic Computing Engine). С точки зрения Тьюринга, его использование позволило бы заменить три одноадресных инструкции одной инструкцией, что привело бы к увеличению скорости.
Затем Ньюман описал сохранение программы («команды должны занимать последовательный ряд „домов“ X1, X2, …») и условный переход («необходима условная передача управления, т. е. возможность передачи управления произвольной команде, если, скажем, определенное число положительное, и перехода к следующей команде в противном случае»). Ньюман заявил: «Передача управления, и прежде всего условная передача управления в соответствии со знаком того или иного числа, наиболее типична для этих машин». Далее он подчеркнул связь с «Колоссом», который, по его словам, «обладал весьма характерной особенностью, иногда рассматриваемой в качестве характеристики вычислительной машины общего назначения и заключающейся в том, что он проверял ответ на выполненные операции и делал одно, если ответом был нуль, или другое, если ответом была единица, и это очень важный этап — и этот этап был заложен в принципы работы „Колосса“».
На своей лекции в Королевском обществе Ньюман подытожил основные особенности компьютера с хранимой в памяти программой, видимо, по большей части теми же словами, что и на «нескольких лекциях», которые он прочел инженерам годом ранее:
Из этого крайне упрощенного отчета следует, что к основным внутренним компонентам машины относится, во-первых, устройство для хранения чисел (которые также могут быть командами)… Во-вторых, сумматоры, умножители и т. д. В-третьих, «коммутатор» для выбора «домов», их подключения к арифметическому устройству и записи ответов в другие «дома», предназначенные для этого. Наконец, средства передачи управления любой команде на любом этапе при выполнении определенного условия и перехода к следующей команде в нормальной последовательности в противном случае. Кроме того, необходимо предусмотреть способы настройки машины в самом начале работы и получения итогового ответа в пригодной для использования форме.
Ньюман объяснил инженерам, что нужно построить. Получается, что честь создания Манчестерского компьютера, который Хаски назвал «машиной Ньюмана — Уильямса» в отчете, написанном вскоре после посещения Манчестерского проекта в 1947 году, принадлежит (хоть это и не отражено в традиционных источниках) не только Уильямсу и Килбурну, но и Ньюману. Понятно также, что статья Тьюринга 1936 года и «Колосс» Флауэрса оказали на Ньюмана решающее влияние. Ниже отдельно описано, как Тьюринг повлиял на Килбурна. Вклад Тьюринга в его работу над созданием первого компьютера официально не упоминается в истории Манчестерского проекта.
В письме 1972 года Уильямс подробно описал, о чем им с Килбурном рассказал Ньюман. Уильямс сообщил, что это была «первая информация» об устройстве компьютеров, которую он получил, хотя Килбурн (как мы расскажем далее) на самом деле уже подробно ознакомился с основами проектирования компьютеров на лекциях Тьюринга в Лондоне. Уильямс достаточно точно отметил, что машина Baby «воплощала в себе» то, о чем Ньюман рассказывал им с Килбурном на «нескольких лекциях» в 1947 году. Однако детальная история появления Baby звучит намного сложнее, чем в кратком изложении Уильямса:
Примерно в середине [1946] года мне представилась возможность получить назначение в Манчестерский университет, и я побеседовал с профессором Ньюманом, который уже интересовался разработкой компьютеров и добился гранта Королевского общества в размере 30 тыс. фунтов стерлингов на эти цели. Поскольку он разбирался в компьютерах, а я разбирался в электронике, возможности плодотворного сотрудничества были очевидны. Я помню, как Ньюман прочитал нам несколько лекций об организации компьютера на примере чисел, идентифицируемых по адресу «дома», в котором они размещены, и чисел, по очереди отсылаемых с этого адреса в аккумулятор, где каждое новое число складывается с уже хранящимися там. Число из аккумулятора в любой момент может быть отправлено обратно в память по назначенному адресу, а аккумулятор — очищен для дальнейшего использования. Передача чисел должна осуществляться с помощью программы, сохраненной в памяти и предполагающей последовательное выполнение списка инструкций. Их последовательное выполнение может быть прервано проверочной инструкцией, анализирующей знак числа в аккумуляторе, так чтобы после прерывания выполнение инструкций начиналось с нового пункта в списке. Это была первая информация, которую я получил об организации компьютеров… Наш первый компьютер, [Baby], стал простейшим воплощением этих принципов, с той единственной разницей, что он был снабжен вычитающим, а не суммирующим аккумулятором.
Использование вычитания в качестве основной арифметической операции было удачной идеей, позволившей упростить логическое проектирование компьютера Baby. В интервью Уильямс объяснил, почему было выбрано вычитание:
Мы решили ограничиться абсолютным минимумом возможностей. Например, единственной арифметической операцией, которую мы могли выполнять, было вычитание, поскольку сложение без труда производится путем вычитания, так как можно вычесть нечто из ничего и получить отрицательную величину, а затем вычесть ее из того, что нужно прибавить, в результате чего и получится сумма, однако наоборот сделать нельзя: операция суммирования позволяет лишь складывать числа. Итак, у нас имелась одна базовая арифметическая операция, вычитание, и еще кое-что важное — возможность выбрать один из двух маршрутов выполнения программы в зависимости от знака числа в аккумуляторе. Это основная особенность компьютеров, которая делает их универсальными. Таким образом, в общей сложности мы располагали примерно пятью доступными инструкциями, которым машина могла следовать.
Детальным проектированием Baby в основном занимался Килбурн. «Я спроектировал самый маленький компьютер, который смог изобрести, и он был настоящим компьютером [то есть компьютером с хранимой в памяти программой]», — заявил он. Кроме того, именно Килбурн внес идею о построении его архитектуры на основе единственной арифметической операции вычитания. На вопрос Коупленда, чья это была идея, Килберн ответил просто: «Моя!»
Тем не менее фундаментальные идеи относительно архитектуры, воплощенные в Baby, не принадлежали ни Килбурну, ни Уильямсу.
Влияние Тьюринга на Килбурна
Ранним вкладом Тьюринга в манчестерские разработки, который, как видно из приведенной выше цитаты, отметил Уильямс, стали лекции по проектированию компьютеров, которые Тьюринг и его помощник Уилкинсон читали в Лондоне с декабря 1946-го по февраль 1947 года (конспект этих лекций вошел в книгу Alan Turing’s Automatic Computing Engine). Лекции проводились с двух до пяти часов дня по четвергам в довольно обшарпанном подвальном помещении штаб-квартиры Министерства снабжения, а затем в отеле Adelphi на Бейкер-стрит. Цикл из девяти лекций был посвящен предложенным Тьюрингом версиям V, VI и VII проекта ACE. В число слушателей входили представители различных организаций, планировавших использовать или создать электронный компьютер. Среди них был и Килбурн. Лекции Тьюринга, на несколько месяцев опередившие лекции Ньюмана, которые он читал Уильямсу и Килбурну в Манчестере, стали для Килбурна основным источником информации о принципах проектирования компьютеров.
Когда Килбурна спрашивали, откуда он получил базовые знания о компьютере, он обычно отвечал, что не помнит. Например, в интервью 1992 года он заявил: «Между началом 1945-го и началом 1947 года, в этот период, я как-то узнал, что такое цифровой компьютер… Откуда у меня эти знания, я понятия не имею». Однако в своем первом отчете 1947 года о работе над Манчестерским компьютером Килбурн ссылался на «неопубликованную работу» Тьюринга и использовал различные введенные им технические термины. (К ним относятся «таблица инструкций» и «универсальная машина», а также различные термины, которые широко употреблялись на лекциях Тьюринга в 1946–1947 годах, хоть и не всегда были придуманы именно им, например «отправитель», «адресат», «временное запоминающее устройство», «статический регистр» и «динамический регистр».) В следующем отчете, написанном уже после того, как компьютер заработал, Килбурн сообщил: «Я хочу выразить признательность профессору М. Г. А. Ньюману и господину А. М. Тьюрингу за очень полезное обсуждение математических требований, предъявляемых к цифровым вычислительным машинам». Уильямс также высказался о роли Тьюринга, заявив, что Тьюринг «вместе с Ньюманом внес решающий вклад в наше обучение основным принципам организации вычислительных машин, конечно же, не в инженерном плане, а в математическом, и мы очень тесно сотрудничали с ними обоими».
Тьюринг и в самом деле значительно повлиял на модификацию разрабатывавшейся Килбурном конструкции Baby. В отчете для Научно-исследовательского института связи от 1 декабря 1947 года Килбурн описал «гипотетическую» машину. По его словам, она имела «единственную цель — продемонстрировать функционирование системы хранения данных». Для осуществления каждой из элементарных арифметических и логических операций в такой машине был предусмотрен отдельный аппаратный блок, или «адресат». Каждый из таких блоков был пронумерован, а номера Килбурн называл «номерами адресатов». Каждая инструкция, как объяснил Килбурн, передавала число «из одной части машины в другую, т. е. от „отправителя“ „адресату“». Инструкция состояла из двух чисел: номера отправителя s и номера адресата d, служивших для управления деревом отправителя и деревом адресата соответственно. Инструкции Килбурна, как и в случае с версией V ACE, не содержали «кода операции» (код операции — это кодовое название операции, например сложения). Требующая выполнения операция обозначалась номером адресата. Дерево отправителя получало доступ к числу с адресом s в основной памяти, а дерево адресата — к адресату, то есть к устройству, отвечающему за выполнение необходимой операции, например к сумматору. Каждый операнд через дерево отправителя по определенному маршруту отсылался из основной памяти в дерево адресата. Конструкция не подразумевала центрального аккумулятора и в целом сильно отличалась от централизованной архитектуры, описание которой было опубликовано фон Нейманом в США.
Что касается происхождения разработанной Килбурном конструкции, он довольно расплывчато пояснил, что она «включает неотъемлемые основы организации предлагаемых машин». В действительности «децентрализованная» структура Килбурна чрезвычайно напоминала предложенную Тьюрингом конструкцию ACE, предусматривавшую вместо центрального аккумулятора набор адресатов (линии задержки), где выполнялись разные операции — сложение, вычитание, проверка на нуль и т. д. Нетрудно догадаться, как получилось, что к 1947 году Килбурн «как-то… узнал, что такое цифровой компьютер»: об этом ему рассказал Тьюринг!
Вот краткое содержание объяснений о том, как построить компьютер, полученных Килбурном на лекциях 1946–1947 годов:
Передача чисел осуществляется путем указания ОТПРАВИТЕЛЯ и АДРЕСАТА с помощью системы управления… Те или иные линии [задержки] предназначены для строго определенных целей… Например, линии 2 и 3 выделены под сложение… Для того чтобы комбинацию из 10 сигналов… можно было использовать для получения данных у любого отправителя или доступа к любому адресату, предусмотрена система межсоединений, известная под названием ДЕРЕВА… В версиях V и VI деревья отправителей и адресатов контролируют 1024 отправителя и адресата.
(Полное описание архитектуры и форматов обучения ACE см. в главах 4, 9, 11 и 22 книги Alan Turing’s Automatic Computing Engine.)
Очевидно, что основные идеи, которые привели к появлению гипотетической машины Килбурна в 1947 году, выдвинул Тьюринг: базовые особенности конструкции были предложены им при описании ACE и изложены на его лекциях в 1946–1947 годах. В интервью Килбурн безапелляционно заявил, что «единственное», чем он «обзавелся» благодаря лекциям Тьюринга, — «это абсолютная уверенность, что его компьютер не будет так выглядеть». Однако он не объяснил, что пришел к этому решению, только досконально разработав гипотетическую машину в соответствии с принципами Тьюринга!
Тьюринг был наставником Килбурна, но, как только Килбурн узнал всё, что ему было нужно, он пошел своим путем. Его проект 1947 года, скопированный с АСЕ, был фактически тупиковым и имел крайне незначительное отношение к Baby, которая представляла собой машину с централизованной архитектурой (см. схему). Три электронно-лучевых трубки (на схеме отмечены как S, A и C) играли роль запоминающего устройства, аккумулятора и устройства управления. Все расчеты производились путем передачи чисел между запоминающим устройством и центральным аккумулятором.
Позднее сам Килбурн стал важным источником информации, которая, к сожалению, и сформировала каноническое представление о роли Тьюринга и Ньюмана, а точнее, об отсутствии их роли в истории Baby. Несмотря на то что в своих первых статьях о Манчестерском компьютере Килбурн отдавал должное и Тьюрингу, и Ньюману, в последующие годы он всеми силами стремился доказать независимый характер их с Уильямсом работы, скрывая причастность Тьюринга и Ньюмана к появлению Baby. В интервью Коупленду в 1997 году Килбурн подчеркнул, что Ньюман «не внес никакого вклада в создание первой машины» (Baby). Он заявил: «Я хочу сказать, что Ньюман здесь в любом случае ни при чем. Я знаю, что другие описывали его как основоположника, но это не так». Единственная заслуга Тьюринга, по словам Килбурна, состояла в разработке «совершенно бесполезного» руководства по программированию уже после того, как компьютер начал работать.
Кроме того, согласно общепринятой истории вычислительной техники, Манчестерский компьютер целиком и полностью представляет собой уникальное британское достижение — самый первый современный компьютер, сконструированный и построенный Килбурном, Уильямсом и парой других ребят в том же городе, который почти за два столетия до этого положил начало первой промышленной революции. Однако тщательное изучение документальных свидетельств показывает, что своим появлением Baby в значительной степени обязана американским идеям.
12. Манчестерский компьютер и Джон фон Нейман
На американском генеалогическом древе ЭВМ от 1957 года (см. рисунок) манчестерские компьютеры изображены в виде тонкой ветви на мощном стволе EDVAC. Однако ACE на том же древе ошибочно представлен как побег того же самого ствола. Те, кто рисовали древо в конце 1950 годов, пребывали в блаженном неведении относительно «Колосса» и не понимали, что по ту сторону Атлантики существует и другой ствол. Однако благодаря удаче и воинствующему национализму авторам рисунка удалось частично верно понять картину в случае с Манчестерским компьютером.
Генеалогическое древо ЭВМ 1957 года
Наиболее важный вопрос заключается в том, в какой степени на конструкцию Manchester Baby повлияли представления фон Неймана и его сотрудников в школе Мура и Принстоне. (Роль Преспера Эккерта уже затрагивалась в подразделе «Принцип регенерации».) Манчестерские инженеры были уверены, что «не слишком сильно, если вообще как-нибудь повлияли». Килбурн язвительно отзывался о «диктате» фон Неймана, а Джефф Тутилл рассказывал:
Уильямс, Килбурн и я (три проектировщика первой манчестерской машины) провели войну 1939–1945 годов в Научно-исследовательском институте связи, где занимались исследованиями и разработкой радиолокационного оборудования. Основными американскими идеями, которые мы позаимствовали в обмен на наши начинания в этой области, а затем и в области компьютеров, были термины «радар» и «память»… Последний термин, кстати, нам не понравился, так как он согласуется с антропоморфной концепцией «машин, которые думают».
Насколько я помню, мы с Ф. К. [Уильямсом] и Томом [Килбурном] никогда не обсуждали… идеи фон Неймана… во время разработки Малой экспериментальной машины [Baby], и я ничего не знал о них во время проектирования Ferranti Mk I. Не думаю, что на Ф. К. вообще как-либо повлиял фон Нейман… Мне представляется, что в целом он был довольно щепетилен в отношении чужих идей.
Однако сам Уильямс знал, что фон Нейман мог косвенно повлиять на образ мыслей манчестерских инженеров. В письме, подчеркнув тот факт, что именно Ньюман познакомил его с основами проектирования компьютеров, Уильямс отметил, что информация «могла быть получена из Америки через Ньюмана».
Ньюман, как и Тьюринг, был хорошо знаком с отчетом First Draft of a Report on the EDVAC фон Неймана, но принципиально не разделял пристрастия Тьюринга к работе в одиночку. Он жадно собирал свежие идеи о компьютерах где только мог. Летом 1946 года Ньюман и Джек Гуд несколько раз приходили к Тьюрингу в Национальную физическую лабораторию, чтобы как можно больше узнать о конструкции ACE. Гуд был ведущим криптоаналитиком в «Ньюманри» и одним из проектировщиков оборудования для «Колосса II». В октябре 1945 года Ньюман взял его на отделение математики Манчестерского университета. Кроме того, летом 1946 года Ньюман послал Дэвида Риса, другого математика, интересовавшегося компьютерами и ранее также работавшего в «Ньюманри», на лекции школы Мура, где Эккерт, Мокли и другие члены группы, занимавшейся созданием ENIAC/EDVAC, рассказывали о своих идеях в области проектирования компьютеров. Осенью того же года сам Ньюман отправился в Принстон на три месяца. Отчет Preliminary Discussion of the Logical Design of an Electronic Computing Instrument (июнь 1946 года), одним из авторов которого был фон Нейман, подвергся тщательному изучению в Манчестере, хоть и не инженерами.
Джек Гуд, криптоаналитик «Ньюманри»
По возвращении в Манчестер из Принстона Ньюман прочитал Уильямсу и Килбурну две или три лекции о проектировании компьютеров (см. выше). Он поделился с ними планами Принстона и своими собственными идеями. Килбурн уже получил подробное и обширное представление о состоянии дел в этой области благодаря серии лекций Тьюринга, но Ньюман, упиравший на использование центрального аккумулятора, по всей видимости, открыл Килбурну глаза на простоту централизованной архитектуры.
Лекции Ньюмана вдохновили Гуда на написание заметок, в которых он изложил свои первые представления о том, какие основные операции должен выполнять компьютер общего назначения. Эти заметки, в которых используются те же обозначения, что и в Preliminary Discussion фон Неймана (например, CC для условной передачи управления, l и r для сдвига влево и вправо и R → A для передачи числа, сохраненного в аккумуляторе A, в арифметический регистр R), воплощают в себе блистательное сочетание зародившихся в Принстоне идей и мыслей Ньюмана и самого Гуда.
В 1998 году в своей благодарственной речи на церемонии вручения награды «Пионер компьютерной техники», учрежденной Компьютерным обществом IEEE, Гуд заявил, что «по просьбе Килбурна» составил предложение по основным инструкциям машины Baby. В мае 1947 года Гуд подготовил для Килбурна восьмистраничный документ под названием The Baby Machine, написанный, по его словам, в ответ на обращение Килбурна, которому требовались «решения относительно небольшого набора основных инструкций (или операций)». Гуд включил в их список следующие 12 операций: (1) передача числа, сохраненного в «доме» x (всего имелось 64 «дома», или регистра хранения), в аккумулятор A; (2) сложение числа, сохраненного в «доме» x, с числом в аккумуляторе и сохранение результата в аккумуляторе; (3) передача числа, сохраненного в «доме» x и взятого с отрицательным знаком, в аккумулятор; (4) вычитание числа, сохраненного в «доме» x, из числа в аккумуляторе и сохранение результата в аккумуляторе; (5) передача числа, сохраненного в аккумуляторе, в (арифметический) регистр R; (6) передача числа, сохраненного в регистре R, в аккумулятор; (7) передача числа, сохраненного в аккумуляторе, в «дом» x; (8) передача числа, сохраненного в «доме» x, в регистр R; (9) сдвиг числа в аккумуляторе на одну позицию влево; (10) сдвиг числа в аккумуляторе на одну позицию вправо; (11) безусловная передача управления инструкции в «доме» x и (12) условная передача управления, а именно передача управления инструкции в «доме» x, если число в аккумуляторе больше нуля или равно нулю. Тогда же Гуд для примера привел несколько программ для машины Baby, которые среди прочего выполняли перемножение произвольных чисел (от –231 до 231) и проверку четности числа.
Машина Baby
Набор основных операций, который Гуд представил Килбурну, в действительности был не более чем упрощенной формой более сложного набора, приведенного в работе фон Неймана Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. Фон Нейман и сам указал, что его набор операций можно было бы упростить: «Многие операции можно запрограммировать с помощью других». (Из 12 предложенных Гудом операций в наборе фон Неймана отсутствовала лишь одна, пятая, обеспечивающая передачу числа, сохраненного в аккумуляторе А, в регистр R.) Гуд заразил Килбурна принстонскими идеями.
Набор инструкций, введенный Килбурном для машины Baby 1948 года, частично копировал набор инструкций Гуда, предложенный в мае 1947 года. Килбурн сократил число элементарных операций Гуда до пяти, оставив третью, четвертую, седьмую и одиннадцатую и модифицировав условие передачи управления (пропустить следующую инструкцию в памяти, если число в аккумуляторе меньше нуля), а также добавил шестую операцию, отвечавшую за остановку машины. Первая и вторая операции Гуда были ему не нужны, так как он намеревался использовать вычитание в качестве единственной основной арифметической операции. Две операции сдвига, девятая и десятая, были логически избыточными, а потому машина с минимумом возможностей могла обойтись и без них (как отметил Гуд, сдвиг влево — это просто умножение на два, а сдвиг вправо — деление на два). Пятая, шестая и восьмая инструкции Гуда также были излишними, так как Baby не имела арифметического регистра R.
Когда Килбурн решил использовать вычитание в качестве единственной арифметической операции и сократил 12 базовых операций Гуда до пяти, он понимал, что ему нужно построить: машину с минимумом возможностей, аппаратные компоненты которой включали бы запоминающее устройство, аккумулятор и устройство управления с заложенными в них операциями Гуда.
Килбурн так никогда и не признал, что в долгу перед Гудом, не говоря уже о фон Неймане, хотя сам говорил: «Невозможно начать строительство без кода инструкций». Рассказывая о происхождении основных инструкций в интервью Коупленду, Килбурн заявил, что «эти инструкции как будто пишутся сами по себе», не упомянув Гуда. Что касается фон Неймана, то Килбурн включил некую «неопубликованную работу» за авторством Дж. фон Неймана в список литературы к своему отчету для TRE в декабре 1947 года. Однако Килбурн и другие инженеры, занимавшиеся созданием Baby, почти наверняка не представляли, насколько в действительности были велики истинные заслуги фон Неймана. Килбурн не понимал, что Гуд фактически выступал в качестве посредника, который познакомил их с Уильямсом с принстонскими идеями, и что лекции Ньюмана в 1947 году сыграли аналогичную роль. Логическая структура Baby 1948 года была практически идентична принстонской архитектуре, предложенной фон Нейманом и его группой в 1946 году, благодаря чему Manchester Baby предстает в совершенно ином свете.
План Ньюмана с самого начала состоял в том, чтобы как можно скорее подготовить компьютер к экспериментальной работе, «скопировать один из типов, которые уже строились в 1946 году». Хаски, посетивший в первые месяцы 1947 года проект Ньюмана — Уильямса (как он его называл), сообщил при описании этого визита: «Они планируют в целом скопировать схему фон Неймана». Несмотря на заигрывания Килбурна с тьюринговской конструкцией позднее в 1947 году, Baby 1948 года была очень похожа на (более сложную) машину, описанную фон Нейманом в Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. Обе эти машины были одноадресными и имели центральный аккумулятор. Кроме того, их устройства управления практически не отличались друг от друга. Baby удалось упростить за счет (1) уменьшения объема памяти по сравнению с указанным фон Нейманом, (2) сокращения количества основных операций, (3) использования передачи управления в ограниченной форме (см. выше), (4) хранения только одной инструкции, а не двух, как в принстонской архитектуре, в каждом слове и (5) перехода к последовательной структуре памяти. Принстонский проект включал 40 параллельно работающих модулей памяти. (Каковы были взгляды Килбурна на параллельную организацию памяти? «При неограниченных средствах это совершенно правильно!»)
Краткое описание логических аспектов принстонской архитектуры, сделанное Хаски в 1947 году (опубликовано в составе работы Алана Тьюринга Automatic Computing Engine), служит явным свидетельством того, что конструкция Baby была разработана в очень тесной связи с американской концепцией. За исключением идеи Килбурна об использовании вычитания в качестве единственной основной арифметической операции, базовая логическая структура Baby в целом соответствовала предложенной в Принстоне. В 1947 году Хаски писал:
Принстон. Согласно плану фон Неймана, машина должна состоять в основном из памяти и статического аккумулятора. Все операции передачи данных из памяти в аккумулятор по существу представляют собой операции сложения. Используются команды следующего типа:
(1) Очистить A Очищает аккумулятор.
(2) x → A Складывает число, хранящееся на позиции x в памяти, с содержимым аккумулятора.
(3) А → х Передает хранящееся в аккумуляторе число на позицию х в памяти.
(4) C → x Передача управления команде на позиции x в памяти.
(5) СС → x Условная передача управления, т. е. управление передается команде на позиции x в памяти, если хранящееся в аккумуляторе А число отрицательное. В противном случае команды выполняются в естественной последовательности.
Оригинальность Baby, безусловно, заключается не в ее логической структуре, а в памяти на электронно-лучевых трубках и оригинальных решениях в области электроники. Уильямс и Килбурн получили известность в 1948 году не как разработчики архитектуры компьютера, а как инженеры-электроники.
Подобно тому, как ключевые логические идеи проникали из Принстона в Манчестер, ключевые инженерные идеи просачивались в обратном направлении. Предварительная версия отчета Уильямса — Килбурна A Storage System for Use with Binary Digital Computing Machines была внимательно изучена в Принстоне в июне 1948 года. Как только главный инженер фон Неймана Джулиан Бигелоу прочитал о трубке Уильямса, он, как писал сотрудник фон Неймана Герман Голдстайн, «сразу понял, что ее можно использовать именно так, как мы и хотели». С 1946 года фон Нейман планировал пустить в дело память на вакуумных лампах RCA Selectron, также разрабатывавшуюся в Принстоне группой сторонних специалистов, но к 1948 году она всё еще не была готова. Летом 1948 года Бигелоу отправился в Манчестер, чтобы посмотреть на работу памяти на трубках Уильямса, и был так впечатлен, что назвал Уильямса «гением изобретательства».
Когда в 1951 году строительство принстонского компьютера было завершено, его память состояла из 40 трубок Уильяма. Такие трубки, по словам Голдстайна, позволили создать «целое поколение электронных компьютеров». Еще одним манчестерским изобретением, попавшим в Принстон (хоть и позже появления принстонского компьютера), стал индексный регистр, или B-трубка, на которую Килбурн, Ньюман, Тутилл и Уильямс получили совместный патент. Голдстайн описал индексный регистр как «очень важную модификацию, предложенную Килбурном из манчестерской группы» (несмотря на то что имя Килбурна не было первым в списке авторов патента). Индексные регистры, используемые для изменения инструкций во время исполнения программы, в настоящее время относятся к стандартным составляющим компьютерной техники.
Принстонский компьютер. На фото видно 20 трубок Уильямса в канистрах, еще 20 находяться на противоположной стороне.
Гарри Хаски осматривает 40 трубок Уильямса
13. Тьюринг становится участником Манчестерского проекта
В мае 1948 года Тьюринг ушел из Национальной физической лаборатории. Работа над ACE почти зашла в тупик (см. главу 20 «Третья попытка строительства ACE: роковая эпоха Томаса» и главу 21 «Тьюринг покидает Национальную физическую лабораторию»). Ньюман заманил «очень расстроенного» Тьюринга в Манчестер, где он был назначен заместителем директора лаборатории вычислительных машин (директора не было).
По прибытии в Манчестер Тьюринг наладил правильную работу компьютера, спроектировав устройство ввода и систему программирования для машины с расширенными возможностями. Он также написал руководство по программированию. Первая из серийных моделей, зарегистрированных под маркой Ferranti, была завершена в феврале 1951 года и стала первым доступным на рынке электронным цифровым компьютером. Первая американская серийная машина, UNIVAC Эккерта — Мокли, была выпущена несколькими неделями позже, в марте 1951 года.
В письме Уильямс объяснил, в чем, с его точки зрения как инженера, состоял «основной вклад» Тьюринга в создание полномасштабной машины:
Наша первая машина не имела устройства ввода, если не считать оборудования для ввода одиночных битов на выбранные позиции в запоминающем устройстве. У нее не было устройства вывода, ответ считывался непосредственно с электронно-лучевой трубки, служившей для контроля запоминающего устройства. В этой ситуации Тьюринг, на мой взгляд, внес большой вклад. Он предложил простые минимально необходимые средства ввода данных с бумажной пятидорожечной перфоленты и их вывода с машины в аналогичной форме.
Такая пятидорожечная перфолента была ключевым элементом атак Блетчли на «Танни». То же самое можно сказать и о пятибитном телетайпном коде, который Тьюринг использовал в Манчестере для преобразования машинного кода в клавиатурные символы.
В других источниках Уильямс раскрыл некоторые дополнительные детали. Тьюринг объяснил инженерам,
как организовать машину для ввода данных с бумажной ленты в компьютер… [Тьюринг] оказал нам неоценимую помощь, проинформировав нас, какие именно сигналы понадобятся для управления его машиной ввода данных с ленты и ленточным перфоратором.
Эта машина ввода была снабжена рядом фотоэлементов для считывания данных с движущейся телетайпной ленты — похожая технология использовалась в компьютерах «Колосс» и «Хит Робинсон». Устройство обеспечивало ввод данных в Манчестерский компьютер со скоростью 200 пятибитных символов в секунду, что приближалось к максимуму, с которым компьютер был в состоянии справиться. Однако эта величина составляла лишь 4% от нормальной скорости ввода данных в «Колосс I»!
Тьюринг и Ньюман также внесли свой вклад в создание набора инструкций для полномасштабного компьютера. Тутилл рассказывал:
В дополнение к нашим собственным идеям мы снабдили усовершенствованную версию первой машины, которая должна была иметь расширенные возможности, теми функциями, которые предложили Тьюринг и Ньюман. Когда я разработал логическую структуру Ferranti Mark 1, то уговорил их утвердить список его функций.
Килбурн утверждал, что в это время (1949 год) Ньюман дополнил планы по созданию полномасштабного компьютера еще одной ключевой идеей, предложив концепцию длинных чисел. Ньюман предложил включить в машину средство для объединения произвольного количества слов в памяти, так чтобы можно было выполнять арифметические операции над числами различной длины. Эта идея была отражена в версии V тьюринговского проекта ACE (1946 год).
Килбурн стоит за пультом компьютера Ferranti Mark 1 в Манчестерском университете. За пультом сидят инженеры Ferranti Кейт Лонсдейл (слева) и Брайан Поллард.
В Манчестере Тьюринг наконец получил в свое распоряжение компьютер с хранимой в памяти программой. Вскоре он воспользовался Ferranti Mark I, установленным в Манчестерском университете, для моделирования биологического роста (см. главу 10 «Тьюринг и искусственная жизнь»). И пока весь остальной мир только осознавал мысль, что электронные устройства — это новые средства для выполнения двоичных арифметических операций, Тьюринг со всей серьезностью рассуждал о том, как программировать цифровые компьютеры, чтобы они начали думать (см. главу 9 «Тьюринг и искусственный интеллект»).
Тьюринг стоит возле пульта компьютера Ferranti Mark 1 в Манчестерском университете.
14. Другие первые компьютеры с хранимой в памяти программой
EDSAC, построенный Морисом Уилксом в математической лаборатории Кембриджского университета, стал вторым запущенным в эксплуатацию электронным компьютером с хранимой в памяти программой. Он начал работу в мае 1949 года. (Как раз на конференции, состоявшейся в июне 1949 года в ознаменование ввода EDSAC в эксплуатацию, Тьюринг и представил свою первую статью Checking a Large Routine, посвященную тому, что сейчас называют верификацией программ.)
EDSAC, построенный Морисом Уилксом в математической лаборатории Кембриджского университета
Вслед за ним в 1949 году появились и другие компьютеры: BINAC, который был построен создателями ENIAC, Эккертом и Мокли, в основанной ими компании Electronic Control Company в Филадельфии (мнения относительно того, был ли он в действительности когда-нибудь запущен в эксплуатацию, расходятся); CSIR Mark 1, спроектированный Тревором Пирси на отделении радиофизики Государственного объединения по научным и промышленным исследованиям в Сиднее; и Whirlwind I, построенный Джеем Форрестером в лаборатории цифровых компьютеров Массачусетского технологического института.
SEAC, построенный Сэмюэлем Александером и Ральфом Слуцем в Бюро стандартов США в Вашингтоне, впервые был запущен в апреле 1950 года, а SWAC, созданный Гарри Хаски в Институте численного анализа на территории Калифорнийского университета в Лос-Анджелесе, — в августе 1950 года.
Хотя сам EDVAC начал полноценно работать только в 1952 году, большинство перечисленных выше компьютеров были сконструированы на его основе.
Часть II
ACE: путь обманутых надежд в борьбе Тьюринга за создание электронного мозга…
Содержание
15. Уомерсли приглашает Тьюринга на работу в Национальную физическую лабораторию
16. Проектный документ Тьюринга Proposed Electronic Calculator
17. Тьюринг становится основоположником компьютерного программирования
18. Первая попытка строительства ACE: эпоха Флауэрса
19. Вторая попытка строительства ACE: эпоха Хаски и Test Assembly
20. Третья попытка строительства ACE: роковая эпоха Томаса
21. Тьюринг покидает Национальную физическую лабораторию
22. Четвертая попытка строительства ACE: эпоха Уилкинсона — Колбрука и опытная модель
23. DEUCE
24. Big ACE
25. Заключение
15. Уомерсли приглашает Тьюринга на работу в Национальную физическую лабораторию
Название Automatic Computing Engine (Автоматическая вычислительная машина) появилось благодаря Уомерсли, административному руководителю проекта по строительству ACE. История ACE начинается с назначения Уомерсли на должность заведующего созданным незадолго до этого математическим отделом Национальной физической лаборатории. Предложенная Уомерсли исследовательская программа нового подразделения включала следующие пункты: «Изучение применения методов переключения (механических, электрических и электронных) для всех видов расчетов», «Оценка возможности адаптации автоматической телефонной аппаратуры для научных вычислений» и «Разработка электронного счетного устройства, пригодного для быстрых вычислений».
Сам Уомерсли был членом Межведомственного технического комитета, который в апреле 1944 года порекомендовал создать в Национальной физической лаборатории математический отдел, основной задачей которого было бы «исследование новых вычислительных методов и машин». В своем отчете комитет подчеркнул, что новое подразделение необходимо обеспечить «средствами для проектирования новых машин и, возможно, строительства первых из них», отметив, что «для новых машин, вероятно, могут потребоваться такие решения, которые невозможно предугадать сегодня».
В декабре 1944 года Уомерсли выступил перед Исполнительным комитетом Национальной физической лаборатории с докладом о потенциале электронной вычислительной техники. В то время, когда никаких других электронных компьютеров, кроме «Колосса», информация о котором держалась в секрете, не существовало, его предложения были весьма дальновидны. В протоколе заседания подводятся итоги его выступления:
Можно использовать электронные счетные устройства… и сконструировать машины, которые бы обладали высокой степенью универсальности и позволяли бы непрерывно их совершенствовать и дополнять новыми функциями. Скорость выполняемых с помощью электронных устройств расчетов достигает одной операции в микросекунду, что представляет собой значительный прогресс по сравнению со всеми предыдущими попытками. Все арифметические процессы могут быть проведены, и с помощью соответствующих межсоединений, обеспечиваемых шаговыми искателями, машину можно заставить механически выполнять определенные циклы операций… [Н]ет причин, по которым инструкции машины не должны зависеть от результатов предыдущих операций, так что различные итерационные методы легко сделать полностью автоматическими.
В ноябре 1946 года Уомерсли написал интереснейший обзор основных событий, которые привели к появлению проекта по созданию ACE:
1936–1937 годы Опубликована статья А. М. Тьюринга On Computable Numbers, with an Application to the Entscheidungsproblem…
1937–1938 годы Статью замечает Дж. Р. У. (Дж. Р. Уомерсли). Дж. Р. У. встречается с К. Л. Норфолком, инженером-телефонистом, специализирующимся на проектировании сумматоров, и обсуждает с ним планы по созданию машины Тьюринга с использованием автоматической телефонной аппаратуры. Подготовлены примерные схемы, обсуждена возможность внесения предложения в Национальной физической лаборатории. Решено, что машина будет работать слишком медленно и неэффективно.
Июнь 1938 года Дж. Р. У. на небольшую сумму приобретает в R. D. Woolwich шаговый искатель и несколько реле для экспериментов в свободное время. Однако эксперименты вскоре приходится прекратить из-за напряженной работы в области баллистики…
1942 год Завершена и запущена машина Эйкена (Вычислительное устройство, управляемое автоматическими последовательностями, в Гарвардском университете).
Эйкен и вычислительное устройство, управляемое автоматическими последовательностями1943 год Штибиц завершает строительство релейного компьютера в Bell Telephone Laboratories.
Джордж Роберт ШтибицВ конце 1943 года Дж. Р. У. впервые узнаёт об американских машинах.
1944 год Межведомственный комитет по Центральной математической станции. Д. Р. Хартри на одном из совещаний упоминает о возможном использовании автоматической телефонной аппаратуры для проектирования больших вычислительных машин. Дж. Р. У. вносит предложения относительно исследовательской программы, которую следует включить в отчет комитета.
Сентябрь 1944 года Дж. Р. У. назначают на должность заведующего математическим отделом.
Октябрь 1944 года Дж. Р. У. подготавливает исследовательскую программу для математического отдела, которая включает пункт, касающийся ACE.
Ноябрь 1944 года Дж. Р. У. выступает перед Исполнительным комитетом Национальной физической лаборатории. Цитата (приведена дословно):
«Должна ли у нас быть смешанная команда, разрабатывающая технические приспособления различных типов… Или же мы, согласно Комри… полагаемся исключительно на наше абсолютное мастерство в работе с обычными типами вычислительных машин? Я думаю, что оба эти подхода одинаково неудачны… Мы можем воспользоваться преимуществами обоих методов, прибегнув к электронным расчетам и составив автоматические инструкции для машины…»
Февраль – май 1945 года Дж. Р. У. отправляется в США по указанию директора. Осматривает гарвардскую машину и называет ее «аппаратной реализацией машины Тьюринга». (Подтверждением этому могут служить его письма жене из поездки.) Дж. Р. У. осматривает ENIAC и получает информацию об EDVAC от фон Неймана и Голдстайна.
Июнь 1945 года Дж. Р. У. встречается с профессором М. Г. А. Ньюманом и сообщает ему о своем желании встретиться с Тьюрингом. В тот же день встречается с Тьюрингом и приглашает его к себе домой. Показывает Тьюрингу проект отчета об EDVAC и убеждает его стать сотрудником Национальной физической лаборатории, организовывает интервью и убеждает директора и секретаря.
Решение пригласить Тьюринга присоединиться к участникам зарождающегося проекта по созданию ACE было блестящим ходом, свидетельствовавшим о дальновидности и инициативности Уомерсли (даже найти Тьюринга, который в то время занимался секретной работой, было непросто). Квалификация Тьюринга даже больше соответствовала характеру предстоящей задачи, чем мог представить себе Уомерсли. Хотя Уомерсли ясно понимал важность довоенной статьи Тьюринга On Computable Numbers, with an Application to the Entscheidungsproblem, он был совершенно не в курсе особо секретных разработок в области электронной вычислительной техники, которые велись во время войны в Блетчли-Парке, где Тьюринг одним из немногих знал о «Колоссе».
Фотографию Уомерсли не удалось найти
16. Проектный документ Тьюринга Proposed Electronic Calculator
Тьюринг начал работу в Национальной физической лаборатории 1 октября 1945 года, когда математический отдел «функционировал в ограниченном объеме». Тьюринг приступил к проектированию Автоматической вычислительной машины. К концу 1945 года он закончил свой технический отчет Proposed Electronic Calculator. Следующим шагом Уомерсли было представление проекта Тьюринга директору Национальной физической лаборатории Дарвину, чтобы заручиться поддержкой, необходимой для реализации проекта. Он написал Дарвину:
Проект машины ACE
Далее я представляю три отчета. Во-первых, краткий отчет, который подготовили мы с Хартри, о последних разработках в США в области автоматических вычислительных машин. Во-вторых, отчет доктора А. М. Тьюринга, в котором показано, как построить такую машину (путем объединения электроаппаратуры, уже достигшей высокого технического уровня и обладающей известными свойствами), которая могла бы решать широкий спектр задач на недостижимых до сих пор скоростях.
Очень важно отметить, что это устройство не является вычислительной машиной в обычном смысле этого слова. Не следует ограничивать его функции арифметикой. Оно точно так же способно свободно выполнять алгебраические операции, т. е. производить перемножение матриц, элементами которых служат алгебраические многочлены, решать задачи булевой алгебры или реализовывать методы перечисления характеров групп. Методы последовательного приближения, т. е. процесс релаксации Саусвелла, также применимы, поскольку машина будет содержать устройство, позволяющее выбирать между двумя наборами инструкций в зависимости от знака определенного числа в ней.
Стоимость по понятным причинам под вопросом. После тщательного анализа я оценил ее в 60–70 тыс. фунтов стерлингов, хотя трудно быть уверенным в сумме максимальных затрат. Я думаю, для Управления научных и промышленных исследований (DSIR) это будет одно из самых выгодных начинаний. Чтобы дать некоторое представление о скорости машины, отмечу, что она должна рассчитывать полную траекторию выпущенного из орудия снаряда менее чем за 30 секунд и проводить подготовку всех баллистических таблиц бомбометания для Королевских военно-воздушных сил за несколько недель, если не считать вывода данных на печать. Благодаря такой машине мы сможем изучать целые области как теоретической, так и прикладной математики, которые в настоящее время закрыты для нас вследствие огромных размеров соответствующих компьютерных программ.
Мы сможем взяться за сложные интегральные уравнения, интегро-дифференциальные уравнения и дифференциальные уравнения в частных производных, заменяя их большими блоками систем линейных уравнений с 700–1000 неизвестных, и будем легко и быстро решать их. Мы сможем использовать теорию Т. Смита о проектировании оптических приборов для решения практических задач с такой скоростью, которая позволит в течение нескольких часов отвечать на запросы фирм по телефону. Мы сможем совершить революцию в исследовании течения сжимаемой жидкости и устойчивости летательных аппаратов. Задачи, которые сейчас приходится медленно решать по частям, можно будет решать целиком. Машина также способна успешно справляться с задачами о тепловом потоке в неоднородных материалах или материалах, постоянно выделяющих тепло. Это позволит исследовать материалы со специфическими упругими свойствами (например, пластмассы) таким способом, который недостижим при существующих вычислительных ресурсах… [М]ы могли бы изменить всю скорость математических вычислений, связанных с научными исследованиями в этой стране, если бы нам была доступна такая машина.
Заложенные в этом оборудовании возможности настолько огромны, что любой практический пример покажется совершенно фантастическим для тех, кто не знаком с американскими разработками. Но если кто-нибудь захочет возразить, что это недешевое оборудование, то я не премину отметить, что две машины в США, гарвардское Вычислительное устройство, управляемое автоматическими последовательностями, и релейный компьютер Bell Telephone Laboratory, стоят столько же, но работают в тысячу раз медленнее, не отличаются универсальностью и не имеют памяти, однако американцы считают, что они вполне окупают себя.
Третий документ был создан в попытке изложить практические доводы в пользу создания такого оборудования. С учетом его уникального характера это непросто, но я считаю, что обещанная в этом направлении поддержка со стороны сэра Эдварда Тревиса, капитана из Министерства иностранных дел, будет бесценной…
Что касается изготовления машины, то, думаю, Инженерно-исследовательская станция Центрального почтамта подойдет, если они знают способы это сделать. Господин Флауэрс, сотрудник этой станции, в войну работал в нужной области и во время своего недавнего визита в США посещал места, где ведутся подобные разработки.
Оставалось представить проект по созданию ACE на утверждение Исполнительному комитету Национальной физической лаборатории, и Уомерсли в установленном порядке подготовил необходимый для этого документ:
Меморандум господина Дж. Р. Уомерсли, заведующего математическим отделом
Научно-исследовательская программа математического отдела содержит пункт «Изучение применения методов переключения (механических, электрических и электронных) для всех видов расчетов»… Доктор А. М. Тьюринг получил назначение в штат отдела и занялся анализом возможностей электронных методов… К настоящему времени он подготовил подробный отчет, в котором содержатся конкретные предложения по строительству машины, способной решать широкий спектр задач на недостижимых до сих пор скоростях…
Аннотация части I отчета доктора Тьюринга
Предполагается, что машина ACE должна решать задачи от начала и до конца, т. е. самостоятельно выполнять все те операции, которые раньше требовали многократного применения человеческого труда для извлечения данных из машины и помещения их в нее в нужный момент. Машина не ограничивается выполнением последовательности заданных операций. Предусмотрена зависимость поведения машины от результатов ее собственных расчетов.
После устранения человеческого фактора скорость невероятно вырастет. Например, перемножение двух десятизначных чисел предположительно должно будет производиться за 500 микросекунд, что примерно в 20 тыс. раз превышает скорость обычной вычислительной машины. Такая скорость достигается не за счет усложнения и удорожания оборудования сверх необходимого, а представляет собой естественный результат применения нетрадиционных методов, и, после того как они будут одобрены, путем ее снижения не удастся получить никакой экономии.
Основной принцип заключается в том, что числа сохраняются в машине динамически, а не статически, как в других машинах. Все внутренние операции в машине происходят в двоичной системе: каждое число представлено рядом единиц и нулей, так что единицы — это импульсы, а нули — паузы между ними. В каждый момент времени первым следует наименьший разряд. Проблема заключается в том, чтобы найти такой способ сохранения числа в этой форме, который бы позволял ему циркулировать в машине, пока оно не понадобится для дальнейших расчетов. Доктор Тьюринг описывает «линию задержки», «динамическую память», как в радаре, которая, как он, показывает, подходит для этой цели. Он объясняет, что изготовление памяти, способной вмещать 1000 бит, осуществимо на практике.
Затем машина делится на две основные части, арифметический орган и устройство логического управления. Для связи с внешним миром предусмотрены органы ввода и вывода данных. Сами инструкции машины могут быть выражены двоичными числами и переданы в отвечающую за логическое управление часть машины в начале решения задачи. Там они циркулируют по соответствующим линиям задержки до поступления информации в числовой форме («начальные условия»), при этом конечная информация представляет собой другую инструкцию — «инструкцию по выполнению дальнейших операций».
… первоначально предполагалось, что каждый элемент данных будет состоять из 32 бит, так чтобы его первый разряд содержал нуль или единицу в зависимости от характера этого «числа», т. е. от того, является ли оно числом или инструкцией, а второй разряд указывал на знак. Доктор Тьюринг расширил эту идею для большей универсальности. Каждое «число» должно состоять из двух элементов данных длиной 32 бита. Один из них при этом будет содержать заключенное между нулем и единицей двоичное число, а другой — определять его «значимость», т. е. степень, в которую нужно возвести двойку для домножения на число, а также указывать его знак и включать некоторые дополнительные разряды, служащие для идентификации числа.
Арифметические процессы очень просты. Чтобы сложить два числа, необходимо вывести их из запоминающего устройства и пропустить через простую сеть радиоламп, в результате чего они «склеиваются» друг с другом, а сумма помещается в другой элемент запоминающего устройства.
Умножение осуществляется путем повторения этого процесса с соответствующими временными задержками. Деление предлагается производить путем умножения на обратное число, которое вычисляется методом последовательного приближения, что вполне возможно благодаря высокой скорости элементарных процессов.
Область применения машины очень широка. Создание набора таблиц дальностей предполагается рассматривать как единую задачу. После накопления опытных данных ее можно будет решить за несколько дней. Что касается скорости, то построение траектории выпущенного из орудия снаряда от начальной до конечной точки по небольшим отрезкам дуг займет примерно полминуты. Все виды расчетов с использованием методов релаксации могут быть полностью механизированы — фактически все методы последовательного приближения. Возможно перемножение матриц в степени ниже 30, элементы которых представляют собой многочлены десятой степени, с получением в результате другой матрицы с полиномиальными коэффициентами. Другие примеры приведены в отчете. Некоторое внимание уделяется также проблеме проверки, поскольку машина должна внушать уверенность в результатах, которые она выдает. Ее придется отложить до фактического начала производства…
По стоимости предлагаемая машина обойдется примерно во столько же, как и построенный для Абердинского испытательного полигона ENIAC, и в несколько меньшую сумму, чем релейный компьютер Bell Telephone. Точная стоимость машины Гарвардского университета неизвестна, по оценкам, она составляет полмиллиона долларов. Если у страны должна быть одна из таких больших машин, то математический отдел Национальной физической лаборатории, очевидно, самое подходящее для нее место. Машина, представленная доктором Тьюрингом, должна равняться по производительности всем построенным к настоящему времени в США большим машинам в сумме. Фактически сейчас мы можем извлечь огромную пользу из новаторской работы, проделанной в Соединенных Штатах, и, само собой, желательно было бы сразу же построить машину такого типа, а не начинать с релейного оборудования.
Колосс VII
Как упоминалось ранее, Уомерсли не знал Колосс. Поэтому его взгляд на технологические достижения в области вычислений был искажен, и он склонен преувеличивать интеллектуальный долг ACE перед ENIAC и релейными (т.е. неэлектронными) машинами, созданными в Гарварде и Bell Labs.
Меморандум Уомерсли и статья Тьюринга Proposed Electronic Calculator были представлены Исполнительному комитету Национальной физической лаборатории Великобритании в феврале 1946. Обсуждение было отложено до мартовского заседания, на котором «Комитет единогласно решил горячо поддержать предложение о том, чтобы Отдел математики занялся разработкой и конструированием автоматического вычислительного механизма предложенного А.М. Тьюрингом типа». В протоколе заседания были записаны вступительные замечания Уомерсли, краткая лекция Тьюринга и последующая дискуссия:
Big ACE
Комитету были представлены Документ E.881 (Меморандум Дж. Р. Уомерсли, руководителя Отдела математики, относительно проекта машины «ACE») и Документ E.882 (Доклад д-ра А.М. Тьюринга «О предложениях по разработке автоматической вычислительной машины (ACE)»).Председатель предложил Уомерсли изложить причины, в силу которых Отделу математики следовало заняться созданием машины предложенного Тьюрингом типа.
Уомерсли заявил, что, по его мнению, эти предложения можно рассматривать в их подлинной перспективе, если иметь представление о том, что происходило в США во время войны. Поэтому он предложил начать с общего освещения некоторых недавних событий.
Затем Уомерсли дал краткое описание трех больших вычислительных устройств, произведенных в США во время войны — I.B.M. Sequence Controlled Calculator в Гарвардском университете, Relay Computer, разработанный доктором Г.Р. Стибицем из Bell’s Telephone Laboratories и ENIAC, построенный в Школе электротехники Мура Пенсильванского университета для лабораторий баллистических исследований на Абердинском испытательном полигоне. Каждая из этих машин стоила от 80 000 до 100 000 фунтов стерлингов. Интересно отметить, что полностью законченная машина Тьюринга может иметь потенциальную производительность выше, чем три эти машины вместе взятые. Другими словами, у нас появилась возможность начать работу в этой области в наиболее благоприятный момент. Предложенная машина обладает не только большей производительностью, но и большей универсальностью, чем созданные до нее машины, благодаря более тщательной проработке логических элементов управления, предложенных Тьюрингом. Это стало возможным благодаря другому режиму работы, а также тому, что Тьюринг представлял собой эксперта в области математической логики.
ТьюрингЗатем Уомерсли представил доктора А.М. Тьюринга, которого попросили описать принципы, лежащие в основе его предложения.
Тьюринг пояснил, что для достижения высокой общей скорости вычислений все операции должны выполняться автоматически. Недостаточно выполнять арифметические операции на электронной скорости: необходимо также предусмотреть передачу данных (чисел и т.д.) из одного места в другое. Это привело к возникновению двух дополнительных требований — необходимости «хранения» или «памяти» для не используемых пока чисел, а также средств для обучения машины выполнению правильных операций в правильном порядке. Таким образом, существовало четыре задачи, две из которых являлись инженерными, а две — математическими или комбинаторными.
Задача (1) (Инженерная). Создать подходящую систему хранения данных.
Задача (2) (Инженерная). Создать высокоскоростные электронные коммутационные устройства.
Задача (3) (Математическая). Спроектировать схемы ACE, построив их на основе блоков хранения и коммутации, описанных в Задачах 1 и 2.
Задача (4) (Математическая). Разбить вычислительные задачи, которые необходимо выполнить ACE, на элементарные процессы, для выполнения которых разработана машина ACE (в соответствии с определением в решении Задачи 3). Разработать таблицы инструкций, которые переводят задания в форму, понятную машине.
Перечислив эти четыре задачи, Тьюринг сказал, что система хранения должна быть одновременно и экономичной, и доступной. Примером высокоэкономичной, но труднодоступной системы является лента телетайпа. Около десяти миллионов двоичных цифр можно было хранить всего за 1 фунт стерлингов, но для нахождения одной цифры приходилось тратить несколько минут на размотку ленты. С другой стороны, триггерные схемы [триггеры], включающие в себя радиолампы, служат примером высокодоступной, но крайне неэкономичной формы хранения; значение любой необходимой цифры может быть получено в течение микросекунды или меньше, но за £1 можно хранить всего одну или две цифры. Нужен был компромисс; одной из подходящих систем была «акустическая линия задержки», которая обеспечивала хранение 1000 двоичных цифр по цене в несколько фунтов стерлингов, причем любую необходимую информацию можно было получить за миллисекунду. Тьюринг объяснил принцип линии задержки, который заключается в передаче волн сжатия по трубке с жидкостью с использованием пьезокристаллов в качестве передатчиков и приемников звука. Сигнал принимающего кристалла усиливался, восстанавливался до идеальной формы и передавался обратно в передатчик. Благодаря процессу восстановления формы сигнал мог проходить по трубке много миллионов раз и оставаться узнаваемым.
Затем Тьюринг кратко рассказал о проблемах высокоскоростного переключения, возникающих в ACE (Задачи (2) и (3)). Цифры должны были быть представлены на двоичной шкале, а лампы должны были использоваться только в качестве устройств «включения-выключения». Хотя коммутационные устройства еще не были созданы, надежда на успех оставалась, поскольку ограничивающими факторами были время прохождения электронов и связанное с ним значение Oag/gm, а частоты, на которых эти факторы приобретали серьезный характер, были значительно выше частот работы ACE (а именно, примерно 1 Мц/с). Структура коммутационной схемы (Задача (3)) была проиллюстрирована с помощью схемы суммирования.
Время не позволяло должным образом рассмотреть Задачу (4).
Отвечая на вопрос профессора Тиндалла, Тьюринг пояснил, что будет внедрена продуманная система проверок, с тем, чтобы можно было сразу выявить неисправность любой части. Невозможно полностью исключить возможность сбоя самой системы проверки, однако вероятность необнаруженной ошибки можно снизить до весьма незначительных пределов. Большая часть проверок осуществлялась бы на основе таблиц команд и поэтому не требовала бы специального оборудования.
Директор спросил, что произойдет, если машине будет дано указание суммировать серии, которые в действительности расходятся, хотя предполагается, что они сходятся. Тьюринг ответил, что в таких случаях человек, составляющий таблицы с командами (контроллер), может по своему усмотрению указывать, что должна делать машина. Суммирование может устанавливаться для заданного числа членов, независимо от сходимости, или до тех пор, пока последний член не будет меньше заданной величины; желательно, чтобы контроллер разработал теорию сходимости в достаточной степени, с тем, чтобы иметь возможность включить подходящую проверку. Директор спросил, что произойдет в том случае, если машине будет дано указание решить уравнение с несколькими корнями. Тьюринг ответил, что контроллер должен учитывать все эти возможности, поэтому составление таблиц команд является довольно кропотливым делом.
Профессор Хартри отметил, что серийная работа машины делает ее очень экономичной при использовании радиоламп. Для нее требуется всего 2000 ламп по сравнению с 18000 лампами в ENIAC, а объем «памяти» составляет 6000 чисел по сравнению с 20 в ENIAC. При этом такая большая емкость (и более высокая скорость) достигается затратами, которые не превышают затраты на ENIAC. Больший объем памяти обеспечивается за счет высокой скорости, что является важным фактором экономичности оборудования.
Профессор Хартри также отметил, что если ACE не будет разработана в этой стране, то США быстро захватят нишу, и напомнил Комитету, что эта страна продемонстрировала гораздо большую, чем американцы, гибкость в использовании математического аппаратного обеспечения. Он настаивал, что машине нужно отдать приоритет по сравнению с существующим предложением по созданию большого дифференциального анализатора.
Директор поинтересовался, можно ли использовать машину для других целей, если она не полностью оправдывает надежды Тьюринга. Тьюринг ответил, что это будет во многом зависеть от того, какая часть машины не будет работать, но в целом он считает, что она могла бы использоваться для многих целей.
Затем состоялось небольшое обсуждение возможной стоимости машины, и Уомерсли сообщил, что Pilot ACE можно построить примерно за 10 000 фунтов стерлингов, но в итоге было признано, что на данном этапе невозможно дать приблизительную оценку общей стоимости всей машины. Что касается финансирования проекта, то Секретарь заявил, что начало работ можно было бы провести в рамках существующей исследовательской программы Отдела математики и что, вполне вероятно, что выделенных финансовых средств хватит для покрытия возможных расходов в течение 1946-7 финансового года. Однако представлялось желательным, чтобы Центральное управление и Казначейство понимали возможный масштаб проекта, с тем, чтобы, насколько это возможно, можно было гарантировать продолжение работ в последующие годы за счет финансовых ассигнований.
Изображение Уилкинсона (ассистента Тьюринга в национальной физической лаборатории с 1946) в газете 1952Профессор Хартри отметил, что такая машина будет средством для решения совершенно новых задач, а доктор Саутвелл сообщил, что профессор Г. И. Тейлор выразил мнение, что такая машина будет более полезной, чем ENIAC. Однако он выразил надежду, что когда машина будет построена, расходы на ее использование не будут настолько высокими, чтобы препятствовать ее распространению в университетах и т.д. По его мнению, не следует пытаться занизить стоимость машины, которая вполне может составить 100 000 фунтов стерлингов, но эту сумму следует рассматривать как вклад Лаборатории в общее благо всей страны.
Комитет единогласно решил поддержать предложение о том, чтобы Отдел математики взялся за разработку и конструирование автоматической вычислительной машины предложенного А.М. Тьюрингом типа, и директор согласился обсудить финансовые и другие аспекты этого вопроса с Центральным управлением.
Изображение УилкинсонаВ письме доктор И. Т. Пэрис выразил заинтересованность Министерства снабжения в разработке такой машины и заявил, что он проконсультировался с полковником Филипсом, руководителем отдела прикладной баллистики, и доктором Макколлом, руководителем теоретических исследований в области вооружений, которые предположили, что основное применение этой машины будет заключаться в следующем: а) расчеты траекторий для всех типов снарядов (снаряд, бомба, ракета и управляемая ракета); б) внутренние баллистические расчеты (движение снарядов по стволу); в) решение дифференциальных уравнений в частных производных релаксационными и характеристическими методами. Пэрис также поинтересовался, как скоро эта машина может быть готова к работе, и в какой степени она будет доступна для использования его министерством, добавив, что если проект будет выполнен успешно, то позднее можно будет рассмотреть вопрос о целесообразности создания машины такого же типа для исследований в области вооружений и смежных сферах.
Отвечая на вопрос Кэрролла, Уомерсли заявил, что, по его весьма приблизительной оценке, расходы на изготовление новых экземпляров машины составят примерно 25 процентов от первоначальной стоимости, хотя мощность машины будет таковой, что использование дополнительных экземпляров не понадобится. Вместе с тем он отметил, что, если такая машина будет использоваться в его отделе, потребуется нанять больше старших научных сотрудников, поскольку сама машина будет выполнять большую часть работы младших научных сотрудников.
В апреле 1946 года Дарвин написал, как и обещал, в «Центральное управление», в Департамент научных и промышленных исследований (ДНПИ). Он утверждал, как упоминалось ранее, что одного электронного компьютера может хватить «на всю страну»:
Изображение УилкинсонаАвтоматическая вычислительная машина (ACE)
Это предложение построить вычислительную машину с гораздо большими возможностями, чем все, что было создано до сих пор, хотя подобный проект разрабатывался в то же время в Америке. Предложение уже было выдвинуто в исследовательской программе Отдела математики, пункт 6502 «Изучение применения методов переключения (механических, электрических и электронных) для вычислений всех видов». В прошлом процессы вычислений проходили в три этапа — математик, компьютер [т.е. человеческий компьютер], машина. Математик ставил задачу и давал подробные инструкции, которые могли быть настолько точными, что компьютер мог выполнять свою работу без какого-либо понимания настоящей природы задачи; затем компьютер использовал арифметическую машину для выполнения операций сложения, умножения и т.д. В последнее время, особенно при использовании счетно-перфорационных машин, машина постепенно начала занимать поле компьютера, но все эти процессы по существу контролируются скоростью, с которой может работать человек.
Изображение Уилкинсона и Pilot ACE в 1952Возможность создания новой машины зародилась с написанной несколькими годами ранее А. М. Тьюрингом статьи, в которой он представил широкий спектр математических задач, которые можно решить на любой скорости, разработав правила и позволив машине сделать все остальное. Тьюринг стал сотрудником национальной физической лаборатории и отвечал за теоретическую сторону проекта, а также за работу над практическими деталями. Провозглашенные им принципы наконец стали осуществимыми, поскольку в машине можно было использовать электронику, в результате чего скорость ее работы почти в сто тысяч раз превышала скорость работы человека. Предложенная машина представляет собой в первую очередь систему электронных схем, некоторые из которых выполняют арифметические задачи, в то время как другие выдавали команды в кодированной форме, в том числе в виде чисел. Но вычисления требовали еще одной функции, которую можно назвать памятью; это соответствует тому факту, что человеческий компьютер должен возвращаться к результатам какого-либо предыдущего расчета через определенные интервалы времени и снова выводить их вперед. Во многом память является самой серьезной проблемой в машине, и были предложены разнообразные методы и инструменты для ее решения. Выбор конкретного метода или инструмента во многом является вопросом экономии, поскольку требуется несколько сотен органов такого типа. В настоящее время оптимальным кажется решением, которое было разработано для использования в радаре и заключается в направлении потока ультразвуковых импульсов по трубке с жидкостью. Это называется линии задержки, и предлагается сосредоточить основное внимание на их использовании для данной цели. Планируется, что электроника будет работать со скоростью микросекунд, и трубки памяти будут хранить информацию в течение миллисекунды или в течение любого нужного времени, кратного миллисекунде.
Изображение Уилкинсона и Pilot ACE в 1952Предложения Тьюринга изложены в документе (E.882), рассмотренном на заседании Исполнительного комитета национальной физической лаборатории в марте 1946 года. После обсуждения задачи с Уомерсли, руководителем Отдела математики, и Тьюрингом, Комитет единогласно поддержал проект.
Примером задачи, которую можно решить, является расчет баллистических траекторий. Подсчитано, что полная траектория от дульного среза до поражения, формируемая небольшими дугами, должна рассчитываться за полминуты. Другими примерами является большое количество одновременных уравнений, как при геодезических работах, которые можно решить за несколько минут, или распределение электрического поля вокруг заряженного проводника заданной формы.
Вся машина, естественно, будет дорогой; по оценкам, для ее создания может потребоваться более 50 000 фунтов стерлингов, но, скорее всего, не в два раза больше. Вначале можно было бы создать более компактную, содержащую только основные функции, машину, которая обойдется в 10 000 фунтов стерлингов, но ее главная функция будет заключаться в выявлении некоторых деталей конструкции, которые невозможно спроектировать без испытаний. Однако сфера ее применения была бы слишком ограниченной, чтобы было целесообразно создавать ее исключительно для этой цели. Для создания потребуется разработка линий задержки и триггерных схем, и эта часть работы будет осуществляться Управлением почтовой связи, где имеются необходимые средства и обученный персонал, в сотрудничестве с Тьюрингом и его ассистентами. Управление почтовой связи рассчитывает на возможность использования разработки для своих собственных целей.
Изображение главных ворот национальной физической лабораторииНебольшая машина не будет миниатюрной заменой большой машины, а станет впоследствии частью полноценного устройства. Ожидается, что вся машина будет построена за три года, а финансовые затраты будут самыми значительными в течение последнего года. При проектировании и конструировании Pilot ACE предлагается работать в быстром темпе, но при этом важно помнить, что, если машина оправдает возложенные на нее надежды, то получит полную поддержку в виде более крупных сумм, необходимых для ее реальной эксплуатации. Учитывая быстроту ее работы, а также легкость переключения с одного вида задач на другой, вполне возможно, что одной машины будет достаточно, чтобы решить все задачи, которые потребуются для нее со всей страны. Насколько можно судить на данный момент, для этой работы, помимо доктора Тьюринга, потребуются два научных сотрудника и один сотрудник экспериментальной лаборатории. Часть этих сотрудников в период разработки будут работать в Научно-исследовательской станции Управления почтовой связи. Пока что не представляется возможным дать оценку количества сотрудников, необходимых для использования этой машины после ее создания. Тем не менее, такой персонал в основном будет относиться к научному классу, поскольку сама машина будет выполнять работу очень большого числа лаборантов и сотрудников экспериментальной лаборатории.
В мае 1946 Консультативный совет ДНПИ согласился с тем, что «в случае, если машина первой ступени оправдает ожидания, они будут готовы выделить дальнейшие средства на создание полноценной машины, в результате чего в течение следующих трех лет общая сумма расходов составит, возможно, 100 000 фунтов стерлингов». Осталось только создать компьютер. Однако, в результате неэффективного управления это займет гораздо больше времени, чем кто-либо ожидал.
17. Тьюринг становится основоположником компьютерного программирования
Рабочая группа ACE возле здания национальной физической лаборатории Babbage Building в 1948. Слева направо: Джим Уилкинсон, Стенли Дилл, Бетти Кертис, Джерри Олвей, Майк Вуджер, Генри Нортон. Фотограф Дональд Дэвис.
Майкл Вуджер и симулятор ACE
Джин Уилкинсон у панели управления Pilot ACE
В мае 1946 Джеймс Уилкинсон присоединился к национальной физической лаборатории и был переведен к Тьюрингу на полставки. С приходом Майкла Вуджера в том же году отдел ACE вырос до трех человек. В течение 1946 года Тьюринг постоянно модифицировал конструкцию ACE. К моменту прихода Уилкинсона Тьюринг дошел до того, что он называл «Версией V». (Вуджер объясняет: «Насколько я понимаю, оригинальная статья [„Proposed Electronic Calculator“] была не версией как таковой, а общим предложением. В ней нет никаких следов версий I — IV; я предполагаю, что это были эскизы Тьюринга, вероятно, сделанные в период между мартом и маем 1946») К концу 1946 Тьюринг добрался до Версии VII. С декабря 1946 по февраль 1947 Тьюринг и Уилкинсон прочитали серию из девяти лекций о Версиях V, VI и VII (конспекты лекций воспроизведены в «Автоматической вычислительной машине Алана Тьюринга»).
В Proposed Electronic Calculator Тьюринг подчеркнул, что работа по написанию программ (т.е. «таблиц команд») должна «начаться незамедлительно», так как «ранние этапы создания таблиц команд будут оказывать серьезное влияние на проектирование» ACE. Более того, подход, по его словам, позволит «избежать некоторой задержки между завершением машины и получением результатов». Тьюринг снова обратил на это внимание в письме Дарвину: «Большая часть работы по программированию должна быть выполнена заранее, если предполагается, что законченная машина будет выполнять какую-либо серьезную работу». Таким образом, в 1946 Тьюринг и Уилкинсон, к которым позже присоединился Вуджер, стали пионерами в науке компьютерного программирования. Итоги их достижений были подведены в отчете в конце года:
Если не найти средства для быстрой подготовки задач в форме, подходящей для машины, то ее высокая скорость будет в значительной степени потеряна, хотя многие другие преимущества все же останутся. Таким образом, первый шаг в конструировании такой машины заключается в изучении того, каким образом подготовить программы работы. Это стало основной задачей отдела ACE в прошлом году. Задача заключается в подготовке команд для машины на перфокартах Холлерита, и предлагается вести библиотеку таких карт с программами для стандартных операций. При настройке машины для выполнения конкретной операции все, что нужно будет сделать (вместо составления детальных инструкций), — выбрать определенное количество групп стандартных команд и связать их с несколькими картами. При планировании организации работы над машиной стало ясно, что необходимо длительное и тщательное изучение многих возможных путей изложения этих команд, и даже спустя более чем год работы над этой задачей окончательная форма была достигнута лишь недавно. Помимо этих общих вопросов организации, был определен и подробно подготовлен ряд основных процедур обучения. К ним относятся:-
• Деление.
• Извлечение квадратных корней.
• Выявление сбоев.
• Проверка точности данной таблицы.
• Экспоненциальная функция.
• Синус и косинус.
• Логарифм.
• Умножение комплексных чисел.
• Формирование скалярного произведения векторов.
• Формирование произведения двух матриц.
• Решение наборов линейных уравнений.Также проделана некоторая работа по разработке известных методов решения как обыкновенных, так и дифференциальных уравнений в частных производных в форме, подходящей для использования в ACE
Вся эта работа была, конечно, направлена на машину, которая существовала только на бумаге. Отдел ACE, состоящий всего из трех математиков, не располагал средствами для построения компьютера.
18. Первая попытка строительства ACE: эпоха Флауэрса
Т.Х.Флауэрс
Исследовательская станция Управления почтовой связи в Доллис Хилл, Лондон. Здесь Флауэрс изучал цифровую электронику и создал Колосс.
Фредди Уильямс
Флауэрс читает лекцию в национальной физической лаборатории в 1977
Тьюринг знал, что Флауэрс, который спроектировал и построил Колосс, обладал уникальными знаниями, необходимыми для начала создания ACE. Флауэрсу было предложено организовать создание ACE в его штаб-квартире, исследовательской станции Управления почтовой связи в Доллис Хилл на севере Лондона (где был построен Колосс). Он согласился. В начале 1946 Гордон Рэдли, инспектор по исследованиям в Доллис Хилл (который знал о Колоссе), написал Уомерсли, чтобы подтвердить договоренность:
Благодарю за письмо, полученное в субботу утром. Я слышал от Флауэрса, что вы подумываете о создании электронной числовой вычислительной машины в национальной физической лаборатории, и разделяю ваши надежды на то, что она превзойдет что-либо созданное до сих пор с точки зрения технических средств и скорости работы. Мы были бы очень рады сотрудничеству, во-первых, оказывая вам помощь в техническом проектировании машины, а впоследствии, когда она обретет форму, в построении в рамках организации Управления почтовой связью…
Что касается другого аспекта, а именно времени, то мы имеем весьма значительную задолженность по работе, которую предстоит выполнить нашему отделу. Часть работ особенно актуальна, и мы испытываем трудности с людскими ресурсами. Однако я полностью разделяю Ваше мнение об удивительном характере и престижности этой задачи, поэтому она будет иметь наивысший приоритет, возможный в данных обстоятельствах.
Упомянутая Рэдли «задолженность» представляла собой отставание в выполнении срочных работ в национальной телефонной системе (которая в то время находилась в ведении Управления почтовой связи). Флауэрс мог выделить только двух человек для работы над ACE, Чендлера и Кумбса (которые позже построили MOSAIC). По словам Флауэрса, его отдел был «слишком занят, чтобы выполнять чужую работу». К лету 1946 в национальной физической лаборатории начали звучать тревожные сигналы. В августе Дарвин заметил, что Управление почтовой связи «не в состоянии погрузиться в работу глубоко», и к ноябрю он выразил Рэдли и другим сотрудникам Управления свою озабоченность «медленными темпами прогресса» в отношении ACE. Очевидно, что настало время принимать новые меры. Сначала национальная физическая лаборатория продолжала выступать с идеей заключения контракта на постройку ACE внешней организацией. Но это оказалось очень трудным. Инженеров, имеющих опыт работы в новой сфере цифровой электроники, было мало. Крупные фирмы «вероятно, были слишком завязаны на телевидении и других потребительских товарах», а подходящую небольшую компанию найти не удалось.
Национальная физическая лаборатория пыталась заручиться поддержкой и других государственных учреждений. В августе 1946 года Дарвин написал письмо сэру Эдварду Эпплтону в ДНПИ о возможности содействия Научно-исследовательского центра телекоммуникаций в Мальверне в сроительстве ACE (см. главу 11 «Манчестерский компьютер»):
Как я уже говорил, Уомерсли посетил ИЦК [Исследовательский центр по коммуникациям], чтобы узнать, смогут ли они выполнить какие-либо работы, связанные с машиной ACE. Он сказал мне, что это выглядит многообещающе, и я думаю, что мы должны использовать этот шанс. Их план работ выглядит неплохо, и, как я понимаю, Ф.К. Уильямс рассматривает это как работу, которую он бы с удовольствием выполнил, поэтому я думаю, что шансы хорошие. Я корю себя за то, что не подумал о такой возможности несколько месяцев назад.… Нужно будет официально поставить ИЦК выше других приоритетов и в этой связи я хотел бы привлечь высокопоставленных представителей власти в случае необходимости, потому что у нас есть прекрасный шанс обогнать Америку.
В октябре 1946 Дарвин сам посетил ИЦК в рамках визита национальной физической лаборатории и пользуясь случаем, поднял вопрос о «возможности помощи Ф.К. Уильямса в создании ACE» (более чем через два месяца после того, как Уомерсли нанес первоначальный визит — события в Национальной физической лаборатории развивались медленно). Дарвин встретился с Уильямсом, который продемонстрировал принципы работы памяти на электронно-лучевой трубке (см. главу 11 «The Manchester Computer»). Дарвин понял, что предложенная Уильямсом память была (по словам самого Дарвина) «наиболее многообещающей альтернативой… более мощной, чем ртутные трубки, поскольку информация в ней будет доступна при первой необходимости, а не только через фиксированные промежутки времени», и Дарвин «надеялся, что Уильямсу удастся получить существенную поддержку». После возвращения Дарвина в национальную физическую лабораторию ему была выслана копия Proposed Electronic Calculator Тьюринга. Вскоре после этого Дарвин пригласил Уильямса, Аттли и Р. А. Смита (директора Физического факультета ИЦК) в национальной физической лаборатории на встречу с ним самим, Тьюрингом и Уомерсли, чтобы обсудить «каким образом может быть оказана помощь проекту A.C.E». Встреча прошла 21 ноября 1946 года. К тому времени Уильямс занял должность профессора электротехники в Манчестерском университете, и вскоре после встречи Смит уведомил национальную физическую лабораторию о том, что, если Уильямс будет работать над ACE, необходимо будет заключить контракт с университетом. Дарвин предложил контракт, но в конце концов Уильямс отказался. Это была печальная новость — Уильямс, несомненно, наилучшим образом организовал бы все в вопросах аппаратного обеспечения. Но, с другой стороны, проект Тьюринга ACE был тесно связан с ртутной линией задержки. Вынужденное сотрудничество между Тьюрингом и пионером в области памяти на электронно-лучевой трубке, возможно, не задалось бы!
Морис Уилкс с набором линий задержки из EDSAC
Национальная физическая лаборатория также обратилась к Морису Уилксу, который занимался проектированием собственного компьютера в математической лаборатории Кембриджа (EDSAC, который впервые заработал в 1949 году). Дуглас Хартри (профессор математической физики в Кембридже и член исполнительного комитета национальной физической лаборатории) озвучил его ответ и сообщил Исполнительному комитету, что Уилкс «готов оказать всю возможную помощь в создании ACE». Уилкс «имеет опыт составления линий задержки и готов обмениваться информацией с доктором Тьюрингом» – как заявил Хартри. Однако о шансах плодотворного сотрудничества Тьюринга с Уилксом можно судить по служебному письму Тьюринга Вомерсли:
Я прочитал предложения Уилкса о Pilot ACE и согласен с ним в отношении желательности создания такой машины где-то. Я также согласен с ним в отношении предложенного им количества линий задержки. Однако «код», который он предлагает, очень противоречит нашей линии развития, и гораздо больше соответствует американской традиции решения трудностей с помощью большого количества оборудования, а не мыслей. Я думаю, что для введения в действие его кода (который заявлен им как «сокращенный до максимально простой формы») потребуется гораздо более сложная схема управления, чем схема, предложенная в нашей полноразмерной машине. Кроме того, некоторые операции, которые мы считаем более фундаментальными, чем сложение и умножение, были опущены.
Можно возразить, что для такой небольшой памяти необходимо иметь сложный контроль. Я бы сказал, что этот аргумент говорит либо об отсутствии Pilot ACE, либо о неиспользовании ее для серьезных задач. Нецелесообразно разрабатывать сложное управление только ради пилотной модели. Я предпочитаю модель с малым уровнем контроля, который впоследствии может быть расширен при желании. На минимальной машине будут решаться только тестовые задачи.
К началу 1947 новые инициативы все еще отсутствовали. «Что касается конструкции фактического оборудования… то из-за нехватки кадров прогресс был медленным», — такие неутешительные выводы были представлены в докладе за 1946 год.329 Как упоминалось ранее, в 1946 году Тьюринг продолжал менять логическую конструкцию машины, а в национальной физической лаборатории даже рассматривали возможность использования памяти с электронно-лучевыми трубками вместо ртутных линий задержки, что означало бы, что большая часть работы, проделанной Чендлером и Кумбсом, была напрасной. Кумбс описал ситуацию с точки зрения инженеров:
Одной из проблем, я помню, было то, что национальная физическая лаборатория продолжала менять свои идеи, и каждый раз, когда мы говорили: «Вот опять! Что ты хочешь, чтобы мы сделали?», мы обнаруживали, что последняя идея, которую они дали нам на прошлой неделе, уже устарела, и у них появилась совсем новая. И мы не могли прийти к консенсусу, пока в конце концов не говорили: «Стоп! Скажите нам, что делать».
19. Вторая попытка строительства ACE: эпоха Хаски и Test Assembly
Гарри Хаски
Ситуация улучшилась, когда инженер Гарри Хаски прибыл в Отдел математики по срочному контракту. Хаски работал над проектом ENIAC, и в 1946 ему предложили стать директором проекта EDVAC, хотя из-за определенных трудностей ему пришлось отказаться. Хартри, ангел-хранитель ACE в исполнительном комитета национальной физической лаборатории, встретился с Хаски во время посещения ENIAC весной 1946; в июле Хаски получил телеграмму с предложением работы в национальной физической лаборатории на 12 месяцев. (Хартри был одним из немногих посторонних, кто знал о Колоссе; вскоре после окончания войны Ньюман пригласил его в Блетчли Парк посмотреть Колосс.) Хаски начал работать в Отделе математики 4 января 1947. В течение 1947 года ряд других новичков присоединились к отделу ACE в рамках расширения проекта, инициированного Тьюрингом (Джеральд Олвей в августе, Дональд Дэвис в сентябре, Генри Нортон в октябре, Бетти Кертис в ноябре).
Вскоре Хаски предложил, чтобы построением компьютера занялся сам отдел ACE, и он посоветовал Уомерсли построить небольшую опытную сборку. С благословения Уомерсли Хаски, Уилкинсон и Вуджер приступили к работе. Они планировали построить упрощенную форму версии V Тьюринга, известной как версия H (для ‘Хаски’). Новая машина, которую вскоре назвали «Опытной сборкой», должна была разместиться в здании Бэббедж Билдинг, недалеко от Отдела математики. Уомерсли резюмировал ситуацию в отчете, написанном в середине 1947 года:
В начале 1947 доктор Г. Д. Хаски, член команды, работающей над машинами EDVAC и ENIAC в Университете Пенсильвании, Филадельфия, присоединился к коллективу Отдела математики на один год. Весной 1947 было принято решение о том, что сама лаборатория должна провести некоторые экспериментальные работы, и доктор Хаски с двумя ассистентами приступил к сбору оборудования с целью создания небольшой опытной модели.
Тьюринг не поддержал такое развитие событий. С одной стороны, опытная сборка должна была сама стать небольшим компьютером, для которого требовалось гораздо больше оборудования, чем было строго необходимо для проверки фундаментальных основ конструкции Тьюринга. А с другой стороны, она была далека от ACE, поэтому, возможно, Тьюринг видел в проекте Хаски отвлекающий маневр от своего собственного изобретения. По словам Уилкинсона, Тьюринг «склонен игнорировать опытную сборку», просто «стоя на одном месте». Вуджер описал, как он «писал программу для [Версии H], когда зашел Тьюринг… заглянул через мое плечо и спросил: „Что это такое? Что это за версия Н?“ И я сказал: „Это версия Хаски“. „ЧТО!“… [Т] Это была интересная сцена».
Хаски и другие двигались дальше с опытной сборкой. Примерно к середине 1947 года в стенах национальной физической лаборатории была изготовлена ртутная линия задержки в соответствии со спецификациями Хаски, были выбраны типы ламп и составлены принципиальные блок-схемы, определены источники и пункты назначения, а также написаны программы для проверки этих решений. Была построена главная рама и спроектирована конструкция вставного шасси, содержащего эту схему. Первой целью Хаски было запустить простую сохраненную программу, используя абсолютный минимум оборудования и единую полноразмерную линию задержки. Затем группа должна была разработать мощный компьютер, способный решать практические задачи; он должен был содержать около тринадцати линий задержки и включать в себя вход и выход перфокарт, а также аппаратный умножитель. В октябре 1947 Уомерсли и Э. К. Филлер рассчитывали — с большим оптимизмом — что опытная сборка «будет готова к концу ноября». (Хаски говорил: «Я никогда не надеялся, что опытная сборка заработает до того, как я уеду в декабре. Я, конечно же, надеялся, что она заработает в 1948.») Затем, выполняя одно из худших административных решений всей саги ACE, Дарвин в кратчайшие сроки прекратил работу. «Моральный дух в отделе математики пал», — вспоминает Хаски. Человеком, стоявшим за решением Дарвина, был Гораций Август Томас, руководитель вновь образованной группы электроники в отделе радиотехнологий национальной физической лаборатории.
20. Третья попытка строительства ACE: роковая эпоха Томаса
Не удалось отыскать снимок Томаса
В январе 1947 Тьюринг отправился в Соединенные Штаты Америки, посетив несколько групп, которые пытались создать электронный компьютер с запоминаемой программой. В своем отчете об этом визите он написал:
Меня очень сильно поразил один момент, касающийся формы организации. В каждом случае инженерно-конструкторская деятельность велась в одном и том же здании с большим объемом математической работы. Я убежден, что это правильный подход. В противном случае обе части организации не смогут поддерживать достаточно тесные контакты. Они слишком глубоко взаимозависимы. Мы часто обнаруживаем, что мы задерживаемся из-за незнания какой-то вещи, которую можно прояснить в разговоре с инженерами, и Управление почтовой связи сталкивается с подобными трудностями; телефонный разговор редко бывает эффективным, потому что в нем мы не можем использовать схемы. Также существуют моменты, которые были неправильно поняты, но которые можно было бы прояснить при более тесном контакте, потому что они всплыли бы в случайном разговоре. Очевидно, что на площадке ACE нам нужен инженерный отдел. И я бы сказал, что чем раньше он появится, тем лучше.
Дарвин решил, что Отдел радиотехнологий национальной физической лаборатории — лучшее место для проведения экспериментальных инженерных работ. В протоколе заседания Исполнительного комитета, состоявшегося в марте 1947, были изложены новые положения:
Директор сообщил о встрече с ответственными сотрудниками. Для содействия прогрессу в работе с машиной было предложено поручить доктору Томасу из Отдела радиотехнологий руководить работой по изготовлению прототипной модели подходящей фирмой. Томас очень увлекался электронной техникой в промышленных вопросах и считал, что оптимальным методом достижения положительных результатов было бы начать работу над прототипной моделью в лабораториях радио и метрологии, прежде чем обращаться к сторонней фирме. Было решено, что доктор Томас должен представить подходящего человека для этой работы. Отвечая на вопрос профессора Хартри, директор сказал, что лаборатории радио и метрологии могут сразу же приступить к аппаратной части работы. Директор заявил, что у него есть письмо от Управления почтовой связью, в котором излагается положение дел с их работой, что представляется обнадеживающим. Сэр Эдвард Эпплтон заявил, что он слышал от доктора Рэдли, что им трудно соблюдать сроки выполнения работ, и доктор Рэдли будет встречаться с директором по этому поводу.
Колеса администрации поворачивались медленно, и на реализацию идеи собственного электронного отдела ушло несколько месяцев. В конце апреля 1947 года в совместной записке Дарвину от Уомерсли и Р. Л. Смит-Роуз, руководителя Отдела радиотехнологий, было предложено перевести людей из других отделов в Отдел радиотехнологий, чтобы сформировать «ядро будущего отдела электроники»:
Нынешнее состояние проекта требует, чтобы группа работала в одном месте в тесном контакте с проектирующим персоналом Отдела математики. Различные части настолько взаимосвязаны, что в настоящее время невозможно передать части работы отдельным группам. Наш опыт работы с Управлением почтовой связи подтверждает это…. Перераспределение персонала внутри лаборатории требует… тщательного рассмотрения, но если вы согласны с нашим предложением, посоветуйте нам, какие действия могут быть предприняты в ближайшем будущем.
Легендарный Алан Блюмлейн, пионер в области цифровой электроники. Блюмлейн погиб в авиакатастрофе во время войны, испытывая свою новую радиолокационную систему для бомбардировщиков.
Блюмлейн в 1934
К августу закончились месяцы «тщательного рассмотрения», и Э. С. Хискокс (секретарь национальной физической лаборатории) разослал руководителям различных отделов служебные записки с инструкциями о переводе сотрудников в Отдел радиотехнологий на шесть месяцев. Смит-Роуз сообщил Дарвину: «Сейчас мы можем начать экспериментальную работу по разработке ACE для Отдела математики». Два члена Отдела математики (Джилл и Уайз) были переведены, а Уилкинсон, хотя и не был официально переведен, ожидал, что Уомерсли будет работать с группой Томаса в течение первых нескольких месяцев реализации проекта. Эдвард Ньюман присоединился к группе в начале сентября. Нанятый из Исследовательской Лаборатории EMI (Electric and Musical Industries), Ньюман будет играть важную роль в строительстве Pilot ACE, как и Дэвид Клэйден, который перешел из EMI вслед Ньюманом в том же месяце. И Ньюман, и Клэйден были погружены в технологии электронных схем А. Д. Блюмлейна, которые они принесли с собой из EMI (см. The Alan Blumlein Homepage <www.AlanTuring.net/blumlein>).
В августе 1947 было проведено официальное учредительное заседание для освещения актуального положения дел:
Проект ACE
Заседание состоялось в большом Конференцзале 18-го августа для введения Проекта ACE в Отдел радиотехнологий. На заседании присутствовали:-
Директор Секретарь Руководитель, Отдел радиотехнологий Руководитель, Отдел математики Ф.М.Коулбрук А.М.Тьюринг Дж.В. Крайстелоу Г.А.Томас Ф.Оти Г.Хаски М.А.Райт В.Уилсон А.Ф.Браун Р.Г.Челмерс Б.Дж.Бирн Р.Ф.Брейбрук А.И.Уильямс
Директор открыл заседание, заявив, что это первый случай, когда в Лаборатории была собрана большая группа для начала исследовательской программы, и подчеркнул важность проекта ACE. Он отметил, что Отдел математики является родным для этого проекта отделом, который заключил контракт с Отделом радиотехнологий для разработки и завершения работы над машиной.
После этого Вомерсли представил краткую историческую сводку, начиная со времен Бэббиджа, и заявил, что в случае успеха проект национальной физической лаборатории позволит создать машину намного раньше любой из американских машин. Это даст новый подход к решению математических [физических] задач и будет иметь огромное значение для страны.
Еще до учредительного собрания за кулисами назревали неприятности. 12 августа Хискокс написал Дарвину, чтобы предупредить его о том, что казалось ему созданием сложной многоступенчатой служебной организации со стороны Томаса:
Девид Клэйден
Эдуарт НьюманОчевидно, что Томас проявлял некоторые черты поведения, как если бы он создавал новый отдел, и для того, чтобы развеять некоторые сомнения, которые есть и у Смита-Роуза, и у Уомерсли, я думаю, что было бы лучше объяснить всей команде, что Отдел математики является головным отделом, и что он должен обосновывать финансовые затраты на эту работу; что эта работа в настоящее время передается по контракту в Отдел радиотехнологий, и что команда Томаса является частью Отдела радиотехнологий. Я думаю, что это желательно, пусть даже только для нашего собственного спокойствия, поскольку Томас уже проявил некоторые признаки желания создать самостоятельный отдел и т.д.
К сожалению, быстро вспыхнуло соперничество между группой Томаса и группой ACE в Отделе математики. 17 сентября Смит-Роуз получил возмутительное письмо с жалобой на налет группы Томаса на отдел ACE:
Во время отсутствия доктора Тьюринга и доктора Хаски в отпуске большая часть аппаратуры в нашей лаборатории в Теддингтон Холле, я полагаю, была передана в ваш отдел. Было бы полезно провести инвентаризацию, если бы у нас был список того, что было изъято; мы поняли от доктора Хаски, что нужно перевезти только два аппарата.
Создатель сложной организации Томас вскоре обратился к Дарвину с просьбой свернуть строительства в отделе ACE. Уилкинсон сказал в интервью 1976: «Томасу особенно не понравилась… идея этой группы в Отделе математики… о самостоятельной работе…. Томас убедил директора утвердить требование, чтобы вся работа выполнялась в Отделе электроники, и Дарвин постановил, что мы должны прекратить работу над опытной сборкой».
В результате создание ACE практически зашло в тупик. Несмотря на то, что Ньюман и Клэйден обладали навыками работы с цифровыми технологиями, группе Томаса предстояло многому научиться. Собственное образование Томаса было связано совершенно не с цифровой электроникой, а с радио и промышленной электроникой. Группа ‘начала развивать свои знания в области импульсных техник’, говорил Уилкинсон, и ‘некоторое время они занимались только базовыми вещами и больше знакомились с электроникой, необходимой для создания компьютера’. Затем, в феврале 1948 года, Томас нанес еще один удар по проекту ACE, уйдя из национальной физической лаборатории и присоединившись к Unilever Ltd (производителям мыла ‘Sunlight’). Как подытожил Уомерсли вскоре после этого, прогресс разработки аппаратного обеспечения остался «на уровне 18 месяцев назад».
Вполне вероятно, что, при условии более эффективного управления в национальной физической лаборатории, минимальный компьютер, основанный на версии V Тьюринга, мог бы запускать программы уже в 1948. Впервые Тьюринг в своем докладе от 3 февраля 1947 предложил создать на национальной физической лаборатории внутренний отдел электроники. Группа Отдела радиотехнологий была создана за шесть недель, а не за шесть месяцев. Очевидно, что новая группа по электронике должна была объединиться с Хаски и отделом ACE для работы над опытной сборкой. В августе 1947 Уомерсли настаивал на этом, но Томас вставлял палки в колеса. Примитивная форма опытной сборки вполне могла бы быть запущена до середины 1948, став первым в мире цифровым компьютером с запоминаемой программой.
21. Тьюринг покидает Национальную физическую лабораторию
Королевский колледж, Кембридж. Фото Эндрю Пирс, Fotogenix.co.uk
В середине 1947 Тьюринг подал заявление на академический отпуск в Кембриджский колледж. Он предложил заняться исследованиями в области искусственного интеллекта. Дарвин удовлетворил эту просьбу, сообщив об этом в письме в ДНПИ:
Как вы знаете, доктор А. Тьюринг… математик, который разработал теоретическую часть нашей большой вычислительной машины. Сейчас все дошло до стадии разработки аппаратуры, и на время шеф передает работы в другие руки. Я обсуждал этот вопрос как с Уомерсли, так и с Тьюрингом, и мы договорились, что будет лучше, если Тьюринг сойдет с дистанции на некоторое время.
Тьюринг уехал в Кембридж осенью 1947. Следующей весной он ненадолго вернулся в Отдел математики (выиграв трехмильный забег на ежегодном спортивном турнире национальной физической лаборатории). Затем, в мае 1948, без сомнения, разочарованный полным отсутствием прогресса в строительстве ACE, он отказался от работы в национальной физической лаборатории, приняв предложение Ньюмана занять должность в лаборатории вычислительных машин в Манчестере (см. главу 13 «Тьюринг присоединяется к манчестерскому проекту»). Борьбу за создание ACE возглавил Уилкинсон.
22. Четвертая попытка строительства ACE: эпоха Уилкинсона — Колбрука и опытная модель
The Daily Telegraph, 31 января 1950
Pilot ACE в 1950, с (слева направо) Эдвардом Ньюманом, Френсисом Морли Колубруком, Джеймсом Уилкинсоном и Дональдом Дэвисом
Pilot ACE в 1950, с Джеральдом Олвеем (слева) у оборудования ввода/вывода перфокарт Холлерита, Джеймсом Уилкинсоном (в центре) у панели управления и Эдвардом Ньюманом (справа) у главной панели
Томаса менил Френсис Морли Коулбрук, который в марте 1948 был назначен главой недавно созданного подразделения электроники в Отделе радиотехнологий. Коулбрук наконец сдвинул ситуацию с мертвой точки. В 1976 Уилкинсон вспоминал:
Я думаю, что довольно скоро [Коулбрук] испытал неприятное ощущение, что он унаследовал что-то, что было в опасности, и у меня было такое же чувство, когда я вернулся в Отдел математики — я унаследовал эту команду от Тьюринга, и к тому времени все были и правда немного деморализованы. Коулбрук позвонил мне и пришел, чтобы поговорить об этом и сказал, что не очень доволен своей должностью. И… к моему абсолютному удивлению он заявил: «У меня есть предложение, которое я должен сделать… Теперь вы, ребята, научились немного электронике… Как насчет того, чтобы присоединиться к нам и двум группам, работающим вместе?»… Я почувствовал, что всё так запуталось, что для этого нужен был серьезный перерыв… Коулбрук… был великим дипломатом… и его добрая воля была настолько очевидна для всех, что я думаю, что он сыграл большую роль в том, чтобы две группы смогли объединиться».
Объединенная группа решила, что лучшим направлением деятельности будет возрождение опытной сборки, которая сейчас описывается как «Pilot ACE». (Сходство между Pilot ACE, над которой они на тот момент работали, и опытной сборкой, над которой они не работали, было, по словам Уилкинсона, «более чем… дипломатическим подходом».) Отдел ACE и Отдел электроники работали гармонично, и в конце года Уомерсли сообщил о «прекрасном прогрессе». Подход Хаски к проектированию схем был заменен подходом Блюмлейна, который Ньюман и Клэйден принесли из EMI. Группа полностью переработала электронику машины.
Вскоре математики из отдела ACE оказались в новой среде. Вуджер вспоминал: «Мы устроились на небольшой сборочной линии со… стопкой компонентов… перед нами». У каждого из нас был паяльник, и мы производили эти детали и передавали их по линии. «О, это было невероятно весело». После периода трудностей с усилителями с задержкой в конце 1949 года, группа наконец-то попробовала на вкус успех. 10 мая 1950 года Pilot ACE запустила свою первую программу. Позже ее с любовью стали называть «Succ. Digs» (последовательные цифры), программа включала ряд из 32 ламп на панели управления со скоростью, определяемой размером номера на входных переключателях.
Pilot ACE была (по словам Коулбрука) «мощным вычислительным устройством». Хотя конечной целью оставалась полномасштабная машина ACE, Отдел математики с 1948 планировал использовать Pilot ACE как самостоятельную вычислительную машину. Однако до передачи Pilot ACE в ведение Отдела математики для обслуживания клиентов еще предстояло проделать большую работу. Проблему представляли ненадежные компоненты, и в сентябре 1950 машина проработала без ошибок всего полчаса. В 1951 линии задержки и управление входом и выходом были переработаны, а также добавлен параллельный множитель. Примерно к середине 1951 года Pilot ACE выполняла более 50% вычислительной работы Отдела математики. Тем не менее, к октябрю 1951 она все еще «не была введена в нормальную эксплуатацию», говорил Коулбрук, «и мы еще не создали адекватную „библиотеку“ общеполезных подпрограмм».
В конце октября 1951 года новый директор национальной физической лаборатории, сэр Эдвард Буллард, высказал мнение, что
большинство электронных машин, в том числе и наши собственные, на самом деле работают нестабильно и ненадежно. Они чрезмерно широко рекламируются, и предстоит проделать большую работу, прежде чем мы получим что-либо, что принесет ощутимую пользу.
Несмотря на пессимизм Булларда, к февралю 1952 Pilot ACE была достаточно надежной для разборки и передачи в Отдел математики. Коулбрук писал:
Полноценная эксплуатация была возобновлена в течение двух недель после демонтажа и с тех пор была непрерывной и в основном касалась проблем защиты… Анализ первых восьми недель эксплуатации, включающий 370 часов работы, дает следующие данные:-
Регулярные проверки и обслуживание 92 ч. 25% ⎫ Обучение пользователей, проверка программ и т.д. 175 ч. 47% ⎬ 75% Платная работа 103 ч. 28% ⎭
Pilot ACE имела огромный успех. Она использовалась как для проведения исследований в области численного анализа, так и для выполнения оплачиваемой работы через службу научных вычислений Отдела математики. В одном только 1954 году Pilot ACE заработала для национальной физической лаборатории 24 000 фунтов стерлингов за выполнение более чем 80 задач — Годовой оклад Тьюринга, когда он проектировал ACE, составлял 800 фунтов стрелингов. В течение своего срока службы машина заработала около 100 000 фунтов стерлингов. Pilot ACE оставалась в непрерывной эксплуатации до тех пор, пока в 1955 не была заменена первым DEUCE, и к этому времени «объем необходимого технического обслуживания не позволял экономично использовать ее в качестве компьютера».
23. DEUCE
Этот DEUCE, сфотографированный в 1956, был установлен в Национальной физической лаборатории в 1955
Этот DEUCE, известный как UTECOM, располагался в Технологическом Университете Нового Южного Уэльса в Сиднее, Австралия (UTECOM – от ‘University of Technology Computer’ («Университет технологических компьютеров»))
Панель управления UTECOM. Самый верхний ряд из 13 белых лампочек отображал текущие инструкции. Два круглых монитора справа отображали содержание линий задержки. Большое устройство слева от панели управления – устройство считывания перфокарт Холлерита. Каждая программа вводилась в виде пачки из множества перфокарт.
UTECOM играет в крестики-нолики
К концу 1948 года усилия национальной физической лаборатории по поиску инженерной компании, готовой, наконец, помочь с ACE, принесли свои плоды. Протокол Исполнительного комитета национальной физической лаборатории за сентябрь 1948 года:
Сотрудники сэра Джорджа Нельсона посетили лабораторию в связи с работой над ACE, чтобы ознакомиться с достигнутым прогрессом и обсудить возможное сотрудничество в области более детального проектирования и, позднее, в области строительства ACE.
Нельсон, председатель English Electric Company, был членом Исполнительного комитета национальной физической лаборатории с 1946 (и присутствовал на историческом собрании в марте 1946, на котором выступал Тьюринг). В начале 1949 было предложено заключить контракт между национальной физической лабораторией и English Electric:
Проект ACE
Текущее положение, а также запрос на предоставление финансового обеспечения для заключения договора на обучение, который будет размещен в компании English Electric Co. Ltd.… В целях ускорения строительства Pilot ACE и обеспечения возможности изготовления конечного оборудования в настоящее время предлагается разместить контракт на проведение исследований в компании English Electric Co. Ltd. Это даст два больших преимущества: во-первых, добавит рабочей силы, работающей над созданием пилотной модели, и сделает возможным ее завершение до конца этого года, а также ознакомит инженеров и персонал со специализированными требованиями и применяемыми технологиями. Этот учебный период перед началом постройки конечной машины крайне необходим с учетом новизны всего предприятия.
Этот контракт был утвержден Казначейством в мае 1949 года. Он «предусматривал работу сотрудников English Electric Company в национальной физической лаборатории, с привлечением их же персонала». Инженеры и электрики English Electric присоединились к команде национальной физической лаборатории для оказания помощи в доработке Pilot ACE.
В 1951 в служебной записке национальной физической лаборатории был изложен ряд причин, по которым было желательно «продолжить сотрудничество с E.E.Co.», включая следующее: «Опыт, накопленный E.E.Co., позволил бы создать ACE или аналогичную машину для любого последующего использования в стране или за рубежом». К декабрю 1951 договоренности о производстве коммерческой версии Pilot ACE были подтверждены:
ACE — договоренности с компанией English Electric Co.
… Было решено, что первым шагом будет изготовление E.E.Co. «инженерной версии» нынешней Pilot ACE. Одновременно с этим будут осуществляться некоторые работы по детальному планированию и проектированию полномасштабной ACE».
В служебной записке из Казначейства с одобрением отмечается, что
Эти планы по развитию ACE представляют собой очень благоприятный поворот. Компания English Electric (через сэра Джорджа Нельсона) предложила взять на себя производство должным образом «сконструированной» версии пилотной модели по стоимости национальной физической лаборатории не более 5000 фунтов стерлингов…. Вероятно, [эта] сумма не является полной экономической стоимостью. Но сэр Джордж Нельсон готов отталкиваться от этой цифры, потому что он хотел бы, чтобы English Electric вступила в игру.
Разработанная версия Pilot ACE получила название DEUCE (Digital Electronic Universal Computing Engine — цифровая электронная универсальная вычислительная машина). Первая DEUCE была передана в Отдел математики в марте 1955. DEUCE стала краеугольным камнем зарождающейся британской компьютерной индустрии.
24. Big ACE
Начинается работа над Big ACE. Сначала инженеры собрали этот макет
Осенью 1954 началась работа над созданием полноценной машины ACE. В 1956 Дж Р. Иллингворт описал причины перехода к финальной стадии проекта:
ACE – конечная модель
… Опыт уже показал… что DEUCE не будет эффективным предложением в течение более четырех-пяти лет, так как скорость и помещение для хранения такого типа машин с каждым годом становятся все больше и больше. Поэтому около двух лет назад было принято решение о начале работ по созданию совершенно новой машины, которые начались осенью 1954 года….
В целом положение, я думаю, можно подытожить, сказав, что изменились и важность, и значимость этой работы. В первые дни рассмотрения проекта даже не было известно, приведет ли концепция ACE к появлению исследовательской «игрушки» любой ценности, но события доказали, что она является настолько первоклассным вычислительным механизмом, что мы попали под давление со стороны Казначейства и других ведомств, которые требовали как можно быстрее освоить ее использование для работы в области офисной механизации. Более того, если в первые годы проект рассматривался как дополнительный аспект повседневной работы Лаборатории, то впоследствии вся эта сфера работ стала неотъемлемой частью программы Лаборатории.
Построенная и размещенная в национальной физической лаборатории Big ACE была введена в эксплуатацию к концу 1958. Был изготовлен только один экземпляр. Уилкинсон, Клэйден, Дэвис, Ньюман и Вуджер внесли свой вклад в окончательное проектирование. (Компания English Electric принимала участие в разработке в 1954 и 1955 годах, но на тот момент их контракт с национальной физической лабораторией подошел к концу.) С тактовой частотой в 1,5 МГц и 6000 лампами, Big ACE занимала помещение размером со зрительный зал. Компьютер оставался в рабочем состоянии до 1967 года.
Big ACE, ноябрь 1958. Приподнятые панели открывают стеллажи шасси.
На Дне прессы, проведенном в 1958 году по случаю торжественного запуска Big ACE, А. М. Аттли (руководитель Отдела механизмов управления и электроники, который образовался на месте Отдела электроники) объявил: «Сегодня мечта Тьюринга осуществилась». Если это так, то это была мечта, время которой прошло. Big ACE не была той революционной машиной, которой она бы стала, если бы появилась шесть или семь лет назад. В ней не только использовались лампы в эпоху транзистора, но конструкторы также сохранили к тому времени уже устаревшую память с ртутными линиями задержки, предложенную Тьюринг в 1945. Тем не менее, Big ACE была быстрой машиной с большой памятью, и решение придерживаться принципов, использовавшихся в Pilot ACE и DEUCE, было обоснованным в сложившихся обстоятельствах. В 1953 Коулбрук призвал к тому, чтобы предложенная полноценная ACE «основывалась на хорошо зарекомендовавших себя компонентах и технологиях, даже в условиях, когда революционные разработки, похоже, не за горами». «Иначе Отдел [математики] получит лишь череду пилотных моделей», утверждал Коулбрук. Что касается скорости, то конструкторы машины написали в 1957: «На самом деле, ACE оказалась такой же быстрой, как и современные компьютеры с параллельными ядром и памятью» (магнитная память была самым современным высокоскоростным носителем информации в то время).
Дональд Дэвис, соавтор ‘Простого руководства по эксплуатации ACE’. Впоследствии Дэвис изобрел пакетную коммутацию, используемую в ARPANET, предвестнике интернета.
Первое шасси для Big ACE, 1956
Простое руководство по эксплуатации ACE
В Национальной физической лаборатории начала работать одна из самых больших и быстрых в мире электронных вычислительных машин — в народе называемая «Электронными мозгами». Она называется ACE — и может выполнять любой вычислительный процесс, для которого известны точные правила….
ACE включает в себя множество уникальных конструктивных особенностей. Рабочий «механизм» состоит из около 6000 миниатюрных электронных ламп, расположенных во внушительном массиве из 10 больших шкафов. Каждый шкаф оснащен поднимающейся дверцей с электроприводом, обеспечивающей быстрый доступ для поиска неисправностей. Он имеет систему охлаждения циркулирующего воздуха, теплообменники и водяной охладитель.
Числа и инструкции имеют 48 двоичных цифр (эквивалент 14 десятичных цифр). Оперативное запоминающее устройство состоит из 800 слов, а вспомогательное запоминающее устройство из четырех магнитных барабанов будет содержать в общей сложности 32 768 слов.
Для хранения числовых данных и инструкций используются ртутные линии задержки и магнитные барабаны, а для ввода и вывода предусмотрены как перфокарточное оборудование, так и оборудование с магнитной лентой.
Компактный пульт управления имеет около 160 клавиш и 300 сигнальных лампочек в дополнение к звуковому и визуальному отображению вычислений. Тем не менее, большинство вычислений выполняется нажатием одной клавиши с надписью «Начальный ввод». Эта клавиша вызывает считывание перфокарт, которые говорят ACE, что нужно делать.
Наиболее интересными механическими узлами в ACE являются четыре магнитных барабана, полностью спроектированные и сконструированные в национальной физической лаборатории. Барабаны вращаются со скоростью 12 000 об/мин; настолько точно, что магнитное пятно длиной в одну сотую дюйма, движущееся со скоростью 200 миль в час, прибывает в заданную точку с точностью до миллионной доли секунды. Барабаны имеют уникальные быстро движущиеся записывающие головки и являются лишь частью запоминающего устройства или «памяти» ACE. Чтобы представить себе скорость ACE, можно упомянуть, что эти барабаны — самая медленная часть ее памяти!
Магнитный барабан с 128 дорожками для Pilot ACE, 1954Технические примечания
У ACE есть три формы хранения. Самая большая часть запоминающего устройства состоит из четырёх магнитных барабанов… Доступ к этим числам ограничен необходимостью ждать вращения барабана и может занять до 7 миллисекунд. Эти барабаны используются компьютером для большого объема данных, которые могут понадобиться не сразу.
Для более быстрого доступа используется память на основе ртутных линий задержки 768 чисел. Время, необходимое для доступа к ним, составляет до одной миллисекунды. Эта память используется для программы, но команды хранятся таким образом, что на их ожидание не тратится время.
Наиболее быстрое запоминающее устройство состоит из коротких линий задержки, хранящих по 1, 2 или 4 числам. Они используются для небольшой группы чисел, которые компьютер использует в течение короткого времени.
При хорошем программировании можно пользоваться всеми преимуществами большой памяти, при этом время доступа не намного больше, чем при использовании коротких линий задержки.
Команды ACE определяют адреса — местоположения в памяти — из двух чисел, которые должны быть обработаны, операции и адреса необходимой точки назначения результата и местоположение следующей команды. Таким образом, используются четыре адреса, и все четыре доступа происходят почти одновременно. Умножение и деление происходят в отдельных автономных устройствах, так что они могут происходить одновременно с другими операциями.
Во многих случаях компьютер будет выполнять в среднем 15 000 операций в секунду, каждая из которых включает извлечение двух операндов, сохранение результата и извлечение следующей команды.
ТьюрингВвод и вывод осуществляется перфокартами. Магнитные ленты будут установлены позже и будут использоваться в качестве расширения памяти. Скорость ввода с карт составит 7000 двоичных цифр в секунду, со скоростью 450 карт в минуту в двоичном формате.
25. Заключение
Статья Тьюринга 1936 года On Computable Numbers представила миру фундаментальные составляющие современного компьютера: концепцию хранимой программы и концепцию универсальной машины.
В США фон Нейман передал концепцию Тьюринга об универсальном компьютере с хранимой программой в руки инженеров-электронщиков, которые построят первые американские машины такого типа.
Работа 1936 года оказала большое влияние на Ньюмана, в лаборатории вычислительных машин которого в Манчестере появился первый функционирующий компьютер с электронными хранящимися программами в 1948 году. Тьюринг преподавал Килберну, конструктору этой машины, основы компьютерной архитектуры в лекциях в 1946-1947.
Сложная конструкция ACE Тьюринга нашла коммерческий успех в DEUCE. Основываясь на версии V конструкции Тьюринга, машина DEUCE была надежной рабочей лошадкой первых десятилетий компьютерного века. Первый настольный компьютер для одного пользователя — первый персональный компьютер — также был основан на конструкции ACE (G15 Хаски). Из конструкции ACE Тьюринга могло бы получиться гораздо больше, если бы в Национальной физической лаборатории было эффективное управлени. Минимальная ACE Хаски (опытная сборка) вполне могла стать первым электронным компьютером с хранимой программой.
В дополнение к своему замечательному теоретическому и практическому вкладу в развитие компьютера, Тьюринг был пионером в области вычислений, известных сегодня как искусственный интеллект и искусственная жизнь.
Часть III
АСЕ Тьюринга: полный текст Proposed Electronic Calculator
Содержание
1. Вступление
2. Составляющие вычислительного компьютера
3. Хранилища
4. Арифметические соображения
5. Основные элементы цепи
6. Схема логического контроля
7. Наружные детали
8. Область применение машины
9. Проверка / тестирование
10. Сроки, стоимость, характер работы и т.д.
Технические предложения
11. Подробная информация о логическом контроле
12. Подробное описание арифметической части (CA)
13. Примеры таблиц инструкций
14. Конструкция линий задержки
15. Концепция клапанных элементов
16. Альтернативные формы хранения
Первоначальные рисунки Тьюринга
Немного рекламы
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас, оформив заказ или порекомендовав знакомым, облачные VPS для разработчиков от $4.99, уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps от $19 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
Dell R730xd в 2 раза дешевле в дата-центре Equinix Tier IV в Амстердаме? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?