KDF8 fue una de las primeras computadoras británicas construida por English Electric como una versión del RCA 501 . Al producir un sistema compatible con software, la intención era reducir el tiempo y el costo de desarrollar software. Sin embargo, el largo proceso de desarrollo de la capacidad de fabricación significó que el sistema pronto fue superado por sistemas de otros proveedores. Solo se vendieron unos pocos sistemas durante sus 5 años de producción. Debido a la consolidación de la industria informática británica, la división informática de English Electric se convirtió en uno de los componentes de lo que se convertiría en ICL .
Desarrollador | Inglés Eléctrico |
---|---|
Fabricante | Inglés Eléctrico |
Generacion | 1 |
Fecha de lanzamiento | 1961 | (como KDP10 )
Esperanza de vida | 5 años |
Precio de lanzamiento | £ 400 000 |
Unidades vendidas | 13 |
Memoria | ( Memoria de núcleo magnético ) |
Almacenamiento | Cintas magnéticas |
Almacenamiento extraíble | Cinta de papel |
Fondo
A finales de la década de 1950, English Electric se embarcó en dos importantes proyectos informáticos.
En primer lugar, English Electric construyó una versión de la computadora RCA 501 que se conocía como KDP10 (KDP para el procesamiento de datos de Kidsgrove). Esta era una máquina diseñada para aplicaciones comerciales de procesamiento de datos, con instrucciones de longitud fija y capacidades para procesar datos numéricos y alfanuméricos de longitud variable. El diseño original de RCA se adaptó para utilizar los tipos de transistores, diodos y otros componentes fabricados en el Reino Unido. El KDP10 se entregó por primera vez en 1961. En 1964 se volvió a designar como KDF8 y las ventas continuaron hasta 1965. [1] La máquina era esencialmente la misma que la RCA 501 y se fabricaba bajo licencia para que English Electric pudiera ofrecer una gama completa. de sistemas informáticos para todos sus clientes, sin el gasto de desarrollar una máquina completamente nueva. La máquina se vendió por 400.000 libras esterlinas. Solo se vendieron 13. [2] [3]
La segunda computadora grande que surgió del trabajo de desarrollo en Kidsgrove fue la KDF9 , diseñada principalmente para trabajos científicos.
Se instaló un KDF8 en el sitio de Kidsgrove (Staffordshire) de la oficina de informática de The English Electric Company. Con los años, y una sucesión de fusiones, esta organización se convirtió en English Electric Leo Marconi (EELM), International Computing Services Limited (ICSL), y finalmente bajo un acuerdo conjunto entre ICL y Barclay's Bank , Baric.
Caracteristicas basicas
Procesador / tienda principal
KDF8 era una máquina basada en transistores con memoria de núcleo magnético . La memoria central de la máquina instalada en la oficina informática de Kidsgrove se actualizó de 64k al máximo de 96k de memoria central en ese momento. KDF8 utilizó un sistema de direccionamiento octal (base ocho). Una instrucción de código de máquina tenía una longitud fija, diez caracteres octales. El conjunto de instrucciones fue diseñado específicamente para uso comercial. Tenía instrucciones a nivel de código de máquina para las cuatro funciones aritméticas decimales que operaban en números de longitud variable, y también tenía instrucciones para la manipulación eficiente de cadenas de datos de longitud variable. No todas las instrucciones requieren los diez caracteres. Dada la mínima memoria de núcleo disponible, los programadores solían utilizar caracteres "de repuesto" en las instrucciones para el almacenamiento de constantes y trucos similares para ahorrar almacenamiento.
KDF8 era estrictamente una computadora de procesamiento por lotes, que ejecutaba un programa a la vez. Solo se podía procesar una instrucción de cálculo a la vez, pero también era posible tener una instrucción de lectura y / o escritura (generalmente desde y hacia la cinta magnética) ejecutándose en paralelo. Se utilizó un sistema de "puertas" de hardware configuradas y comprobadas a nivel de código de máquina para controlar el grado de funcionamiento sincrónico. Sin embargo, dado que no había ningún sistema operativo de ningún tipo, esto tuvo que ser controlado por completo a nivel de programa individual.
El KDP10 en la oficina de servicios se actualizó in situ, ya que el sistema se construyó con transistores de germanio RCA. Parte de la actualización fue convertir la lógica principal en transistores de silicio. También se agregó un sumador de direcciones de tres caracteres, y el ciclo de la máquina fue de 15 microsegundos, con seis pulsos de tiempo, donde el sexto pulso fue para el tiempo de estabilización, por lo que el ciclo de la máquina se redujo a 12.5 microsegundos.
El nivel de habilidad del programador para controlar la superposición completa de lectura / escritura / cálculo, especialmente si los registros de datos se "agrupaban" varios en el bloque "real" de datos en cinta magnética, era considerable, ya que todas las comprobaciones de simultaneidad tenían que codificarse manualmente en el programa. La detección automática de errores se limitaba esencialmente a comprobaciones de paridad de hardware a nivel de carácter, y no había comprobaciones de hardware del procesador sobre lo que podía hacer el programador. Por ejemplo, la computadora simplemente se detendrá si se le indica que acceda a una ubicación de memoria más allá de la memoria física.
Periféricos
No había discos magnéticos, tambores u otros dispositivos de almacenamiento de respaldo temporales similares. El almacenamiento a granel se limitó a cintas magnéticas, en carretes abiertos, cada uno de los cuales tenía aproximadamente una pulgada de grosor y nueve pulgadas (229 mm) de ancho, con un máximo de 2,400 pies (730 m) de cinta. Los datos y programas se guardaron en estas cintas. La verificación de errores periféricos se limitó nuevamente a verificaciones de paridad en todas las lecturas y escrituras y al uso de anillos de permisos de escritura. El Kidsgrove KDF8 tenía ocho unidades de cinta magnética en línea, cada una con una velocidad de lectura / escritura de 40.000 caracteres por segundo. Cada unidad de cinta tenía aproximadamente 6 pies (1,8 m) de alto y 2 pies (0,61 m) de ancho, y los gabinetes del procesador y la memoria eran aproximadamente del mismo tamaño y número. La configuración de Kidsgrove requería una gran habitación con aire acondicionado.
Ocho se consideró el número máximo de unidades de cinta en funcionamiento, una por canal, para cualquier configuración real de KDF8. Era posible dividir cada canal de cinta a través de unidades de hardware adicionales en un subgrupo de ocho unidades de cinta, lo que da un máximo teórico de 61 unidades de cinta en línea. (Se requerían al menos tres identificadores de canal de E / S codificados de forma única para otros dispositivos).
Se disponía de otros pares de unidad de cinta / impresora, capaces de funcionar independientemente del mainframe. Estos proporcionaron una función de impresión fuera de línea para la salida de volumen, lo que liberó a la KDF8 para ejecutar otros trabajos.
Otros periféricos incluidos:
- un lector de cinta de papel (1000cps) para entrada de datos y programa (inicial),
- un dispositivo de teleimpresora del operador (con un perforador de cinta de papel lento incorporado) que permite que los programas muestren información al operador y que el operador use el teclado para perforar programas cortos o elementos de datos en cinta de papel. Esta teleimpresora no se podía usar para ingresar datos directamente a la computadora, todos los comandos del operador tenían que ingresarse a través de la consola del operador.
- una impresora en línea, utilizada principalmente para volcados de memoria de programas fallidos.
Tanto las impresoras en línea como las fuera de línea eran impresoras de impacto, capaces de imprimir una línea de 120 o 160 caracteres, según el modelo. Eran de una sola cara, sin minúsculas. El papel plegado en abanico para las impresoras era continuo, con perforaciones entre las páginas y orificios de rueda dentada a cada lado del papel para el mecanismo de alimentación del papel. Los tamaños de papel personalizados, con líneas / texto / colores preimpresos, etc., eran comunes, especialmente para aplicaciones como nómina, y se necesitaban pequeños bucles de control de cinta de papel para hacer coincidir el tamaño de avance de página con cada tipo de papel.
Conjunto de instrucciones
Cada instrucción de código de máquina KDF8 tomó el formato
OO AAA RR BBB
En esta representación
OO representa un código de operación de dos caracteres (octales), que identifica la instrucción a realizar, en el rango de 00 a 77, AAA representa una dirección de núcleo de seis caracteres (octales) "A" que van de 000000 a 777777. (Un valor teórico 1 ⁄ 4 Meg tienda principal directamente direccionable, ¡un valor real de 96K!) RR representa una configuración de registro de dos caracteres (un carácter para cada uno de los dos registros posibles numerados del 1 al 7 utilizados para modificar las direcciones "A" y "B", con 0 indicando sin modificación de registro) y BBB representa la dirección "B", igual que la dirección "A" en formato.
Las instrucciones se leyeron a su vez desde la tienda principal en los registros y luego se ejecutaron.
Ejemplo. Una instrucción para leer datos desde el lector de cinta de papel en línea a ubicaciones comenzando en la ubicación de la tienda (octal) 200000 se vería como
14 200000 00 770000 (espacios solo para mayor claridad)
Donde 14 era el código de operación para este tipo de lectura, 200000 era la ubicación de almacenamiento más baja en la que se leerían los datos, 00 indica que no se debía realizar ninguna modificación de registro en las direcciones A o B de la instrucción, y 77 era el ( fijo) identificador de dispositivo del lector de cinta de papel. (Nota: 77 utilizado como ID de dispositivo para una operación de escritura dirigiría la escritura al teleimpresor del operador. Vergonzoso si esto se debió a un error de programa, y era un bloque de datos grande destinado a cinta magnética ...). Los últimos cuatro caracteres octales (0000) no eran necesarios en esta instrucción y se ignorarían cuando se procesara la instrucción. Estos caracteres "de repuesto" eran frecuentemente utilizados por los programadores para almacenar constantes, dada la extremadamente limitada tienda principal disponible.
Algunos aspectos del conjunto de instrucciones fueron avanzados y facilitaron enormemente la programación de sistemas comerciales.
Los códigos de operación 51-54 hicieron aritmética decimal Sumar, Restar, Multiplicar y Dividir en números de longitud variable, almacenados como caracteres decimales. Un extremo de cada operando se almacenó en las direcciones "A" y "B" de la instrucción. El otro extremo fue identificado por un ISS (Item Separator Symbol), octal 74. Por lo tanto, los números pueden tener cualquier longitud. Una instrucción "Sector Compare" (Octal 43) permitía la bifurcación condicional de tres vías del control del programa dependiendo de si los datos almacenados en el rango de la dirección "A" a la dirección "B" eran mayores, menores o iguales que, el valor del mismo número de caracteres almacenados en ubicaciones a la izquierda del registro "T" (previamente establecido), como intenta demostrar la siguiente versión de lenguaje ensamblador.
Tag Op Dirección A RR Dirección B
COMPARAR SET £ T SALARIO, R SC TAXLIMIT TAXLIMIT, R CTC ABAJOTAXLIMIT ARRIBAXLIMIT EQUAL TC EQUALTAXLIMIT
Este ejemplo compara un salario con un límite de impuestos y salta a una de las tres ubicaciones del programa según los valores respectivos. La convención de ensamblador ", R" representa el carácter más a la derecha del campo nombrado. CTC significa "Transferencia condicional de control" y TC para Transferencia (incondicional) de control.
En el código de "comparación" anterior, el conjunto de instrucciones original (¿KDP10?) Se compara de derecha a izquierda, lo que requiere que se compare la longitud completa de las cadenas de datos, un carácter a la vez. KDP8 se mejoró para comparar de izquierda a derecha, por lo que la comparación podría detenerse tan pronto como los valores relativos fueran claros, acelerando considerablemente el procesamiento de tales instrucciones.
Los datos de longitud variable se manejaron con la ayuda de caracteres especialmente designados. El ISS o el símbolo del separador de elementos, octal 74, generalmente representado como "●", se utilizó para separar campos de datos de longitud variable. Octal 75 "<" y 76 ">" identificaron el inicio y el final de un mensaje de datos, Octal 777777 se usó por costumbre y práctica para identificar el final del archivo. Por lo tanto, datos como nombres y direcciones podrían perforarse en cinta de papel para ingresar datos como (por ejemplo)
Varias instrucciones podrían operar directamente sobre estos datos de longitud variable, y los registros podrían ser agrupados, digamos, diez por lote en cinta magnética, para un almacenamiento eficiente. Dado el procesador y las velocidades de E / S relativamente lentas (según los estándares actuales), un aspecto importante de la tarea del programador era equilibrar el procesamiento por lotes de datos en cinta, con la informática necesaria por registro y organizar las operaciones de cálculo y E / S simultáneas con el objetivo de maximizar la superposición de la computación con la E / S y evitar que las platinas se detengan entre lecturas por lotes.
Software
No existía ningún sistema operativo. Los programas fueron iniciados por un operador en línea, a través de una consola de operador. Los operadores también eran responsables de borrar manualmente la memoria y reajustar la computadora entre programas, montar y cambiar cintas, controlar la impresión fuera de línea y similares.
Algunos paquetes de software estándar estaban disponibles, o se hicieron disponibles, todos escritos en los EE. UU. Por la organización RCA. Estos incluyeron lo siguiente.
- Un programa de clasificación y combinación controlado por parámetros, capaz de manejar grandes volúmenes de datos. Los parámetros de clasificación pueden leerse desde el lector de cinta de papel, para clasificaciones únicas, o "compilarse" (en realidad, simplemente almacenarse en el programa). Había muchos "ganchos" de usuario en los que el código proporcionado por el usuario podía introducirse en varias etapas del proceso de clasificación / combinación.
- Un compilador en lenguaje ensamblador llamado EZ-Code. Esto no se usó comercialmente durante algún tiempo, ya que el tiempo de compilación se consideraba una sobrecarga pesada, pero se fue utilizando cada vez más en años posteriores. Para ahorrar tiempo en la computadora, por lo general, un programador haría una compilación inicial, verificaría en seco el programa manualmente, volvería a compilar y luego probaría y eliminaría los errores de la versión compilada en código máquina del programa, creando una bobina de papel. Grabe parches de código de máquina en el programa a medida que se realizaba cada corrección. Una vez que estuviera disponible una copia bastante sólida, los cambios se replicarían en Assembler y el programa se volvería a compilar y probar. Con frecuencia, la última etapa nunca se completaba del todo, y no era desconocido que los programas de producción requirieran que se cargaran parches de código de máquina desde cinta de papel para cada ejecución. Además, el personal de la Oficina redactó varios paquetes comerciales importantes para la nómina, las cuentas y el registro de acciones antes de que se aceptara el compilador Assembler, y permanecieron completamente en código de máquina. Una peculiaridad adicional fue que las rutinas de generación de E / S del ensamblador no fueron utilizadas por una sección de programación, que había escrito su propio paquete de E / S generalizado, llamado Tape Control, basado en los formatos de tabla de descripción de archivos COBOL. Esto automatizó gran parte de la programación propensa a errores de procesamiento por lotes / desempaquetado de registros y controles de operaciones simultáneas de lectura / escritura y condiciones de fin de archivo.
- Un compilador COBOL. Esto se utilizó muy raramente, ya que las primeras experiencias no habían sido del todo favorables. Una excepción notable fue un programa de diseño de cableado llamado "WRS1", que se utiliza para ayudar a diseñar el hardware para la posterior gama de computadoras Mainframe English Electric KDF9 y System 4 . Otra rareza fue un preprocesador de tabla de decisiones para programas COBOL, escrito en COBOL. Esto fue de cierto interés, ya que el personal de programación de la oficina estaba en ese momento experimentando con el uso de tablas de decisiones como una alternativa a los diagramas de flujo. Sin embargo, aunque estos programadores continuaron codificando manualmente en ensamblador a partir de las tablas de decisiones escritas a mano con cierto éxito, los gastos generales de compilación impidieron el uso del preprocesador.
Para optimizar el rendimiento de los programas de producción, los programadores de la oficina produjeron paquetes estándar de software para la nómina, los libros de contabilidad de compras y ventas, el registro de acciones, el control de existencias y similares, y algunas aplicaciones, como la nómina, respaldaron el procesamiento de datos de muchos clientes de la oficina. en una computadora, con ajustes de parámetros individuales que gestionan los requisitos individuales del cliente. Los programas personalizados satisfacían los requisitos más complejos de los clientes.
Operación de computadora
Se podía colocar un cargador de arranque muy pequeño (alrededor de 20 instrucciones) en la parte frontal de cada cinta de programa, pero incluso este enfoque no siempre se utilizó. Las etiquetas de cinta eran (con la excepción de las aplicaciones administradas COBOL y Tape Control) casi inexistentes. Un ciclo de rotación de cintas abuelo / padre / hijo protegió las cintas de producción de grandes desastres, pero requirió controles manuales cuidadosos. Los programadores (o para el personal de control de producción de las suites operativas) dieron al operador instrucciones escritas sobre qué cinta de programa y cintas de datos cargar, en qué dispositivos y un resumen escrito de cómo cargar e iniciar cada programa. A continuación, el operador cargaría las cintas y cargaría e iniciaría cada programa a su vez manualmente desde la consola.
La consola consta de un panel de visualización vertical de aproximadamente 10 pulgadas (250 mm) de alto por aproximadamente 5 pies (1,5 m) de largo con un panel de control de tamaño similar ligeramente inclinado debajo. Cada una de estas dos partes estaba llena de botones etiquetados e indicadores iluminados, cada uno (aproximadamente) de una pulgada cuadrada. La sección de visualización estaba formada por indicadores que, cuando se iluminaban, mostraban, en caracteres binarios (agrupados como octales), el estado actual de funcionamiento (o estático) de la máquina en la dirección del núcleo de la máquina individual y el nivel de registro, para las operaciones de cálculo, lectura y escritura. en curso. Cuando se estaba ejecutando un programa, esta pantalla era un caleidoscopio de luces multicolores parpadeantes que cambiaban rápidamente. La sección del panel de control constaba de botones de presión para seleccionar el siguiente registro a configurar y una parte central que reflejaba el diseño de una única dirección del núcleo de la máquina. Otros botones accedieron a operaciones más complejas. El uso de estos botones permitió al operador seleccionar y luego ingresar directamente a las ubicaciones de almacenamiento central de la máquina y registrar el patrón octal que ingresó manualmente. Para que un operador ingrese una sola instrucción de máquina, cada uno de hasta diez caracteres octales de la instrucción debe seleccionarse e ingresarse como su patrón binario, cada uno con el bit de paridad correcto (impar).
Ver también
- Primeros ordenadores británicos
Referencias
- ^ Simon Hugh Lavington, Primeros ordenadores británicos: la historia de los ordenadores antiguos y las personas que los construyeron , Manchester University Press, 1980 ISBN 0719008107 página 76
- ^ B. Jack Copeland (ed.), Cerebro electrónico de Alan Turing: la lucha para construir el ACE, la computadora más rápida del mundo , OUP Oxford, 2012, ISBN 0191625868 , págs. 166-168
- ^ A. Gandy, The Early Computer Industry: Limitations of Scale and Scope , Springer, 2012, ISBN 0230389112 , págs. 196-198