Манчестер Бэби -Manchester Baby

Манчестер Бэби
Ряд из семи высоких металлических стеллажей, заполненных электронным оборудованием, стоящих перед кирпичной стеной.  Знаки над каждой стойкой описывают функции, выполняемые содержащейся в них электроникой.  Трое посетителей читают с информационных стендов слева от изображения
Реплика младенца в Музее науки и промышленности в Каслфилде , Манчестер .
Также известен как Малогабаритная экспериментальная машина
Разработчик Фредерик Калланд Уильямс ,
Том Килберн
, Джефф Тутилл
Семейство продуктов Манчестерские компьютеры
Дата выхода 21 июня 1948 г.; 74 года назад ( 1948-06-21 )
Память 1 килобит (1024 бита)
Преемник Манчестер Марк 1

Manchester Baby , также известный благодаря проекту репликации как Small-Scale Experimental Machine ( SSEM ), был первым электронным компьютером с хранимой в памяти программой . Он был построен в Манчестерском университете Фредериком К. Уильямсом , Томом Килберном и Джеффом Тутиллом и запустил свою первую программу 21 июня 1948 года.

Baby не задумывался как практичный вычислительный движок, а вместо этого был разработан как испытательный стенд для трубки Вильямса , первой по -настоящему оперативной памяти . Описанный как «маленький и примитивный» через 50 лет после его создания, он был первой работающей машиной, содержащей все элементы, необходимые для современного электронного цифрового компьютера. Как только Baby продемонстрировал осуществимость своей конструкции, в университете был инициирован проект по превращению его в полномасштабную действующую машину Manchester Mark 1 . В свою очередь, Mark 1 быстро стал прототипом Ferranti Mark 1 , первого в мире коммерчески доступного компьютера общего назначения.

У Baby была 32- битная длина слова и память на 32 слова (1 килобит (1024 бита)). Поскольку он был разработан как простейший компьютер с хранимой программой, единственными арифметическими операциями, реализованными аппаратно, были вычитание и отрицание ; другие арифметические операции были реализованы в программном обеспечении. Первая из трех программ, написанных для машины, вычисляла наибольший правильный делитель числа 2 · 18 (262 144), проверяя каждое целое число от 2 · 18 и ниже. Выполнение этого алгоритма заняло бы много времени — и тем самым доказало бы надежность компьютера, поскольку деление осуществлялось путем многократного вычитания делителя. Программа состояла из 17 инструкций и выполнялась около 52 минут, прежде чем был получен правильный ответ 131 072 после того, как Малыш выполнил около 3,5 миллионов операций (при эффективной скорости ЦП около 1100 инструкций в секунду ).

Фон

Художественное представление машины Тьюринга

Первым проектом управляемого программой компьютера была аналитическая машина Чарльза Бэббиджа в 1830-х годах, когда Ада Лавлейс задумала идею первой теоретической программы для вычисления чисел Бернулли. Столетие спустя, в 1936 году, математик Алан Тьюринг опубликовал свое описание того, что стало известно как машина Тьюринга , теоретическая концепция, предназначенная для исследования пределов механических вычислений. Тьюринг представлял себе не физическую машину, а человека, которого он назвал «компьютером», который действовал в соответствии с инструкциями, предоставленными лентой, на которой символы могли считываться и записываться последовательно по мере того, как лента перемещалась под головкой ленты. Тьюринг доказал, что если для решения математической задачи можно написать алгоритм, то машина Тьюринга может выполнить этот алгоритм.

Z3 Конрада Цузе был первым в мире работающим программируемым , полностью автоматическим компьютером с двоичной цифровой арифметической логикой, но ему не хватало условного ветвления машины Тьюринга. 12 мая 1941 года Z3 был успешно представлен аудитории ученых Deutsche Versuchsanstalt für Luftfahrt («Немецкая авиационная лаборатория») в Берлине . Z3 хранил свою программу на внешней ленте, но она была электромеханической, а не электронной. Колосс 1943 года был первым электронным вычислительным устройством, но не универсальной машиной.

ENIAC (1946 г. ) был первым автоматическим компьютером, одновременно электронным и универсальным. Он был полным по Тьюрингу , с условным ветвлением и программируемым для решения широкого круга задач, но его программа удерживалась в состоянии переключателей в коммутационных шнурах, а не в машинно-изменяемой памяти, и на перепрограммирование могло уйти несколько дней. Такие исследователи, как Тьюринг и Цузе, исследовали идею использования памяти компьютера для хранения программы, а также данных, над которыми он работал, и именно математик Джон фон Нейман написал широко распространенную статью, описывающую эту компьютерную архитектуру, которая до сих пор используется почти во всех странах мира. все компьютеры.

Дизайн архитектуры фон Неймана (1947 г.)

Создание компьютера фон Неймана зависело от наличия подходящего устройства памяти для хранения программы. Во время Второй мировой войны исследователи, работавшие над проблемой удаления помех из радиолокационных сигналов, разработали форму памяти с линией задержки , первым практическим применением которой была ртутная линия задержки, разработанная Дж. Преспером Эккертом . Передатчики радаров посылают регулярные короткие импульсы радиоэнергии, отражения от которых отображаются на экране ЭЛТ. Поскольку операторов обычно интересуют только движущиеся цели, было желательно отфильтровать любые отвлекающие отражения от неподвижных объектов. Фильтрация достигалась путем сравнения каждого полученного импульса с предыдущим импульсом и отбрасывания обоих, если они были идентичны, оставляя сигнал, содержащий только изображения любых движущихся объектов. Чтобы сохранить каждый полученный импульс для последующего сравнения, его пропускали через линию передачи, задерживая его точно на время между переданными импульсами.

Тьюринг присоединился к Национальной физической лаборатории (NPL) в октябре 1945 года, когда ученые из Министерства снабжения пришли к выводу, что Великобритании нужна Национальная математическая лаборатория для координации машинных вычислений. В NPL было создано математическое отделение, и 19 февраля 1946 года Алан Тьюринг представил документ, в котором излагался его проект электронного компьютера с хранимой в памяти программой, известного как Автоматическая вычислительная машина (ACE). Это был один из нескольких проектов, предпринятых после Второй мировой войны с целью создания компьютера с хранимой в памяти программой. Примерно в то же время EDVAC разрабатывался в Школе электротехники им. Мура Пенсильванского университета , а математическая лаборатория Кембриджского университета работала над EDSAC .

У NPL не было опыта для создания такой машины, как ACE, поэтому они связались с Томми Флауэрсом из Исследовательской лаборатории Доллис Хилл Главпочтамта . Флауэрс, разработчик Colossus, первого в мире программируемого электронного компьютера, был переведен в другое место и не смог принять участие в проекте, хотя его команда построила несколько ртутных линий задержки для ACE. За помощью также обратились в Исследовательский центр телекоммуникаций (TRE) и к Морису Уилксу из математической лаборатории Кембриджского университета.

Правительственное ведомство, ответственное за NPL, решило, что из всей работы, проводимой TRE от его имени, ACE следует отдать наивысший приоритет. Решение NPL привело к визиту суперинтенданта физического отдела TRE 22 ноября 1946 года в сопровождении Фредерика К. Уильямса и А. М. Аттли, также из TRE. Уильямс возглавлял группу разработчиков TRE, работающую над магазинами CRT для радарных приложений в качестве альтернативы линиям задержки. Уильямс не мог работать над ACE, потому что он уже получил должность профессора в Манчестерском университете , а большинство его схемотехников находились в процессе перевода на факультет атомной энергии. TRE согласился прикомандировать небольшое количество техников для работы под руководством Уильямса в университете и поддержать другую небольшую группу, работающую с Аттли в TRE.

Трубка Вильямса – Килберна

Хотя некоторые ранние компьютеры, такие как EDSAC, вдохновленные конструкцией EDVAC, позже успешно использовали ртутную память с линией задержки , эта технология имела несколько недостатков: она была тяжелой, дорогой и не позволяла осуществлять произвольный доступ к данным. . Кроме того, поскольку данные хранились в виде последовательности акустических волн, распространяющихся через ртутный столб, необходимо было очень тщательно контролировать температуру устройства, поскольку скорость звука в среде зависит от ее температуры. Уильямс видел эксперимент в Bell Labs , демонстрирующий эффективность электронно-лучевых трубок (ЭЛТ) в качестве альтернативы линии задержки для удаления эхосигналов от земли из сигналов радара. Во время работы в TRE, незадолго до того, как он поступил в Манчестерский университет в декабре 1946 года, он и Том Килберн разработали форму электронной памяти, известную как трубка Вильямса или трубка Вильямса-Килберна, основанную на стандартной ЭЛТ: первой электронной случайной памяти. -доступ к цифровому запоминающему устройству. Baby был разработан, чтобы показать, что это практичное запоминающее устройство, продемонстрировав, что хранящиеся в нем данные можно надежно читать и записывать со скоростью, подходящей для использования в компьютере.

Для использования в двоичном цифровом компьютере лампа должна была быть способна хранить одно из двух состояний в каждой из ячеек памяти, соответствующих двоичным цифрам ( битам ) 0 и 1. Она использовала положительный или отрицательный электрический заряд , генерируемый отображение тире или точки в любом месте на экране ЭЛТ, явление, известное как вторичное излучение . Черточка генерировала положительный заряд, а точка - отрицательный заряд, любой из которых мог быть обнаружен детекторной пластиной перед экраном; отрицательный заряд представлял 0, а положительный заряд 1. Заряд рассеялся примерно за 0,2 секунды, но его можно было автоматически обновить на основе данных, полученных детектором.

Трубка Вильямса, используемая в Baby, была основана на CV1131, коммерчески доступной ЭЛТ диаметром 12 дюймов (300 мм), но меньшая 6-дюймовая (150 мм) трубка, CV1097, использовалась в Mark I.

Генезис проекта

Мемориальная доска в честь Уильямса и Килберна в Манчестерском университете.

После разработки компьютера Colossus для взлома кода в Блетчли-парке во время Второй мировой войны Макс Ньюман посвятил себя разработке компьютера, включающего как математические концепции Алана Тьюринга , так и концепцию хранимой программы, описанную Джоном фон Нейманом . В 1945 году он был назначен на кафедру чистой математики Филдена в Манчестерском университете; он взял с собой своих коллег по проекту Colossus Джека Гуда и Дэвида Риса в Манчестер, и там они наняли ФК Уильямса в качестве «контрагента» для нового компьютерного проекта, для которого он заручился финансированием от Королевского общества .

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

—  Дэвид Андерсон, историк

После своего назначения на кафедру электротехники в Манчестерском университете Уильямс нанял своего коллегу по TRE Тома Килберна в качестве прикомандированного. К осени 1947 года пара увеличила емкость трубки Вильямса с одного бита до 2048, организованных в массив 64 на 32 бита, и продемонстрировала, что она может хранить эти биты в течение четырех часов. Инженер Джефф Тутилл присоединился к команде, предоставленной TRE в сентябре 1947 года, и оставался прикомандированным до апреля 1949 года.

«Теперь давайте проясним, прежде чем мы пойдем дальше, что ни Том Килберн, ни я не знали ничего о компьютерах, когда мы прибыли в Манчестерский университет ... Ньюман объяснил нам всю суть работы компьютера».

Килберну было трудно вспомнить, что повлияло на конструкцию его машины:

«[В] тот период я ​​так или иначе знал, что такое цифровой компьютер… Откуда я получил эти знания, я понятия не имею».

Джек Коупленд объясняет, что первая (до Бэби) конструкция Килберна без аккумуляторов (децентрализованная, по терминологии Джека Гуда) была основана на данных Тьюринга, но позже он переключился на машину на основе аккумуляторов (централизованную), которую отстаивал фон Неймана, как написали и научили его Джек Гуд и Макс Ньюман.

Набор из семи рабочих инструкций Baby был примерно подмножеством набора из двенадцати рабочих инструкций, предложенного в 1947 году Джеком Гудом в первом известном документе, в котором для этой машины использовался термин «Baby». Гуд не включал инструкцию «остановиться», а предложенная им инструкция условного прыжка была более сложной, чем та, которую реализовал Бэби.

Разработка и дизайн

Архитектурная схема, показывающая, как были развернуты четыре электронно-лучевые трубки (показаны зеленым).

Хотя Ньюман не играл инженерной роли в разработке «Малыша» или любого из последующих манчестерских компьютеров , он в целом поддерживал и с энтузиазмом относился к проекту и организовал приобретение излишков материалов для его строительства, включая металлические стойки GPO и «…материал двух полных колоссов» из Блетчли.

К июню 1948 года «Малыш» был построен и работал. Он был 17 футов (5,2 м) в длину, 7 футов 4 дюйма (2,24 м) в высоту и весил почти 1 длинную тонну (1,0 т). Машина содержала 550  ламп (вакуумных ламп) — 300  диодов и 250  пентодов — и потребляла 3500 Вт. Арифметический блок был построен на пентодных лампах EF50 , широко применявшихся в военное время. «Малыш» использовал одну трубку Вильямса для обеспечения 32-битных слов оперативной памяти (ОЗУ), вторую для хранения 32-битного аккумулятора , в котором можно было временно хранить промежуточные результаты вычислений, и третью для хранения текущая программная инструкция вместе с ее адресом в памяти. Четвертый ЭЛТ без запоминающей электроники трех других использовался в качестве устройства вывода, способного отображать битовую комбинацию любой выбранной трубки хранения.

Три высоких стойки с электронными платами.
Выходной ЭЛТ находится непосредственно над устройством ввода, по бокам монитора и управляющей электроники.

Каждое 32-битное слово ОЗУ может содержать либо программную инструкцию, либо данные. В программной инструкции биты 0–12 представляют адрес памяти операнда , который будет использоваться, а биты 13–15 определяют операцию , которую необходимо выполнить, например, сохранение числа в памяти; остальные 16 бит не использовались. Набор инструкций Baby с 0 операндами | архитектура с одним операндом означала, что второй операнд любой операции был неявным: аккумулятор или программный счетчик (адрес инструкции); в инструкциях программы указан только адрес данных в памяти.

Слово в памяти компьютера может быть прочитано, записано или обновлено за 360 микросекунд. Выполнение инструкции занимало в четыре раза больше времени, чем доступ к слову из памяти, что давало скорость выполнения инструкций около 700 в секунду. Основное хранилище постоянно обновлялось, и этот процесс занимал 20 миллисекунд, поскольку каждое из 32 слов Baby нужно было прочитать, а затем последовательно обновить.

Младенец представлял отрицательные числа, используя дополнение до двух , как это до сих пор делает большинство компьютеров. В этом представлении значение старшего бита обозначает знак числа; положительные числа имеют ноль в этой позиции, а отрицательные числа - единицу. Таким образом, диапазон чисел, которые могли содержаться в каждом 32-битном слове, был от -2 31 до +2 31  - 1 (десятичное: от -2 147 483 648 до +2 147 483 647).

Программирование

Формат инструкций Baby имел трехбитное поле кода операции , что позволяло использовать максимум восемь (2 3 ) различных инструкций. В отличие от современного соглашения, память машины описывалась младшими значащими цифрами слева; таким образом, единица была представлена ​​​​тремя битами как «100», а не как более обычное «001».

Детский набор инструкций
Бинарный код Исходное обозначение Современная мнемотехника Операция
000 С, Кл СПМ С Перейти к инструкции по адресу, полученному из указанного адреса памяти S (абсолютный безусловный переход)
100 Добавить S, Cl JRP S Перейти к инструкции на программном счетчике плюс (+) относительное значение, полученное из указанного адреса памяти S (относительный безусловный переход)
010 -С, С ЛДН С Берем число из указанного адреса памяти S, инвертируем его и загружаем в аккумулятор
110 в, с СТО С Сохраните число в аккумуляторе по указанному адресу памяти S
001 или
101
СУБ С СУБ С Вычесть число по указанному адресу памяти S из значения в аккумуляторе и сохранить результат в аккумуляторе.
011 Тест CMP Пропустить следующую инструкцию, если аккумулятор содержит отрицательное значение
111 Останавливаться СТП Останавливаться

Неудобные отрицательные операции были следствием отсутствия у Малыша оборудования для выполнения каких-либо арифметических операций, кроме вычитания и отрицания . Было сочтено ненужным создавать сумматор до начала тестирования, поскольку сложение можно легко реализовать путем вычитания, т. е. x + y можно вычислить как -(- x - y ). Следовательно, для сложения двух чисел, X и Y, требуется четыре инструкции:

LDN X // load negative X into the accumulator
SUB Y // subtract Y from the value in the accumulator
STO S // store the result at S
LDN S // load negative value at S into the accumulator

Программы вводились в двоичной форме путем пошагового просмотра каждого слова памяти и использования набора из 32 кнопок и переключателей, известных как устройство ввода, для установки значения каждого бита каждого слова либо в 0, либо в 1. У Ребенка не было считыватель бумажной ленты или перфоратор .

Первые программы

Маленькая электронно-лучевая трубка в ржавой металлической раме
Выход ЭЛТ

Для ЭВМ были написаны три программы. Первая, состоящая из 17 инструкций, была написана Килберном и, насколько можно установить, впервые была запущена 21 июня 1948 года. Она была разработана для нахождения наибольшего правильного множителя 2 · 18 (262 144) путем проверки каждого целого числа из 2 · 18  − . 1 вниз. Деление осуществлялось повторным вычитанием делителя. Ребенку потребовалось 3,5 миллиона операций и 52 минуты, чтобы получить ответ (131 072). Программа использовала восемь слов оперативной памяти в дополнение к 17 словам инструкций, что дает размер программы 25 слов.

В следующем месяце Джефф Тутилл написал исправленную версию программы, а в середине июля Алан Тьюринг, которого в сентябре 1948 года назначили лектором на факультете математики Манчестерского университета, представил третью программу для выполнения деления в большую сторону. К тому времени Тьюринг был назначен на номинальную должность заместителя директора Лаборатории вычислительных машин в университете, хотя лаборатория не стала физической реальностью до 1951 года.

Более поздние разработки

BrewDog назвала свою мини- пивоварню в Манчестере Small Scale Experimental Beer Machine в честь Small-Scale Experimental Machine (SSEM).

Уильямс и Килберн сообщили о Baby в письме в журнал Nature , опубликованном в сентябре 1948 года. Успешная демонстрация машины быстро привела к созданию более практичного компьютера Manchester Mark 1 , работа над которым началась в августе 1948 года. Версия была введена в эксплуатацию к апрелю 1949 года, что, в свою очередь, привело непосредственно к разработке Ferranti Mark 1 , первого в мире коммерчески доступного компьютера общего назначения.

В 1998 году рабочая копия «Малыша», которая сейчас выставлена ​​в Музее науки и промышленности в Манчестере , была построена в честь 50-летия запуска первой программы. В музее регулярно проходят демонстрации машины в действии. В 2008 году в Манчестерском университете была обнаружена оригинальная панорамная фотография всей машины. Фотография, сделанная 15 декабря 1948 года студентом-исследователем Алеком Робинсоном, была воспроизведена в The Illustrated London News в июне 1949 года.

использованная литература

Заметки

Цитаты

Библиография

  • Андерсон, Дэвид (2010), «Спорные истории: демифологизация ранней истории современных британских вычислений», History of Computing. Уроки прошлого , Springer, стр. 58–67.
  • Браун, Луи (1999), Радарная история Второй мировой войны: технические и военные императивы , CRC Press, ISBN 978-0-7503-0659-1
  • Коупленд, Джек (2010), «Коупленд и появление современного компьютера», в Коупленде, Б. Джек (редактор), Колосс. Секреты компьютеров для взлома кодов Блетчли-Парка , Oxford University Press, ISBN 978-0-19-957814-6
  • Коупленд, Джек (2011 г.), «Манчестерский компьютер: пересмотренная история - часть 2: детский компьютер», IEEE Annals of the History of Computing , 33 (январь – март 2011 г.): 22–37, doi : 10.1109 / MAHC. 2010.2 , S2CID  9522437
  • Лавингтон, Саймон (1980), Ранние британские компьютеры: история старинных компьютеров и людей, которые их построили (1-е изд.), Общество прессы Манчестерского университета, ISBN 978-0-7190-0803-0
  • Лавингтон, Саймон (1998), История Манчестерских компьютеров (2-е изд.), Суиндон: Британское компьютерное общество, ISBN 978-1-902505-01-5
  • Лавингтон, Саймон Х. (2019), Ранние вычисления в Великобритании: Ferranti Ltd. и государственное финансирование, 1948–1958 , Springer, ISBN 9783030151034
  • Нэппер, RBE (2000), «Компьютеры Manchester Mark 1», в Рохасе, Рауль; Хасхаген, Ульф (ред.), Первые компьютеры: история и архитектура , MIT Press, стр. 356–377, ISBN . 978-0-262-68137-7

дальнейшее чтение

внешние ссылки