Введение

Компьютерная серия APE(X)C, или All Purpose Electronic (X) Computer, была разработана Эндрю Дональдом Бутом в Birkbeck College, Лондон в начале 1950-х годов. Его работа над серией APE(X)C финансировалась Британской ассоциацией исследований искусственного волокна. Хотя принятая номенклатура несколько неясна, по-видимому, первая модель принадлежала BRRA. По словам Бута, буква X обозначала название компании. Один из компьютеров серии также был известен как APE(X)C или All Purpose Electronic X-Ray Computer и находился в Birkbeck College.

Предыстория

С 1943 года Бут начал работу над определением кристаллических структур на основе данных рентгеновской дифракции. Вычисления были крайне трудоемкими, что создавало веские основания для автоматизации процесса, и он разработал аналоговый компьютер для расчета обратных интервалов дифракционной картины. В 1947 году вместе со своей коллегой и будущей женой Кэтлин Бриттен он провел несколько месяцев в группе фон Неймана, которая в то время являлась лидером в области компьютерных исследований.

Техническое описание

Эмулятор для серии APEXC был разработан MESS. Они описывают его функционирование следующим образом:

APEXC – невероятно простая машина. Инструкции и слова данных всегда имеют длину 32 бита. Процессор использует целочисленную арифметику с представлением в дополнительном коде. Адреса имеют длину 10 бит. В APEXC отсутствует оперативная память, за исключением 32-битного аккумулятора и 32-битного регистра данных (используемого совместно с 32-битным аккумулятором для реализации 64-битных инструкций сдвига и хранения 64-битного результата умножения). Инструкции и данные хранятся в двух магнитных барабанах, в общей сложности 32 круговых магнитных дорожек по 32 слова в каждой. Поскольку скорость вращения составляет 3750 об/мин (62,5 оборота в секунду), скорость выполнения программы может варьироваться от теоретического максимума в 1 кИПС до менее 100 ИПС, если инструкции и данные программы не располагаются последовательно в памяти. Сегодня многие считают, что карманный калькулятор работает быстрее. Одной из особенностей является отсутствие счетчика команд: каждая машинная инструкция содержит адрес следующей инструкции. Эта конструкция может показаться странной, но это единственный способ добиться оптимальной производительности с этой памятью цилиндрического типа. Машинный код состоит всего из 15 инструкций, а именно: сложение, вычитание, умножение, загрузка (3 варианта), сохранение (2 варианта), условный переход, арифметический сдвиг вправо, циклический сдвиг вправо, ввод с перфокарты, вывод на перфокарту, остановка машины и переключение банков (которое никогда не используется в APEXC, поскольку объем памяти составляет всего 1024 слова, а адреса имеют длину 10 бит). Так называемый векторный режим позволяет повторить одну и ту же операцию 32 раза над 32 последовательными ячейками памяти. Обратите внимание на отсутствие побитовых операций И, ИЛИ, исключающее ИЛИ и деления. Также отсутствует непрямая адресация: динамическое изменение кодов операций – единственный способ ее эмулировать. Еще одна особенность заключается в том, что шина памяти и АЛУ имеют ширину 1 бит. Существуют тактовые импульсы 64 кГц для битов и 2 кГц для слов, и каждая операция памяти и арифметики над словом разбивается на 32 однобитовые операции памяти и арифметики: это занимает 32 битовых цикла, в общей сложности 1 цикл слова. Процессор достаточно эффективен: большинство инструкций выполняются всего за 2 цикла слова (1 для выборки, 1 для чтения операнда и выполнения), за исключением операций сохранения, сдвига и умножения. Процессор APEXC вполне можно отнести к RISC; другого подходящего термина нет. Отсутствует постоянная память (ROM), а следовательно, отсутствует загрузчик и программа начальной загрузки. Считается, что для APEXC никогда не была написана исполнительная или операционная система, хотя существовали библиотеки подпрограмм для общих арифметических, операций ввода/вывода и отладки. Работа с машиной обычно осуществляется через панель управления, которая позволяет пользователю запускать, останавливать и возобновлять работу центрального процессора, а также изменять содержимое регистров и памяти при остановленном процессоре. При запуске машины в панель управления необходимо ввести адрес первой инструкции выполняемой программы, а затем нажать кнопку запуска. Большинство программ завершаются инструкцией остановки, которая позволяет оператору проверить состояние машины, возможно, выполнить некоторые процедуры отладки после аварийного завершения (рутина сброса содержимого памяти описана в книге по программированию APEXC), а затем ввести адрес другой программы и запустить ее. Поддерживались два устройства ввода-вывода: считыватель бумажной ленты и перфоратор бумажной ленты. Выход перфоратора мог быть подключен к принтеру ("телетайпу") по желанию. Вывод принтера эмулируется и отображается на экране. Ввод с ленты мог быть сгенерирован компьютером APEXC или введен вручную с помощью специальной клавиатуры с 32 клавишами (каждая строка ленты содержала 5 отверстий для данных (< > битов), что дает 32 различных значения).