Из Википедии, бесплатной энциклопедии
  (Перенаправлено с KDF9 )
Перейти к навигации Перейти к поиску

KDF9 был ранним британским компьютером, разработанным и построенным компанией 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 (Перейти вложенности подпрограммы магазин) был похож стек адресов возврата. Вопрос магазин был набором из 16 индексных регистров, каждый из 48 бит , разделенных на счетчик (C), Приращение (I) и Modifier(M) части по 16 бит каждая. Флаги в инструкции обращения к памяти указывают, должен ли адрес быть изменен M-частью Q Store, и, если да, следует ли уменьшать C-часть на 1, а M-часть увеличивать на содержимое I. Это сделало кодирование счетных петель очень эффективным. Три дополнительных уровня Nest и один дополнительный уровень SJNS были зарезервированы для Director, операционной системы, что позволяет обрабатывать короткие прерывания без явного сохранения и восстановления регистров. В результате накладные расходы на прерывание составили всего 3 такта.

Набор инструкций [ править ]

Инструкции состояли из 1, 2 или 3 слогов. Большая часть арифметических операций выполнялась в верхней части Nest и использовала инструкции с нулевым адресом и одним слогом, хотя арифметика адресов и обновление индекса обрабатывались отдельно в хранилище Q. Q Обработка хранилища и некоторые инструкции обращения к памяти использовали 2 слога. Команды обращения к памяти с 16-битным адресным смещением, большинство инструкций перехода и 16-битные инструкции буквальной загрузки используют 3 слога.

Плотное кодирование инструкций и интенсивное использование наборов регистров означало, что для общих научных кодов, таких как скалярное произведение и полиномиальные внутренние циклы, требовалось относительно небольшое количество обращений к хранилищу . Это во многом компенсировало относительно низкое время цикла ядра, давая KDF9 примерно треть скорости его гораздо более известного, но в 8 раз более дорогого и гораздо менее коммерчески успешного современного компьютера Manchester / Ferranti Atlas Computer .

Мультипрограммирование (разделение времени) [ править ]

KDF9 была одной из первых систем мультипрограммирования с полной аппаратной защитой. Одновременно можно запускать до четырех программ под управлением элегантно простой операционной системы, Timesharing Director , каждая из которых ограничена своей основной областью регистрами BA (базовый адрес) и NOL (количество местоположений). Каждая программа имела свои собственные наборы регистров стека и Q-хранилища, которые активировались при отправке этой программы, так что переключение контекста было очень эффективным.

Каждая программа могла напрямую управлять аппаратными устройствами ввода-вывода, но была ограничена аппаратными проверками теми, которые директор назначил для нее. Любая попытка использовать незанятое устройство вызвала прерывание из-за ошибки. Подобное прерывание возникло в результате переполнения (или опорожнения) Nest или SJNS или попытки доступа к хранилищу по адресу, указанному выше в регистре NOL. Несколько отличалось прерывание от блокировки, которое возникло в результате попытки доступа к области хранилища, которая в данный момент использовалась устройством ввода-вывода, так что было аппаратное взаимное исключение доступа к буферам DMA. Когда программа блокировалась из-за блокировки или добровольно ожидая завершения передачи ввода-вывода, она прерывалась, и Director переключался на программу с наивысшим приоритетом, которая сама не была заблокирована. Когда блокировка снята или ожидаемая передача завершена,и ответственная программа имела более высокий приоритет, чем программа, выполняющаяся в данный момент, блок управления вводом-выводом (IOC) был прерван, чтобы позволить немедленное переключение контекста. IOC также обеспечил предотвращение инверсии приоритета, при которой программа с высоким приоритетом ожидает, пока устройство будет занято программой с более низким приоритетом, запрашивая в этом случае отдельное прерывание.

Более поздние операционные системы, включая Eldon 2 [4] в Университете Лидса и COTAN, разработанные UKAEA Culham Laboratories в сотрудничестве с Университетом Глазго, были полностью интерактивными системами с множественным доступом с внешними интерфейсами PDP-8 для управления терминалами.

Компиляторы Kidsgrove и Whetstone Algol 60 были одними из первых в своем классе. Компилятор Kidsgrove сделал упор на оптимизацию; компилятор Whetstone создал интерпретируемый объектный код, предназначенный для отладки. Именно с помощью инструментов последнего Брайан Вичманн получил статистику поведения программы, которая привела к тесту Whetstone для научных вычислений [5], который, в свою очередь, послужил вдохновением для теста Dhrystone для нечисловых рабочих нагрузок. [6]

Воспоминания [ править ]

Порядок машинного кода был записан в форме восьмеричного, официально названного слогово-восьмеричным [7] (также известного как «slob-octal» или «slob» нотация, [8] [9] ). Он представлял 8 бит с тремя восьмеричными цифрами, но первая цифра представляла только два наиболее значимых бита, а остальные две оставшиеся группы по три бита в каждой. Хотя слово « байт » было придумано разработчиками IBM 7030 Stretch для группы из восьми битов , оно еще не было хорошо известно, и компания English Electric использовала слово « слог » для обозначения того, что сейчас называется байтом.

В компании English Electric ее предшественник, DEUCE , имел широко используемую матричную схему, основанную на GIP (General Interpretive Program). Ненадежность клапанных машин привела к включению механизма проверки суммы для обнаружения ошибок в матричных операциях. [nb 1] В схеме использовались блочные вычисления с плавающей запятой с использованием арифметического оборудования с фиксированной запятой, в котором проверки суммы были точными. Однако, когда соответствующая схема была реализована в KDF9, она использовала плавающую точку, новую концепцию, которая имела лишь ограниченный математический анализ. Вскоре стало ясно, что чеки сумм больше не точны, и был создан проект в попытке предоставить чек, пригодный для использования. (В плавающей запятой (A + B) + C не обязательно совпадает с A + (B + C), т.е.операция + не является ассоциативной.) Однако вскоре было признано, что частота ошибок с транзисторными машинами не является проблемой; они либо работали правильно, либо не работали вообще. Следовательно, идея проверки суммы была оставлена. Первоначальный матричный пакет оказался очень полезным инструментом для тестирования системы, поскольку он мог производить длительные проверки производительности задолго до того, как были разработаны более формальные тестовые пакеты.

Существует легенда, что KDF9 разрабатывался как проект KD9 (Kidsgrove Development 9) и что буква F в его обозначении была добавлена ​​тогдашним председателем после долгой и утомительной дискуссии о том, как назвать машину при запуске - «Я не знаю. не волнует, если вы назовете это F- ». Правда более приземленная: имя было выбрано практически случайно менеджером по маркетингу. [10] (См. Также KDF8 для параллельной разработки и использования коммерчески ориентированного компьютера.)

Операционная система Egdon была названа так потому, что одна из них предназначалась для UKAEA Winfrith : в книге Томаса Харди « Возвращение коренных жителей» Winfrith Heath она называется Egdon Heath. Их Фортран назывался Эгтран. Элдон был назван так потому, что компьютер Университета Лидса находился в переоборудованной часовне Элдона.

Физический [ править ]

Машина весила более 10 300 фунтов (5,2 коротких тонны; 4,7 т). Пульт управления с пишущей машинкой 300 фунтов (136 кг), основным магазином и блоком управления вводом / выводом 3500 (1587 кг), арифметическим и основным блоком управления 3500 (1587 кг), блоком питания 3000 (1360 кг). [11]

См. Также [ править ]

  • Обратная польская запись (RPN)

Заметки [ править ]

  1. ^ Проверка суммы одинаково хорошо защищает от ошибок программирования в случае непреднамеренной перезаписи некоторой или всей матрицы.

Ссылки [ править ]

  1. ^ Робертс, Горонви (1967-03-06). «Компьютеры» . Hansard . Парламент Великобритании. HC . Проверено 8 июля 2017 .
  2. ^ "Компьютер KDF9 - 30 лет спустя"
  3. ^ English Electric KDF9: Очень высокоскоростная система обработки данных для торговли, промышленности, науки (PDF) (флаер продукта). Английский Электрик . c. 1961. Публикация № DP / 103. 096320WP / RP0961. Архивировано (PDF) из оригинала 27.07.2020 . Проверено 27 июля 2020 .
  4. Дэвид Холдсворт (зима 2009–10). «KDF9 Time Sharing: Eldon 2 - это не EGDON!» . Компьютерное ВОСКРЕСЕНИЕ - выпуск 49 . Общество сохранения компьютеров . Проверено 3 октября 2010 .
  5. ^ Curnow, HJ и Wichman, BA " синтетическом бенчмарке " Компьютерный журнал , том 19, выпуск 1, февраль 1976 г., стр. 43-49.
  6. ^ Вайс, Алан. «Тест Dhrystone: история, анализ,« результаты »и рекомендации» (PDF) .
  7. ^ Директор - Руководство (PDF) (Блок-схема). Английский Электрик . c. 1960-е гг. Архивировано (PDF) из оригинала 27.07.2020 . Проверено 27 июля 2020 . (NB. Упоминается термин «слоговое восьмеричное».)
  8. ^ Борода, Боб (осень 1997 г.) [1996-10-01]. «Компьютер KDF9 - 30 лет спустя» (PDF) . Воскресение - Бюллетень Общества Сохранения Компьютеров . № 18. Общество сохранения компьютеров (CCS). С. 7–15 [9, 11]. ISSN  0958-7403 . Архивировано (PDF) из оригинала 27.07.2020 . Проверено 27 июля 2020 . [1] (NB. Это отредактированная версия выступления Северо-Западной группы общества в Музее науки и промышленности, Манчестер, Великобритания, 01.10.1996. В нем упоминаются термины "неряха" и "неряха". -octal как эквивалент «восьмеричной слоговой».)
  9. ^ "Архитектура компьютера English Electric KDF9" (PDF) . Версия 1. Общество сохранения компьютеров (CCS). Сентябрь 2009 г. CCS-N4X2. Архивировано (PDF) из оригинала 27.07.2020 . Проверено 27 июля 2020 . (NB. Ссылается на статью Бирда 1997 года .)
  10. ^ "(повторно) Представляем KDF9" . www.findlayw.plus.com . Проверено 27 декабря 2020 .
  11. ^ "English Electric | Продажа компьютерной революции | Музей истории компьютеров" . www.computerhistory.org . п. 27.

Внешние ссылки [ править ]

  • Английский Электрический KDF9
  • Аппаратное обеспечение KDF9
  • Программное обеспечение KDF9
  • KDF9 и бенчмаркинг
  • KDF9: Библиография
  • Коды символов KDF9
  • ee9 , эмулятор KDF9, написанный на GNU Ada
  • Список поставки и приложения для English Electric KDF9
  • История компилятора KDF9 Algol
  • Переводчик Алгола Whetstone KDF9
  • Некоторые анекдоты о компиляторе KDF9 Algol
  • Презентация Алгола KDF9 в гостях у Дейкстры
  • KDF9 Nest (изображения)
  • Исходный код для порта KDF9 компилятора Atlas Autocode