El DEUCE ( Digital Electronic Universal Computing Engine ) fue uno de los primeros ordenadores británicos disponibles comercialmente , construido por English Electric en 1955. [1] Era la versión de producción del Pilot ACE , una versión reducida de Alan Turing . ACE .
También conocido como | Motor de Computación Universal Electrónica Digital |
---|---|
Fabricante | Inglés Eléctrico |
Fecha de lanzamiento | 1955 |
Interrumpido | 1964 |
Unidades enviadas | 33 |
UPC | basado en válvula termoiónica |
Memoria | líneas de retardo de mercurio 384 palabras de 32 bits (Mark I y Mark II) 608 palabras de 32 bits (Mark IIA) |
Almacenamiento | Tambor magnético de 8192 palabras |
Monitor | 2 × CRT |
Predecesor | Piloto ACE |
Descripción del hardware
El DEUCE tenía 1450 válvulas termoiónicas y usaba líneas de retardo de mercurio para su memoria principal ; cada una de las 12 líneas de retardo podría almacenar 32 instrucciones o palabras de datos de 32 bits cada una. Adoptó la alta frecuencia de reloj de 1 megahercio del Pilot ACE. La entrada / salida se realizó a través del equipo de tarjetas perforadas Hollerith de 80 columnas. El lector leyó tarjetas a una velocidad de 200 por minuto, mientras que la velocidad de perforación de tarjetas fue de 100 tarjetas por minuto. El DEUCE también tenía un tambor magnético de 8192 palabras para almacenamiento principal. Para acceder a cualquiera de las 256 pistas de 32 palabras, el tambor tenía un grupo de 16 cabezas de lectura y un grupo de 16 cabezas de escritura, cada grupo en brazos móviles independientes, cada uno capaz de moverse a una de las 16 posiciones. El tiempo de acceso fue de 15 milisegundos si los cabezales ya estaban en posición; se requerían 35 milisegundos adicionales si había que mover las cabezas. No se produjo ningún retraso de rotación al leer y escribir en el tambor. Los datos se transfirieron entre el tambor y una de las líneas de retardo de 32 palabras.
El DEUCE podría equiparse con un equipo de cinta de papel ; la velocidad del lector fue de 850 caracteres por segundo, mientras que la velocidad de salida de la cinta de papel fue de 25 caracteres por segundo. (El DEUCE en la Universidad de Nueva Gales del Sur {UTECOM} tenía una teleimpresora Siemens M100 conectada en 1964, dando 10 caracteres por segundo de entrada / salida). También se pueden acoplar unidades de cinta magnética Decca. El multiplicador y divisor automático funcionaba de forma asincrónica (es decir, se podían ejecutar otras instrucciones mientras la unidad de multiplicador / divisor estaba en funcionamiento). Se proporcionaron dos unidades aritméticas para operaciones con números enteros: una de 32 bits y otra capaz de realizar operaciones de 32 bits y operaciones de 64 bits. Se proporcionaron incrementos y decrementos automáticos en ocho registros de aproximadamente 1957. Se permitieron la aritmética de matriz y las transferencias de datos de matriz. Comparado con contemporáneos como el Manchester Mark 1 , DEUCE era unas diez veces más rápido.
Las palabras individuales de los registros cuádruples se asociaron con una función de incremento / decremento automático. Esa función podría usarse para contar y modificar instrucciones (para indexar, controlar el bucle y para cambiar la dirección de origen o destino de una instrucción). [2]
Al ser una máquina en serie, el tiempo de acceso a un solo registro era de 32 microsegundos, un registro doble de 64 microsegundos y un registro cuádruple de 128 microsegundos. Eso para una línea de retardo fue de 1024 microsegundos.
Los tiempos de instrucción fueron: suma, resta, operaciones lógicas: 64 microsegundos para palabras de 32 bits; 96 microsegundos de doble precisión; multiplicación y división 2 milisegundos. Para operaciones de transferencia y aritmética de matrices, el tiempo por palabra fue de 33 microsegundos por palabra para 32 palabras.
Las operaciones de coma flotante fueron proporcionadas por software; veces: 6 milisegundos para la suma y resta, 5½ milisegundos promedio para la multiplicación y 4½ milisegundos promedio para la división.
En las primeras máquinas, todas las instrucciones relacionadas con el tambor magnético se enclavaban mientras se realizaba una operación. Por lo tanto, si se movían los cabezales de lectura, se prohibía continuar con cualquier operación magnética posterior, como leer una pista o escribir una pista, hasta que se completara la primera. Aproximadamente desde 1957, se puso a disposición una nueva unidad, llamada "magnetismo racionalizado". Esta unidad eliminó enclavamientos innecesarios. Por lo tanto, era posible ejecutar una instrucción que movía los cabezales de lectura: si seguía una instrucción para mover los cabezales de escritura o para escribir una pista, dichas instrucciones no estaban entrelazadas y podían continuar en paralelo con el movimiento de los cabezales de lectura. [3]
El panel frontal del DEUCE presentaba dos pantallas CRT : una mostraba el contenido actual de los registros, mientras que la otra mostraba el contenido de cualquiera de las tiendas de la línea de retardo de mercurio.
Aproximadamente desde 1958, se pudieron adjuntar siete líneas de retardo adicionales, dando 224 palabras más de almacenamiento de alta velocidad. Un lector-perforador combinado IBM 528 podría sustituirse por el equipo Hollerith, dando las mismas velocidades de entrada / salida, en cuyo caso la máquina se llamó Mark II. La conversión automática de datos alfanuméricos a BCD se proporcionó en la entrada, y la operación inversa en la salida, para las ochenta columnas de tarjetas. En este equipo, la lectura y la perforación pueden realizarse simultáneamente, si es necesario, y por lo tanto pueden usarse para leer en un registro, actualizarlo y luego perforar un registro actualizado simultáneamente con la lectura en el siguiente registro. Con las siete líneas de retardo adicionales, el DEUCE se denominó Mark IIA.
Software
Los principales lenguajes de programación de alto nivel fueron GEORGE (Generador de órdenes generales), [4] [5] [6] [7] ALPHACODE, STEVE, TIP, GIP, [8] y ALGOL . [9] Los traductores de lenguaje ensamblador incluyeron ZP43 y STAC. [10]
Inventado por Charles Leonard Hamblin en 1957, GEORGE estaba más cerca de los lenguajes de programación actuales. [4] [5] Se utilizó la notación polaca inversa . Por ejemplo, para evaluar e = ay 2 + por + c, se escribió
ay dup × × por × + c + (e).
donde "dup" duplica la entrada anterior, siendo lo mismo que usar "y" aquí.
GEORGE proporcionó un acumulador de 12 posiciones como una pila desplegable desplegable. El uso de un nombre de variable en un programa (por ejemplo, 'd') trajo el valor de la variable 'd' al acumulador (es decir, empujó d en la parte superior de la pila), mientras que encerraba un nombre entre paréntesis {p. )} asignado a la variable 'd' el valor en la parte superior de la pila (acumulador). Para destruir (sacar y descartar) el valor en la parte superior de la pila, se utilizó el punto y coma (;). El siguiente programa de GEORGE lee diez números e imprime sus cuadrados:
1, 10 rep (i) leer dup × puñetazo ;]
En el programa anterior, el comando "dup" duplicó la parte superior de la pila, de modo que luego había dos copias del valor en la parte superior de la pila. [6]
GIP (Programa de interpretación general) era un programa de control para manipular programas llamados "ladrillos". Su principal servicio consistía en ejecutar programas de varios cientos de la biblioteca de álgebra lineal DEUCE . La preparación de dicho programa implicó seleccionar los ladrillos requeridos (en tarjetas perforadas), copiarlos y GIP en un perforador de reproducción y ensamblar las copias en una baraja de tarjetas. A continuación, se escribirían palabras de código simples para usar los ladrillos para realizar tareas tales como: multiplicación de matrices; inversión de matriz; aritmética matricial término por término (suma, resta, multiplicación y división); resolver ecuaciones simultáneas; aporte; y salida. Las dimensiones de las matrices nunca se especificaron en las palabras de código. Las dimensiones se tomaron de las propias matrices, ya sea de una tarjeta que precede a las tarjetas de datos o de las matrices almacenadas en el tambor. Por tanto, los programas eran completamente generales. Una vez escrito, dicho programa manejaba cualquier tamaño de matrices (hasta la capacidad del tambor, por supuesto). [11] Un programa corto para leer en una matriz de tarjetas, transponer la matriz y perforar los resultados en tarjetas requiere las siguientes palabras de código:
0, 0, 5, 15, 0, 120, 2120, 0, 0, 3
En cada una de las palabras de código, el cuarto número es el número de bloque. La primera palabra de código especifica que la matriz se lee de las tarjetas y se almacena en la dirección de tambor 5; la segunda palabra de código especifica que la matriz en la dirección de tambor 5 se transpone y el resultado se almacena en la dirección de tambor 120; y los terceros golpes que resultan en tarjetas.
STAC era un macroensamblador. La mayoría de las instrucciones se escribieron en forma de transferencia, en decimal, como 13-16, lo que significa copiar la palabra del registro 13 al registro 16. No se especificó la ubicación de la instrucción. STAC asignó una instrucción a una palabra en una línea de retardo y calculó los seis componentes de la instrucción binaria. Asignó la siguiente instrucción a una ubicación que era óptima, para ejecutarse tan pronto como se completara la instrucción anterior, si era posible.
El siguiente programa lee un valor, n, y luego lee n números enteros binarios. Perfora el número entero y su cuadrado. Los comentarios en minúsculas explican la instrucción.
1.0 12-24 inicie el lector de tarjetas. La ubicación del programa se especifica como 1.0. 0-13X lee un número (n) del lector de tarjetas. La letra X hace que la computadora espere hasta que la primera fila de la tarjeta haya llegado a la estación de lectura.R2 12-24 inicia o reinicia el lector de tarjetas. 0-16X lee un número para elevarlo al cuadrado, guárdalo en el registro del multiplicador. 9-24 detenga el lector de tarjetas. 16-21.3 copia el número al registro de multiplicando. 30-21.2 borran los bits de orden inferior del registro multiplicando. MULT 10-24 inicie el perforado de tarjetas. 21.2-29X envía el cuadrado al perforador de tarjetas. 9-24 detenga la perforación de la tarjeta. 27-26 decremento n. 13-28 Prueba R1 para cero. Bifurca de cero a R1; bifurcar en no cero a R2.R1 1-1X detener; el programa está completo.
STAC produciría las siguientes instrucciones (además del programa binario). La ubicación de la memoria de cada instrucción se muestra a la izquierda.
1.0 12-241.2 0-13X1.4 12-241.6 0-16X1.8 9-241,10 16-21,31,13 30-21,21,16 0-24 espera 11,18 1-1 espera 11,20 10-241,22 21,2-29X1,24 9-241,26 27-261,28 13-28 1,31.3 1-1X
Los números de espera y tiempo no se muestran, excepto para la multiplicación.
Programación
Programar el DEUCE era diferente a otras computadoras. La naturaleza serial de las líneas de retardo requería que las instrucciones se ordenaran de manera que cuando una instrucción completaba la ejecución, la siguiente estaba lista para emerger de una línea de retardo. Para las operaciones en los registros individuales, la primera vez que se pudo obedecer la siguiente instrucción fue 64 microsegundos después de la actual. Por lo tanto, las instrucciones no se ejecutaron desde ubicaciones secuenciales. En general, las instrucciones pueden transferir una o más palabras. En consecuencia, cada instrucción especificaba la ubicación de la siguiente instrucción. La programación óptima significaba que a medida que se ejecutaba cada instrucción, la siguiente acababa de emerger de una línea de retardo. La posición de las instrucciones en la tienda podría afectar en gran medida el rendimiento si la ubicación de una instrucción no fuera la óptima.
La lectura de datos del lector de tarjetas se realizó en tiempo real: cada fila tenía que leerse a medida que pasaba por los pinceles de lectura, sin detenerse. Lo mismo ocurre con el perforador de tarjetas; la palabra para una fila en particular se preparó de antemano y tenía que estar lista cuando una fila determinada de la tarjeta estuviera en posición debajo de las cuchillas perforadoras. El modo normal de lectura y perforación era binario. La entrada y salida decimal se realizó mediante software.
El almacenamiento de alta velocidad constaba de cuatro registros de palabra única de 32 bits cada uno, tres registros de palabra doble y dos registros de palabra cuádruple. Cada palabra de 32 bits de los registros de palabra doble y cuádruple podría direccionarse por separado. También se puede acceder a ellos como un par y, en el caso de los registros cuádruples, como un grupo de tres o cuatro. El almacén de instrucciones constaba de doce líneas de retardo de mercurio, cada una de 32 palabras, numeradas del 1 al 12. La línea de retardo 11 (DL11) sirvió como búfer entre el tambor magnético y el almacén de alta velocidad. Al ser una "máquina de transferencia", los datos se pueden transferir una palabra a la vez, un par de palabras a la vez y cualquier número de palabras hasta 33 a la vez. Así, por ejemplo, 32 palabras leídas del tambor podrían transferirse como un bloque a cualquiera de las otras líneas de retardo; se pueden transferir cuatro palabras como un bloque de un registro cuádruple al otro, o entre un registro cuádruple y una línea de retardo, todo con una sola instrucción. Las 32 palabras de una línea de retardo se pueden sumar pasándolas al sumador de longitud única (mediante una sola instrucción). [12]
Mediante un enlace especial entre DL10 y un registro, a saber, el registro 16, DL10 podría usarse como una pila de empuje hacia abajo.
Producción
Las primeras tres máquinas se entregaron en la primavera de 1955; a finales de 1958 apareció un modelo mejorado DEUCE Mark II . Esta versión empleaba un lector de tarjetas y una perforadora combinados. El lector y perforador IBM 528 combinados se comportaron como las unidades Hollerith separadas en las máquinas DEUCE Mark I anteriores; sin embargo, también se proporcionó con conversión de hardware de datos alfanuméricos a BCD en la entrada y viceversa en la salida. Los datos también se pueden leer y perforar simultáneamente a 100 tarjetas por minuto. El DEUCE Mark IIA proporcionó siete líneas de retardo de mercurio adicionales, cada una de 32 palabras.
Se vendieron un total de 33 máquinas DEUCE entre 1955 y 1964, dos de las cuales fueron compradas por el fabricante de motores Bristol Siddeley . [13]
El éxito de DEUCE se debió a su biblioteca de programas de más de 1000 programas y subrutinas. [14]
Características del hardware
DEUCE Mark 0 y yo:
Frecuencia de reloj 1 MHzTamaño de palabra 32 bitsTienda de alta velocidad 378 palabrasAritmética: un acumulador de 32 bits; un acumulador de 64 bits que podría utilizarse también como dos acumuladores de 32 bits. suma / resta 64 microsegundos de longitud única, 96 microsegundos de doble precisión Suma de un número de una sola longitud a un número de doble longitud, con extensión automática de señal, 64 microsegundos. multiplicación 2088 microsegundos división 2112 microsegundostambor magnético 8192 palabras cabezales de lectura y de escritura separados Tiempo de lectura de seguimiento 15 ms Tiempo de desplazamiento del cabezal 35 msvelocidad del lector de tarjetas 200 tarjetas por minutovelocidad de perforación de tarjetas 100 tarjetas por minutovelocidad del lector de cinta de papel 850 caracteres / segundo cinta: cinta de 5, 7, 8 filas. tiempo de parada: ½ milisegundo (ms) hora de inicio 20 milisegundosvelocidad de perforación de cinta de papel 25 caracteres / segundo cinta: 5 o 7 filasSoftware de punto flotante (tiempos promedio): suma / resta 6 ms multiplicación 5½ ms división 4½ ms
DEUCE MARK II:
En cuanto a DEUCE Mark I. Un lector y perforador de tarjetas IBM 528 combinados podría leer tarjetas a 200 por minuto y perforar a 100 tarjetas por minuto. Cuando se iniciaron simultáneamente, el lector y la perforadora funcionaron a 100 tarjetas por minuto. Se proporcionó conversión automática hacia y desde caracteres de 6 bits. Este modo fue adicional a la conversión programada proporcionada por el Mark I DEUCE.
DEUCE MARK IA Y IIA:
Como arriba, con 7 líneas de retardo adicionales que proporcionan 224 palabras de almacenamiento de alta velocidad.
Notas: El multiplicador y el divisor eran asincrónicos. Se pueden multiplicar varios números enteros insertando números enteros en el multiplicador o multiplicando durante la multiplicación y extrayendo resultados durante la multiplicación. Otros efectos especiales incluyeron contar los bits de una palabra y convertir el decimal codificado en binario (BCD) en binario. De manera similar, para la división, que podría usarse para convertir números enteros a decimal codificado en binario (BCD) y para convertir libras, chelines y peniques en peniques.
Ver también
- Lista de computadoras de tubo de vacío
Referencias
- ^ Copeland, B. Jack (24 de mayo de 2012). El cerebro electrónico de Alan Turing: la lucha para construir el ACE, la computadora más rápida del mundo . OUP Oxford. págs. 4, 164, 327. ISBN 9780199609154.
- ^ DG Burnett-Hall & PA Samet, "Un manual de programación para la computadora DEUCE", Establecimiento de aviones reales, Ministerio de Aviación, Londres (Inglaterra), abril de 1959, Nota técnica MS38.
- ^ El DEUCE en NPL no se actualizó intencionalmente, y el DEUCE en la Universidad de Nueva Gales del Sur no se actualizó hasta 1963.
- ^ a b Hamblin, Charles Leonard (mayo de 1957). Un esquema de codificación sin direcciones basado en notación matemática (mecanografiado). Universidad de Tecnología de Nueva Gales del Sur .
- ^ a b Hamblin, Charles Leonard (junio de 1957). "Un esquema de codificación sin direcciones basado en notación matemática". Actas de la Primera Conferencia Australiana sobre Computación y Procesamiento de Datos . Salisbury, Australia del Sur: Establecimiento de investigación de armas .
- ^ a b Hamblin, Charles Leonard (1958). GEORGE IA y II: Un esquema de programación de semi-traducción para DEUCE: Manual de programación y operación (PDF) . Escuela de Humanidades, Universidad de Nueva Gales del Sur, Kensington, Nueva Gales del Sur. Archivado (PDF) desde el original el 4 de abril de 2020 . Consultado el 27 de julio de 2020 .
- ^ Beard, Bob (otoño de 1997) [1 de octubre de 1996]. "La computadora KDF9 - 30 años después" (PDF) . Resurrección - El Boletín de la Sociedad de Conservación de Computadoras . No. 18. Sociedad de Conservación de Computadoras (CCS). págs. 7–15. ISSN 0958-7403 . Archivado (PDF) desde el original el 27 de julio de 2020 . Consultado el 27 de julio de 2020 .
[…] El KDF9 es notable porque se cree que es el primer ordenador con formato de instrucción de dirección cero que se ha anunciado (en 1960). Se entregó por primera vez aproximadamente al mismo tiempo (principios de 1963) que la otra computadora famosa de dirección cero, la Burroughs B5000 en Estados Unidos. Como muchas calculadoras de bolsillo modernas, una máquina de dirección cero permite el uso de la aritmética polaca inversa; esto ofrece ciertas ventajas a los redactores de compiladores. Se cree que la atención del equipo de English Electric se dirigió por primera vez al concepto de dirección cero a través del contacto con GEORGE (Generador de órdenes generales), un lenguaje de programación de alto nivel escrito para una computadora DEUCE por Charles Hamblin en la Universidad de Nueva Gales del Sur. of Technology , Australia, en 1957. GEORGE utilizó Reversed Polish , y el equipo de KDF9 se sintió atraído por esta convención por la razón pragmática de querer mejorar el rendimiento minimizando los accesos a la tienda principal. Esto puede contrastarse con la línea más "teórica" tomada independientemente por Burroughs . Además de una tienda o pila de anidamiento de hardware , el mecanismo básico de una computadora de dirección cero, el KDF9 tenía otros grupos de registros centrales para mejorar el rendimiento que le daban una estructura interna interesante. […]
[1] (NB. Esta es una versión editada de una charla dada al North West Group of the Society en el Museo de Ciencia e Industria, Manchester, Reino Unido, 1996-10-01.) [Cita corregida el 23 de abril de 2021] - ^ Robinson, C. (1 de abril de 1959). "Programas Interpretativos DEUCE" . The Computer Journal . 1 (4): 172-176. doi : 10.1093 / comjnl / 1.4.172 . ISSN 0010-4620 .
Resumen: Este artículo describe las características principales de (i) El Programa Interpretativo General, (ii) El Programa Interpretativo Tabular y (iii) Alphacode, que son los programas interpretativos que se han utilizado más ampliamente para resolver problemas en DEUCE. Las características de estos tres esquemas se comparan y contrastan.
- ^ Brian Randell y LJ Russell, "DEUCE ALGOL", Informe W / AT 844, División de energía atómica, English Electric Co., Whetstone, Leicester, Inglaterra, febrero de 1962.
- ^ Servicio de biblioteca DEUCE, "Manual de programación de DEUCE STAC", English Electric Co., Ltd, Kidsgrove, Staffs, Inglaterra, c. 1960.
- ^ Servicio de biblioteca de Deuce, "Programa interpretativo general de DEUCE", 2ª ed., The English Electric Company Limited, Kidsgrove, Staffs, Inglaterra, c. 1963.
- ^ "Manual de programación de DEUCE 'English Electric'", The English Electric Company Limited, mayo de 1956, publicación No. NS-y-16.
- ^ Dow, Andrew (20 de agosto de 2009). Pegasus, The Heart of the Harrier: La historia y el desarrollo del primer motor a reacción vertical operativo de despegue y aterrizaje del mundo . Pluma y espada. pag. 186. ISBN 9781473817142.
- ^ Copeland, BJ, ed., Motor de computación automática de Alan Turing, Oxford: Oxford University Press, 2005, ISBN 0-19-856593-3
enlaces externos
- Entrevista de historia oral con Donald W. Davies , Instituto Charles Babbage , Universidad de Minnesota. Davies describe proyectos informáticos en el Laboratorio Nacional de Física del Reino Unido , desde el trabajo de diseño de 1947 de Alan Turing hasta el desarrollo de las dos computadoras ACE . Davies analiza un segundo ACE mucho más grande y la decisión de contratar a English Electric Company para construir el DEUCE, que él llama la primera computadora producida comercialmente en Gran Bretaña.
- "The Deuce", un artículo de Flight de 1955 sobre el Deuce
- "Computadora DEUCE eléctrica inglesa" . users.tpg.com.au .