Английский Electric DEUCE - English Electric DEUCE

DEUCE
Также известный как Цифровая электронная универсальная вычислительная машина
Производитель Английский Электрик
Дата выхода 1955 г. ( 1955 )
Снято с производства 1964 г. ( 1964 )
Отгружено единиц 33
Процессор термоэмиссионный клапан на основе
объем памяти ртутные линии задержки
384 32-битных слова (Mark I и Mark II)
608 32-битных слов (Mark IIA)
Место хранения Магнитный барабан на 8192 слов
Отображать 2 × ЭЛТ
Предшественник Пилотный ACE

DEUCE ( Digital Electronic Универсальный Computing Engine ) был один из самых ранних британских коммерчески доступных компьютеров , построенный английской Electric с 1955 г. Это была серийная версия Pilot ACE , сам урезанная версия Alan Turing «s ACE .

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

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

Отдельные слова четверных регистров были связаны с функцией автоматического увеличения / уменьшения. Это средство можно использовать для подсчета и изменения инструкций (для индексации, управления циклом и для изменения адреса источника или назначения инструкции).

Поскольку это машина с последовательным интерфейсом, время доступа к одному регистру составляло 32 микросекунды, к двойному регистру - 64 микросекунды, а к учетному регистру - 128 микросекунды. Это для линии задержки 1024 микросекунды.

Время выполнения команд: сложение, вычитание, логические операции: 64 микросекунды для 32-битных слов; с двойной точностью 96 микросекунд; умножение и деление 2 миллисекунды. Для арифметических операций с массивами и операций передачи время на слово составляло 33 микросекунды на слово для 32 слов.

Операции с плавающей запятой обеспечивались программным обеспечением; раз: 6 миллисекунд для сложения и вычитания, в среднем 5½ миллисекунд для умножения и в среднем 4½ миллисекунды для деления.

В ранних машинах все инструкции, касающиеся магнитного барабана, блокировались во время выполнения операции. Таким образом, если считывающие головки были перемещены, любая последующая операция магнетизма, такая как чтение дорожки или запись дорожки, не могла продолжаться до тех пор, пока первая не будет завершена. Примерно с 1957 года появился новый блок, названный «рационализированный магнетизм». Этот блок устранил ненужные блокировки. Таким образом, можно было выполнить инструкцию, которая перемещала считывающие головки: если за ней следовала инструкция для перемещения записывающих головок или записи дорожки, такие инструкции не блокировались и могли выполняться параллельно с перемещением считывающих головок.

На передней панели DEUCE было два ЭЛТ- дисплея: один отображал текущее содержимое регистров, а другой - содержимое любого из хранилищ ртутной линии задержки.

Примерно с 1958 года можно было подключить семь дополнительных линий задержки, что давало еще 224 слова высокоскоростного магазина. Комбинированный ридер-перфоратор IBM 528 можно было заменить оборудование Hollerith, давая те же скорости ввода / вывода, и в этом случае машина получила название Mark II. Автоматическое преобразование буквенно-цифровых данных в BCD было обеспечено на входе и обратная операция на выходе для всех восьмидесяти столбцов карточек. На этом оборудовании чтение и перфорация могут выполняться одновременно, если это необходимо, и, таким образом, могут использоваться для чтения в записи, ее обновления, а затем перфорации обновленной записи одновременно с чтением следующей записи. С семью дополнительными линиями задержки DEUCE получил обозначение Mark IIA.

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

Основными языками программирования высокого уровня были GEORGE (Генератор общего порядка), ALPHACODE, STEVE, TIP, GIP и ALGOL . В состав переводчиков языка ассемблера входили ZP43 и STAC.

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

a y dup × × b y × + c + (e).

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

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

1, 10 rep (i)
   read
   dup ×
   punch
   ;
]

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

GIP (General Interpretive Program) - это управляющая программа для управления программами, называемыми «кирпичиками». Его основная услуга заключалась в запуске программ из нескольких сотен в библиотеке линейной алгебры DEUCE . Подготовка такой программы включала выбор необходимых кирпичиков (на перфокартах), их копирование и GIP в воспроизводящем штампе и сборку копий в колоду карт. Затем будут написаны простые кодовые слова, чтобы использовать блоки для выполнения таких задач, как: умножение матриц; инверсия матриц; почленная матричная арифметика (сложение, вычитание, умножение и деление); решение одновременных уравнений; Вход; и вывод. Размеры матриц никогда не указывались в кодовых словах. Размеры были взяты из самих матриц, либо с карты, предшествующей картам данных, либо из матриц, хранящихся на барабане. Таким образом, программы были полностью общими. После написания такая программа обрабатывала матрицы любого размера (разумеется, вплоть до емкости барабана). Короткая программа для чтения матрицы с карточек, транспонирования матрицы и вывода результатов на карточки требует следующих кодовых слов:

0,   0,   5, 1
5,   0, 120, 2
120, 0,   0, 3

В каждом из кодовых слов четвертое число - это номер кирпича. Первое кодовое слово указывает, что матрица считывается с карт и сохраняется по адресу барабана 5; второе кодовое слово указывает, что матрица по адресу барабана 5 транспонируется, и результат сохраняется по адресу 120 барабана; и третий удары по картам.

STAC был макроассемблером. Большинство инструкций были записаны в форме передачи в десятичном формате, например 13–16, что означает копирование слова из регистра 13 в регистр 16. Местоположение инструкции не было указано. STAC назначил инструкцию слову в линии задержки и вычислил шесть компонентов двоичной инструкции. Он разместил следующую инструкцию в оптимальном месте, чтобы она выполнялась, как только предыдущая инструкция была завершена, если это возможно.

Следующая программа считывает значение n, а затем считывает n двоичных целых чисел. Он вычеркивает целое число и его квадрат. Комментарии в нижнем регистре объясняют инструкцию.

1.0 12-24      start the card reader. The location of the program is specified as 1.0.
     0-13X     read one number (n) from the card reader. The letter X causes the computer to wait
               until the first row of the card has arrived at the reading station.
R2  12-24      start or re-start the card reader.
     0-16X     read one number to be squared, store it in the multiplier register.
     9-24      stop the card reader.
    16-21.3    copy the number to the multiplicand register.
    30-21.2    clear the low-order bits of the multiplicand register.
     MULT
    10-24      start the card punch.
    21.2-29X   send the square to the card punch.
     9-24      stop the card punch.
    27-26      decrement n.
    13-28  R1  test for zero. Branch on zero to R1; branch on not zero to R2.
R1   1-1X      halt; the program is complete.

STAC создаст следующие инструкции (в дополнение к двоичной программе). Расположение каждой инструкции в памяти показано слева.

1.0  12-24
1.2   0-13X
1.4  12-24
1.6   0-16X
1.8   9-24
1.10 16-21.3
1.13 30-21.2
1.16  0-24    wait 1
1.18  1-1     wait 1
1.20 10-24
1.22 21.2-29X
1.24  9-24
1.26 27-26
1.28 13-28 1.3
1.3   1-1X

Числа ожидания и времени не показаны, за исключением умножения.

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

Программирование DEUCE отличалось от других компьютеров. Последовательный характер линий задержки требовал, чтобы инструкции были упорядочены таким образом, чтобы, когда одна инструкция завершила выполнение, следующая была готова выйти из линии задержки. Для операций с отдельными регистрами самое раннее время, когда можно было выполнить следующую инструкцию, было через 64 ​​микросекунды после текущей. Таким образом, инструкции не выполнялись из последовательных мест. Как правило, инструкции могут передавать одно или несколько слов. Следовательно, каждая инструкция указывала местоположение следующей инструкции. Оптимальное программирование означало, что по мере выполнения каждой инструкции следующая только выходила из линии задержки. Расположение инструкций в хранилище может сильно повлиять на производительность, если расположение инструкции не было оптимальным.

Считывание данных с кардридера происходило в режиме реального времени - каждая строка должна была считываться, когда она проходила через считывающие кисти, без остановки. Аналогично для перфорации карты; слово для определенного ряда было подготовлено заранее и должно было быть готово, когда данный ряд карты окажется в положении под ножами перфоратора. Обычный режим чтения и перфорации был бинарным. Десятичный ввод и вывод производился с помощью программного обеспечения.

Высокоскоростное хранилище состояло из четырех регистров одного слова по 32 бита каждый, трех регистров двойного слова и двух регистров четверного слова. Каждое 32-битное слово регистров двойных и четверных слов могло быть адресовано отдельно. К ним также можно было обращаться как к паре, а в случае учетверенных регистров - как к группе из трех или четырех. Хранилище команд состояло из двенадцати ртутных линий задержки, каждая из 32 слов, пронумерованных от 1 до 12. Линия задержки 11 (DL11) служила буфером между магнитным барабаном и высокоскоростным хранилищем. Будучи «машиной передачи», данные могут передаваться по слову за раз, по паре слов за раз и любое количество слов до 33 за раз. Таким образом, например, 32 слова, считанные с барабана, могут быть переданы как блок на любую из других линий задержки; четыре слова могут быть переданы как блок из одного учетверенного регистра в другой или между учетверенным регистром и линией задержки - все с помощью одной инструкции. 32 слова линии задержки можно суммировать, передав их сумматору одинарной длины (с помощью одной инструкции).

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

Производство

Первые три машины были поставлены весной 1955 года; в конце 1958 года появилась улучшенная модель DEUCE Mark II . В этой версии использовались комбинированный кардридер и перфоратор. Комбинированные считыватель и перфоратор IBM 528 вели себя как отдельные устройства Hollerith на более ранних машинах DEUCE Mark I; однако он также был снабжен аппаратным преобразованием буквенно-цифровых данных в двоично-десятичный код на входе и наоборот на выходе. Данные также могут считываться и перфорироваться одновременно со скоростью 100 карт в минуту. DEUCE Mark IIA предусмотрены семь дополнительных линии задержки ртути, каждый из 32 слов.

В период с 1955 по 1964 год было продано в общей сложности 33 машины DEUCE, две из которых были приобретены производителем двигателей Bristol Siddeley .

Успех DEUCE был обусловлен ее программной библиотекой, содержащей более 1000 программ и подпрограмм.

Характеристики оборудования

DEUCE Mark 0 и I:

Clock rate         1 MHz
Word size         32 bits
High speed store 384 words
Arithmetic:
  one 32-bit accumulator;
  one 64-bit accumulator that could be used also as two 32-bit accumulators.
  addition/subtraction
     64 microseconds single length,
     96 microseconds double precision
     Addition of a single-length number to a double-length number,
     with automatic sign extension, 64 microseconds.
  multiplication 2080 microseconds
  division       2112 microseconds
magnetic drum 8192 words
  separate read heads and write heads
  Track read time  15 ms
  Head shift time  35 ms
card reader speed 200 cards per minute
card punch speed  100 cards per minute
paper tape reader speed 850 character/second
  tape: 5, 7, 8-row tape.
  stopping time:    ½ millisecond (m.s.)
  start time       20 milliseconds
paper tape punch speed 25 characters/second
  tape: 5 or 7 rows
Software floating-point (average times):
  addition/subtraction 6  m.s.
  multiplication       5½ m.s.
  division             4½ m.s.

DEUCE MARK II:

  As for DEUCE Mark I.
  A combined IBM 528 card reader and punch could read cards at 200 per minute, and punch at 100 cards per minute.  When simultaneously started, the reader and punch ran at 100 cards per minute. Automatic conversion to and from 6-bit characters was provided. This mode was in addition to the programmed conversion provided by the Mark I DEUCE.

DEUCE MARK IA И IIA:

  As above, with 7 extra delay lines providing 224 words of high-speed store.

Примечания: множитель и делитель были асинхронными. Несколько целых чисел можно было умножить за одно выполнение инструкции умножения, вставив целые числа в регистры умножителя или умножаемого во время умножения и извлекая результаты во время умножения. Другие специальные эффекты включали подсчет битов в слове и преобразование двоично-десятичного числа (BCD) в двоичное. То же самое и с делением, которое можно использовать для преобразования целых чисел в двоично-десятичные числа (BCD), а также для преобразования фунтов, шиллингов и пенсов в пенсы.

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

использованная литература

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