Elliott 803

редактировать

Детали от Elliott 803B

Elliott 803 - небольшой транзисторный цифровой компьютер средней скорости который был произведен британской компанией Elliott Brothers в 1960-х годах. Было построено около 211.

Содержание
  • 1 История
  • 2 Описание оборудования
  • 3 Набор команд
    • 3.1 Группы команд 0–3
    • 3.2 Группа команд 4
    • 3.3 Группа команд 5
    • 3.4 Группа инструкций 6
    • 3.5 Группа инструкций 7
    • 3.6 Пример программы
    • 3.7 Прерывания
  • 4 Компиляторы
  • 5 Участие NCR
    • 5.1 Самостоятельные вычисления
  • 6 Приложения
  • 7 См. Также
  • 8 Ссылки
  • 9 Дополнительная литература
  • 10 Внешние ссылки
История

Серия 800 началась с 801, одноразовой испытательной машины, построенной в 1957 году Модель 802 была серийной, но в период с 1958 по 1961 год было продано только семь. Недолговечный 803A был построен в 1959 году и впервые доставлен в 1960 году; 803B был построен в 1960 году и впервые поставлен в 1961 году.

Заказчикам было доставлено более 200 компьютеров Elliott 803 по цене около 29000 фунтов стерлингов в 1960 году (что примерно эквивалентно 673000 фунтов стерлингов в 2019 году). Большинство продаж приходилось на версию 803B с большим количеством внутренних параллельных путей, большим объемом памяти и аппаратными операциями с плавающей запятой.

Elliott 803 был компьютером, используемым в ISI-609, первой в мире системе управления процессом или промышленной системой управления, в которой 803 был регистратором данных. Он использовался для этой цели в первом в США ядерном реакторе двойного назначения, N-Reactor.

. У значительного числа британских университетов был Elliott 803.

Elliott впоследствии разработал (1963) гораздо более быстрый, совместимый с программным обеспечением, Elliott 503.

Два полноценных компьютера Elliott 803 выжили. Один из них принадлежит Музею науки в Лондоне, но не выставлен на всеобщее обозрение. Второй принадлежит Национальному музею вычислительной техники (TNMoC) в Блетчли-Парк, полностью функционален, и посетители этого музея могут регулярно видеть его в действии.

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

803 - это транзисторная,, последовательная машина с битами ; 803B имеет больше внутренних параллельных путей. В нем используется ферритовая память с магнитным сердечником в 4096 или 8192 словах по 40 бит, содержащих 39 бит данных с четностью. Центральный процессор (ЦП) размещается в одном шкафу с высотой, шириной и глубиной 56 на 66 на 16 дюймов (142 на 168 на 41 см). Схемотехника основана на печатных платах, причем схемы достаточно просты, а большая часть сигнализации осуществляется по проводам. Второй шкаф размером примерно в половину меньше, чем используется для источника питания, который обычно основан на большой никель-кадмиевой батарее с зарядным устройством, ранней форме источника бесперебойного питания. Третий шкаф (того же размера, что и силовой шкаф) содержит дополнительную рабочую память на машинах с 8192 магазинами слов. Есть операторский пульт управления, Creed телетайп и скоростной бумажный перфолент считыватель и перфорация для ввода / вывода, с использованием 5-трекового телекода Эллиотта, а не Бодо. Лента читается со скоростью 500 символов в секунду и перфорируется со скоростью 100 символов в секунду. Пульт оператора длиной около 60 дюймов позволяет вручную вводить низкоуровневые инструкции для управления адресами и данными, а также запускать, останавливать и включать машину: имеется громкоговоритель (включаемый верхним битом регистра команд ), который позволяет оператору судить о состоянии вычисления. Система требует кондиционирования воздуха, потребляя около 3,5 кВт мощности в минимальной конфигурации. Минимальная установка весила около 1800 фунтов (820 кг).

Устройство для обработки магнитной пленки 35 мм

Дополнительное запоминающее устройство доступно на необычной системе магнитной ленты на основе стандартной пленки 35 мм покрытый оксидом железа (производство Kodak ). В то время это использовалось киноиндустрией для записи звуковых дорожек. Фабрика Эллиотта в Борехамвуде была близка к киностудии Элстри, что объясняет использование 35-миллиметровых носителей. Барабаны длиной 1000 футов вмещали 4096 блоков по 64 слова в блоке (4096 x 64 x 39 = 10 223 616 бит, или эквивалент примерно 1,3 мегабайта).

Еще одна необычная особенность - использование магнитных сердечников не только для памяти, но и в качестве логических вентилей. Эти логические ядра имеют 1, 2 или 3 входные обмотки, триггер (считывание) и выходную обмотку. В зависимости от полярности импульсы тока во входных обмотках либо намагничивают сердечник, либо гасят друг друга. Намагниченное состояние сердечника указывает результат логической логической функции. Две фазы тактового сигнала, обозначенные альфа и бета, используются для запуска (сброса в ноль) альтернативных ядер. Переход от единицы к нулю вызывает импульс на выходной обмотке. Ядра, которые получают альфа-триггерные импульсы (альфа-ядра), имеют входы, поступающие от вентилей, которые запускаются на бета-фазе (бета-ядра). Транзисторы в то время были дорогими, и каждый логический вентиль требовал только одного для усиления импульса выходной обмотки; однако один транзистор управляет входами небольшого числа (обычно 3) других ядер. Если необходимо управлять более чем 3 входами, каждое ядро ​​может управлять еще двумя транзисторами.

Набор команд

Команды и данные основаны на 39-битном слове с двоичным представлением в арифметике 2 с дополнением. Набор команд работает с одним адресом и одним регистром накопителя с дополнительным вспомогательным регистром для целочисленного умножения и деления двойной длины. Хотя считается, что инструкции деления одинарной длины и извлечения квадратного корня были включены только в 803, предназначенных для приложений управления процессами, было обнаружено, что на одном оставшемся работающем 803B эти инструкции были включены, вероятно, потому, что он использовался компанией-разработчиком программного обеспечения для разработки реальных приложения для управления временем и процессами. Команда состоит из 6-битного функционального поля (обычно представленного в восьмеричной ) и 13-битного адреса. Это дает 64 инструкции, организованные в 8 групп по 8 инструкций. 13-битное адресное поле памяти дает адресный диапазон 8192 слов. Эти 19-битные инструкции упакованы по два в слово с дополнительным 39-м битом между ними, так называемая B-строка или B-цифра (термин унаследован от компьютера Ferranti Mark 1, где A-линия представляет аккумулятор, а B-линия - модификатор команд, оба хранятся в трубке Вильямса ). Установка цифры B приводит к добавлению содержимого адреса памяти первой инструкции ко второй инструкции во время выполнения, что позволяет индексировать, косвенную адресацию и другие модификации инструкций во время выполнения. Битовое время составляет 6 микросекунд, переходы выполняются за 288 микросекунд, а простые арифметические инструкции - за 576 микросекунд. Операции с плавающей точкой занимают несколько миллисекунд. IO прямая. Прерывания не использовались стандартными периферийными устройствами и не задокументированы в руководстве по программированию.

В нижеследующих описаниях A и N представляют аккумулятор и буквальный адрес, a и n представляют (начальное) содержимое аккумулятора и адресуемое местоположение хранилища, а 'и n' - результирующее содержимое.

Группы команд 0–3

Это арифметические операции с фиксированной запятой с 4 различными комбинациями операндов и адресатов результата:

Группы 0–3
FnОперацияa'n'
FnОперацияa'n'
00Ничего не делатьan
01Отменить-an
02Заменить и подсчитатьn + 1n
03Сортировкаa nn
04Добавитьa + nn
05Вычестьa - nn
06Очиститьнольn
07Отменить и добавитьn - an
10Обменna
11Обмен и отрицание-na
12Обмен и подсчетn + 1a
13Запишите и сопоставьтеa na
14Запишите и сложитеa + na
15Записать и вычестьa - na
16Записать и очиститьнольa
17Запишите, отрицайте и сложитеn - aa
20Запишитеaa
21Запишите отрицательноa-a
22Подсчитать в магазинеan + 1
23Сортировка в магазинеaa n
24Добавить в магазинaa + n
25Отменить сохранение и добавитьaa - n
26Очистить хранилищеaноль
27Вычесть из хранилищаan - a
30Заменитьnn
31Заменить и отрицать хранилищеn-n
32Заменить и считать в хранилищеnn + 1
33Заменить и сопоставить в хранилищеna n
34Заменить и добавить в хранилищеna + n
35Заменить, отрицать хранилище и добавитьna - n
36Заменить и очистить хранилищеnноль
37Заменить и вычесть из хранилищаnn - a

Группа команд 4

Группа 4 - это условные и безусловные переходы. Функции 40–43 переходят к первой инструкции пары, а 44–47 - ко второй.

Группа 4
FnОперация
40Безусловный переход к 1-й инструкции
41Переход к 1-й инструкции, если a отрицательное
42Переход к 1-й инструкции, если a равно нулю
43Переход к 1-й инструкции, если установлено переполнение, и очистка
44Безусловный переход ко 2-й инструкции
45Переход ко второй инструкции, если a отрицательное
46Переход ко второй инструкции, если a равно нулю
47Переход ко второй инструкции, если установлено переполнение, и очистите его.

Группа команд 5

Группа 5 - это команды умножения, деления и сдвига. Некоторые из них используют 38-битный вспомогательный регистр (AR - содержимое обозначается ar), который можно рассматривать как расширение аккумулятора на наименее значимом конце. При умножении и делении a / ar рассматривается как дробь со знаком между -1 и одним младшим значащим битом меньше +1. Несмотря на то, что в Справочнике 803 сказано: «Все нечетные функции в группе 5 очищают AR», функция 57 не очищает его.

Группа 5
FnОперация
50Арифметический сдвиг вправо a / ar N раз
51Логический сдвиг вправо N раз, очистить ar
52Умножить a на n, результат будет a / ar
53Умножить a на n, результат с округлением одинарной длины до a, очистить ar
54Арифметический сдвиг влево a / ar N раз
55Логический сдвиг влево a N раз, очистить ar
56Разделить a / ar на n, частное по длине на a, clear ar
57Копировать ar в a, установить нулевой бит знака, НЕ очищать ar

Группа команд 6

Группа 6 - это команды с плавающей запятой (если -пункт установлен).

Числа с плавающей запятой представлены в 39-битном слове или в аккумуляторе как (от старшего до младшего значащего конца):

  • 30-битная мантисса со знаком дополнения до 2 a в диапазоне ½ ≤ a < 1 or -1 ≤ a < -½
  • 9-битовая экспонента со знаком b, представленная как положительное целое число 0 ≤ (b + 256) ≤ 511.

Ноль всегда представлен всеми 39 битами нуля.

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

Группа 6
FnОперацияa'n'
60Добавить n кa + nn
61Вычесть n изa - nn
62Отменить a и добавить nn - an
63Умножить a на na * nn
64Разделить a на na / nn
65N = 4096: преобразовать целое число с фиксированной точкой в ​​аккумуляторе в число с плавающей точкой
65N < 4096: Fast left (end round) shift N mod 64 places
66(Запасной)
67(Запасной)

Все эти инструкции очищают вспомогательный регистр.

Группа команд 7

Группа 7 является вводом / выводом, за исключением 73, которая используется для связывания подпрограмм. Более полное описание функций Группы 7 можно найти по ссылке «Наше компьютерное наследие».

Группа 7
FnОперация
70Считывание с клавиатуры цифрового генератора в аккумулятор
71Считывание одного символа с ленточного считывателя и логического "или" его в 5 младших разрядов аккумулятора
72Вывод на дополнительное периферийное устройство, например цифровой плоттер:
73Запишите адрес этой инструкции в ячейку N
74Отправить символ, представленный буквой N, на перфорацию
75Функция канала 2
76Функция канала 2
77Функция канала 2

Управление цифровым плоттером:

ИнструкцияДвижение пера
72 7168Нет движения
72 7169ВОСТОК
72 7170ЗАПАД
72 7172СЕВЕР
72 7176ЮГ
72 7173СЕВЕРО-ВОСТОК
72 7174СЕВЕРО-ЗАПАД
72 7177ЮГО-ВОСТОК
72 7178ЮГО-ЗАПАД
72 7184Pen Up
72 7200Pen Down

Вход в подпрограмму в объявлении dress N обычно выполняется последовательностью:

73 LINK: 40 N

Адрес возврата был сохранен в месте ссылки (обычно в месте до начала подпрограммы (например, N-1))

и возвращается с использованием последовательности:

00 LINK / 40 1

Пример программы

В качестве примера Ниже приведены Начальные инструкции, жестко зашитые в ячейки 0–3 и используемые для загрузки двоичного кода с бумажной ленты в память. В соответствии с соглашением 803 он записывается с двумя инструкциями в каждой строке, представляющими содержимое одного слова. Двоеточие или косая черта между ними представляют собой B-разрядное значение, равное нулю или единице соответственно.

0: 26 4: 06 0 Очистить loc'n 4; Очистить A 1: 22 4/16 3 Шаг 4; Сохранить A в loc'n (3 + содержимое loc'n 4) и очистить A 2: 55 5: 71 0 Сдвинуть A влево 5 раз; Прочтите ленту и «или» в A 3: 43 1: 40 2 Перейти к loc'n 1, если арифметика переполнена; Перейти к loc'n 2

В этой очень простой программе следует обратить внимание на несколько моментов:

  • Нет счета. Внутренний цикл (позиции 2 и 3) упаковывает 5-битные символы в аккумулятор, пока не произойдет переполнение. Таким образом, 39-битное слово формируется из восьми 5-битных символов. Старший бит первого символа отбрасывается, но должен иметь значение 1 (если следующий бит не равен 1), чтобы спровоцировать арифметическое переполнение (изменение знакового бита).
  • Первое прочитанное слово сохраняется в ячейке 4, а затем используется как адрес, по которому сохраняются последующие слова.
  • Пустая начальная и конечная лента игнорируется, поскольку нули можно сдвигать влево на неопределенное время, не вызывая переполнения.
  • Нет никаких условий для завершения внешнего цикла (внутренний цикл плюс точка 1). Ленту можно остановить вручную или дать ей пройти через ридер (так как пустой трейлер игнорируется). Обычно начальные инструкции используются для считывания более сложной вторичной начальной загрузки (T23) в начало магазина. После записи в последнее хранилище (8191) адрес может быть округлен до 0. Запись нуля в ячейки 0 - 3 не имеет никакого эффекта (поскольку содержимое этих ячеек создается логическими вентилями, а не считывается из основного хранилища.), а затем в ячейку 4 записывается специальное значение. Это значение имеет 22 в битах кода функции и точку входа вторичной начальной загрузки минус 3 в битах адреса. Это означает, что цифра B имеет эффект преобразования инструкции 16 (сохранение) в ячейке 1 в инструкцию 40 (переход) (16 + 22 = 40 в восьмеричном формате) и добавления 3 к битам адреса. Конечный результат - переход к точке входа вторичной начальной загрузки!

(Значения данных для циклических местоположений 0 - 3 должны быть нулевыми, поскольку значения счетчиков 8192, 8193 и т. Д. Изменяют B-модифицированную вторую половину позиция 1 от 16 до 17, которая устанавливает a в n - a вместо его очистки, как того требует внутренний цикл.)

Interrupts

803 имеет малоизвестную средство прерывания. Хотя это не упоминается в руководстве по программированию и не используется ни одним из стандартных периферийных устройств, работа логики прерывания описана в справочниках по аппаратному обеспечению 803, а логика показана в схемах обслуживания 803 (Схема 1: LB7 Gb). Прерывания, вероятно, используются в основном в сочетании с настраиваемыми интерфейсами, предоставляемыми как часть систем управления процессами ARCH в реальном времени. Поскольку все инструкции ввода и вывода заставляют 803 становиться «занятым», если входные данные недоступны или если устройство вывода не завершило предыдущую операцию, прерывания не нужны и не используются для управления стандартными периферийными устройствами.

Возбуждение входа прерывания в компьютер вызывает перерыв в выполнении следующим образом: как только машина находится в подходящем состоянии (в частности, когда он не "занят", и только в определенных состояниях выборки / выполнения cycle), следующая пара инструкций выбирается из ячейки 5 сохранения без изменения регистра управления последовательностью (SCR). Предполагается, что ячейка 5 будет содержать стандартную пару инструкций входа в подпрограмму (73 LINK: 40 N - см. Выше), позволяющую сохранить адрес выполнения перед прерыванием (все еще в SCR) для последующего возврата. Внешнее оборудование, вызывающее прерывание, должно воздерживаться от создания другого прерывания до тех пор, пока первое не будет подтверждено какой-либо подходящей инструкцией ввода / вывода, чтобы предотвратить вложение прерываний. Компилятор Algol не считает местоположение 5 зарезервированным, хотя это может быть больше связано с непригодностью Algol для приложений управления процессами, чем с указанием того, что прерывания никогда не рассматриваются как основное средство.

Компиляторы

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

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

803B с 8192 словами памяти способен запускать компилятор Elliott ALGOL, основное подмножество языка Algol60, способный последовательно загружать и запускать несколько программ ALGOL. В значительной степени это было написано Тони Хоаром, нанятым Эллиотсом в качестве программиста в августе 1960 года. Хоар рассказывает о некоторых своих опытах в Эллиоттсе в своей 1980 Association for Computing Machinery (ACM) Премия Тьюринга лекция.

803B в Национальном музее вычислительной техники теперь работает достаточно хорошо, чтобы снова запустить этот компилятор. На YouTube есть короткое видео, в котором он компилирует и запускает простую программу.

Участие NCR

Модель 803 при продаже NCR для коммерческого использования была названа NCR-Elliott 803. В это время Elliott Automation также производила / собирала NCR 315 в Борехамвуде.

Самостоятельные вычисления

Elliott 803 (а позже Elliott 4100) использовались в компьютерном бюро «Computer Workshop» совместного предприятия NCR-Elliott. Уникальной особенностью этого бюро было то, что они проводили 3-дневные курсы, чтобы научить своих клиентов писать свои собственные программы, и они часто передавались в дар библиотеке программ, которые можно было использовать. Клиенты приезжали в Борехамвуд (а затем и в Гринфорд), чтобы сами управлять компьютерами - одним из первых примеров персональных компьютеров. Цена за час составляла 8 фунтов стерлингов (что эквивалентно 186 фунтов стерлингов в 2019 году) с 9:00 до 17:00, 6 фунтов стерлингов (эквивалентно 139 фунтов стерлингов в 2019 году) с 17:00 до полуночи и 4 фунта стерлингов (эквивалент 93 фунтов стерлингов в 2019 году) с полуночи. до 9 часов утра.

Самыми популярными приложениями были в области гражданского строительства и архитектуры, для структурного анализа, выемки и насыпи, корректировки геодезических работ и ведомостей объемов работ.

Приложения

Следующими были 803 пользователя:

  • Университет RMIT в Мельбурне, Австралия, в 1966 году использовал компьютер Elliott 803 для студентов.
  • Щеточные электрические машины в Лафборо, Великобритания, использовала 803 для расчетов силовых трансформаторов и двигателей.
  • GPO использовала 803 в своей Исследовательской лаборатории Доллис Хилл для проектирования электроники и моделирования телефонных сетей.
  • GPO использовали 803 на своей Goonhilly Downs спутниковой земной станции для расчета спутниковых проходов и перфорации лент для управления антеннами.
  • Corah Knitware из Лестера, Великобритания, использовала пару 803 для обработка заказов по телефону и планирование производства.
  • Thornber Farms в Западном Йоркшире, Великобритания, использовала 803 для обработки данных о производстве яиц для разведения кур.
  • Виккерс, да Коста, лондонский биржевой маклер, использовал 803B для обработки торговых операций и расчета заработной платы с 1961 по 1966 год, когда он был заменен на National Elliot 4300.
  • Радиошкола RAF No. 1 в RAF Locking использовала 803 в 1968 году для подготовки первых учеников компьютерных техников RAF.
  • Совет по медицинским исследованиям Отдел биофизических исследований в Королевском колледже Лондона в Друри-Лейн использовал 803 для подробных расчетов для проверки структуры ДНК и первых попыток секвенирования РНК.
  • United Steel (позднее British Steel) Swinden House Laboratories в Ротерхэме в 1963 году был доставлен 803-й. Частично он использовался для моделирования различных процессов в производстве стали.
  • Колледж передовых технологий Баттерси использовал 803-й для обучения студентов.
  • Маллард Исследовательские лаборатории в Редхилле использовали 803.
  • (pt ), португальский банк, примерно в конце 1961 года получил поставку 803-B, первого компьютера, установленного в Португалии. Частично его использовали для регистрации и отслеживания текущих счетов.

Небольшое количество подержанных 803-х попало в школы Великобритании.

  • Школа Банбери имела 2 Эллиотта 803B, один с памятью 4096 и лентой, а другой с памятью 8192. Они использовались для обучения Автокоду Эллиотта в качестве основного языка, но также имели компилятор АЛГОЛ. Последний раз машины работали в 1980 году, когда их заменил класс, полный BBC B. Школа также приобрела машину в Университете Лафборо в качестве запасных частей.
  • В школе Фелстед когда-то было два Эллиотта 803, в настоящее время осталась только консоль управления, она повешена в углу одной из нынешних IT-комнат школы в качестве напоминание о том, почему комната называется «Эллиотт»
  • В школе Хейдона до начала 1980-х годов было два Elliot 803B с 8192 ключевыми словами, одна из которых использовалась для запасных частей. Один из них прибыл из соседнего Университета Брюнеля. Периферийные устройства включали в себя два устройства для обработки пленки, два оптических считывателя, два перфоратора и телепринтер для вывода, аппаратное устройство извлечения квадратного корня и барабанный плоттер. Он использовался для запуска Algol, Autoode и были доступны компиляторы BASIC и Fortran. Он был установлен в начале 1970-х под контролем физического факультета. В то время это была гимназия Святого Николая для мальчиков.
  • Школа Милл-Хилл в 1970-х годах имела Эллиотт 803 с памятью 8192. У него был пятидорожечный считыватель бумажной ленты и принтер, но не было других устройств ввода-вывода. В школе был автокод Elliott 803 и компиляторы Algol.
  • Грамматическая школа Лафборо получила машину от компании Brush Electrical Machines, упомянутой выше.
  • Технический колледж Хайбери имел Elliott 803B для использования студентами в начале 1970-е.
См. Также
Ссылки
Дополнительная литература
  • Адриан Джонстон, Руководство для молодых людей по... The Elliott 803B, Resurrection (Бюллетень Общество сохранения компьютеров ) 1(весна 1991 г.) [1]
  • Тони Хоар, Старая одежда императора, Сообщения ACM 24(февраль 1981 г.)
  • Эллиотт Brothers (Лондон) Ltd., Отдел научных вычислений, Руководство по программированию электронного цифрового компьютера 803 (июнь 1962 г.)
  • Pathe News Reel, Science and the Egg, [2]
  • Практическое применение для школьных интрасетей [3]
  • Первый компьютер, который я запрограммировал [4]
  • Savard, John JG (2018) [2005]. «Компьютерная арифметика». квадиблок. Ранний Да ys шестнадцатеричного. Архивировано из оригинала 16 июля 2018 г. Получено 16 июля 2018 г. (NB. Имеет информацию о наборе символов Elliott 803.)
Внешние ссылки
На сайте Wikimedia Commons есть СМИ, относящиеся к Elliott 803.
Последняя правка сделана 2021-05-19 07:37:41
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте