Electrologica X1 представляла собой цифровой компьютер, разработанный и изготовленный в Нидерландах с 1958 по 1965 год. Около тридцати производились и продавались в Нидерландах и за рубежом.
X1 был разработан Математическим центром в Амстердаме, академической организацией, которая занималась компьютерным проектированием с 1947 года, и произведена Electrologica NV, компания, созданная специально для производства машины.
X1 был твердотельным двоичным компьютером («полностью транзисторным») с памятью на магнитных сердечниках. Длина слова составляла 27 бит, а периферийные устройства включали перфоленту и магнитную ленту. Это был один из первых компьютеров в Европе с функцией прерывания .
X1 был предметом Эдсгера Дейкстры доктора философии. диссертацию и цель первого полностью работающего компилятора АЛГОЛ 60, выполненного Дейкстрой и Яапом Зонневельдом. В 1965 году X1 был заменен на X8. Несколько лет спустя компания Electrologica была поглощена Philips.
X1 позволял условное выполнение каждой инструкции, а не только переходов, как в большинстве компьютеров. Аналогичная возможность существовала в Zuse Z22 и ZEBRA, а гораздо позже в архитектуре ARM. Подход, используемый в X1, более гибок, чем эти другие: он делает выполнение условным для текущего состояния флага условия, который установлен предыдущей инструкцией, если он включает модификатор для этой цели, но не затрагивается в противном случае. В результате условное выполнение может быть основано на тестах, выполненных на несколько строк раньше, а не на основе только результата самой последней арифметической операции. Это позволило компактно выразить программы. В следующем примере демонстрируется загрузка значения памяти в n в аккумулятор A, вызов подпрограммы (которая предположительно использует это значение в A ) и, наконец, установка A быть абсолютным значением прочитанного числа:
2A n P // копировать [n] в A, установить флаг условия в «да», если положительный 6T fn 0 // вызвать функцию в fn, который вернется с сохраненным флагом условия N 5P AA // если флаг условия «нет», скопируйте -A в A
В арифметических операторах X1 использовались двоичные арифметические операции с дополнением единиц.
X1 включил простой ассемблер в свою постоянную память. Он имеет довольно базовые функции: можно определять символические адреса, но символы состоят всего из двух букв. Команды именуются комбинацией цифры, представляющей операцию, и буквы, обозначающей регистр, с которым нужно работать, или одной или двух букв, обозначающих класс операции. Например, «0A» означает «добавить содержимое памяти к аккумулятору A», а «5P» означает «установить отрицательное значение аккумулятора другого аккумулятора». Обычно символические адреса используются для обозначения «абзацев», то есть связанных блоков кода или данных. Символьные адреса будут изменены на «номер строки» (числовое смещение) и «номер страницы» (число в диапазоне от 0 до 31). Например, «3 FE 6» - это номер строки 3, номер страницы 6, представляющий смещение 195 (6 * 32 + 3) от начала абзаца FE. Такая запись адреса является особенностью ассемблера; Аппаратная адресация просто использует 15-битные адреса.
На Викискладе есть материалы, связанные с Electrologica X1. |
Аннотация: В этой статье описывается небольшой, быстрый, транзисторный компьютер, предназначенный в основном для коммерческой обработки данных, разработанный сотрудниками Математического центра в Амстердаме. Статья основана на выступлении автора на Коллоквиуме в университетской математической лаборатории в Кембридже 27 ноября 1958 г.