Также известен как | Цифровая электронная универсальная вычислительная машина |
---|---|
Производитель | Английский Электрик |
Дата выпуска | 1955 ( 1955 ) |
Прекращено | 1964 ( 1964 ) |
Отгружено единиц | 33 |
Процессор | термоэлектронный клапан -на основе |
Память | ртутные линии задержки 384 32-битных слова (Mark I и Mark II) 608 32-битных слов (Mark IIA) |
Хранилище | Магнитный барабан на 8192 слова |
Отображать | 2 × ЭЛТ |
Предшественник | Пилот ACE |
DEUCE ( цифровая электронная универсальная вычислительная машина ) был одним из первых британских коммерческих компьютеров , выпускавшихся компанией English Electric с 1955 года. [1] Это была производственная версия Pilot ACE , которая, в свою очередь, была урезанной версией ACE Алана Тьюринга .
DEUCE имел 1450 термоэлектронных ламп и использовал ртутные линии задержки для своей основной памяти ; каждая из 12 линий задержки могла хранить 32 инструкции или слова данных по 32 бита каждая. Он использовал тогдашнюю высокую тактовую частоту 1 мегагерц Pilot ACE. Ввод/вывод осуществлялся через 80-колоночное оборудование для перфокарт Hollerith . Считыватель считывал карты со скоростью 200 в минуту, в то время как скорость перфорации карт составляла 100 карт в минуту. DEUCE также имел магнитный барабан на 8192 слова для основной памяти. Для доступа к любой из 256 дорожек по 32 слова барабан имел одну группу из 16 считывающих и одну группу из 16 записывающих головок, каждая группа на независимых подвижных рычагах, каждая из которых могла перемещаться в одну из 16 позиций. Время доступа составляло 15 миллисекунд, если головки уже были на месте; требовалось еще 35 миллисекунд, если головки нужно было переместить. При чтении и записи на барабан не возникало задержки вращения. Данные передавались между барабаном и одной из 32-словных линий задержки.
DEUCE мог быть оснащен оборудованием для работы с бумажной лентой ; скорость считывания составляла 850 символов в секунду, в то время как скорость вывода бумажной ленты составляла 25 символов в секунду. (В 1964 году к DEUCE в Университете Нового Южного Уэльса {UTECOM} был подключен телетайп Siemens M100, обеспечивающий ввод/вывод со скоростью 10 символов в секунду). Также можно было подключить блоки магнитной ленты Decca. Автоматический умножитель и делитель работали асинхронно (то есть другие инструкции могли выполняться во время работы блока умножения/деления). Для целочисленных операций были предусмотрены два арифметических блока: один на 32 бита, а другой мог выполнять 32-битные и 64-битные операции. Автоинкремент и автодекремент были предусмотрены на восьми регистрах примерно с 1957 года. Разрешалась арифметика массивов и передача данных массивов. По сравнению с современниками, такими как Manchester Mark 1 , DEUCE был примерно в десять раз быстрее.
Отдельные слова учетверенных регистров были связаны с функцией автоинкремента/декремента. Эта функция могла использоваться для подсчета и изменения инструкций (для индексации, управления циклом и для изменения исходного или конечного адреса инструкции). [2]
Так как это была машина с последовательным битом , время доступа к одному регистру составляло 32 микросекунды, к двойному регистру — 64 микросекунды, а к счетверенному регистру — 128 микросекунд. Для линии задержки это составляло 1024 микросекунды.
Время выполнения инструкций составило: сложение, вычитание, логические операции: 64 микросекунды для 32-битных слов; двойная точность 96 микросекунд; умножение и деление 2 миллисекунды. Для арифметических операций массива и операций переноса время на слово составило 33 микросекунды на слово для 32 слов.
Операции с плавающей точкой выполнялись программным обеспечением; время: 6 миллисекунд для сложения и вычитания, 5,5 миллисекунд в среднем для умножения и 4,5 миллисекунд в среднем для деления.
В ранних машинах все инструкции, включающие магнитный барабан, блокировались во время выполнения операции. Таким образом, если считывающие головки перемещались, любая последующая операция с магнитами, такая как чтение дорожки или запись дорожки, запрещалась до тех пор, пока не будет завершена первая. Примерно с 1957 года появился новый блок, называемый «рационализированной магнитной обработкой». Этот блок устранял ненужные блокировки. Таким образом, можно было выполнить инструкцию, которая перемещала считывающие головки: если за ней следовала инструкция перемещать записывающие головки или записывать дорожку, такие инструкции не блокировались и могли выполняться параллельно с перемещением считывающих головок. [3]
На передней панели DEUCE располагались два ЭЛТ- дисплея: один отображал текущее содержимое регистров, а другой — содержимое любого из хранилищ ртутной линии задержки.
Примерно с 1958 года можно было присоединить семь дополнительных линий задержки, что давало еще 224 слова высокоскоростного хранилища. Комбинированный считыватель-перфоратор IBM 528 мог быть заменен оборудованием Холлерита, обеспечивая те же скорости ввода/вывода, в этом случае машина называлась Mark II. Автоматическое преобразование буквенно-цифровых данных в двоично-десятичные данные обеспечивалось на входе, а обратная операция на выходе для всех восьмидесяти столбцов карт. На этом оборудовании чтение и перфорация могли выполняться одновременно, если требовалось, и, таким образом, могли использоваться для чтения записи, ее обновления, а затем перфорации обновленной записи одновременно с чтением следующей записи. С семью дополнительными линиями задержки DEUCE обозначалась как Mark IIA.
Основными языками программирования высокого уровня были GEORGE (General Order Generator), [4] [5] [6] [7] ALPHACODE, STEVE, TIP, GIP, [8] и ALGOL . [9] Трансляторы языка ассемблера включали ZP43 и STAC. [10]
Изобретенный Чарльзом Леонардом Хэмблином в 1957 году, GEORGE был наиболее близок к современным языкам программирования. [4] [5] Он использовал обратную польскую нотацию . Например, чтобы оценить e = ay 2 + by + c , нужно было написать
ау дуп × × по × + с + (е).
где «dup» дублирует предыдущую запись, что эквивалентно использованию здесь «y».
GEORGE предоставил 12-позиционный аккумулятор в качестве стека push-down. Использование имени переменной в программе (например, 'd') переносило значение переменной 'd' в аккумулятор (т. е. помещало d на вершину стека), при этом заключая имя в скобки {например, (d) }, присваивало переменной 'd' значение на вершине стека (аккумулятор). Чтобы уничтожить (вытолкнуть и отбросить) значение на вершине стека, использовалась точка с запятой (;). Следующая программа GEORGE считывает десять чисел и печатает их квадраты:
1, 10 повторений (и) читать дубликат × ударить кулаком ;]
В приведенной выше программе команда «dup» дублировала верхнюю часть стека, так что наверху стека оказалось две копии значения. [6]
GIP (General Interpretive Programme) была управляющей программой для манипулирования программами, называемыми «кирпичами». Ее основная функция заключалась в запуске программ из нескольких сотен в библиотеке линейной алгебры DEUCE . Подготовка такой программы включала выбор требуемых кирпичей (на перфокартах), копирование их и GIP в воспроизводящий перфоратор и сборку копий в колоду карт. Затем записывались простые кодовые слова для использования кирпичей для выполнения таких задач, как: умножение матриц; обращение матриц; почленная арифметика матриц (сложение, вычитание, умножение и деление); решение одновременных уравнений; ввод и вывод. Размеры матриц никогда не указывались в кодовых словах. Размеры брались из самих матриц, либо с карты, предшествующей картам данных, либо из матриц, хранящихся на барабане. Таким образом, программы были полностью общими. После написания такая программа обрабатывала матрицы любого размера (конечно, в пределах емкости барабана). [11] Короткая программа для считывания матрицы с карточек, транспонирования матрицы и записи результатов на карточки требует следующих кодовых слов:
0, 0, 5, 15, 0, 120, 2120, 0, 0, 3
В каждом из кодовых слов четвертое число — это номер кирпича. Первое кодовое слово указывает, что матрица считывается с карт и сохраняется по адресу барабана 5; второе кодовое слово указывает, что матрица по адресу барабана 5 транспонируется, а результат сохраняется по адресу барабана 120; а третье пробивает результат на картах.
STAC был макроассемблером. Большинство инструкций были записаны в виде передачи, в десятичной системе счисления, например, 13-16, что означало копирование слова из регистра 13 в регистр 16. Местоположение инструкции не было указано. STAC выделял инструкцию слову в линии задержки и вычислял шесть компонентов двоичной инструкции. Он выделял следующую инструкцию в оптимальное место, чтобы она была выполнена сразу после завершения предыдущей инструкции, если это возможно.
Следующая программа считывает значение n, а затем считывает n двоичных целых чисел. Она выводит целое число и его квадрат. Комментарии в нижнем регистре поясняют инструкцию.
1.0 12-24 запустить картридер. Расположение программы указано как 1.0. 0-13X считывает одну цифру (n) с картридера. Буква X заставляет компьютер ждать пока первый ряд карточки не поступит на станцию считывания.R2 12-24 запустить или перезапустить картридер. 0-16X считывает одно число, которое необходимо возвести в квадрат, сохраняет его в регистре множителя. 9-24 остановить устройство чтения карт. 16-21.3 скопировать число в регистр множимых. 30-21.2 очистить младшие биты регистра множимого. МУЛЬТ 10-24 запуск перфоратора. 21.2-29X отправить квадрат на перфоратор. 9-24 остановить перфоратор. 27-26 уменьшение сущ. 13-28 Тест R1 на ноль. Переход по нулю к R1; переход по ненулевому значению к R2.R1 1-1X остановка; программа завершена.
STAC выдаст следующие инструкции (в дополнение к двоичной программе). Расположение памяти каждой инструкции показано слева.
1.0 12-241.2 0-13X1.4 12-241.6 0-16X1.8 9-241.10 16-21.31.13 30-21.21.16 0-24 ждать 11.18 1-1 ждать 11.20 10-241.22 21.2-29X1.24 9-241.26 27-261,28 13-28 1,31.3 1-1X
Числа ожидания и времени не отображаются, за исключением умножения.
Программирование DEUCE отличалось от других компьютеров. Последовательная природа линий задержки требовала, чтобы инструкции были упорядочены таким образом, чтобы после завершения выполнения одной инструкции следующая была готова выйти из линии задержки. Для операций с одиночными регистрами самое раннее время, когда следующая инструкция могла быть выполнена, составляло 64 микросекунды после текущей. Таким образом, инструкции не выполнялись из последовательных мест. В общем случае инструкции могли передавать одно или несколько слов. Следовательно, каждая инструкция указывала местонахождение следующей инструкции. Оптимальное программирование означало, что по мере выполнения каждой инструкции следующая только что выходила из линии задержки. Положение инструкций в хранилище могло сильно влиять на производительность, если расположение инструкции не было оптимальным.
Считывание данных с картридера производилось в режиме реального времени — каждая строка должна была считываться по мере прохождения считывающих щеток без остановки. Аналогично для перфоратора; слово для определенной строки готовилось заранее и должно было быть готово, когда заданная строка карты оказывалась в положении под ножами перфоратора. Обычный режим считывания и перфорации был двоичным. Десятичный ввод и вывод выполнялись с помощью программного обеспечения.
Высокоскоростной магазин состоял из четырех регистров с одним словом по 32 бита каждый, трех регистров с двойным словом и двух регистров с четверным словом. Каждое 32-битное слово регистров с двойным и четверным словом могло быть адресовано отдельно. К ним также можно было обращаться как к паре, а в случае с четверными регистрами — как к группе из трех или четырех. Магазин команд состоял из двенадцати ртутных линий задержки , каждая из 32 слов, и пронумерованных от 1 до 12. Линия задержки 11 (DL11) служила буфером между магнитным барабаном и высокоскоростным магазином. Будучи «машиной передачи», данные могли передаваться по слову за раз, по паре слов за раз и любым количеством слов до 33 за раз. Таким образом, например, 32 слова, считанные с барабана, могли быть переданы как блок на любую из других линий задержки; 4 слова можно было передать как блок из одного счетверенного регистра в другой или между счетверенным регистром и линией задержки — все с помощью одной инструкции. 32 слова линии задержки можно было суммировать, передав их в сумматор одинарной длины (с помощью одной инструкции). [12]
Благодаря специальной связи между DL10 и одним регистром, а именно регистром 16, DL10 можно использовать как стек с магазинной памятью.
Первые три машины были поставлены весной 1955 года; в конце 1958 года появилась улучшенная модель DEUCE Mark II . Эта версия использовала комбинированный считыватель карт и перфоратор. Комбинированный считыватель и перфоратор IBM 528 вели себя как отдельные блоки Холлерита на более ранних машинах DEUCE Mark I; однако он также был снабжен аппаратным преобразованием буквенно-цифровых данных в BCD на входе и наоборот на выходе. Данные также могли считываться и перфорироваться одновременно со скоростью 100 карт в минуту. DEUCE Mark IIA имел семь дополнительных ртутных линий задержки, каждая из 32 слов.
Всего в период с 1955 по 1964 год было продано 33 машины DEUCE, две из которых были куплены производителем двигателей Bristol Siddeley . [13]
Успех DEUCE был обусловлен его библиотекой программ, насчитывающей более 1000 программ и подпрограмм. [14]
DEUCE Марк 0 и I:
Тактовая частота 1 МГцРазмер слова 32 битаВысокоскоростная память на 384 словаАрифметика: один 32-битный аккумулятор; один 64-битный аккумулятор, который можно использовать также как два 32-битных аккумулятора. сложение/вычитание Длина одного кадра 64 микросекунды, 96 микросекунд двойной точности Прибавление числа одинарной длины к числу двойной длины, с автоматическим расширением знака, 64 микросекунды. умножение 2080 микросекунд деление 2112 микросекундмагнитный барабан 8192 слова отдельные головки чтения и головки записи Время чтения трека 15 мс Время смещения головы 35 мсСкорость считывания карт 200 карт в минутуСкорость перфорации карт 100 карт в минутуСкорость считывания с бумажной ленты 850 символов/сек лента: 5, 7, 8-рядная лента. время остановки: ½ миллисекунды (мс) время начала 20 миллисекундСкорость пробивки бумажной ленты 25 символов/сек лента: 5 или 7 рядовПрограммное обеспечение с плавающей точкой (среднее время): сложение/вычитание 6 мс умножение 5½ мс деление 4½ мс
ДЬЮС МАРК II:
Что касается DEUCE Mark I. Комбинированный считыватель карт IBM 528 и перфоратор могли считывать карты со скоростью 200 карт в минуту и перфорировать со скоростью 100 карт в минуту. При одновременном запуске считыватель и перфоратор работали со скоростью 100 карт в минуту. Было предусмотрено автоматическое преобразование в 6-битные символы и обратно. Этот режим был в дополнение к программному преобразованию, предоставляемому Mark I DEUCE.
ДЬЮС МАРК IA И IIA:
Как и выше, с 7 дополнительными линиями задержки, обеспечивающими высокоскоростную память объемом 224 слова.
Примечания: Умножитель и делитель были асинхронными. Несколько целых чисел можно было умножить за одно выполнение инструкции умножения, вставляя целые числа в регистры множителя или множимого во время умножения и извлекая результаты во время умножения. Другие специальные эффекты включали подсчет битов в слове и преобразование двоично-десятичного числа (BCD) в двоичное. Аналогично для деления, которое можно было использовать для преобразования целых чисел в двоично-десятичное число (BCD) и для преобразования фунтов, шиллингов и пенсов в пенсы.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )[…]
KDF9
примечателен тем, что считается первым компьютером с форматом инструкций с нулевым адресом, который был анонсирован (в 1960 г.). Он был впервые поставлен примерно в то же время (в начале 1963 г.), что и другой известный компьютер с нулевым адресом,
Burroughs B5000
в Америке. Как и многие современные карманные калькуляторы, машина с нулевым адресом позволяет использовать обратную польскую арифметику; это дает определенные преимущества авторам компиляторов. Считается, что внимание команды English Electric было впервые привлечено к концепции нулевого адреса через контакт с GEORGE (General Order Generator), языком программирования высокого уровня, написанным для компьютера DEUCE Чарльзом Хэмблином в
Технологическом университете Нового Южного Уэльса
, Австралия, в 1957 году. GEORGE использовал
Reverse Polish
, а команда KDF9 была привлечена к этому соглашению по прагматическим причинам, а именно желанием повысить производительность за счет минимизации обращений к основной памяти. Это можно противопоставить более «теоретической» линии, принятой независимо
Берроузом
. Помимо аппаратного
вложенного хранилища
или стека — основного механизма компьютера с нулевым адресом — у KDF9 были другие группы центральных регистров для повышения производительности, что придавало ему интересную внутреннюю структуру. […]
[1] (Примечание. Это отредактированная версия выступления перед Северо-Западной группой Общества в Музее науки и промышленности, Манчестер, Великобритания, 01.10.1996 г.) [Цитата исправлена 23 апреля 2021 г.]
Аннотация: В этой статье описываются основные особенности (i) The General Interpretive Program, (ii) The Tabular Interpretive Program и (iii) Alphacode, которые являются интерпретативными программами, наиболее широко используемыми при решении задач на DEUCE. Характеристики этих трех схем сравниваются и противопоставляются.