Manchester Mark 1 был одним из первых компьютеров с хранимой программой , разработанный в Манчестерском университете Виктории , Англия , на основе Manchester Baby (вступивший в эксплуатацию в июне 1948 года). Работы начались в августе 1948 года, а первая версия была введена в эксплуатацию к апрелю 1949 года; программа, написанная для поиска простых чисел Мерсенна, работала без ошибок в течение девяти часов в ночь с 16 на 17 июня 1949 года.
Успешная работа машины широко освещалась в британской прессе, которая использовала фразу «электронный мозг», описывая ее своим читателям. Это описание вызвало реакцию заведующего кафедрой нейрохирургии Манчестерского университета, положив начало длительным дебатам о том, сможет ли электронный компьютер когда-либо быть по-настоящему творческим .
Mark 1 должен был предоставить университету вычислительный ресурс, позволяющий исследователям получить опыт практического использования компьютеров, но очень быстро он также стал прототипом, на котором могла быть основана конструкция коммерческой версии Ферранти . Разработка прекратилась в конце 1949 года, а к концу 1950 года машина была списана и заменена в феврале 1951 года Ferranti Mark 1 , первым в мире коммерчески доступным электронным компьютером общего назначения. [1]
Компьютер имеет особое историческое значение из-за новаторского включения индексных регистров — нововведения, которое облегчило программе последовательное чтение массива слов в памяти. В результате разработки машины было получено тридцать четыре патента, и многие идеи, лежащие в основе ее конструкции, были включены в последующие коммерческие продукты, такие как IBM 701 и 702 , а также Ferranti Mark 1. Главные конструкторы Фредерик К. Уильямс и Том Килберн . , на основании своего опыта работы с Mark 1 пришли к выводу, что компьютеры будут использоваться больше в научных целях, чем в чистой математике. В 1951 году они начали разработку Meg , преемника Mark 1, который будет включать в себя модуль с плавающей запятой .
Его также называли Манчестерской автоматической цифровой машиной , или MADM . [2]
В 1936 году математик Алан Тьюринг опубликовал определение теоретической «универсальной вычислительной машины» — компьютера, который хранил на ленте свою программу вместе с обрабатываемыми данными. Тьюринг доказал, что такая машина способна решить любую мыслимую математическую задачу, для которой можно написать алгоритм . [3] В 1940-х годах Тьюринг и другие, такие как Конрад Цузе, разработали идею использования собственной памяти компьютера для хранения программы и данных вместо ленты, [4] но широкое признание получил математик Джон фон Нейман. определение той компьютерной архитектуры с хранимой программой , на которой был основан Manchester Mark 1. [5]
Практическая конструкция компьютера фон Неймана зависела от наличия подходящего запоминающего устройства. «Baby » Манчестерского университета , первый в мире электронный компьютер с хранимой программой, успешно продемонстрировал практичность подхода с хранимой программой и трубки Вильямса , ранней формы компьютерной памяти, основанной на стандартной электронно-лучевой трубке (ЭЛТ). ), запустив свою первую программу 21 июня 1948 года. [6] Ранние электронные компьютеры обычно программировались путем перемонтажа проводов или с помощью вилок и патч-панелей ; в памяти не хранилось отдельной программы, как в современном компьютере. Например, перепрограммирование ENIAC может занять несколько дней . [7] Компьютеры с хранимыми программами также разрабатывались другими исследователями, в частности, Pilot ACE Национальной физической лаборатории , EDSAC Кембриджского университета и EDVAC армии США . [8] Baby и Mark 1 отличались прежде всего использованием ламп Уильямса в качестве устройств памяти вместо ртутных линий задержки . [9]
Примерно с августа 1948 года Baby интенсивно разрабатывался как прототип Manchester Mark 1, первоначально с целью предоставить университету более реалистичную вычислительную мощность. [10] В октябре 1948 года главный научный сотрудник правительства Великобритании Бен Локспейзер продемонстрировал прототип Mark 1 во время визита в Манчестерский университет. Локспайзер был настолько впечатлен увиденным, что немедленно инициировал государственный контракт с местной фирмой Ферранти на производство коммерческой версии машины, Ферранти Марк 1. [11] В своем письме компании от 26 октября 1948 г. Локспайзер уполномочил компанию «продолжать работу в том направлении, которое мы обсуждали, а именно построить электронную вычислительную машину по указанию профессора Ф. К. Уильямса». [12] С этого момента разработка Mark 1 имела дополнительную цель – предоставить Ферранти конструкцию, на которой можно было бы построить их коммерческую машину. [13] Контракт правительства с Ферранти действовал сроком на пять лет, начиная с ноября 1948 года, и предусматривал сумму примерно 35 000 фунтов стерлингов в год (что эквивалентно 1,14 миллионам фунтов стерлингов [14] в год в 2019 году). [15] [а]
Baby был разработан командой Фредерика К. Уильямса , Тома Килберна и Джеффа Тутилла . Для разработки Mark 1 к ним присоединились два студента-исследователя, Д. Б. Г. Эдвардс и Дж. Е. Томас; работа началась всерьез в августе 1948 года. Вскоре проект преследовал двойную цель: предоставить Ферранти работающую конструкцию, на основе которой они могли бы создать коммерческую машину Ferranti Mark 1, и создать компьютер, который позволил бы исследователям получить опыт того, как такую машину можно было бы использовать на практике. Первая из двух версий Manchester Mark 1, известная как промежуточная версия, была введена в эксплуатацию к апрелю 1949 года. [10] Однако в этой первой версии отсутствовали такие функции, как инструкции, необходимые для программной передачи данных между основным хранилищем и новым хранилищем. разработал магазин с магнитной подложкой, который нужно было выполнять, останавливая машину и запуская передачу вручную. Эти недостающие функции были включены в версию окончательной спецификации, которая полностью заработала к октябрю 1949 года. [13] Машина содержала 4050 клапанов и имела потребляемую мощность 25 киловатт . [16] Для повышения надежности в машине использовались специальные ЭЛТ производства GEC вместо стандартных устройств, используемых в Baby. [1]
Длина 32-битного слова Baby была увеличена до 40 бит . Каждое слово могло содержать либо одно 40-битное число, либо две 20-битные программные инструкции. Первоначально основное хранилище состояло из двух трубок Уильямса двойной плотности, каждая из которых содержала два массива слов размером 32 х 40 бит , известных как страницы , с резервным копированием на магнитный барабан , способный хранить еще 32 страницы. В версии окончательной спецификации емкость была увеличена до восьми страниц основного магазина на четырех трубках Уильямса и 128 страниц резервного магазина на магнитных барабанах. [17] Барабан диаметром 12 дюймов (300 мм), [18] первоначально известный как магнитное колесо, содержал ряд параллельных магнитных дорожек вокруг своей поверхности, каждая из которых имела собственную головку чтения/записи. Каждая дорожка содержала 2560 бит, что соответствует двум страницам (2×32×40 бит). Один оборот барабана занимал 30 миллисекунд , за это время обе страницы могли быть перенесены в основную память ЭЛТ , хотя фактическое время передачи данных зависело от задержки — времени, необходимого для того, чтобы страница попала под головку чтения/записи. Запись страниц на барабан занимала примерно вдвое больше времени, чем чтение. [13] Скорость вращения барабана была синхронизирована с тактовой частотой главного центрального процессора , что позволяло добавлять дополнительные барабаны. Данные записывались на барабан с использованием метода фазовой модуляции, до сих пор известного как манчестерское кодирование . [19]
Первоначально набор команд машины был увеличен с 7 в Baby до 26, включая аппаратное умножение. В версии окончательной спецификации это число увеличилось до 30 инструкций. Десять бит каждого слова были выделены для хранения кода инструкции . Стандартное время выполнения инструкции составляло 1,8 миллисекунды, но умножение происходило гораздо медленнее, в зависимости от размера операнда . [20]
Самым значительным нововведением машины обычно считается включение в нее индексных регистров , что является обычным явлением в современных компьютерах. В Baby было два регистра, реализованных в виде ламп Вильямса: аккумулятор (A) и счетчик программ (C). Поскольку A и C уже были назначены, канал, содержащий два индексных регистра, первоначально известный как B-линии, получил имя B. Содержимое регистров можно было использовать для модификации программных инструкций, что позволяло удобно перебирать массив числа, хранящиеся в памяти. У Mark 1 также была четвертая трубка (M) для хранения множимого и множителя для операции умножения. [19]
Из 20 бит, отведенных для каждой инструкции программы, 10 использовались для хранения кода инструкции , что позволяло создать 1024 (2 10 ) различных инструкций. Изначально в машине их было 26, [10] их количество увеличилось до 30, когда были добавлены функциональные коды для программного управления передачей данных между магнитным барабаном и основным накопителем электронно-лучевой трубки (ЭЛТ). В промежуточной версии программы вводились с помощью клавишных переключателей, а выходные данные отображались в виде серии точек и тире на электронно-лучевой трубке, известной как устройство вывода, так же, как и в Baby, на основе которого был разработан Mark 1. Однако окончательная спецификация машины, завершенная в октябре 1949 года, была дополнена телетайпом с считывателем бумажной ленты с пятью отверстиями и дыроколом . [13]
Математик Алан Тьюринг , назначенный на номинальную должность заместителя директора Лаборатории вычислительных машин Манчестерского университета в сентябре 1948 года, [10] разработал схему кодирования по основанию 32, основанную на стандартном 5-битном телетайпном коде ITA2 , который позволял программам и данным записывать и читать с бумажной ленты. [21] Система ITA2 отображает каждое из 32 возможных двоичных значений, которые могут быть представлены в 5 битах (2 5 ), в один символ. Таким образом, «10010» представляет «D», «10001» представляет «Z» и так далее. Тьюринг изменил лишь некоторые стандартные кодировки; например, 00000 и 01000, которые означают «нет эффекта» и «перевод строки» в коде телетайпа, были представлены символами «/» и «@» соответственно. Двоичный ноль, представленный косой чертой, был наиболее распространенным символом в программах и данных, что приводило к последовательности, записанной как «///////////////». Один из первых пользователей предположил, что выбор Тьюрингом косой черты был его подсознательным выбором, изображением дождя, видимого через грязное окно, и отражающим «известно мрачную» погоду Манчестера. [22]
Поскольку длина слова Mark 1 составляла 40 бит, для кодирования каждого слова требовалось восемь 5-битных символов телетайпа. Так, например, двоичное слово:
будет представлен на бумажной ленте как ZDSLZWRF. Содержимое любого хранимого слова также можно было установить с помощью клавиатуры телетайпа и вывести на принтер. Внутри машина работала в двоичном формате, но была способна выполнять необходимые преобразования из десятичных чисел в двоичные и двоично-десятичные для ввода и вывода соответственно. [18]
Для Mark 1 не был определен язык ассемблера . Программы нужно было писать и отправлять в двоичной форме, закодированной восемью 5-битными символами для каждого 40-битного слова; Программистам было предложено запомнить модифицированную схему кодирования ITA2, чтобы облегчить свою работу. Данные считывались и записывались с перфоратора бумажной ленты под управлением программы. У Mark 1 не было системы аппаратных прерываний ; программа продолжала работать после того, как была инициирована операция чтения или записи, пока не встретилась другая инструкция ввода/вывода, после чего машина ждала завершения первой. [23]
У Mark 1 не было операционной системы ; единственным системным программным обеспечением было несколько основных процедур ввода и вывода. [1] Как и в случае с Baby, из которого он был разработан, и в отличие от установленного математического соглашения, память машины была организована так, чтобы младшие цифры располагались слева; таким образом, единица была представлена пятью битами как «10000», а не как более традиционный «00001». Отрицательные числа представлялись с использованием дополнения до двух , как и сегодня большинство компьютеров. В этом представлении значение старшего бита обозначает знак числа; положительные числа имеют ноль в этой позиции, а отрицательные числа — единицу. [23] Таким образом, диапазон чисел, которые могли храниться в каждом 40-битном слове, составлял от -2 39 до +2 39 - 1 (десятичные числа: от -549 755 813 888 до +549 755 813 887).
Первой реалистичной программой, запущенной на Mark 1, был поиск простых чисел Мерсенна в начале апреля 1949 года [24] , которая работала без ошибок в течение девяти часов в ночь с 16 на 17 июня 1949 года.
Алгоритм был задан Максом Ньюманом , главой математического факультета Манчестерского университета , а программу написали Килберн и Тутилл. Позже Алан Тьюринг написал оптимизированную версию программы, получившую название «Экспресс Мерсенна». [19]
Manchester Mark 1 продолжал выполнять полезную математическую работу до 1950 года, включая исследование гипотезы Римана и расчеты в оптике . [25] [26]
В августе 1949 года Тутилла временно перевели из Манчестерского университета в Ферранти, чтобы продолжить работу над дизайном Ferranti Mark 1, и он провел четыре месяца, работая с компанией. [27] Manchester Mark 1 был разобран и сдан на слом в августе 1950 года, [28] заменен несколькими месяцами позже первым Ferranti Mark 1, первым в мире коммерчески доступным компьютером общего назначения. [1]
В период с 1946 по 1949 год средний размер команды дизайнеров, работавшей над Mark 1 и его предшественником Baby, составлял около четырех человек. За это время на основе работы команды было получено 34 патента либо Министерством снабжения , либо его преемником, Национальной корпорацией исследований и развития . [2] В июле 1949 года IBM пригласила Уильямса в Соединенные Штаты с полностью оплаченной поездкой, чтобы обсудить дизайн Mark 1. Впоследствии компания лицензировала несколько запатентованных идей, разработанных для машины, в том числе лампу Уильямса, при разработке своих собственных компьютеров 701 и 702 . [29] Самым значительным дизайнерским наследием Manchester Mark 1, пожалуй, было включение в него индексных регистров, патент на которые был выдан на имена Уильямса, Килберна, Тутилла и Ньюмана. [2]
Килберн и Уильямс пришли к выводу, что компьютеры будут использоваться больше в научных целях, чем в чистой математике, и решили разработать новую машину, которая будет включать в себя устройство с плавающей запятой . Работа началась в 1951 году, и получившаяся в результате машина, запустившая свою первую программу в мае 1954 года, была известна как Мэг, или мегацикловая машина. Он был меньше и проще, чем Mark 1, и намного быстрее решал математические задачи. Ферранти произвел версию Мэг с лампами Уильямса, замененными более надежной основной памятью , продаваемой как Ферранти Меркурий . [30]
Успешная работа Manchester Mark 1 и его предшественника Baby широко освещалась в британской прессе, которая использовала для описания машин фразу «электронный мозг». [31] Лорд Луис Маунтбеттен ранее ввел этот термин в речи, произнесенной в Британском институте радиоинженеров 31 октября 1946 года, в которой он размышлял о том, как могли бы развиваться примитивные компьютеры, доступные тогда. [32] Ажиотаж вокруг сообщения в 1949 году о первом узнаваемом современном компьютере вызвал неожиданную реакцию его разработчиков; Сэр Джеффри Джефферсон , профессор нейрохирургии Манчестерского университета, когда его попросили произнести речь Листера 9 июня 1949 года, выбрал в качестве темы «Разум механического человека». Его целью было «развенчать» манчестерский проект. [33] В своем обращении он сказал:
Только когда машина сможет написать сонет или сочинить концерт благодаря ощущаемым мыслям и эмоциям, а не из-за случайного падения символов, мы сможем согласиться с тем, что машина равна мозгу, то есть не только написать это, но и знать, что это написала она. . Ни одна машина не может чувствовать удовольствие от своего успеха, горе, когда ее клапаны перегорают, согреваться лестью, быть несчастной из-за своих ошибок, быть очарованной сексом, злиться или несчаститься, когда она не может получить то, что хочет. [33]
«Таймс» сообщила о речи Джефферсона на следующий день, добавив, что Джефферсон предсказал, что «никогда не наступит тот день, когда милые помещения Королевского общества будут превращены в гаражи для размещения этих новых людей». Это было истолковано как умышленное пренебрежение к Ньюману, который получил от общества грант на продолжение работы манчестерской команды. В ответ Ньюман написал дополнительную статью для The Times , в которой заявил, что существует тесная аналогия между структурой Марка-1 и человеческим мозгом. [34] Его статья включала интервью с Тьюрингом, который добавил:
Это лишь предвкушение того, что должно произойти, и лишь тень того, что будет. Нам нужно иметь некоторый опыт работы с машиной, прежде чем мы действительно узнаем ее возможности. Могут пройти годы, прежде чем мы освоимся с новыми возможностями, но я не понимаю, почему бы им не войти ни в одну из областей, обычно охватываемых человеческим интеллектом, и в конечном итоге конкурировать на равных. [35]
{{cite web}}
: CS1 maint: другие ( ссылка )