Семейство продуктов | Манчестерские компьютеры |
---|---|
Предшественник | Манчестер Бэби |
Преемник | Ферранти Марк 1 |
Manchester Mark 1 был одним из самых ранних компьютеров с хранимой программой , разработанным в Университете Виктории в Манчестере , Англия, на основе Manchester Baby (введен в эксплуатацию в июне 1948 года). Работа началась в августе 1948 года, а первая версия была введена в эксплуатацию в апреле 1949 года; программа, написанная для поиска простых чисел Мерсенна, работала без ошибок в течение девяти часов в ночь с 16 на 17 июня 1949 года.
Успешная работа машины широко освещалась в британской прессе, которая использовала фразу «электронный мозг» для описания ее своим читателям. Это описание вызвало реакцию главы отделения нейрохирургии Манчестерского университета, что положило начало длительным дебатам о том, может ли электронный компьютер когда-либо стать по-настоящему творческим .
Mark 1 должен был обеспечить вычислительный ресурс в университете, чтобы позволить исследователям получить опыт практического использования компьютеров, но он также очень быстро стал прототипом, на котором могла быть основана конструкция коммерческой версии Ferranti . Разработка прекратилась в конце 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 во время визита в Манчестерский университет. Локспайзер был настолько впечатлен увиденным, что немедленно инициировал государственный контракт с местной фирмой Ferranti на создание коммерческой версии машины, Ferranti Mark 1. [11] В своем письме компании от 26 октября 1948 года Локспайзер уполномочил компанию «продолжать в том направлении, которое мы обсудили, а именно, построить электронную вычислительную машину по инструкциям профессора ФК Уильямса». [12] С этого момента разработка Mark 1 имела дополнительную цель — предоставить Ferranti проект, на котором можно было бы основывать их коммерческую машину. [13] Правительственный контракт с Ferranti действовал в течение пяти лет с ноября 1948 года и включал предполагаемую сумму в 35 000 фунтов стерлингов в год (что эквивалентно 1,38 миллионам фунтов стерлингов [14] в год в 2023 году). [15] [a]
Baby был разработан командой Фредерика К. Уильямса , Тома Килберна и Джеффа Тутилла . Для разработки Mark 1 к ним присоединились два студента-исследователя, Д. Б. Г. Эдвардс и Дж. Э. Томас; работа началась всерьез в августе 1948 года. Проект вскоре имел двойную цель: предоставить Ferranti рабочий проект, на котором они могли бы основать коммерческую машину, Ferranti Mark 1, и построить компьютер, который позволил бы исследователям получить опыт того, как такая машина может использоваться на практике. Первая из двух версий Manchester Mark 1 — известная как Intermediary Version — была введена в эксплуатацию к апрелю 1949 года. [10] Однако в этой первой версии отсутствовали такие функции, как инструкции, необходимые для программной передачи данных между основным хранилищем и его недавно разработанным магнитным резервным хранилищем, что должно было быть сделано путем остановки машины и ручного инициирования передачи. Эти недостающие функции были включены в версию окончательной спецификации, которая была полностью работоспособна к октябрю 1949 года. [13] Машина содержала 4050 ламп и имела потребляемую мощность 25 киловатт . [16] Для повышения надежности в машине использовались специально изготовленные ЭЛТ производства GEC вместо стандартных устройств, используемых в Baby. [1]
Длина слова Baby с 32 бит была увеличена до 40 бит . Каждое слово могло содержать либо одно 40-битное число, либо две 20-битные программные инструкции. Основное хранилище изначально состояло из двух трубок Уильямса двойной плотности, каждая из которых содержала два массива из 32 x 40-битных слов , известных как страницы , которые подкреплялись магнитным барабаном, способным хранить дополнительные 32 страницы. Емкость была увеличена в версии Final Specification до восьми страниц основного хранилища на четырех трубках Уильямса и 128 страниц магнитного барабана резервного хранилища. [17] Барабан диаметром 12 дюймов (300 мм), [18] изначально известный как магнитное колесо, содержал ряд параллельных магнитных дорожек по всей своей поверхности, каждая со своей собственной головкой чтения/записи. Каждая дорожка содержала 2560 бит, что соответствует двум страницам (2×32×40 бит). Один оборот барабана занимал 30 миллисекунд , за это время обе страницы могли быть переданы в основную память ЭЛТ , хотя фактическое время передачи данных зависело от задержки, времени, которое требовалось странице, чтобы прибыть под головку чтения/записи. Запись страниц на барабан занимала примерно в два раза больше времени, чем чтение. [13] Скорость вращения барабана была синхронизирована с тактовой частотой главного центрального процессора , что позволяло добавлять дополнительные барабаны. Данные записывались на барабан с использованием техники фазовой модуляции , до сих пор известной как манчестерское кодирование . [19]
Набор инструкций машины был увеличен с 7 в Baby до 26 изначально, включая умножение, выполненное на аппаратном уровне. В версии Final Specification он увеличился до 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. Однако машина Final Specification, завершенная в октябре 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 года.
Алгоритм был разработан Максом Ньюманом , главой математического факультета Манчестерского университета , а программа была написана Килберном и Тутиллом. Алан Тьюринг позже написал оптимизированную версию программы, названную Mersenne Express. [19]
Manchester Mark 1 продолжал выполнять полезную математическую работу до 1950 года, включая исследование гипотезы Римана и расчеты в оптике . [25] [26]
В августе 1949 года Тутилл был временно переведен из Манчестерского университета в Ferranti, чтобы продолжить работу над проектом 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 года, была известна как Meg, или мегацикловая машина. Она была меньше и проще, чем Mark 1, и намного быстрее решала математические задачи. Ferranti выпустила версию Meg с трубками Williams, замененными более надежной сердечниковой памятью , продаваемой как Ferranti Mercury . [30]
Успешная работа Manchester Mark 1 и его предшественника Baby широко освещалась в британской прессе, которая использовала фразу «электронный мозг» для описания машин. [31] Лорд Луис Маунтбеттен ранее ввел этот термин в речи, произнесенной в Британском институте радиоинженеров 31 октября 1946 года, в которой он размышлял о том, как могли бы развиваться примитивные компьютеры, доступные тогда. [32] Ажиотаж вокруг сообщения в 1949 году о том, что было первым узнаваемо современным компьютером, вызвал неожиданную реакцию его разработчиков; сэр Джеффри Джефферсон , профессор нейрохирургии в Университете Манчестера, когда его попросили произнести речь Листера 9 июня 1949 года, выбрал в качестве темы «Разум механического человека». Его целью было «развенчать» проект Манчестера. [33] В своем обращении он сказал:
Пока машина не сможет написать сонет или сочинить концерт из-за мыслей и эмоций, а не из-за случайного падения символов, мы не сможем согласиться, что машина равна мозгу – то есть не только писать, но и знать, что она это написала. Ни одна машина не может чувствовать удовольствие от своего успеха, горе, когда ее клапаны перегорают, согреваться лестью, быть несчастной из-за своих ошибок, быть очарованной сексом, быть злой или несчастной, когда она не может получить то, что хочет. [33]
The Times сообщила о речи Джефферсона на следующий день, добавив, что Джефферсон предсказал, что «никогда не наступит день, когда великолепные комнаты Королевского общества будут преобразованы в гаражи для размещения этих новых членов». Это было истолковано как преднамеренное оскорбление Ньюмена, который получил грант от общества для продолжения работы манчестерской команды. В ответ Ньюмен написал последующую статью для The Times , в которой утверждал, что существует близкая аналогия между структурой Mark 1 и человеческим мозгом. [34] Его статья включала интервью с Тьюрингом, который добавил:
Это только предвкушение того, что должно произойти, и только тень того, что будет. Мы должны иметь некоторый опыт работы с машиной, прежде чем мы действительно узнаем ее возможности. Могут пройти годы, прежде чем мы примем новые возможности, но я не вижу, почему бы ей не войти в любую из областей, обычно охватываемых человеческим интеллектом, и в конечном итоге конкурировать на равных условиях. [35]
{{cite web}}
: CS1 maint: другие ( ссылка )