Размышления о думающих машинах. Тьюринг. Компьютерное исчисление
Шрифт:
0
0
0
0
1
1
1
0
1
1
1
1
Ламповыми были первая версия Colossus, Mark 1, и следующая усовершенствованная версия, Mark 2, запущенная в 1944 году. Можно сказать, что если Алан Тьюринг занимался логическим обоснованием компьютеров, то Томми Флауэрс разработал hardware и, соответственно, электронные схемы, воплощающие в жизнь эти логические построения.
Одна из наиболее интересных цепей Colossus включала два класса электронных ламп: тиратроны и фотоэлектронные умножители, с помощью которых машина могла считывать знаки с бумажной ленты. Используя тиратрон, можно было записать 1 бит; соединив между собой несколько ламп, инженеры Блетчли-парка создали компьютерную память. Фотоэлектронный умножитель представлял собой лампу, работа которой была подобна
Несмотря на то что Colossus, несомненно, являлся передовым инженерным достижением своей эпохи, его программирование было весьма примитивным по сравнению с современными компьютерами, так как для написания программы нужно было настроить множество клавиш и переключателей. При этом, хотя Colossus был программируемой машиной в строгом понимании этого слова, он не был компьютером, так как не был универсальной машиной Тьюринга. Colossus мог быть запрограммирован только для того, чтобы разрушать шифр, записанный на машине Lorenz SZ 40/42, то есть это не была машина для общих целей. В отличие от него, сейчас компьютер — это универсальная машина Тьюринга, для которой можно программировать на разных языках (С, Java, Virtual Basic и др.). Мы можем сделать вывод, что Colossus был частично программируемым квазикомпьютером, так как он выполнял только цели, для которых был разработан, а значит, не был универсальным. То, что в одном месте и в одно время оказались Алан Тьюринг и Colossus, подтолкнуло британскую науку к изучению электроники для оценки возможности создания настоящего компьютера. Именно в Блетчли-парке родилась мечта о создании универсальной машины Тьюринга. Со временем, когда был разработан и построен компьютер Pilot АСЕ, эта мечта нашла воплощение.
После окончания мировой войны из соображений безопасности Уинстон Черчилль отдал приказ уничтожить все машины Colossus, а также сжечь все описания их чертежей и схем. Эту неблагодарную работу выполнил Томми Флауэрс, помиловавший, однако, две машины, использовавшиеся во времена холодной войны и окончательно уничтоженные в 1960-е годы. Успех, достигнутый в Блетчли-парке с созданием Colossus, не был известен до 1976 года, когда специальным законом об официальной секретности были сняты ограничения на распространение данной информации. В течение долгих лет ENIAC, созданный в 1946 году в США, считался первым электронным компьютером в истории. Сегодня, после пересмотра исторических событий, это почетное место занимает Colossus, созданный в 1944 году. В Национальном музее вычислительной техники в Блетчли-парке публике представлены две реплики Colossus, построенные в 1996 и 2004 годах под руководством Тони Сейла (1931-2011), инженера-электронщика и историка информатики. Благодаря сообщениям, расшифрованным Colossus, стало известно, что Гитлер был введен в заблуждение относительно планируемых военных операций. Он думал, будто высадка союзников произойдет в Па-де-Кале, и отправил туда танковые дивизии. Военный кошмар закончился весной 1945 года самоубийством Гитлера. Однако летом того же года с нанесением ядерных ударов по Хиросиме и Нагасаки была открыта новая страшная страница в истории человечества. Затем началась новая эра — холодная война, и мир разделился на два больших лагеря: западный капиталистический и восточный коммунистический, которые находились в противостоянии с 1945 до 1989 года, когда пала Берлинская стена.
Глава 3
Первые компьютеры: британские или американские?
Во время работы в Блетчли-парке Тьюринг стал свидетелем появления Colossus. Этот факт, несомненно, стал сильным стимулом, который привел ученого к разработке своего первого компьютера Pilot АСЕ согласно собственным идеям и спецификациям.
В середине 1940-х — начале 1950-х годов создание разных моделей компьютеров по обе стороны Атлантики привело к полемике, которая до сих пор не дала ответа на вопрос, какая из стран стала первой в разработке и создании компьютеров.
После окончания Второй мировой войны Алан Тьюринг оставил Блетчли-парк и, как и остальные его товарищи, вернулся к гражданской жизни. К счастью, он получил приглашение от Национальной физической лаборатории (сокращенно по- английски NPL) в Лондоне, занимавшейся разработкой стандартов для науки и технологий. В то время во главе лаборатории стоял Чарльз Галтон Дарвин (1887-1962), внук Чарльза Дарвина (1809-1882), он и предложил Тьюрингу поучаствовать в разработке и создании компьютера. В 1946 году Тьюринг направил в NPL доклад с идеями, касавшимися практической реализации компьютера — машины, которую коллега Тьюринга Джон Уомерсли (1907-1958), начальник отдела математики лаборатории, назвал автоматической вычислительной машиной — Automatic Computing Engine (АСЕ). Слово engine (что в английском языке означает «двигатель») было принято в память о Чарльзе Бэббидже (1791-1871), создателе аналитической и дифференциальной машин, которые считаются предшественниками современных компьютеров. В своем докладе Тьюринг опередил время: он привел информацию о hardware, то есть об электронных схемах, а также о software, установив правила написания программ для компьютера АСЕ. Наконец ученому представился шанс совершить великий переход от теории к инженерному решению и провести в жизнь свою концепцию универсальных машин Тьюринга. Мечта становилась реальностью, воплощаясь в компьютер Pilot АСЕ.
ВОПЛОЩЕНИЕ МЕЧТЫ: PILOT АСЕ
В компьютерах, созданных в начале 1950-х годов, было два вида запоминающих устройств: лучевая катодная и ртутные трубки — с их помощью была разработана память с линией задержки. Инженеры той эпохи разработали вид памяти для хранения данных, который в качестве базового принципа использовал время, требующееся
для распространения сигнала в физической среде, например ртути. Тьюринг для Pilot АСЕ выбрал ртутные линии задержки, так как они имели более высокую скорость восстановления данных и были более надежными. На концах ртутной линии располагались пьезоэлектрические элементы, как у микрофонов и громкоговорителей, выполняющие роль преобразователей, превращающих электрические импульсы в ультразвуковую волну (с частотой звука примерно 20000 Гц). После того как волна проходила через ртуть к другому концу трубки, она снова превращалась в электрические импульсы, направляемые на экран. В других компьютерах — EDSAC, CSIRAC и UNIVACI — также использовались ртутные трубки. Например, UNIVAC I, один из первых коммерческих компьютеров 1950-х годов, обладал семью резервуарами памяти, в каждом из которых находились 18 ртутных трубок. Скорость доступа к данным составляла 222 микросекунды — настоящее чудо для той эпохи. Каждая трубка могла хранить в памяти десять слов, например команды программы, длиной 12 бит.Позже ртутные трубки заменили более передовым устройством, барабанами памяти. Это устройство памяти представляло собой металлический цилиндр с поверхностью, покрытой ферромагнитным слоем, сверху располагалась серия головок для чтения и записи. Магнитные барабаны были в ходу вплоть до начала 1960-х годов. В этом запоминающем устройстве для контроля его применения использовался метод чередования: расположение информации на барабане оптимизировалось для последовательного доступа, этот прием применяется на некоторых жестких дисках, при спутниковой или ADSL-передаче данных. С таким запоминающим устройством Pilot АСЕ мог хранить до 4096 последовательностей единиц и нулей. С тех пор в память об этом виде запоминающего устройства некоторые версии операционной системы Unix используют для управления виртуальной памятью директорию /dev/drum (drum — по-английски «барабан»). Благодаря всем этим характеристикам компьютер Тьюринга был одним из самых передовых в ту эпоху: объем его памяти приближался к объему памяти первых компьютеров Macintosh Apple.
Тьюрингу необычайно нравилось исследовать какую-либо тему, отходя от установленных принципов. Обычно он начинал предварительную работу над определенным вопросом без каких-либо консультаций. Несомненно, эта привычка придавала его трудам такое характерное свойство, как оригинальность.
Морис В. Уилкс об Алане Тьюринге. «Компьютеры, вчера и сегодня»
Управление памятью — это еще один вклад Алана Тьюринга в развитие информатики. Запись данных происходила с помощью так называемого метода двух направлений. Память компьютера логически организована как состоящая из ячеек. Положение каждой ячейки идентифицируется числом — адресом памяти. Команды, входящие в программу, например на языке BASIC-256 — print, dim или input, — составляют текст или ключевой код, то, что пишет программист и хранится в памяти компьютера после перевода в машинный код, представляющий собой последовательность единиц и нулей.
В компьютере, разработанном Тьюрингом, каждая команда ассоциировалась с адресом ячейки, где она хранилась, и с адресом следующей для выполнения инструкции. Английский ученый подчеркивал, что компьютер должен соответствовать двум требованиям: быстро выполнять программы и располагать достаточным объемом памяти. С тех пор все компьютеры стремились к максимальному удовлетворению этих критериев. Конструкционно компьютер был основан на электронных лампах в количестве около 800 штук — это было не очень много и повышало надежность, так как снижался риск того, что при работе одна или несколько ламп расплавятся и выполнение программы прервется. Частота в 1 мегагерц делала этот компьютер одним из самых быстрых в Соединенном Королевстве. При выполнении арифметических операций использовалась плавающая точка, то есть можно было, как и на современном компьютере, представить число с множеством десятичных знаков следующим образом: 6,127456 х 10~2 представляло число 0,06127456. Еще одним инновационным решением Тьюринга стала замена части hardware на software. Первые компьютеры использовали для выполнения операций умножения или деления электронные схемы. Так, в американских компьютерах часть задач, например арифметические операции, выполнялась электронными схемами, специально разработанными для этой цели. Тьюринг же заменил схемы программами, хранящимися в памяти, и эта идея была по-настоящему новой и более экономичной. Если мы перенесем данную идею на современный компьютер, то он благодаря частям software, называемым модулями, подпрограммами или приложениями, предложит нам игры и развлечения, поможет совершить подсчеты или воспроизвести видеоклип. Эта особенность в современных машинах унаследована именно от британских компьютеров. В 1947 году Тьюринг изобрел язык программирования, который назвал Abbreviated Code Instructions. Естественно, так как компьютер является универсальной машиной Тьюринга, ему требовался язык программирования для записи программ по каждой задаче.
РЕТРОКОМПЬЮТИНГ: ИСПОЛЬЗОВАНИЕ КОМПЬЮТЕРОВ ИЗ ПРОШЛОГО
Для настоящего любителя компьютеров нет ничего более увлекательного, чем попробовать поработать на старых, известных в истории отрасли компьютерах. Ретрокомпьютинг — это сборка старых компьютеров, включая software и периферийные устройства. Многие такие машины представлены в музеях, например Pilot АСЕ; другие, существовавшие в коммерческой версии, входят в частные коллекции, например Macintosh Classic или ZX Spectrum, или хранятся в собраниях исследовательских институтов, например PDP-11 в Digital Equipment Corporation. Попробовать, как работает старый компьютер, можно также с помощью эмуляторов. Чаще всего с этой целью используется SIMH — кроссплатформенный эмулятор, с помощью которого можно увидеть в работе компьютеры разных моделей PDP или Vax от Digital Equipment Corporation, модели Hewlett-Packard, Honeywell, IBM (1130 7090/7094) и другие. Сегодня очень много людей в мире увлекаются ретрокомпьютингом, что способствует лучшему пониманию истории и эволюции этих устройств.