Игра в имитацию - Эндрю Ходжес
Шрифт:
Интервал:
Закладка:
Хотя Алан перенес акцент с конструирования машины на разработку программ, ничего неясного в его инженерных планах по АВМ не было. Линии задержки, писал Алан, были разработаны для целей радиопеленгации до уровня, значительно превосходящего наши требования во многих отношениях. Проекты нам доступны, и один из них замечательно подходит для промышленного производства. Но 20 фунтов стерлингов за одну линию задержки — это довольно дорого.
На самом деле, Алан наведался с визитом в НИИ связи британских ВМС ради встречи с Т. Голдом, занимавшимся там разработкой линий задержки. Алан рассчитывал приобрести две сотни ртутных линий задержки, емкостью 1024 цифры каждая. Однако цифры, размеры, стоимость и выбор ртутной линии задержки для хранения информации не были сняты с полки инженеров-конструкторов радиолокационной техники. Он сам освоил физику. На основании его расчетов ртуть была лишь чуть предпочтительней смеси воды и спирта, по силе действия равноценной, по его представлению, джину. Алан очень хотел использовать джин; это было дешевле, чем использовать ртуть. Однако, он отказался от того, чтобы самому производить опытно-конструкторскую работу. Он хотел, что ее сделали инженеры «Колосса», на экспериментально-исследовательской станции Министерства почт. Флауэрс был уже знаком с линиями задержки (в октябре 1945 г. ему показали модель Эккерта).
А о проектировании логических и арифметических схем («LC and CA») Алан писал:
Работа над электронно-ламповым элементом может занять четыре месяца и больше. С учетом того факта, что придется еще выполнить кое-какую работу по конфигурации принципиальных схем, такая задержка может быть оправдана, но приступить к работе следует, как можно скорее….
Ввиду сравнительного малого числа используемых электронных ламп фактическое производство LC и CA не потребует много времени; от силы шесть месяцев.
В докладе уже были представлены проекты множества «принципиальных схем». Алан сделал детальную разработку арифметических схем, воспользовавшись (и расширив) системой обозначения фон Неймана. Наверное, ему было приятно, что его довоенный опыт по проектированию двоичного множительного устройства пригодился. С обращением к опыту из прошлого была связана и другая деталь проекта. Он предусматривал возможность подсоединения, при необходимости, специальных контуров для операций с арифметическими функциями и нулевыми функциями. Эта идея несколько расходилась с принципом максимально активного задействования команд, но он представлялся вполне уместным в случае, если под рукой имелась какая-либо крайне эффективная схема специального назначения. Как, например, в случае с «Бомбами». Там шаги, зависевшие от срабатывания реле, были медленны по электронным стандартам. Тогда как шаги, которые зависели от электрического тока, пропускаемого по внутренней проводке «Энигмы», выполнялись моментально. На выполнение их с помощью таблицы команд на электронной вычислительной машине требовалось бы больше времени. Проект Алана позволял, при желании, идти более коротким, рациональным путем. Но мало кто мог догадаться, что в основе этого лежал его опыт с механическими методами.
Алан также оценивал практические требования проекта в целом:
Трудно строить предположения о зданиях, опираясь на вероятность расширения всего плана в масштабе. Есть множество возможностей, которые было бы целесообразно включить, но которые отвергнуты в силу одной лишь необходимости провести где-то черту. Однако, через несколько лет, когда машина докажет свою полезность, мы наверняка захотим расширить ее возможности, включив новые функции или реализовав лучшие идеи, которые выдвигались при работе над первой моделью. Какой бы величины не решено было строить здание, всегда следует оставлять место для его достройки.
В беседе 1947 г. Тьюринг развил идею о том, как машина должна «доказать свою ценность», обрисовав картину действия машины. Давайте начнем с тех вопросов, которые могут возникнуть у потребителя. В первую очередь встает вопрос о подготовке места, где будет проходить проверка машины с целью изучения ее рабочего состояния и настройки и выполнения процедуры самого простого вычисления.
Алан привел частный пример задачи, а именно численное решение дифференциального уравнения Бесселя. (Это была типичная задача в прикладной математике и инженерии.) Тьюринг объяснил, что таблица команд для вычисления значений функции Бесселя будут уже «лежать на полке», наряду с таблицей, задающей общий порядок действий (общий алгоритм) решения дифференциального уравнения.
Команды для работы будут, таким образом, состоять из значительного числа извлеченных с полки и нескольких, разработанных специально для процедуры, о которой идет речь. Карты команд для рабочих, стандартных операций должны будут быть уже перфорированы, а новые необходимо будет создать специально. После ассемблирования и проверки их всех нужно будет поместить в устройство ввода, представляющее собой просто механизм подачи перфокарт. Их нужно будет помесить в карман для перфокарт и нажать кнопку, запускающую протяжку перфокарт. Следует помнить, что изначально в машине нет команд, а, значит, обычные функции не доступны. Поэтому необходимо четко представлять себе, какие карты должны подаваться первыми. Эти карты с исходными данными всегда должны быть одинаковыми. Их заведение означает установку в машине нескольких ключевых таблиц команд, включая достаточное количество таких, что позволят машине считывать специальный набор карт, подготовленных для выполнения нашей процедуры. А далее возможны различные сценарии действий, в зависимость от способа программирования процедуры. Машина должна довести дело до конца и выполнить процедуру, выдав в перфорированном или напечатанном виде требуемые ответы, остановившись только, когда все будет сделано. Но более предпочтительна такая настройка, чтобы машина останавливалась сразу после введения таблиц команд. Это позволяет убедиться в правильности контента, сохраненного на запоминающем устройстве (носителе информации), и обеспечивает вариативность процедуры. И это удобный момент для паузы. Нам придется делать несколько пауз. Например, нам могут понадобиться некоторые значения параметра, а это — цифры, полученные экспериментальным путем, и тогда будет удобно делать паузу после введения каждого значения параметра, а затем загружать следующее значение параметра с другой карты. Или, например, кто-то захочет поместить в карман все карты, чтобы машина запоминала данные по мере надобности. Каждый волен поступать по своему усмотрению, но каждый должен принять решение.
(adsbygoogle = window.adsbygoogle || []).push({});