ЭДСАК
Разработчик | Морис Уилкс и его команда в математической лаборатории Кембриджского университета. |
---|---|
Производитель | Кембриджский университет |
Поколение | 1 |
Дата выпуска | 6 мая 1949 г |
Продолжительность жизни | 1949–1958 |
Снято с производства | да |
Отгружено единиц | 1 |
Операционная система | Никто |
Процессор | Дефорсированные термоэмиссионные клапаны |
Память | 512 17-битных слов, обновленных в 1952 году до 1024 17-битных слов ( ртутные линии задержки, стабилизированные по температуре ) |
Отображать | Телетайп |
Вход | с пятью отверстиями перфолента |
Власть | 11 кВт |
Назад совместимость | Никто |
Преемник | ЭДСАК 2 и ЛЕО I |
Связанный | ЭДВАК |
Электронный автоматический калькулятор с памятью задержки ( EDSAC ) был одним из первых британских компьютеров. [1] Вдохновленная Джона фон Неймана оригинальным первым проектом отчета о EDVAC , машина была построена Морисом Уилксом и его командой в математической лаборатории Кембриджского университета в Англии. EDSAC был вторым электронным цифровым компьютером с хранимой программой, поступившим на регулярную службу. [2]
Позже проект был поддержан компанией J. Lyons & Co. Ltd. , намеревавшейся разработать коммерчески прикладной компьютер и преуспевшей в разработке компанией Lyons LEO I на основе конструкции EDSAC. Работа над EDSAC началась в 1947 году. [3] и свои первые программы он запустил 6 мая 1949 года, когда рассчитал таблицу квадратных чисел. [4] и список простых чисел . [5] [6] EDSAC был окончательно закрыт 11 июля 1958 года, его заменил EDSAC 2 , который использовался до 1965 года. [7]
Технический обзор [ править ]
Физические компоненты [ править ]
Как только EDSAC заработал, он начал обслуживать исследовательские нужды университета. В нем использовались ртутные линии задержки для памяти и с пониженными номиналами вакуумные лампы для логики. Потребляемая мощность составила 11 кВт электроэнергии. [8] [9] Время цикла составляло 1,5 мс для всех обычных инструкций, 6 мс для умножения. с пятью отверстиями Ввод осуществлялся через перфоленту , а вывод осуществлялся через телетайп .
Первоначально регистры были ограничены аккумулятором и регистром умножителя. В 1953 году Дэвид Уиллер , вернувшись из Университета Иллинойса , разработал индексный регистр как расширение оригинального оборудования EDSAC.
Привод на магнитной ленте был добавлен в 1952 году, но никогда не работал достаточно хорошо, чтобы его можно было использовать в реальной жизни. [10]
До 1952 года доступная основная память (инструкции и данные) составляла всего 512 18-битных слов, резервного хранилища не было. [11] Линии задержки (или «танки») были организованы в две батареи по 512 слов каждая. Вторая батарея вступила в строй в 1952 году. [10]
Полное хранилище линий задержки на 1024 слова не было доступно до 1955 или начала 1956 года. [12] ограничение программ примерно до 800 слов до тех пор.
Джон Линдли (дипломник 1958–1959 гг.) упомянул «невероятную трудность, с которой нам когда-либо приходилось изготовлять один правильный кусок бумажной ленты с помощью грубого и ненадежного самодельного оборудования для перфорации, печати и проверки, доступного в конце 50-х годов». [13]
Память и инструкции [ править ]
Основная память EDSAC состояла из 1024 ячеек, хотя изначально было установлено только 512 ячеек. Каждый содержал 18 бит, но самый верхний бит всегда был недоступен из-за проблем с синхронизацией, поэтому использовались только 17 бит. Команда состояла из пятибитного кода инструкции, одного запасного бита, 10-битного операнда (обычно адреса памяти) и одного бита длины, определяющего, использует ли команда 17-битный или 35-битный операнд (два последовательных бита). слова, с прямым порядком байтов ). Все коды инструкций были по замыслу представлены одной мнемонической буквой, так что , например, в инструкции Add использовался код символа EDSAC для буквы A.
Внутри EDSAC использовались с дополнением до двух двоичные числа . Числа имели длину 17 бит (одно слово) или 35 бит (два слова). Необычно то, что множитель был разработан для обработки чисел как дробей с фиксированной запятой в диапазоне -1 ≤ x <1, т. е. двоичная точка находилась сразу справа от знака. Аккумулятор . мог хранить 71 бит, включая знак, что позволяло умножать два длинных (35-битных) числа без потери точности
Доступные инструкции были:
- Добавлять
- Вычесть
- Умножить и сложить
- И-и-сложение (так называемое «Сопоставление»)
- Сдвиг влево
- Арифметический сдвиг вправо
- Загрузить регистр множителя
- Сохранить (и при необходимости очистить) аккумулятор
- Условный переход
- Прочитать входную ленту
- Печать символа
- Круглый аккумулятор
- Нет операции
- Останавливаться
Не было инструкции деления (но были предоставлены различные подпрограммы деления) и не было возможности напрямую загрузить число в аккумулятор (для этого была необходима инструкция «Сохранить и обнулить аккумулятор», за которой следовала инструкция «Сложить»). Не было ни инструкции безусловного перехода, ни инструкции вызова процедуры – ее еще не изобрели.
Морис Уилкс обсуждал режимы относительной адресации для EDSAC в статье, опубликованной в 1953 году. Он вносил предложения по облегчению использования подпрограмм . [14]
Системное программное обеспечение [ править ]
Первоначальные команды были жестко закреплены на наборе односелекторных переключателей и загружались в младшие слова памяти при запуске. К маю 1949 года первоначальные заказы предоставили примитивный перемещаемый ассемблер, использующий преимущества описанной выше мнемонической конструкции, всего в 31 слове. Это был первый в мире ассемблер и, возможно, положил начало мировой индустрии программного обеспечения. Доступна симуляция EDSAC, а также полное описание первоначальных заказов и первых программ. [15]
Первым расчетом, выполненным EDSAC, была программа, запущенная 6 мая 1949 года для вычисления квадратных чисел . [16] Программу написала Беатрис Уорсли , приехавшая из Канады для изучения машины. [17] [16]
Машину использовали другие сотрудники университета для решения реальных задач, и были разработаны многие ранние методы, которые теперь включены в операционные системы.
Пользователи готовили свои программы, записывая их (на ассемблере) на бумажную ленту. Вскоре они научились держать бумажную ленту на свету и считывать коды. Когда программа была готова, ее подвешивали на веревке возле устройства чтения бумажной ленты. Присутствовавшие в течение дня механизаторы выбирали с линии очередную ленту и загружали ее в EDSAC. Сегодня это, конечно, хорошо известно как очереди заданий. Если он что-то печатал, то лента и распечатка возвращались пользователю, в противном случае ему сообщалось, на каком участке памяти оно остановилось. Отладчиков некоторое время не было, но экран электронно-лучевой трубки можно было настроить на отображение содержимого определенного фрагмента памяти. Это использовалось, например, для того, чтобы увидеть, сходится ли число. К знаковому биту аккумулятора был подключен громкоговоритель; опытные пользователи знали здоровые и нездоровые звуки программ, особенно программы «зависали» в цикле.
В нерабочее время некоторым «авторизованным пользователям» разрешалось самостоятельно запускать машину, что продолжалось до поздней ночи, пока не лопнул клапан – что, по словам одного из таких пользователей, обычно случалось. [18] Об этом упоминает Фред Хойл в своем романе «Черное облако».
Техника программирования [ править ]
Ранним программистам приходилось использовать методы, которые сегодня осуждаются, в частности, использование самомодифицирующегося кода . Поскольку индексный регистр появился намного позже, единственным способом доступа к массиву было изменение того, на какую ячейку памяти ссылается конкретная инструкция.
Дэвиду Уилеру , который получил первую в мире степень доктора компьютерных наук, работая над этим проектом, приписывают изобретение концепции подпрограммы. Пользователи писали программы, которые вызывали подпрограмму путем перехода к началу подпрограммы с адресом возврата (т. е. адресом плюс один самого перехода) в аккумуляторе ( прыжок Уиллера ). По соглашению подпрограмма ожидала этого, и первое, что она сделала, — это изменила свою заключительную инструкцию перехода на этот адрес возврата. Можно вызывать несколько вложенных подпрограмм, если пользователь знает длину каждой из них, чтобы вычислить место, к которому нужно перейти; рекурсивные вызовы были запрещены. Затем пользователь копировал код подпрограммы с мастер-ленты на свою собственную ленту после завершения своей программы. (Однако Алан Тьюринг обсуждал подпрограммы в статье 1945 года о предложениях по проектированию NPL ACE , зайдя так далеко, что изобрел концепцию стека адресов возврата, которая допускала бы рекурсию. [20] )
Отсутствие индексного регистра также создавало проблему для автора подпрограммы, поскольку они не могли заранее знать, в каком месте памяти будет загружена подпрограмма, и, следовательно, они не могли знать, как обращаться к каким-либо областям кода, которые использовались. для хранения данных (так называемые «псевдозаказы»). Проблема была решена использованием процедуры первоначального ввода, которая отвечала за загрузку подпрограмм с перфоленты в память. При загрузке подпрограммы она отмечает начальное местоположение и при необходимости увеличивает ссылки на внутреннюю память. Таким образом, как писал Уилкс, «код, используемый для представления команд снаружи машины, отличается от кода, используемого внутри, причем различия продиктованы разными требованиями программиста, с одной стороны, и схем управления машиной — с другой». . [21]
Программисты EDSAC использовали специальные методы, чтобы максимально эффективно использовать ограниченную доступную память. Например, в момент загрузки подпрограммы с перфоленты в память может случиться так, что придется вычислить определенную константу, константу, которая в дальнейшем не потребует пересчета. В этой ситуации константа будет рассчитываться в «интерлюдии». Код, необходимый для вычисления константы, будет предоставлен вместе с полной подпрограммой. После того как первоначальная процедура ввода загрузила код расчета, она передала управление этому коду. Как только константа будет вычислена и записана в память, управление вернется к исходной процедуре ввода, которая продолжит записывать оставшуюся часть подпрограммы в память, но сначала скорректирует ее начальную точку, чтобы перезаписать код, вычисливший константу. . Это позволяло вносить довольно сложные изменения в подпрограмму общего назначения, не увеличивая ее окончательный размер в памяти, чем если бы она была адаптирована к конкретным обстоятельствам. [22]
Прикладное программное обеспечение [ править ]
Концепция подпрограмм привела к появлению значительной библиотеки подпрограмм. К 1951 году для общего использования было доступно 87 подпрограмм следующих категорий: арифметика с плавающей запятой ; арифметические действия над комплексными числами ; проверка; разделение; возведение в степень ; процедуры, относящиеся к функциям; дифференциальные уравнения ; специальные функции; степенной ряд ; логарифмы ; разнообразный; печать и верстка; квадратура ; читать (ввод); n- й корень; тригонометрические функции ; операции подсчета (имитирующие повторение циклов до , циклов while и циклов for ); векторы ; и матрицы .
Первый язык ассемблера появился для EDSAC и вдохновил несколько других языков ассемблера:
Год | Имя | Главный разработчик, компания |
---|---|---|
1951 | Язык региональной ассамблеи | Морис Уилкс |
1951 | Вихревой ассемблер | Чарльз Адамс и Джек Гилмор в Массачусетском технологическом институте |
1951 | Рочестерский ассемблер | Нат Рочестер |
Применение EDSAC [ править ]
EDSAC был разработан специально для того, чтобы стать частью службы поддержки вычислений математической лаборатории. [23] Первая научная статья, опубликованная с использованием компьютера для вычислений, была написана Рональдом Фишером . [ нужна ссылка ] Уилкс и Уиллер использовали EDSAC, чтобы решить для него дифференциальное уравнение, касающееся частот генов. [24] В 1951 году Миллер и Уилер с помощью машины открыли 79-значное простое число. [25] – самый крупный из известных на тот момент.
Лауреаты трех Нобелевских премий – Джон Кендрю и Макс Перуц (химия, 1962 г.), Эндрю Хаксли (медицина, 1963 г.) и Мартин Райл (физика, 1974 г.) – извлекли выгоду из революционной вычислительной мощности EDSAC. В своих речах на вручении премии каждый из них признал роль, которую EDSAC сыграл в их исследовании.
В начале 1960-х годов Питер Суиннертон-Дайер использовал компьютер EDSAC для расчета количества точек по модулю p (обозначаемого N p ) для большого количества простых чисел p на эллиптических кривых, ранг которых был известен. Основываясь на этих численных результатах, Берч и Суиннертон-Дайер (1965) предположили, что N p для кривой E с рангом r подчиняется асимптотическому закону, гипотеза Берча и Суиннертона-Дайера , считавшаяся одной из главных нерешенных проблем математики по состоянию на 2024 год. .
«Мозг» [компьютер] однажды может опуститься до нашего уровня [простых людей] и помочь нам с расчетами подоходного налога и бухгалтерским учетом. Но это предположения и пока никаких признаков этого нет.
- Британская газета The Star в новостной статье в июне 1949 года о компьютере EDSAC, задолго до эры персональных компьютеров. [26]
Игры [ править ]
В 1952 году Сэнди Дуглас разработал OXO , версию крестиков-ноликов (крестики-нолики) для EDSAC, с графическим выводом на 6-дюймовую электронно-лучевую трубку VCR97 . Вполне возможно, что это была первая в мире видеоигра . [27] [28]
Другая видеоигра была создана Стэнли Гиллом и включала точку (называемую овцой), приближающуюся к линии, на которой можно было открыть одни из двух ворот. [29] Игра Стэнли Гилла контролировалась с помощью светового луча устройства чтения бумажной ленты EDSAC. [29] Прерывание его (например, когда игрок кладет в него руку) откроет верхние ворота. [29] Если оставить балку нетронутой, нижние ворота откроются. [29]
Дальнейшие разработки [ править ]
Преемник EDSAC, EDSAC 2 , был введен в эксплуатацию в 1958 году.
версию Autocode для EDSAC 2 , ALGOL разработал В 1961 году Дэвид Хартли -подобного языка программирования высокого уровня для учёных и инженеров .
В середине 1960-х годов планировался преемник EDSAC 2, но вместо этого был сделан переход на Titan , прототип Atlas 2, разработанный на основе компьютера Atlas Манчестерского университета , Ферранти и Плесси .
Проект реплики EDSAC
13 января 2011 года Общество охраны компьютеров объявило, что планирует построить рабочую копию EDSAC в Национальном музее вычислительной техники (TNMoC) в Блетчли-парке под руководством Эндрю Герберта , который учился у Мориса Уилкса. [30] Первые части реплики были запущены в эксплуатацию в ноябре 2014 года. [31] [32] Логические схемы EDSAC были тщательно реконструированы посредством разработки симулятора и повторного изучения некоторых заново открытых оригинальных схем. Эта документация выпущена под лицензией Creative Commons. [33] Действующий проект открыт для посетителей музея. В 2016 году два первоначальных оператора EDSAC, Маргарет Маррс и Джойс Уилер , посетили музей, чтобы помочь проекту. [34] По состоянию на ноябрь 2016 года ввод в эксплуатацию полностью готового и работоспособного состояния реплики предполагался осенью 2017 года. [35] Однако непредвиденные задержки проекта привели к неизвестной дате появления завершенной и полностью работоспособной машины.
См. также [ править ]
- EDVAC, на котором была основана большая часть конструкции EDSAC.
- История вычислительной техники
- Список ламповых компьютеров
Ссылки [ править ]
- ^ Уилкс, Западная Вирджиния ; Ренвик, В. (1950). «EDSAC (Автоматический калькулятор с электронным запоминающим устройством)» . Математика. Комп . 4 (30): 61–65. дои : 10.1090/s0025-5718-1950-0037589-7 .
- ^ 1948 года выпуска Компьютер Manchester Baby предшествовал EDSAC как компьютер с хранимой программой , но был построен в основном как испытательный стенд для трубки Уильямса , а не как машина для общего использования. См . «Краткая неофициальная история Компьютерной лаборатории» . Тем не менее, Baby превратился в практически полезного преемника, Manchester Mark 1 1949 года, который был доступен для общего использования другими факультетами университета и Ферранти в апреле 1949 года, несмотря на то, что все еще находился в стадии разработки; EDSAC впервые был запущен в мае 1949 года и все еще находился в стадии разработки. «50 лет компьютеру Manchester Baby» . Архивировано из оригинала 9 февраля 2014 года . Проверено 5 января 2014 г.
- ^ Уилкс, М.В. (1997). «Арифметика на EDSAC» . Анналы истории комп . 19 (1): 13–15. дои : 10.1109/85.560726 .
- ^ «Компьютер Pioneer подлежит восстановлению». Кэм . 62 : 5. 2011. Если быть точным, первая программа EDSAC напечатала список квадратов целых чисел от 0 до 99 включительно.
- ^ Джонс, Клифф Б.; Ллойд, Джон Л. (24 января 2012 г.). Надежные и исторические вычисления: очерки, посвященные Брайану Рэнделлу по случаю его 75-летия . Спрингер. п. 29. ISBN 9783642245411 .
- ^ «9. EDSAC, Кембриджский университет, Англия» . Информационный бюллетень о цифровых компьютерах . 2 (1). Другие ранние вычислительные задачи выполняются на EDSAC; некоторые характеристики компьютера: 3. 1 января 1950 г. Архивировано из оригинала 11 марта 2021 г.
{{cite journal}}
: CS1 maint: другие ( ссылка ) - ^ EDSAC 99: 15–16 апреля 1999 г. (PDF) , Компьютерная лаборатория Кембриджского университета, 6 мая 1999 г., стр. 68, 69 , получено 29 июня 2013 г.
- ^ Симулятор EDSAC . Компьютерфил.
- ^ Некоторая статистика EDSAC . Кембриджский университет.
- ↑ Перейти обратно: Перейти обратно: а б Немного статистики EDSAC .
- ^ EDSAC 1 и после .
- ^ EDSAC 1 и после .
- ^ EDSAC 1 и после .
- ^ Труды Кембриджского философского общества, Vol. 49, Пт. 1, с. 84–89.
- ^ «Эдсак Симулятор» . www.dcs.warwick.ac.uk . Проверено 24 мая 2023 г.
- ↑ Перейти обратно: Перейти обратно: а б «EDSAC выполнил первые расчеты» . История вычислений . Архивировано из оригинала 26 февраля 2021 года . Проверено 23 ноября 2018 г.
- ^ Раймонд, Катрин (25 октября 2017 г.). «Беатрис Уорсли» . Канадская энциклопедия . Архивировано из оригинала 13 января 2018 года . Проверено 23 ноября 2018 г.
- ^ Профессор Дэвид Бэррон, почетный профессор Саутгемптонского университета, на семинаре Кембриджской компьютерной лаборатории, посвященном 60-летию, 6 мая 2009 г.
- ^ Описание трех дисплеев (счетчик, память и управление последовательностью): «Два новых видеоролика EDSAC: экраны VDU EDSAC» . Национальный музей вычислительной техники . 11 декабря 2015 г.
- ^ Тьюринг 1945 , перепечатано в Коупленде (2005), стр. 383.
- ^ Уилкс, М.В. (1956). Автоматические цифровые компьютеры . Лондон: Метуэн. стр. 93–95.
- ^ Уилкс, М.В. (1956). Автоматические цифровые компьютеры . Лондон: Метуэн. стр. 108–109.
- ^ Годдард, Джонатан (3 мая 2019 г.), 70 лет со дня создания первого компьютера, предназначенного для практического повседневного использования , Департамент компьютерных наук и технологий, Кембриджский университет
- ^ Частоты генов в линии, определяемые отбором и диффузией , Р. А. Фишер, Биометрия , Vol. 6, № 4 (декабрь 1950 г.), стр. 353–361.
- ^ Колдуэлл — крупнейшие известные простые числа по годам . В одной из ссылок приводится Miller, JCP «Большие простые числа» (1951) Nature 168(4280):838, но в аннотации это не упоминается.
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 22 декабря 2015 года . Проверено 18 ноября 2016 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Коэн, DS (20 сентября 2014 г.). «OXO, она же крестики-нолики — первая видеоигра» . О сайте.com . МАК . Архивировано из оригинала 22 декабря 2015 года . Проверено 18 декабря 2015 г.
- ^ Вольф, Марк Дж. П. (16 августа 2012 г.). Энциклопедия видеоигр: культура, технологии и искусство игр . Издательская группа Гринвуд . стр. 3–7. ISBN 978-0-313-37936-9 .
- ↑ Перейти обратно: Перейти обратно: а б с д Смит, Элви Рэй (9 июня 2015 г.). «Рассвет цифрового света». IEEE Анналы истории вычислений . 38 (4): 74–91. дои : 10.1109/MAHC.2015.51 . S2CID 10257358 .
- ^ Уорд, Марк (13 января 2011 г.). «Новаторский компьютер Edsac будет построен в Блетчли-парке» . Новости Би-би-си . Проверено 13 января 2011 г.
- ^ Музей включает исторический компьютер .
- ^ Хартли, Дэвид; Герберт, Эндрю (2013). «Проект реплики EDSAC». Сделать историю вычислительной техники актуальной . ИФИП: Достижения в области информационных и коммуникационных технологий. Том. 416. 9 Текущее состояние , стр. 307–308. дои : 10.1007/978-3-642-41650-7_27 . ISBN 978-3-642-41649-1 .
- ^ «Подпроект восстановления логики EDSAC» . www.billp.org . Проверено 24 августа 2023 г.
- ^ «В рамках проекта по восстановлению EDSAC, одного из первых в мире компьютеров общего назначения» . zdnet.com . Проверено 24 мая 2020 г.
- ^ Палмер, Дэнни (24 ноября 2016 г.). «В рамках проекта по восстановлению EDSAC, одного из первых в мире компьютеров общего назначения» . ЗДНет . Проверено 1 декабря 2016 г.
Дальнейшее чтение [ править ]
- Подготовка программ для электронного цифрового компьютера профессорами сэром Морисом Уилксом , Дэвидом Уилером и Стэнли Гиллом , Аддисон-Уэсли , издание 1, 1951 г. archive.org .
- 50-летие EDSAC – специальный веб-сайт компьютерной лаборатории Кембриджского университета .
- Берч, Брайан ; Суиннертон-Дайер, Питер (1965). «Заметки об эллиптических кривых (II)». Дж. Рейн Анжью. Математика. 165 (218): 79–108. дои : 10.1515/crll.1965.218.79 . S2CID 122531425 .
- Уилкс, М.В.; Ренвик, В. (1950). «EDSAC (Автоматический калькулятор с электронным запоминающим устройством)» . Математика вычислений . 4 (30): 61–65. дои : 10.1090/S0025-5718-1950-0037589-7 . ISSN 0025-5718 .
- Коупленд, Б.Дж. , изд. (2005), Автоматическая вычислительная машина Алана Тьюринга , Оксфорд: Oxford University Press, ISBN 0-19-856593-3
- Тьюринг, Алан М. (1945), Отчет доктора А.М. Тьюринга о предложениях по разработке автоматической вычислительной машины (ACE): представлен Исполнительному комитету НПЛ в феврале 1946 г., перепечатан в Copeland 2005 , стр. 369–454.
- Проект восстановления EDSAC — Документация и реконструированные схемы EDSAC
Внешние ссылки [ править ]
- Симулятор EDSAC – разработан Мартином Кэмпбеллом-Келли , факультет компьютерных наук, Уорикский университет , Англия.
- Устное историческое интервью с Дэвидом Уилером, 14 мая 1987 г. Институт Чарльза Бэббиджа , Университет Миннесоты. Уилер был студентом-исследователем в Университетской математической лаборатории Кембриджа в 1948–1951 годах и был пионером в программировании проекта EDSAC. Уиллер обсуждает проекты, реализованные на EDSAC, методы ориентированного на пользователя программирования и влияние EDSAC на ILLIAC , ORDVAC и IBM 701 . Уилер также отмечает визиты Дугласа Хартри , Нельсона Блэкмана (из ONR), Питера Наура , Аада ван Вейнгардена , Артура ван дер Поля , Фридриха Бауэра и Луи Куффиньяля .
- Николас Энтикнап и Морис Уилкс, Золотой юбилей Кембриджа - в: ВОСКРЕСЕНИЕ, Бюллетень Общества охраны компьютеров. ISSN 0958-7403 . Номер 22, лето 1999 г.
- Коллекция документов EDSAC в Компьютерном музее ICL .
- Введение в программирование для EDSAC 2, 1957 г.