Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Предшественники и концептуалисты.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
911.87 Кб
Скачать

Мрис Уилкс и Том Килбурн – создатели первых компьютеров с хранимой программой

Несмотря на то, что концепцию хранимой в памяти компьютера программы выдвинул в январе 1944 года Джон Эккерт, все же первые машины с хранимой программой заработали в Англии, в Кембриджском и Манчестерском университетах.

Морис Уилкс (род. 26.07.1913г.), профессор Кембриджа, который прослушал курс лекций по машине EDVAC в школе Мура, в ноябре 1946 года начал и в 1949 закончил и запустил компьютер EDSAC, на два года раньше, чем в США заработал EDVAC.

А в Манчестерском университете Том Килбурн (род 1921г., умер в январе 2001 года) вместе с Джеффри Тутиллом создает компьютер с хранимой программой под названием Small-Scale-Experimental-Machine, или сокращенно Baby, еще раньше – в июне 1948 года

Но не только созданием компьютеров с хранимой программой эти два корифея компьютерной науки прославили свои имена, в дальнейшем они выдвинули ряд идей и принципов, которые с успехом применяются в наше время.

В сущности, машина EDSAC была прямой копией проекта EDVAC, но в части, касающейся вопросов программирования, Морис Уилкс явился в некотором роде первооткрывателем. Устав кодировать каждую команду с помощью двоичного кода, он занялся поисками более удобного способа общения с машиной. Первым результатом этих усилий явились новые коды, составленные из букв и коротких слов, взятых из английского языка. Он ввел мнемонику, где каждая команда изображалась одной заглавной буквой: S обозначала «вычитание», T – «передать информацию в память», Z – «остановка машины» и т. д.

Но, пожалуй, более ценным новшеством, чем мнемоника, введенная на EDSAC, явилась библиотека подпрограмм. Надо сказать, что программисты уже были знакомы с понятием подпрограммы. Грей Хоппер и ее коллеги имели блокноты с записью наиболее употребляемых подпрограмм, чтобы в случае необходимости не составлять их заново.

Проблема состояла в том, что адреса расположения команд и переменных подпрограммы в памяти менялись в зависимости от ее размещения в последней. Настройка программ на определенное место в памяти, очевидно, нуждалась в автоматизации, и впервые это было сделано в компьютере EDSAC. Программисты EDSAC начали с написания набора унифицированных подпрограмм, которые и образовали библиотеку. После этого достаточно было ввести лишь короткую команду, чтобы компьютер самостоятельно проделал всю работу по настройке и размещению подпрограммы внутри основной программы.

Морис Уилкс назвал мнемоническую схему для EDSAC и библиотеку подпрограмм собирающей системой (по-английски assembly system – отсюда слово «ассемблер»), поскольку она собирала последовательности подпрограмм. Так что Морис Уилкс по праву считается создателем (1949 год) одного из так называемых языков ассемблера.

В 1958 году был введен в эксплуатацию компьютер EDSAC-II. При конструировании этой машины были впервые воплощены идеи микропрограммирования. Известно, что один из важнейших вопросов, которые приходится решать при конструировании компьютера, заключается в том, как управлять в компьютере потоками электрических сигналов, переносящих информацию. В настоящее время существуют, в принципе, два метода построения систем или устройств управления. Один из методов состоит в том, что системе придают «жесткую», т. е. неизменяемую, схему внутренних соединений и в таком виде присоединяют к другим электрическим цепям процессора. Другой подход, позволяющий получить более гибкую, более простую, а в ряде случаев и более дешевую систему управления, сводится к тому, что систему управления заменяют программой, содержащей подробные инструкции в кодированной форме по управлению машиной. Такую программу помещают в отдельный блок памяти, который входит в состав процессора.

После двух лет исследований Мори Уилкс пришел к выводу, что наилучший подход к конструированию системы управления состоит в том, чтобы рассматривать ее как матрицу, или прямоугольную таблицу, в которой каждый горизонтальный ряд клеток соответствует одному такту, а каждый вертикальный столбец – одной из линий передачи управляющих сигналов. При таком подходе выбор последовательности операций упрощается и сводится к тому, что в клетках каждого горизонтального ряда должны быть проставлены двоичные символы, которые образовали бы нужную комбинацию: для каждой управляющей линии (столбца), которая во время данного такта должна быть включена, следует в соответствующей клетке поставить единицу, а в клетках тех линий, которые должны быть отключены, записать нули.

Аппарат, эквивалентный управляющей матрице, представляет собой простое запоминающее устройство, построенное из повторяющихся элементов. Содержимое каждой ячейки в ряду определяет состояние соответствующей линии управления в течение одного такта. Набор двоичных цифр, образующий одну макроинструкцию, служит теперь просто для того, чтобы выбрать подходящий ряд или последовательность рядов в управляющей памяти. Иными словами, макроинструкция становится адресом, обозначающим ряд. Ввиду этого построение системы управления из задачи конструирования электронного устройства превращается в задачу разработки программного обеспечения. Сложность ее состоит теперь не в том, чтобы подобрать правильную комбинацию схем с жесткими связями для генерации управляющих сигналов, а в том, чтобы правильно определить комбинации единиц и нулей, которые нужно записать в управляющую память

Каждый ряд клеток в управляющей памяти Уилкс назвал микроинструкцией, а каждую последовательность рядов, выполняющих одну макроинструкцию – микропрограммой. Принцип микропрограммирования облегчил понимание функций управления, а благодаря тому, что сложные схемы управления оказались замененными матрицей из повторяющихся запоминающих ячеек, упростилось построение аппаратуры. Теперь стало возможным изменять систему управления, не конструируя заново аппаратную часть. Методу микропрограммирования предстояло стать популярным двумя десятилетиями позже, в начале 70-х годов.

В 1951 Уилкс совместно с двумя коллегами, Дэвидом Уиллером и Стенли Гиллом написал первый учебник по программированию.

К 60-м годам стало ясно, по какому направлению пойдет развитие компьютеров. Как писал в те годы Уилкс, «первые компьютеры в известном смысле были вещью для программиста», и довольно скоро стала очевидна неэффективность такого использования дорогого и дефицитного оборудования. На смену однопрограммному режиму работы пришли многопрограммный режим и режим разделения времени. «Оно не было следствием какого-либо нового принципа, просто стало ясно, что существующие технические средства можно использовать гораздо лучше, чем до сих пор», -- писал М. Уилкс. В США, Англии и СССР развернулись работы по созданию систем с разделением времени.