stringtranslate.com

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

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

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

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

Фон

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

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

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

ЭНИАК (1946 г.) был первым автоматическим компьютером, который был одновременно электронным и универсальным. Он был полным по Тьюрингу , с условным ветвлением и программируемым для решения широкого круга задач, но его программа хранилась в состоянии переключателей в патч-кордах, а не в машинно-изменяемой памяти, и на перепрограммирование могло уйти несколько дней. [3] Такие исследователи, как Тьюринг и Цузе, исследовали идею использования памяти компьютера для хранения программы, а также данных, над которыми он работал, [10] и именно математик Джон фон Нейман написал широко распространенную статью, описывающую этот компьютер. архитектура, до сих пор используемая почти во всех компьютерах. [11]

Проект архитектуры фон Неймана (1947)

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

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

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

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

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

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

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

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

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

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

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

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

-  Дэвид Андерсон, историк [23]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LDN X // загружаем отрицательный X в аккумуляторSUB Y // вычитаем Y из значения в аккумулятореSTO S // сохраняем результат в SLDN S // загружаем отрицательное значение в S в аккумулятор

Программы вводились в двоичной форме путем последовательного прохождения каждого слова памяти и использования набора из 32 кнопок и переключателей, известных как устройство ввода, для установки значения каждого бита каждого слова в 0 или 1. У Младенца не было устройство для чтения бумажной ленты или перфоратор . [35] [36] [37]

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

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

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

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

Более поздние события

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

Наследие

BrewDog назвала свою мини-пивоварню в Манчестере « Маленькой экспериментальной пивной машиной» в честь Малой экспериментальной машины (SSEM).

В 1998 году рабочая копия «Младенца», которая сейчас выставлена ​​в Музее науки и промышленности в Манчестере , была построена в честь 50-летия запуска первой программы. В музее регулярно проводятся демонстрации машины в работе. [42]

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

Рекомендации

Примечания

  1. ^ ab Поскольку счетчик программы увеличивался в конце процесса декодирования, сохраненный адрес должен был быть целевым адресом -1.
  2. ^ Функциональные биты были декодированы лишь частично, чтобы сэкономить логические элементы. [34]

Цитаты

  1. ^ Бертон, Кристофер П. (2005). «Репликация Манчестерского ребенка: мотивы, методы и послания из прошлого». IEEE Анналы истории вычислений . 27 (3): 44–60. дои : 10.1109/MAHC.2005.42. S2CID  1852170.
  2. ^ ab Enticknap, Николас (лето 1998 г.), «Золотой юбилей компьютеров», Resurrection , The Computer Conservation Society (20), ISSN  0958-7403, заархивировано из оригинала 9 января 2012 г. , получено 19 апреля 2008 г.
  3. ^ ab «Ранние электронные компьютеры (1946–51)», Манчестерский университет, заархивировано из оригинала 5 января 2009 г. , получено 16 ноября 2008 г.
  4. ^ ab Napper, RBE, Введение в Mark 1, Манчестерский университет, архивировано из оригинала 26 октября 2008 г. , получено 4 ноября 2008 г.
  5. Бриггс, Хелен (21 июня 2018 г.). «Ребенок, открывший современную компьютерную эпоху». Би-би-си . Проверено 21 июня 2018 г.
  6. ^ Тьюринг, AM (1936), «О вычислимых числах с применением к проблеме Entscheidungs» (PDF) , Труды Лондонского математического общества , 2 (опубликовано в 1936–1937), том. 42, стр. 230–265, doi : 10.1112/plms/s2-42.1.230, S2CID  73712 , получено 18 сентября 2010 г.
  7. ^ "Rechenhilfe für Ingenieure Konrad Zuses Idee vom ersten Computer der Welt wurde an der Technischen Hochschule geboren" (на немецком языке), Технический университет Берлина , заархивировано из оригинала 13 февраля 2009 г.
  8. ^ "JVA - История вычислений" . Джон Винсент Атанасов и рождение электронных цифровых вычислений . Инициативный комитет JVA и Университет штата Айова. 2011.
  9. ^ аб Коупленд (2010), стр. 91–100.
  10. Цузе, Хорст, «Конрад Цузе и компьютер с хранимыми программами», EPE Online , Wimborne Publishing, заархивировано из оригинала 10 декабря 2007 г. , получено 16 ноября 2008 г.
  11. ^ Лавингтон (1998), с. 7
  12. ^ Лавингтон (1998), с. 1
  13. ^ Браун (1999), с. 429
  14. ^ Лавингтон (1998), с. 9
  15. ^ abcdefgh Lavington (1980), глава 5
  16. ^ Лавингтон (1998), стр. 8–9.
  17. ^ Лавингтон (1998), с. 5
  18. ^ Уилкс, М.В .; Ренвик, В. (1950), «EDSAC (автоматический калькулятор с электронным запоминающим устройством)», Mathematics of Computation , 4 (30): 61–65, doi : 10.1090/s0025-5718-1950-0037589-7 , получено 21 июня. 2015 год
  19. ^ «Ранние компьютеры в Манчестерском университете», Resurrection , The Computer Conservation Society, 1 (4), лето 1992 г., ISSN  0958-7403, заархивировано из оригинала 28 августа 2017 г. , получено 19 апреля 2008 г.
  20. ^ Лавингтон (1998), стр. 13, 24.
  21. ^ Лавингтон (1998), с. 12
  22. ^ Лавингтон (1998), стр. 8, 12.
  23. ^ Аб Андерсон, Дэвид (2007). «Макс Ньюман: тополог, взломщик кодов и пионер вычислений». IEEE Анналы истории вычислений . 29 (3): 76–81. дои : 10.1109/MAHC.2007.4338447.
  24. ^ abc Napper (2000), стр. 366
  25. ^ аб Лавингтон (1998), с. 13
  26. ^ Лавингтон (1998), с. 16
  27. ^ abc Коупленд 2011
  28. ^ И. Дж. Гуд, «Детская машина», примечание, 4 мая 1947 г., в Good, Early Notes on Electronic Computers (Библиотеки Технологического университета Вирджинии, специальные коллекции, сборник Ms1982-018, статьи Ирвинга Дж. Гуда)
  29. ^ Лавингтон (1998), стр. 6–7.
  30. ^ Андерсон (2010), с. 61
  31. ^ «Младенец: первый в мире компьютер с хранимой программой» (PDF) , Манчестерский музей науки и промышленности, заархивировано из оригинала (PDF) 4 марта 2009 г. , получено 15 ноября 2008 г.
  32. ^ abc Napper (2000), стр. 367
  33. ^ аб Лавингтон (1998), с. 14
  34. ^ abc Lavington (1998), с. 15
  35. ^ Нэппер (2000), стр. 366–367.
  36. ^ «Справочное руководство программиста SSEM» . curation.cs.manchester.ac.uk . A3.3 Переключатели управления . Проверено 17 мая 2018 г.
  37. ^ "Манчестерский детский симулятор" . www.davidsharp.com . Картинки, Как управлять Baby/Emulator , Обсуждение исторической точности эмулятора , Техническое введение в программирование Baby (v4.0) . Проверено 17 мая 2018 г.
  38. ^ аб Лавингтон (1998), стр. 16–17.
  39. Тутилл, Джефф (лето 1998 г.), «Оригинальная оригинальная программа», Resurrection , The Computer Conservation Society (20), ISSN  0958-7403, заархивировано из оригинала 9 января 2012 г. , получено 19 апреля 2008 г.
  40. ^ аб Лавингтон (1998), с. 17
  41. ^ Уильямс, ФК ; Килберн, Т. (25 сентября 1948 г.), «Electronic Digital Computers», Nature , 162 (4117): 487, Бибкод : 1948Natur.162..487W, doi : 10.1038/162487a0 , S2CID  4110351, заархивировано из оригинала 6 апреля. 2009 , дата обращения 22 января 2009 г.
  42. ^ «Знакомьтесь, Бэби». Музей науки и промышленности.
  43. ^ Хайфилд, Роджер (17 июня 2008 г.), «Найдена фотография прадеда современных компьютеров», The Daily Telegraph , получено 20 июня 2008 г.
  44. ^ "Мертвый медиа-бит: Детка" . 20 июня 2008 года . Проверено 21 июня 2017 г.

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

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

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