stringtranslate.com

Английский электрический DEUCE

DEUCE ( Цифровая электронная универсальная вычислительная машина ) был одним из первых британских коммерчески доступных компьютеров , построенных компанией English Electric в 1955 году. [ 1] Это была серийная версия Pilot ACE , которая сама по себе является урезанной версией компьютера Алана Тьюринга . ТУЗ .

Описание оборудования

DEUCE имел 1450 термоэмиссионных ламп и использовал ртутные линии задержки в качестве основной памяти ; каждая из 12 линий задержки могла хранить 32 инструкции или слова данных по 32 бита каждая. Он использовал высокую на тот момент  тактовую частоту Pilot ACE — 1 мегагерц . Ввод/вывод осуществлялся через 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. Автоматическое преобразование буквенно-цифровых данных в BCD обеспечивалось на входе и обратная операция на выходе для всех восьмидесяти столбцов карты. На этом оборудовании считывание и перфорация могут осуществляться одновременно, если это необходимо, и, таким образом, могут использоваться для чтения записи, ее обновления, а затем перфорации обновленной записи одновременно со считыванием следующей записи. С семью дополнительными линиями задержки DEUCE получил обозначение Mark IIA.

Программное обеспечение

Основными языками программирования высокого уровня были GEORGE (генератор общего порядка), [4] [5] [6] [7] ALPHACODE, STEVE, TIP, GIP, [8] и ALGOL . [9] Трансляторы языка ассемблера включали ZP43 и STAC. [10]

Язык GEORGE , изобретенный Чарльзом Леонардом Хэмблином в 1957 году, был наиболее близок к современным языкам программирования. [4] [5] Использовалась обратная польская нотация . Например, чтобы вычислить e = ay 2 + by + c , написали

ай дуп × × на × + c + (e).

где «dup» дублирует предыдущую запись, то же самое, что здесь используется «y».

ДЖОРДЖ предоставил 12-позиционный аккумулятор в виде выдвижной стопки. Использование имени переменной в программе (например, «d») переносило значение переменной «d» в аккумулятор (т. е. помещало d на вершину стека), при этом имя заключалось в круглые скобки {например, (d ) } присваивает переменной 'd' значение наверху стека (аккумулятора). Чтобы уничтожить (удалить и удалить) значение в верхней части стека, использовалась точка с запятой (;). Следующая программа GEORGE считывает десять чисел и печатает их квадраты:

1, 10 повторений (и) читать дубль × ударить кулаком  ;]

В приведенной выше программе команда «dup» дублировала вершину стека, так что на вершине стека было две копии значения. [6]

GIP (General Interpretive Programme) представляла собой программу управления для управления программами, называемыми «кирпичиками». Его основная задача заключалась в запуске программ из нескольких сотен в библиотеке линейной алгебры DEUCE . Подготовка такой программы заключалась в выборе необходимых кубиков (на перфокартах), их копировании и ГИП в воспроизводящий перфоратор и сборке копий в колоду карт. Затем будут написаны простые кодовые слова, которые будут использовать блоки для выполнения таких задач, как: умножение матриц; инверсия матрицы; почленная матричная арифметика (сложение, вычитание, умножение и деление); решение одновременных уравнений; вход; и вывод. Размерность матриц никогда не указывалась в кодовых словах. Размеры были взяты из самих матриц, либо с карты, предшествующей картам данных, либо из матриц, хранящихся на барабане. Таким образом, программы были совершенно общими. После написания такая программа обрабатывала матрицы любого размера (конечно, в пределах емкости барабана). [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-29Х1,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 и я:

Тактовая частота 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), а также для преобразования фунтов, шиллингов и пенсов в пенсы.

Смотрите также

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

  1. Коупленд, Б. Джек (24 мая 2012 г.). Электронный мозг Алана Тьюринга: борьба за создание ACE, самого быстрого компьютера в мире. ОУП Оксфорд. стр. 4, 164, 327. ISBN. 9780199609154.
  2. ^ Д. Г. Бернетт-Холл и П. А. Самет, «Справочник по программированию для компьютера DEUCE», Королевское авиастроительное учреждение, Министерство авиации, Лондон (Англия), апрель 1959 г., Техническая заметка MS38.
  3. ^ DEUCE в НПЛ намеренно не модернизировался, а DEUCE в Университете Нового Южного Уэльса не обновлялся до 1963 года.
  4. ^ аб Хамблин, Чарльз Леонард (май 1957 г.). Схема безадресного кодирования, основанная на математической записи (машинописный текст). Технологический университет Нового Южного Уэльса .{{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  5. ^ аб Хамблин, Чарльз Леонард (июнь 1957 г.). «Схема безадресного кодирования, основанная на математической записи». Материалы Первой австралийской конференции по вычислительной технике и обработке данных . Солсбери, Южная Австралия: Исследовательский центр вооружений .
  6. ^ аб Хамблин, Чарльз Леонард (1958). ДЖОРДЖ IA и II: Полупереводная схема программирования для DEUCE: Руководство по программированию и эксплуатации (PDF) . Школа гуманитарных наук Университета Нового Южного Уэльса, Кенсингтон, Новый Южный Уэльс. Архивировано (PDF) из оригинала 4 апреля 2020 года . Проверено 27 июля 2020 г.
  7. ^ Борода, Боб (осень 1997 г.) [1996-10-01]. «Компьютер KDF9 — 30 лет спустя» (PDF) . Воскресение — Бюллетень Общества охраны компьютеров . № 18. Общество охраны компьютеров (CCS). стр. 7–15. ISSN  0958-7403. Архивировано (PDF) из оригинала 27 июля 2020 г. Проверено 27 июля 2020 г. […] KDF9 примечателен тем, что считается первым анонсированным компьютером с форматом команд с нулевым адресом (в 1960 году). Впервые он был поставлен примерно в то же время (начало 1963 года), что и другой знаменитый компьютер с нулевым адресом, Burroughs B5000 , в Америке. Как и многие современные карманные калькуляторы, машина с нулевым адресом позволяет использовать арифметику обратной польской обработки; это дает определенные преимущества авторам компиляторов. Считается, что внимание команды English Electric впервые было привлечено к концепции нулевого адреса благодаря контакту с GEORGE (General Order Generator), языком программирования высокого уровня, написанным для компьютера DEUCE Чарльзом Хэмблином из Университета Нового Южного Уэльса . of Technology , Австралия, в 1957 году. ДЖОРДЖ использовал Reverse Polish , и команда KDF9 была привлечена к этому соглашению по прагматической причине: желание повысить производительность за счет минимизации доступа к основному хранилищу. Это можно противопоставить более «теоретической» позиции, независимо выдвинутой Берроузом . Помимо аппаратного хранилища или стека - основного механизма компьютера с нулевым адресом - KDF9 имел другие группы центральных регистров для повышения производительности, что придавало ему интересную внутреннюю структуру. […][1] (Примечание. Это отредактированная версия выступления, сделанного перед Северо-Западной группой Общества в Музее науки и промышленности, Манчестер, Великобритания, 1 октября 1996 г.) [Цитата исправлена ​​23 апреля 2021 г.]
  8. ^ Робинсон, К. (1 апреля 1959 г.). «Интерпретационные программы DEUCE». Компьютерный журнал . 1 (4): 172–176. дои : 10.1093/comjnl/1.4.172 . ISSN  0010-4620. Аннотация: В этой статье описываются основные особенности (i) общей интерпретационной программы, (ii) табличной интерпретационной программы и (iii) Alphacode, которые являются интерпретативными программами, которые наиболее широко использовались при решении задач на DEUCE. Сравниваются и противопоставляются характеристики этих трех схем.
  9. Брайан Рэнделл и Л. Дж. Рассел, «DEUCE ALGOL», отчет W/AT 844, подразделение атомной энергетики, English Electric Co., Уэтстоун, Лестер, Англия, февраль 1962 г.
  10. ^ Библиотечная служба DEUCE, «Руководство по программированию DEUCE STAC», English Electric Co., Ltd, Kidsgrove, Staffs, Англия, c. 1960.
  11. ^ Библиотечная служба Deuce, «Общая интерпретационная программа DEUCE», 2-е изд., The English Electric Company Limited, Kidsgrove, Staffs, England, c. 1963.
  12. ^ «Руководство по программированию DEUCE 'English Electric'», The English Electric Company Limited, май 1956 г., публикация № NS-y-16.
  13. Доу, Эндрю (20 августа 2009 г.). Пегас, Сердце Харриера: история и развитие первого в мире реактивного двигателя с вертикальным взлетом и посадкой. Перо и меч. п. 186. ИСБН 9781473817142.
  14. ^ Коупленд, Б.Дж., редактор, Автоматическая вычислительная машина Алана Тьюринга, Оксфорд: Oxford University Press, 2005, ISBN 0-19-856593-3

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