KDF9 fue una de las primeras computadoras británicas de 48 bits diseñada y construida por English Electric (que en 1968 se fusionó con International Computers Limited (ICL)). La primera máquina entró en servicio en 1964 y las dos últimas de las 29 máquinas fueron desmanteladas en 1980 en el Laboratorio Nacional de Física . [ 1 ] La KDF9 fue diseñada para, y utilizada casi exclusivamente en, los campos del procesamiento matemático y científico; en 1967, nueve estaban en uso en universidades y escuelas técnicas del Reino Unido. [ 2 ] La KDF8 , desarrollada en paralelo, estaba destinada a cargas de trabajo de procesamiento comercial.
El KDF9 fue un ejemplo temprano de una máquina que admitía directamente la multiprogramación , utilizando desplazamientos en su memoria principal para separar los programas en distintos espacios de direcciones virtuales. Se desarrollaron varios sistemas operativos para la plataforma, incluyendo algunos que proporcionaban un uso totalmente interactivo a través de máquinas PDP-8 que actuaban como servidores de terminal inteligentes . Existían varios compiladores disponibles, en particular compiladores de extracción y de optimización global para Algol 60 .
Arquitectura
Los circuitos lógicos del KDF9 eran completamente de estado sólido . El KDF9 utilizaba lógica de diodo-transistor acoplada por transformador , construida con diodos de germanio, unos 20 000 transistores y unos 2000 transformadores de pulso toroidales . [ 3 ] Funcionaban con un reloj de 1 MHz que proporcionaba dos pulsos de 250 ns separados por 500 ns en cada ciclo de reloj. La configuración máxima incorporaba 32 000 palabras de almacenamiento de núcleo de 48 bits (192 000 bytes) con un tiempo de ciclo de 6 microsegundos. Cada palabra podía contener un único número entero o de coma flotante de 48 bits , dos números enteros o de coma flotante de 24 bits, seis sílabas de instrucción de 8 bits u ocho caracteres de 6 bits. [ 4 ] También se disponía de una gestión eficiente de números de doble palabra (96 bits) tanto en formato entero como de coma flotante. Sin embargo, carecía de direccionamiento por bytes o caracteres, por lo que el procesamiento de datos no numéricos se veía perjudicado. Su conjunto de caracteres estándar era una versión del código de cinta de papel Friden Flexowriter , orientada a Algol 60, e incluía caracteres poco comunes como el subíndice 10 de Algol. No obstante, cada tipo de dispositivo de E/S implementaba su propio subconjunto. Por ejemplo, no todos los caracteres que se podían leer de la cinta de papel se podían imprimir correctamente.
Registros
La arquitectura de la CPU presentaba tres conjuntos de registros. El Nest era una pila de 16 registros aritméticos con orden descendente. El SJNS (Subroutine Jump Nesting Store) era una pila similar de direcciones de retorno. El Q Store era un conjunto de 16 registros de índice, cada uno de 48 bits, divididos en partes de Contador (C), Incremento (I) y Modificador (M) de 16 bits cada una. Los indicadores en una instrucción de referencia de memoria especificaban si la dirección debía modificarse mediante la parte M de un Q Store y, en caso afirmativo, si la parte C debía decrementarse en 1 y la parte M incrementarse con el contenido de la parte I. Esto hacía que la codificación de bucles de conteo fuera muy eficiente. Tres niveles adicionales de Nest y un nivel adicional de SJNS estaban reservados para el Director, el Sistema Operativo, lo que permitía gestionar las interrupciones de ruta corta sin guardar ni restaurar registros explícitamente. Como resultado, la sobrecarga de interrupción era de solo tres ciclos de reloj.
Conjunto de instrucciones
Las instrucciones eran de una, dos o tres sílabas. Aunque el término « byte » había sido acuñado por los diseñadores del IBM 7030 Stretch para un grupo de ocho bits , aún no era muy conocido, y English Electric usó el término « sílaba » para lo que ahora se llama byte. La mayor parte de la aritmética se realizaba en la parte superior del Nest y utilizaba instrucciones de una sílaba y dirección cero , aunque la aritmética de direcciones y la actualización de índices se gestionaban por separado en el almacén Q. La gestión del almacén Q y algunas instrucciones de referencia de memoria utilizaban dos sílabas. Las instrucciones de referencia de memoria con un desplazamiento de dirección de 16 bits, la mayoría de las instrucciones de salto y las instrucciones de carga literal de 16 bits utilizaban tres sílabas.
La codificación densa de las instrucciones y el uso intensivo de los conjuntos de registros implicaban que se necesitaban relativamente pocos accesos a memoria para códigos científicos comunes, como el producto escalar y los bucles internos polinómicos. Esto contribuyó en gran medida a compensar el tiempo de ciclo del núcleo, relativamente lento, lo que le otorgó al KDF9 aproximadamente un tercio de la velocidad de su contemporáneo, mucho más famoso, pero ocho veces más caro y con mucho menos éxito comercial, el Manchester/ Ferranti Atlas Computer .
Multiprogramación (tiempo compartido)
El KDF9 fue uno de los primeros sistemas de multiprogramación totalmente protegidos por hardware. Podía ejecutar hasta cuatro programas simultáneamente bajo el control de su sistema operativo, el Director de Tiempo Compartido , de una sencillez elegante. Cada programa estaba confinado a su propia área central mediante los registros BA (Dirección Base) y NOL (Número de Ubicaciones). Cada programa disponía de sus propios registros de pila y de almacenamiento Q, que se activaban al ejecutarse dicho programa, lo que permitía un cambio de contexto muy eficiente.
Cada programa podía controlar directamente los dispositivos de E/S de hardware, pero estaba limitado por comprobaciones de hardware a aquellos que el Director le había asignado. Cualquier intento de usar un dispositivo no asignado provocaba una interrupción de error. Una interrupción similar se producía al sobrellenar (o vaciar en exceso) el Nest o el SJNS, o al intentar acceder al almacenamiento en una dirección superior a la indicada en el registro NOL. Algo diferente era la interrupción de bloqueo, que se producía al intentar acceder a un área de almacenamiento que estaba siendo utilizada por un dispositivo de E/S, de modo que existía una exclusión mutua de hardware del acceso a los búferes DMA. Cuando un programa se bloqueaba por un bloqueo o al esperar voluntariamente a que finalizara una transferencia de E/S, se interrumpía y el Director cambiaba al programa de mayor prioridad que no estuviera bloqueado. Cuando se eliminaba un bloqueo o finalizaba una transferencia en espera, y el programa responsable tenía mayor prioridad que el programa que se estaba ejecutando, la unidad de control de E/S (IOC) generaba una interrupción para permitir un cambio de contexto inmediato. La IOC también tomó medidas para evitar la inversión de prioridad, en la que un programa de alta prioridad espera a que un dispositivo esté ocupado por un programa de menor prioridad, solicitando una interrupción distinta en ese caso.
Los sistemas operativos posteriores, incluidos Eldon 2 [ 1 ] en la Universidad de Leeds y COTAN, desarrollado por los Laboratorios Culham de UKAEA con la colaboración de la Universidad de Glasgow, eran sistemas multiacceso totalmente interactivos, con interfaces PDP-8 para gestionar los terminales.
Los compiladores Kidsgrove y Whetstone Algol 60 fueron de los primeros de su clase. El compilador Kidsgrove hacía hincapié en la optimización; el compilador Whetstone generaba un código objeto interpretable orientado a la depuración. Fue mediante la instrumentación de este último que Brian Wichmann obtuvo las estadísticas sobre el comportamiento del programa que dieron lugar al benchmark Whetstone para computación científica, [ 5 ] que a su vez inspiró el benchmark Dhrystone para cargas de trabajo no numéricas. [ 6 ]
Reminiscencia
Las órdenes en código máquina se escribían en una forma octal denominada oficialmente octal silábico [ 7 ] (también conocida como notación 'slob-octal' o 'slob', [ 8 ] [ 9 ] ). Representaba 8 bits con tres dígitos octales, pero el primer dígito representaba solo los dos bits más significativos, mientras que los otros dos grupos restantes de tres bits cada uno.
En English Electric, su predecesor, DEUCE , tenía un esquema matricial muy utilizado basado en GIP (Programa Interpretativo General). La falta de fiabilidad de las máquinas de válvulas llevó a la inclusión de un mecanismo de verificación de suma para detectar errores en las operaciones matriciales. [ nb 1 ] El esquema utilizaba punto flotante por bloques con hardware aritmético de punto fijo, en el que las verificaciones de suma eran precisas. Sin embargo, cuando el esquema correspondiente se implementó en KDF9, utilizó punto flotante, un concepto nuevo que solo tenía un análisis matemático limitado. Pronto quedó claro que las verificaciones de suma ya no eran precisas y se estableció un proyecto para intentar proporcionar una verificación útil. (En punto flotante, (A + B) + C no es necesariamente lo mismo que A + (B + C), es decir, la operación + no es asociativa). Sin embargo, pronto se reconoció que las tasas de error en las máquinas de transistores no eran un problema; o funcionaban correctamente o no funcionaban en absoluto. En consecuencia, se abandonó la idea de las verificaciones de suma. El paquete de matrices inicial demostró ser una herramienta de prueba de sistemas muy útil, ya que fue capaz de generar comprobaciones de rendimiento extensas mucho antes que los paquetes de prueba más formales que se desarrollaron posteriormente.
Existe una leyenda que cuenta que el KDF9 se desarrolló como el proyecto KD9 (Kidsgrove Development 9) y que la «F» de su designación fue aportada por el entonces presidente tras una larga y tediosa discusión sobre cómo nombrar la máquina en su lanzamiento: «Me da igual que la llamen F... ». La verdad es más simple: el nombre fue elegido prácticamente al azar por un gerente de marketing. [ 10 ] (Véase también KDF8 para el desarrollo y uso paralelo de una computadora con orientación comercial).
El sistema operativo EGDON recibió ese nombre porque uno iba a UKAEA Winfrith : en el libro de Thomas Hardy , El regreso del nativo, Winfrith Heath se llama Egdon Heath . EGDON Fortran se llamaba EGTRAN. [ 10 ] Eldon recibió ese nombre porque la computadora de la Universidad de Leeds estaba ubicada en una capilla de Eldon reconvertida.
Físico
La máquina pesaba más de 10 300 libras (5,2 toneladas cortas; 4,7 t). Mesa de control con máquina de escribir de interrupción 300 lb (136 kg), unidad principal de almacenamiento y control de entrada/salida 3500 (1587 kg), unidad aritmética y de control principal 3500 (1587 kg), unidad de fuente de alimentación 3000 (1360 kg). [ 11 ]
Notas
- ^ La comprobación de la suma también estaba bien protegida contra errores de programación, en caso de que parte o la totalidad de una matriz se sobrescribiera inadvertidamente.
Referencias
- ^ a b David Holdsworth (Invierno 2009–10). "KDF9 Time Sharing: Eldon 2 no es EGDON!" . Computer RESURRECTION – número 49 . Computer Conservation Society . Recuperado el 3 de octubre de 2010 .
- ^ Roberts, Goronwy (6 de marzo de 1967). "Computadoras" . Debates parlamentarios (Hansard) . HC . Consultado el 8 de julio de 2017 .
- ^ "El ordenador KDF9: 30 años después"
- ^ English Electric KDF9: Sistema de procesamiento de datos de muy alta velocidad para comercio, industria y ciencia (PDF) (folleto del producto). English Electric . c. 1961. Publicación n.° DP/103. 096320WP/RP0961. Archivado (PDF) del original el 27/07/2020 . Consultado el 27/07/2020 .
- ^ Curnow, HJ y Wichman, BA " Un benchmark sintético " Computer Journal , Volumen 19, Número 1, febrero de 1976, págs. 43–49.
- ^ Weiss, Alan. "Dhrystone Benchmark: Historia, análisis, "puntuaciones" y recomendaciones" (PDF) .
- ^ Director - Manual (PDF) (Diagrama de flujo). English Electric . c. 1960s. Archivado (PDF) del original el 27-07-2020 . Recuperado el 27-07-2020 .(Nota: Se menciona el término "octal silábico").
- ^Beard, Bob (otoño de 1997) [1996-10-01]. "La computadora KDF9: 30 años después" (PDF) . Resurrection - The Bulletin of the Computer Conservation Society . N.° 18. Computer Conservation Society (CCS). págs. 7–15 [9, 11]. ISSN 0958-7403 . Archivado (PDF) del original el 27 de julio de 2020. Recuperado el 27 de julio de 2020 .[1] (Nota: Esta es una versión editada de una charla impartida al Grupo Noroeste de la Sociedad en el Museo de Ciencia e Industria de Manchester, Reino Unido, el 1 de octubre de 1996. Menciona los términos "desaliñado" y "octal desaliñado" como equivalentes a "octal silábico").
- ^ "Arquitectura del ordenador English Electric KDF9" (PDF) . Versión 1. Computer Conservation Society (CCS). Septiembre de 2009. CCS-N4X2. Archivado (PDF) del original el 4 de abril de 2020. Consultado el 27 de julio de 2020 .(Nota: Se refiere al artículo de Beard de 1997 ).
- ^ a b "(re)presentando el KDF9" . www.findlayw.plus.com . Consultado el 27 de diciembre de 2020 .
- ^ "English Electric | Vendiendo la revolución informática | Museo de Historia de la Computación" . www.computerhistory.org . pág. 27.
Enlaces externos
- El English Electric KDF9
- El hardware del KDF9
- El software del KDF9
- El KDF9 y la evaluación comparativa
- El KDF9: una bibliografía
- Los códigos de caracteres KDF9
- ee9 , un emulador de KDF9 escrito en Ada 2012.
- paskal , un compilador cruzado KDF9 Pascal escrito en Ada 2012
- Lista de entrega y aplicaciones para el English Electric KDF9. Archivado el 4 de abril de 2020 en Wayback Machine.
- Historia del compilador KDF9 Algol
- El traductor Algol KDF9 de Whetstone
- Algunas anécdotas sobre el compilador KDF9 Algol
- Presentación sobre KDF9 Algol durante la visita de Dijkstra
- Nido de KDF9 (imágenes) Archivado el 31/05/2023 en Wayback Machine
- Código fuente para la versión KDF9 del compilador Atlas Autocode
- Los primeros ordenadores británicos
- Ordenadores centrales ICL
- computadoras de 48 bits
- Computadoras de lógica magnética
- Computadoras transistorizadas
- Electricidad inglesa
- Introducciones relacionadas con la informática en 1964