Введение
KDF8 был ранним британским компьютером, созданным компанией English Electric в качестве версии RCA 501. Создание системы, совместимой с программным обеспечением, было направлено на сокращение времени и затрат на разработку программного обеспечения. Однако длительный процесс разработки производственных возможностей означал, что система вскоре была опередита системами других поставщиков. За 5 лет производства было продано лишь несколько систем. В связи с консолидацией британской компьютерной промышленности компьютерное подразделение English Electric стало одним из компонентов того, что станет ICL.
Предыстория
В конце 1950-х годов компания English Electric приступила к двум крупным компьютерным проектам. Во-первых, компания English Electric построила версию компьютера RCA 501, известную как KDP10 (KDP для Kidsgrove Data Processing). Это была машина, предназначенная для коммерческих приложений обработки данных, с инструкциями фиксированной длины и возможностями обработки цифровых и альфа-цифровых данных переменной длины. Первоначальная конструкция RCA была адаптирована для использования типов транзисторов, диодов и других компонентов, произведенных в Великобритании. KDP10 был впервые поставлен в 1961 году. В 1964 году он был переименован в KDF8, и продажи продолжались до 1965 года. Машина была по существу такой же, как RCA 501, и производилась по лицензии, чтобы English Electric могла предложить полный спектр компьютерных систем для всех своих клиентов, без затрат на разработку совершенно новой машины. Машина была продана за 400 000 фунтов. Продано только 13. Вторым большим компьютером, появившимся в результате разработки в Kidsgrove, был KDF9, в основном предназначенный для научной работы. Один KDF8 был установлен на территории компьютерного бюро The English Electric Company в Кидсгроуве (Стаффордшир). За эти годы, и последовательность слияний, эта организация стала английской электрической Leo Marconi (EELM), Международные вычислительные услуги Limited (ICSL), и, наконец, в рамках совместной договоренности между ICL и Barclay's Bank, Baric.
Обработка/основное хранилище
KDF8 был транзисторным устройством с магнитной памятью. Основная память машины, установленной в компьютерном бюро Kidsgrove, была обновлена с 64 кб до максимальной на тот момент 96 кб. KDF8 использовал октальную (осьмиконечную) систему адресации. Инструкция машинного кода была фиксированной длиной, длиной в десять октальных символов. Инструкционный комплект был специально разработан для коммерческого использования. Он имел инструкции на уровне машинного кода для всех четырех десятичных арифметических функций, работающих на числах переменной длины, а также инструкции для эффективной манипуляции строками данных переменной длины. Не все инструкции требовали всех десяти символов. Учитывая минимальную доступную основную память, программисты часто использовали "запасные" символы в инструкциях для хранения констант и аналогичных трюков для сохранения памяти. KDF8 был строго компьютерным процессором, выполняющим одну программу за раз. Одновременно можно было обрабатывать только одну вычислительную инструкцию, но также можно было иметь одну инструкцию для чтения и / или одной инструкции для записи (обычно от и к магнитной ленте), выполняющуюся параллельно. Для контроля степени синхронной работы использовалась система аппаратных "воротов", установленных и проверяемых на уровне машинного кода. Однако, поскольку не было операционной системы любого рода, это должно было полностью контролироваться на уровне отдельной программы. KDP10 в сервисном бюро был обновлен на месте, поскольку система была построена с RCA-германиевыми транзисторами. Частью обновления было преобразование основной логики в кремниевые транзисторы. Было также добавлено трехзначное адресное число, и цикл машины составлял 15 микросекунд, с шестью временными импульсами, где шестой импульс был для установки времени, таким образом, цикл машины был сокращен до 12,5 микросекунд. Уровень программирования, позволяющий контролировать полное перекрытие чтения/записи/вычисления, особенно если записи данных были "сброшены" в несколько "реальных" блоков данных на магнитной ленте, был значительным, поскольку все проверки одновременности должны были быть вручную закодированы в программу. Автоматическое обнаружение ошибок было по существу ограничено проверкой аппаратного паритета на уровне символов, и не было никаких проверок аппаратного обеспечения процессора на то, что мог сделать программист. Например, компьютер просто остановится, если ему будет дано указание получить доступ к местоположению памяти за пределами физической памяти.
Программное обеспечение
Не было операционной системы. Программы были инициированы оператором в режиме онлайн через консоль оператора. Операторы также отвечали за ручное очищение памяти и перенастройку компьютера между программами, монтаж и замену лент, контроль офлайн печати и тому подобное. Некоторые стандартные пакеты программного обеспечения были доступны или стали доступны, все они были написаны в США организацией RCA. К ним относятся следующие. Параметрическая сортировочная программа, способная обрабатывать очень большие объемы данных. Параметры сортировки могут быть зачитаны с считывателя бумажной ленты, для одного из сортов, или "компилированы" (на самом деле просто сохранены в программе). Существовали обширные пользовательские "кружки", в которые можно было вставлять код, предоставленный пользователем, на различных этапах процесса сортировки/слияния. Компилятор на языке ассемблера, называемый EZ Code. Это не использовалось в коммерческих целях в течение некоторого времени, так как время компиляции тогда рассматривалось как тяжелая накладная расходы, но в последующие годы все чаще использовалось. Чтобы сэкономить время на компьютере, обычно программист выполнял начальную компиляцию, сухую проверку программы вручную, повторную компиляцию, а затем тестирование и устранение ошибок скомпилированной версии машинного кода программы, создавая катушку патчей машинного кода бумажной ленты для программы по мере каждой коррекции. Как только была получена достаточно надежная копия, изменения были воспроизведены в Assembler, а программа была перекомпилирована и перепроверена. Часто последний этап никогда не был полностью завершен, и не было ничего необычного для производственных программ, требующих загрузки патчей машинного кода с бумажной ленты для каждого запуска. Кроме того, ряд крупных коммерческих пакетов для расчета заработной платы, счетов и регистрации акций были написаны сотрудниками Бюро до принятия компилятора Assembler и оставались полностью в машинном коде. Еще одна причуда заключалась в том, что рутины генерации ввода-вывода сборщика не использовались одним отделом программирования, который написал свой собственный обобщенный пакет ввода-вывода, называемый Tape Control, основанный на формате таблицы описания файлов COBOL. Это автоматизировало большую часть ошибочного программирования сборов/разборов записей и управления одновременными операциями чтения/записи и условиями окончания файла. Компилятор COBOL. Этот метод использовался очень редко, так как первые опыты не были полностью благоприятными. Одним из примечательных исключений была программа проектирования проводов под названием "WRS1", используемая для проектирования оборудования для более позднего английского электрического KDF9 и серии систем 4 компьютеров Mainframe. Еще одной странностью был препроцессор таблицы решений для программ COBOL, написанный на COBOL. Это было интересно, так как сотрудники бюро по программированию в то время экспериментировали с использованием таблиц решений в качестве альтернативы схемам потоков. Однако, в то время как эти программисты продолжали передавать код в ассемблере из рукописных таблиц решений с некоторым успехом, накладные расходы на компиляцию препятствовали использованию предпроцессора. Для оптимизации пропускной способности производственных программ программисты бюро выпускали стандартные пакеты программного обеспечения для расчета заработной платы, бухгалтерских книг продаж и покупок, регистрации акций, контроля за запасами и т. Д., А некоторые приложения, такие как расчет заработной платы, поддерживали обработку данных от многих клиентов бюро в одном компьютерном запуске, с индивидуальными настройками параметров, управляющими требованиями отдельных клиентов. Более сложные требования клиентов были удовлетворены заказными программами.
Работа с компьютером
Очень маленький (около 20 инструкций) загрузчик загрузки может быть удержан в передней части каждой ленты программы, но даже этот подход не всегда использовался. На лентах этикетки (за исключением COBOL и Tape Control управляемых приложений) почти не существовало. Цикл ротации ленты дедушка/отец/сын защищал производственные ленты от крупных катастроф, но требовал тщательного ручного контроля. Программисты (или для операционных комплектов персонал управления производством) давали оператору письменные инструкции о том, на какую программу и ленту данных загрузить, на какие устройства, и письменное резюме о том, как загрузить и инициировать каждую программу. Оператор загружал ленты, загружал и запускал каждую программу вручную с консоли. Консоль, состоящая из вертикальной панели отображения высотой около 5 футов и длиной около 2 метров с аналогичной по размеру слегка угловой панелью управления ниже нее. Каждая из этих двух частей была заполнена обозначенными кнопками и освещенными индикаторами, каждая (примерно) квадратная дюйма. В разделе отображения были показатели, которые при включении показывали, в двоичных (группированных в восьмерные) символы, текущее рабочее (или статическое) состояние машины на уровне основного адреса и регистра отдельной машины, для вычислительных, чтения и записи операций, которые в то время были в процессе. Когда программа была запущена, этот дисплей был калейдоскопом быстро меняющихся, мигающих, многоцветных огней. Секция панели управления состояла из кнопок для выбора следующего регистра, который должен быть установлен, и центральной части, которая отражала схему одного основного адреса машины. Другие кнопки позволяли выполнять более сложные операции. Использование этих кнопок позволило оператору выбрать и затем напрямую ввести в центральные места хранения машины и регистрировать октальный шаблон, который он / она вводил вручную. Для того, чтобы оператор вводил одну машинную инструкцию, каждый из десяти октальных символов инструкции должен был быть выбран и встроен в качестве его бинарного шаблона каждый с правильным (нечетным) битом паритета.