Jump to content

ЭДСАК

Электронный автоматический калькулятор с памятью задержки (EDSAC)
EDSAC I в июне 1948 года.
Разработчик Морис Уилкс и его команда в математической лаборатории Кембриджского университета.
Производитель Кембриджский университет
Поколение 1
Дата выпуска 6 мая 1949 г .; 75 лет назад ( 1949-05-06 )
Продолжительность жизни 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]

Технический обзор [ править ]

Физические компоненты [ править ]

9-дюймовые трубки, используемые для мониторинга
Уильям Ренвик с считывателем ленты на 5 отверстий и телетайпом Creed

Как только 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
Морис Уилкс и Билл Ренвик перед полным собранием EDSAC

Основная память 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] Об этом упоминает Фред Хойл в своем романе «Черное облако».

Техника программирования [ править ]

Пульт мониторинга EDSAC [19]

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

Дэвиду Уилеру , который получил первую в мире степень доктора компьютерных наук, работая над этим проектом, приписывают изобретение концепции подпрограммы. Пользователи писали программы, которые вызывали подпрограмму путем перехода к началу подпрограммы с адресом возврата (т. е. адресом плюс один самого перехода) в аккумуляторе ( прыжок Уиллера ). По соглашению подпрограмма ожидала этого, и первое, что она сделала, — это изменила свою заключительную инструкцию перехода на этот адрес возврата. Можно вызывать несколько вложенных подпрограмм, если пользователь знает длину каждой из них, чтобы вычислить место, к которому нужно перейти; рекурсивные вызовы были запрещены. Затем пользователь копировал код подпрограммы с мастер-ленты на свою собственную ленту после завершения своей программы. (Однако Алан Тьюринг обсуждал подпрограммы в статье 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

Реплика EDSAC в октябре 2018 г.

13 января 2011 года Общество охраны компьютеров объявило, что планирует построить рабочую копию EDSAC в Национальном музее вычислительной техники (TNMoC) в Блетчли-парке под руководством Эндрю Герберта , который учился у Мориса Уилкса. [30] Первые части реплики были запущены в эксплуатацию в ноябре 2014 года. [31] [32] Логические схемы EDSAC были тщательно реконструированы посредством разработки симулятора и повторного изучения некоторых заново открытых оригинальных схем. Эта документация выпущена под лицензией Creative Commons. [33] Действующий проект открыт для посетителей музея. В 2016 году два первоначальных оператора EDSAC, Маргарет Маррс и Джойс Уилер , посетили музей, чтобы помочь проекту. [34] По состоянию на ноябрь 2016 года ввод в эксплуатацию полностью готового и работоспособного состояния реплики предполагался осенью 2017 года. [35] Однако непредвиденные задержки проекта привели к неизвестной дате появления завершенной и полностью работоспособной машины.

См. также [ править ]

Ссылки [ править ]

  1. ^ Уилкс, Западная Вирджиния ; Ренвик, В. (1950). «EDSAC (Автоматический калькулятор с электронным запоминающим устройством)» . Математика. Комп . 4 (30): 61–65. дои : 10.1090/s0025-5718-1950-0037589-7 .
  2. ^ 1948 года выпуска Компьютер Manchester Baby предшествовал EDSAC как компьютер с хранимой программой , но был построен в основном как испытательный стенд для трубки Уильямса , а не как машина для общего использования. См . «Краткая неофициальная история Компьютерной лаборатории» . Тем не менее, Baby превратился в практически полезного преемника, Manchester Mark 1 1949 года, который был доступен для общего использования другими факультетами университета и Ферранти в апреле 1949 года, несмотря на то, что все еще находился в стадии разработки; EDSAC впервые был запущен в мае 1949 года и все еще находился в стадии разработки. «50 лет компьютеру Manchester Baby» . Архивировано из оригинала 9 февраля 2014 года . Проверено 5 января 2014 г.
  3. ^ Уилкс, М.В. (1997). «Арифметика на EDSAC» . Анналы истории комп . 19 (1): 13–15. дои : 10.1109/85.560726 .
  4. ^ «Компьютер Pioneer подлежит восстановлению». Кэм . 62 : 5. 2011. Если быть точным, первая программа EDSAC напечатала список квадратов целых чисел от 0 до 99 включительно.
  5. ^ Джонс, Клифф Б.; Ллойд, Джон Л. (24 января 2012 г.). Надежные и исторические вычисления: очерки, посвященные Брайану Рэнделлу по случаю его 75-летия . Спрингер. п. 29. ISBN  9783642245411 .
  6. ^ «9. EDSAC, Кембриджский университет, Англия» . Информационный бюллетень о цифровых компьютерах . 2 (1). Другие ранние вычислительные задачи выполняются на EDSAC; некоторые характеристики компьютера: 3. 1 января 1950 г. Архивировано из оригинала 11 марта 2021 г. {{cite journal}}: CS1 maint: другие ( ссылка )
  7. ^ EDSAC 99: 15–16 апреля 1999 г. (PDF) , Компьютерная лаборатория Кембриджского университета, 6 мая 1999 г., стр. 68, 69 , получено 29 июня 2013 г.
  8. ^ Симулятор EDSAC . Компьютерфил.
  9. ^ Некоторая статистика EDSAC . Кембриджский университет.
  10. Перейти обратно: Перейти обратно: а б Немного статистики EDSAC .
  11. ^ EDSAC 1 и после .
  12. ^ EDSAC 1 и после .
  13. ^ EDSAC 1 и после .
  14. ^ Труды Кембриджского философского общества, Vol. 49, Пт. 1, с. 84–89.
  15. ^ «Эдсак Симулятор» . www.dcs.warwick.ac.uk . Проверено 24 мая 2023 г.
  16. Перейти обратно: Перейти обратно: а б «EDSAC выполнил первые расчеты» . История вычислений . Архивировано из оригинала 26 февраля 2021 года . Проверено 23 ноября 2018 г.
  17. ^ Раймонд, Катрин (25 октября 2017 г.). «Беатрис Уорсли» . Канадская энциклопедия . Архивировано из оригинала 13 января 2018 года . Проверено 23 ноября 2018 г.
  18. ^ Профессор Дэвид Бэррон, почетный профессор Саутгемптонского университета, на семинаре Кембриджской компьютерной лаборатории, посвященном 60-летию, 6 мая 2009 г.
  19. ^ Описание трех дисплеев (счетчик, память и управление последовательностью): «Два новых видеоролика EDSAC: экраны VDU EDSAC» . Национальный музей вычислительной техники . 11 декабря 2015 г.
  20. ^ Тьюринг 1945 , перепечатано в Коупленде (2005), стр. 383.
  21. ^ Уилкс, М.В. (1956). Автоматические цифровые компьютеры . Лондон: Метуэн. стр. 93–95.
  22. ^ Уилкс, М.В. (1956). Автоматические цифровые компьютеры . Лондон: Метуэн. стр. 108–109.
  23. ^ Годдард, Джонатан (3 мая 2019 г.), 70 лет со дня создания первого компьютера, предназначенного для практического повседневного использования , Департамент компьютерных наук и технологий, Кембриджский университет
  24. ^ Частоты генов в линии, определяемые отбором и диффузией , Р. А. Фишер, Биометрия , Vol. 6, № 4 (декабрь 1950 г.), стр. 353–361.
  25. ^ Колдуэлл — крупнейшие известные простые числа по годам . В одной из ссылок приводится Miller, JCP «Большие простые числа» (1951) Nature 168(4280):838, но в аннотации это не упоминается.
  26. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 22 декабря 2015 года . Проверено 18 ноября 2016 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  27. ^ Коэн, DS (20 сентября 2014 г.). «OXO, она же крестики-нолики — первая видеоигра» . О сайте.com . МАК . Архивировано из оригинала 22 декабря 2015 года . Проверено 18 декабря 2015 г.
  28. ^ Вольф, Марк Дж. П. (16 августа 2012 г.). Энциклопедия видеоигр: культура, технологии и искусство игр . Издательская группа Гринвуд . стр. 3–7. ISBN  978-0-313-37936-9 .
  29. Перейти обратно: Перейти обратно: а б с д Смит, Элви Рэй (9 июня 2015 г.). «Рассвет цифрового света». IEEE Анналы истории вычислений . 38 (4): 74–91. дои : 10.1109/MAHC.2015.51 . S2CID   10257358 .
  30. ^ Уорд, Марк (13 января 2011 г.). «Новаторский компьютер Edsac будет построен в Блетчли-парке» . Новости Би-би-си . Проверено 13 января 2011 г.
  31. ^ Музей включает исторический компьютер .
  32. ^ Хартли, Дэвид; Герберт, Эндрю (2013). «Проект реплики EDSAC». Сделать историю вычислительной техники актуальной . ИФИП: Достижения в области информационных и коммуникационных технологий. Том. 416. 9 Текущее состояние , стр. 307–308. дои : 10.1007/978-3-642-41650-7_27 . ISBN  978-3-642-41649-1 .
  33. ^ «Подпроект восстановления логики EDSAC» . www.billp.org . Проверено 24 августа 2023 г.
  34. ^ «В рамках проекта по восстановлению EDSAC, одного из первых в мире компьютеров общего назначения» . zdnet.com . Проверено 24 мая 2020 г.
  35. ^ Палмер, Дэнни (24 ноября 2016 г.). «В рамках проекта по восстановлению EDSAC, одного из первых в мире компьютеров общего назначения» . ЗДНет . Проверено 1 декабря 2016 г.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 914bd142c7809bcd52bcf587ed007a64__1717203540
URL1:https://arc.ask3.ru/arc/aa/91/64/914bd142c7809bcd52bcf587ed007a64.html
Заголовок, (Title) документа по адресу, URL1:
EDSAC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)