Английский электрический KDF9
Разработчик | Английский электрический |
---|---|
Производитель | Английский электрический |
Поколение | 2 |
Дата выпуска | 1964 год |
Отгружено единиц | 29 |
Операционная система | Директор по распределению времени, Элдон 2, ЭГДОН, КОТАН |
Процессор | с трансформаторной связью Диодно-транзисторная логика , построенная на основе германиевых диодов, около 20 000 транзисторов и около 2000 тороидальных импульсных трансформаторов) @ 1 МГц |
Память | 32 КБ слов 48-битной основной памяти (192 КБ) |
Масса | 5,2 коротких тонны (4,7 т) |
KDF9 был ранним британским 48-битным компьютером, разработанным и изготовленным компанией English Electric (которая в 1968 году была объединена с International Computers Limited (ICL)). Первая машина поступила на вооружение в 1964 году, а последняя из 29 машин была выведена из эксплуатации в 1980 году в Национальной физической лаборатории . KDF9 был разработан и почти полностью использовался в области математических и научных вычислений - в 1967 году девять из них использовались в университетах и технических колледжах Великобритании. [1] KDF8 . , разрабатывавшийся параллельно, был нацелен на рабочие нагрузки коммерческой обработки
KDF9 был ранним примером машины, которая напрямую поддерживала мультипрограммирование , используя смещения в своей основной памяти для разделения программ на отдельные виртуальные адресные пространства. несколько операционных систем Для платформы было разработано , в том числе те, которые обеспечивали полностью интерактивное использование через машины PDP-8 , выступающие в качестве интеллектуальных терминальных серверов . Был доступен ряд компиляторов , в частности компиляторы для проверки и глобальной оптимизации для Algol 60 .
Архитектура [ править ]
Логические схемы KDF9 были полностью полупроводниковыми. В KDF9 использовалась диодно-транзисторная логика с трансформаторной связью , построенная на основе германиевых диодов, около 20 000 транзисторов и около 2 000 тороидальных импульсных трансформаторов . [2] Они работали на тактовой частоте 1 МГц, которая выдавала два импульса по 250 нс с интервалом 500 нс в каждом тактовом цикле. Максимальная конфигурация включала 32 КБ слов 48-битной основной памяти (192 КБ) с временем цикла 6 микросекунд. Каждое слово могло содержать одно 48-битное целое число или число с плавающей запятой команд , два 24-битных целых числа или числа с плавающей запятой, шесть 8-битных слогов или восемь 6-битных символов. [3] Также была предусмотрена возможность эффективной обработки чисел из двойного слова (96-бит) как в целочисленном формате, так и в формате с плавающей запятой. Однако не было возможности адресации байтов или символов, так что нечисловая работа пострадала от сравнения. Его стандартный набор символов представлял собой версию кода бумажной ленты Friden Flexowriter , ориентированную на Algol 60 и включавшую необычные символы, такие как индекс Algol 10. Однако каждый другой тип устройства ввода-вывода реализовал свое собственное подмножество этого набора. Например, не каждый символ, который можно было прочитать с бумажной ленты, можно было успешно напечатать.
Регистры [ править ]
Архитектура ЦП включала три набора регистров. Гнездо представляло собой стек арифметических регистров глубиной 16. SJNS (хранилище вложений подпрограмм) представляло собой аналогичный стек адресов возврата. Q Store представлял собой набор из 16 индексных регистров, каждый из которых имел 48 бит, разделенных на части счетчика (C), приращения (I) и модификатора (M) по 16 бит каждый. Флаги в инструкции обращения к памяти указывают, должен ли адрес быть изменен частью M Q Store, и, если да, должна ли часть C уменьшаться на 1, а часть M увеличиваться на содержимое части I. Это сделало кодирование счетных циклов очень эффективным. Три дополнительных уровня гнезда и один дополнительный уровень SJNS были зарезервированы для директора, операционной системы, что позволяло обрабатывать прерывания по короткому пути без явного сохранения и восстановления регистра. В результате накладные расходы на прерывание составили всего 3 такта.
Набор инструкций [ править ]
Инструкции состояли из 1, 2 или 3 слогов. Большая часть арифметических операций выполнялась в верхней части Nest и использовала односложные инструкции с нулевым адресом , хотя арифметика адреса и обновление индекса обрабатывались отдельно в хранилище Q. Q Обработка сохранения и некоторые инструкции обращения к памяти использовали 2 слога. Инструкции обращения к памяти с 16-битным смещением адреса, большинство инструкций перехода и 16-битные инструкции буквальной загрузки — все они использовали 3 слога.
Плотное кодирование инструкций и интенсивное использование наборов регистров означали, что для обычных научных кодов, таких как скалярное произведение и полиномиальные внутренние циклы, требовалось относительно мало обращений к хранилищу. Это во многом компенсировало относительно медленное время основного цикла, давая KDF9 примерно треть скорости его гораздо более известного, но в 8 раз более дорогого и гораздо менее коммерчески успешного современника, компьютера Manchester/ Ferranti Atlas .
Мультипрограммирование (разделение времени) [ править ]
KDF9 была одной из первых полностью аппаратно защищенных мультипрограммных систем. Под управлением элегантно простой операционной системы Timesharing Director можно было запускать до четырех программ одновременно , каждая из которых ограничивалась своей основной областью с помощью регистров BA (базовый адрес) и NOL (количество местоположений). Каждая программа имела свои собственные наборы регистров стека и хранилища Q, которые активировались при запуске этой программы, поэтому переключение контекста было очень эффективным.
Каждая программа могла напрямую управлять аппаратными устройствами ввода-вывода, но была ограничена проверками оборудования только теми, которые ей выделил директор. Любая попытка использовать нераспределенное устройство вызывала прерывание из-за ошибки. Аналогичное прерывание возникло в результате переполнения (или опустошения) Nest или SJNS или попытки доступа к хранилищу по адресу, превышающему адрес, указанный в регистре NOL. Несколько иным было прерывание блокировки, которое возникало в результате попытки доступа к области хранилища, которая в данный момент использовалась устройством ввода-вывода, поэтому имело место аппаратное взаимное исключение доступа к буферам DMA. Когда программа блокировалась из-за блокировки или добровольно ожидала завершения передачи ввода-вывода, она прерывалась, и директор переключался на программу с наивысшим приоритетом, которая сама не была заблокирована. Когда блокировка сбрасывалась или ожидаемая передача прекращалась, и ответственная программа имела более высокий приоритет, чем программа, работающая в данный момент, блок управления вводом-выводом (IOC) прерывался, чтобы обеспечить немедленное переключение контекста. IOC также предусмотрел возможность избежать инверсии приоритетов, при которой программа с высоким приоритетом ожидает, пока устройство будет занято программой с более низким приоритетом, запрашивая в этом случае отдельное прерывание.
Более поздние операционные системы, включая Eldon 2. [4] в Университете Лидса и COTAN, разработанные UKAEA Culham Laboratories в сотрудничестве с Университетом Глазго, представляли собой полностью интерактивные системы множественного доступа с интерфейсами PDP-8 для управления терминалами.
Компиляторы Kidsgrove и Whetstone Algol 60 были одними из первых в своем классе. Компилятор Kidsgrove делал упор на оптимизацию; Компилятор Whetstone создал интерпретируемый объектный код, предназначенный для отладки. Именно с помощью последнего Брайан Вичманн получил статистику поведения программ, которая привела к созданию эталона Whetstone для научных вычислений. [5] что, в свою очередь, вдохновило Dhrystone на создание эталона для нечисловых рабочих нагрузок. [6]
Воспоминание [ править ]
форме, Порядки машинного кода были записаны в восьмеричной официально называемой слоговой восьмеричной. [7] (также известное как «небрежно-восьмеричная» или «небрежная» нотация, [8] [9] ). Он представлял собой 8 бит с тремя восьмеричными цифрами, но первая цифра представляла только два старших бита, а остальные - оставшиеся две группы по три бита в каждой. Хотя слово « байт » было придумано разработчиками IBM 7030 Stretch для обозначения группы из восьми битов , оно еще не было широко известно, и компания English Electric использовала слово « слог » для обозначения того, что сейчас называется байтом.
В компании English Electric ее предшественник, DEUCE , имел широко используемую матричную схему, основанную на GIP (General Interpretive Programme). Ненадежность клапанных машин привела к включению механизма проверки суммы для обнаружения ошибок в матричных операциях. [номер 1] В схеме использовались блочные операции с плавающей запятой с использованием аппаратных средств арифметики с фиксированной запятой, в которых проверки сумм были точными. Однако, когда соответствующая схема была реализована в KDF9, она использовала плавающую запятую, новую концепцию, которая имела лишь ограниченный математический анализ. Быстро стало ясно, что проверки сумм больше не являются точными, и был создан проект с целью предоставить пригодный для использования чек. (В случае с плавающей запятой (A + B) + C не обязательно совпадает с A + (B + C), т.е. операция + не является ассоциативной.) Однако вскоре было признано, что частота ошибок в транзисторных машинах не является проблемой. проблема; они либо работали правильно, либо не работали вообще. Следовательно, от идеи суммовых проверок отказались. Первоначальный матричный пакет оказался очень полезным инструментом тестирования системы, поскольку он позволял проводить длительные проверки производительности задолго до разработки более формальных пакетов тестирования.
Существует легенда, что KDF9 был разработан как проект KD9 (Kidsgrove Development 9) и что буква F в его обозначении была введена тогдашним председателем после долгого и утомительного обсуждения того, как назвать машину при запуске: «Я не мне плевать, если ты назовешь это буквой «F ». На самом деле все более приземленно: название было выбрано менеджером по маркетингу практически случайно. [10] (См. также KDF8 для параллельной разработки и использования коммерческого компьютера.)
Операционная система EGDON была названа так потому, что один из них направлялся в UKAEA Winfrith : в Томаса Харди книге «Возвращение родного Уинфрита Хита» зовут Эгдон Хит . ЭГДОН Фортран назывался ЭГТРАН. [10] Элдон был назван так потому, что компьютер Университета Лидса располагался в переоборудованной часовне Элдона.
Физический [ править ]
Машина весила более 10 300 фунтов (5,2 коротких тонны; 4,7 т). Пульт управления с прерывающейся пишущей машинкой 300 фунтов (136 кг), основной накопитель и блок управления вводом/выводом 3500 (1587 кг), арифметический и основной блок управления 3500 (1587 кг), блок питания 3000 (1360 кг). [11]
См. также [ править ]
- Обратная польская запись (RPN)
Примечания [ править ]
- ^ Проверка суммы одинаково хорошо защищает от ошибок программирования в случае, если часть или вся матрица была случайно перезаписана.
Ссылки [ править ]
- ^ Робертс, Горонви (6 марта 1967 г.). «Компьютеры» . Парламентские дебаты (Хансард) . ХК . Проверено 08 июля 2017 г.
- ^ "Компьютер KDF9 - 30 лет спустя"
- ^ English Electric KDF9: Высокоскоростная система обработки данных для торговли, промышленности и науки (PDF) (флаер о продукте). Английский электрик . в. 1961. Публикация № DP/103. 096320WP/RP0961. Архивировано (PDF) из оригинала 27 июля 2020 г. Проверено 27 июля 2020 г.
- ^ Дэвид Холдсворт (зима 2009–2010 гг.). «Разделение времени KDF9: Элдон 2 — это не EGDON!» . Компьютер ВОСКРЕСЕНИЕ – выпуск 49 . Общество охраны компьютеров . Проверено 3 октября 2010 г.
- ^ Курноу, Х.Дж. и Вичман, Б.А., « Синтетический эталон » Компьютерный журнал , том 19, выпуск 1, февраль 1976 г., стр. 43–49.
- ^ Вайс, Алан. «Бенчмарк Dhrystone: история, анализ, оценки и рекомендации» (PDF) .
- ^ Директор - Руководство (PDF) (Блок-схема). Английский электрик . в. 1960-е годы. Архивировано (PDF) из оригинала 27 июля 2020 г. Проверено 27 июля 2020 г. (Примечание. Упоминается термин «слоговое восьмеричное письмо».)
- ^ Борода, Боб (осень 1997 г.) [1996-10-01]. «Компьютер KDF9 — 30 лет спустя» (PDF) . Воскресение — Бюллетень Общества охраны компьютеров . № 18. Общество охраны компьютеров (CCS). С. 7–15 [9, 11]. ISSN 0958-7403 . Архивировано (PDF) из оригинала 27 июля 2020 г. Проверено 27 июля 2020 г. [1] (Примечание. Это отредактированная версия выступления, прочитанного перед Северо-Западной группой Общества в Музее науки и промышленности, Манчестер, Великобритания, 1 октября 1996 г.). В нем упоминаются термины «неряха» и «неряха». -восьмеричный» как эквивалент «слогового восьмеричного».)
- ^ «Архитектура компьютера English Electric KDF9» (PDF) . Версия 1. Общество охраны компьютеров (CCS). Сентябрь 2009 г. CCS-N4X2. Архивировано (PDF) из оригинала 4 апреля 2020 г. Проверено 27 июля 2020 г. Берда 1997 года (Примечание. Относится к статье .)
- ^ Jump up to: Перейти обратно: а б «(повторно) представляем KDF9» . www.findlayw.plus.com . Проверено 27 декабря 2020 г.
- ^ «English Electric | Продажа компьютерной революции | Музей истории компьютеров» . www.computerhistory.org . п. 27.
Внешние ссылки [ править ]
- Английский электрический KDF9
- Аппаратное обеспечение KDF9
- Программное обеспечение KDF9
- KDF9 и бенчмаркинг
- KDF9: библиография
- Коды символов KDF9
- ee9 , эмулятор KDF9, написанный на GNU Ada.
- PASKAL — кросс-компилятор KDF9 Pascal, написанный на языке Pascal.
- Список поставки и приложения для English Electric KDF9. Архивировано 4 апреля 2020 г. на Wayback Machine.
- История компилятора Алгола KDF9
- Алгольный переводчик Whetstone KDF9
- Некоторые анекдоты о компиляторе KDF9 Algol
- Презентация KDF9 Algol в гостях у Дейкстры
- KDF9 Гнездо (изображения)
- Исходный код для KDF9-порта компилятора Atlas Autocode