Введение
DEUCE (Digital Electronic Universal Computing Engine) был одним из первых британских компьютеров, поступивших в коммерческую продажу, разработанным компанией English Electric с 1955 года. Он являлся серийной версией Pilot ACE, который, в свою очередь, был упрощенной версией ACE, созданного Аланом Тьюрингом.
Описание оборудования
DEUCE имел 1450 термоионных клапанов и использовал ртутные линии задержки для основной памяти; каждая из 12 линий задержки могла хранить 32 инструкции или слова данных по 32 бита. Он использовал тактовую частоту 1 МГц, которая была высокой для того времени и соответствовала частоте Pilot ACE. Ввод/вывод осуществлялся через оборудование для перфокарт 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,5 миллисекунд для умножения и 4,5 миллисекунд для деления. В ранних моделях все инструкции, связанные с магнитным барабаном, были заблокированы во время выполнения операции. Таким образом, если считывающие головки перемещались, любая последующая операция с магнитным барабаном, такая как чтение или запись трека, блокировалась до завершения первой операции. Примерно с 1957 года был представлен новый модуль, названный "рационализированной магнитной системой". Этот модуль устранил ненужные блокировки. Таким образом, можно было выполнить инструкцию, перемещающую считывающие головки, а затем инструкцию для перемещения записывающих головок или записи трека, при этом эти инструкции не блокировались и могли выполняться параллельно с перемещением считывающих головок. На передней панели DEUCE располагались два дисплея на ЭЛТ: один отображал текущее содержимое регистров, а другой – содержимое любой из ртутных линий задержки. Примерно с 1958 года можно было подключить семь дополнительных линий задержки, что увеличивало объем высокоскоростной памяти на 224 слова. Комбинированное устройство чтения/перфоратора IBM 528 могло заменить оборудование Hollerith, обеспечивая ту же скорость ввода/вывода, в этом случае машина называлась Mark II. Автоматическое преобразование буквенно-цифровых данных в двоично-десятичный код (BCD) осуществлялось при вводе, а обратное преобразование – при выводе для всех восьмидесяти столбцов карт. На этом оборудовании чтение и перфорация могли выполняться одновременно, если это необходимо, что позволяло считывать запись, обновлять ее и одновременно перфорировать обновленную запись при считывании следующей записи. С семью дополнительными линиями задержки DEUCE обозначался как Mark IIA.
Программирование
Программирование DEUCE отличалось от программирования других компьютеров. Последовательный характер линий задержки требовал, чтобы инструкции располагались в таком порядке, чтобы после завершения выполнения одной инструкции следующая была готова к извлечению из линии задержки. Для операций с одиночными регистрами минимальное время, необходимое для выполнения следующей инструкции, составляло 64 микросекунды после завершения текущей. Таким образом, инструкции не выполнялись последовательно из памяти. В общем случае, инструкции могли передавать одно или несколько слов. Соответственно, каждая инструкция указывала адрес следующей инструкции. Оптимальное программирование подразумевало, что по мере выполнения каждой инструкции следующая только что извлекалась из линии задержки. Расположение инструкций в памяти могло существенно влиять на производительность, если адрес инструкции был неоптимальным. Чтение данных с карт осуществлялось в реальном времени – каждую строку необходимо было считывать по мере ее прохождения под головкой чтения, без остановки. Аналогично и с перфоратором карт: слово для конкретной строки подготавливалось заранее и должно было быть готово, когда данная строка карты оказывалась под перфорационными иглами. Нормальным режимом чтения и перфорации был двоичный. Ввод и вывод десятичных данных осуществлялся программным путем. Высокоскоростная память состояла из четырех однословных регистров по 32 бита каждый, трех двухсловных регистров и двух четырехсловных регистров. Каждое 32-битное слово двухсловных и четырехсловных регистров могло адресоваться отдельно. К ним также можно было обращаться как к паре, а в случае четырехсловных регистров – как к группе из трех или четырех слов. Память инструкций состояла из двенадцати ртутных линий задержки, каждая из которых содержала 32 слова и была пронумерована от 1 до 12. Линия задержки 11 (DL11) служила буфером между магнитным барабаном и высокоскоростной памятью. Поскольку DEUCE являлась "передающей машиной", данные можно было передавать по одному слову, по паре слов и любым количеством слов, но не более 33 за один раз. Например, 32 слова, прочитанные с барабана, могли быть переданы как блок в любую другую линию задержки; 4 слова могли быть переданы как блок из одного четырехсловного регистра в другой или между четырехсловным регистром и линией задержки – все это с помощью одной инструкции. 32 слова в линии задержки можно было суммировать, передавая их в одноразрядный сумматор (с помощью одной инструкции). Благодаря специальной связи между DL10 и регистром 16, DL10 можно было использовать в качестве стека.
Производство
Первые три машины были поставлены весной 1955 года; в конце 1958 года появилась улучшенная модель DEUCE Mark II. Эта версия использовала комбинированный считыватель карт и перфоратор. Комбинированный считыватель карт и перфоратор IBM 528 функционировал аналогично разделенным устройствам Hollerith на более ранних машинах DEUCE Mark I; однако, он также был оснащен аппаратным преобразованием алфавитно-цифровых данных в двоично-десятичный код (BCD) при вводе и обратно при выводе. Данные можно было одновременно считывать и перфорировать со скоростью 100 карт в минуту. DEUCE Mark IIA предоставлял семь дополнительных ртутных линий задержки, каждая из которых содержала 32 слова. Всего с 1955 по 1964 год было продано 33 машины DEUCE, две из которых приобрел производитель двигателей Bristol Siddeley. Успех DEUCE был обусловлен его библиотекой программ, насчитывающей более 1000 программ и подпрограмм.