stringtranslate.com

Inglés eléctrico DEUCE

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 , en sí mismo una versión reducida del de Alan Turing . AS .

Descripción del equipo

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 entonces alta frecuencia de reloj de 1  megahercio del Pilot ACE. La entrada/salida se realizó a través del equipo de tarjeta perforada Hollerith de 80 columnas . El lector leía tarjetas a una velocidad de 200 por minuto, mientras que la velocidad de perforación de tarjetas era 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 16 posiciones. El tiempo de acceso fue de 15 milisegundos si los cabezales ya estaban en posición; Se necesitaban 35 milisegundos adicionales si era necesario mover los cabezales. 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 de la Universidad de Nueva Gales del Sur {UTECOM} tenía un teleimpresor Siemens M100 conectado en 1964, que proporcionaba 10 caracteres por segundo de entrada/salida). También se pueden conectar unidades de cinta magnética Decca. El multiplicador y divisor automático funcionaban de forma asíncrona (es decir, se podían ejecutar otras instrucciones mientras la unidad multiplicadora/divisora ​​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 desde aproximadamente 1957. Se permitieron la aritmética de matrices y las transferencias de datos de matrices. En comparación con sus contemporáneos como el Manchester Mark 1 , el 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/disminución automática. Esa función podría usarse para contar y modificar instrucciones (para indexación, control de 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 registro único fue de 32 microsegundos, a un registro doble de 64 microsegundos y a un registro cuádruple de 128 microsegundos. Eso para una línea de retraso fue de 1024 microsegundos.

Los tiempos de instrucción fueron: suma, resta, operaciones lógicas: 64 microsegundos para palabras de 32 bits; doble precisión 96 microsegundos; 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 punto flotante fueron proporcionadas por software; veces: 6 milisegundos para suma y resta, 5,5 milisegundos en promedio para multiplicación y 4,5 milisegundos en promedio para división.

En las primeras máquinas, todas las instrucciones relacionadas con el tambor magnético estaban entrelazadas mientras se realizaba una operación. Por lo tanto, si se movían los cabezales de lectura, se prohibía realizar cualquier operación magnética posterior, como leer una pista o escribir una pista, hasta que se hubiera completado la primera. Aproximadamente a partir de 1957, estuvo disponible una nueva unidad, llamada "magnetismo racionalizado". Esta unidad eliminó los enclavamientos innecesarios. Por lo tanto, era posible ejecutar una instrucción que movía los cabezales de lectura: si iba seguida de una instrucción para mover los cabezales de escritura o para escribir una pista, dichas instrucciones no estaban entrelazadas y podían proceder 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 conectar siete líneas de retardo adicionales, lo que proporcionó 224 palabras más de almacenamiento de alta velocidad. Un lector-perforador combinado IBM 528 podría sustituir el equipo Hollerith, proporcionando las mismas velocidades de entrada/salida, en cuyo caso la máquina se llamó Mark II. Se proporcionó la conversión automática de datos alfanuméricos a BCD en la entrada y la operación inversa en la salida, para las ochenta columnas de la tarjeta. En este equipo, la lectura y el marcado podrían realizarse simultáneamente, si fuera necesario, y por lo tanto podrían usarse para leer un registro, actualizarlo y luego marcar un registro actualizado simultáneamente con la lectura del siguiente registro. Con las siete líneas de retraso adicionales, el DEUCE pasó a denominarse Mark IIA.

Software

Los principales lenguajes de programación de alto nivel fueron GEORGE (General Order Generator), [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 era el más cercano a los lenguajes de programación actuales. [4] [5] Utilizó notación polaca inversa . Por ejemplo, para evaluar e = ay 2 + by + c , se escribía

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 pila emergente 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 a la parte superior de la pila), mientras se encierra un nombre entre paréntesis {por ejemplo, (d ) } 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 usó el punto y coma (;). El siguiente programa de GEORGE lee diez números e imprime sus cuadrados:

1, 10 repeticiones (yo) leer doble × puñetazo  ;]

En el programa anterior, el comando "dup" duplicó la parte superior de la pila, de modo que había dos copias del valor en la parte superior de la pila. [6]

GIP (Programa Interpretativo General) era un programa de control para manipular programas llamados "ladrillos". Su principal servicio era la ejecución de programas de los varios cientos de la biblioteca de álgebra lineal DEUCE . La preparación de dicho programa implicó seleccionar los ladrillos necesarios (en tarjetas perforadas), copiarlos y GIP en una perforadora de reproducción y ensamblar las copias en una baraja de cartas. A continuación, se escribirían palabras clave simples para utilizar 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 clave. 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 enteramente generales. Una vez escrito, dicho programa manejaba matrices de cualquier tamaño (hasta la capacidad del tambor, por supuesto). [11] Un programa corto para leer una matriz de tarjetas, transponer la matriz y perforar los resultados en tarjetas requiere las siguientes palabras clave:

0, 0, 5, 15, 0, 120, 2120, 0, 0, 3

En cada una de las palabras en clave, el cuarto número es el número del ladrillo. La primera palabra de código especifica que la matriz se lee de las tarjetas y se almacena en la dirección 5 del tambor; la segunda palabra de código especifica que la matriz en la dirección 5 del tambor se transpone y el resultado se almacena en la dirección 120 del tambor; y el tercero 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 óptima, para ejecutarla tan pronto como se completara la instrucción anterior, si era posible.

El siguiente programa lee un valor, n, y luego lee n enteros binarios. Perfora el número entero y su cuadrado. Los comentarios en minúsculas explican la instrucción.

1.0 12-24 inicia 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 y guárdalo en el registro multiplicador. 9-24 detener el lector de tarjetas. 16-21.3 copia el número al registro multiplicando. 30-21.2 borra los bits de orden inferior del registro multiplicando. MULT 10-24 inicia la perforación de la tarjeta. 21.2-29X envía el cuadrado a la perforadora. 9-24 detener la perforación de tarjetas. 27-26 decremento n. 13-28 Prueba R1 para cero. Bifurcación de cero a R1; bifurcar en distinto de cero a R2.R1 1-1X parada; 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 la multiplicación.

Programación

La programación del DEUCE era diferente a la de 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 completara su ejecución, la siguiente estuviera lista para emerger de una línea de retardo. Para operaciones en registros individuales, el momento más temprano en que se podía obedecer la siguiente instrucción era 64 microsegundos después de la actual. Por tanto, las instrucciones no se ejecutaron desde ubicaciones secuenciales. En general, las instrucciones podrían 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 emergía de una línea de retardo. La posición de las instrucciones en el almacén podría afectar en gran medida el rendimiento si la ubicación de una instrucción no fuera óptima.

La lectura de datos del lector de tarjetas se realizó en tiempo real: cada fila debía leerse a medida que pasaba por los pinceles de lectura, sin detenerse. Lo mismo ocurre con la perforadora de tarjetas; la palabra para una fila particular se preparaba de antemano y tenía que estar lista cuando una fila determinada de la tarjeta estaba en posición debajo de las cuchillas perforadoras. El modo normal de lectura y marcado era binario. La entrada y salida de decimales se realizó mediante software.

El almacén de alta velocidad constaba de cuatro registros de una sola palabra de 32 bits cada uno, tres registros de dos palabras y dos registros de cuatro palabras. Cada palabra de 32 bits de los registros de palabras dobles y cuádruples podría direccionarse por separado. También se podía 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, y numeradas del 1 al 12. La línea de retardo 11 (DL11) servía como amortiguador entre el tambor magnético y el almacén de alta velocidad. Al ser una "máquina de transferencia", los datos se podían transferir palabra por palabra, un par de palabras por vez y cualquier número de palabras hasta 33 por vez. Así, por ejemplo, 32 palabras leídas del tambor podrían transferirse en bloque a cualquiera de las otras líneas de retardo; Se podrían transferir 4 palabras como un bloque de un registro cuádruple a 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 podrían sumar pasándolas al sumador de longitud única (mediante una única instrucción). [12]

Mediante un enlace especial entre DL10 y un registro, concretamente el registro 16, DL10 podría usarse como una pila de empuje hacia abajo.

Producción

Las tres primeras máquinas se entregaron en la primavera de 1955; A finales de 1958 apareció un modelo mejorado del DEUCE Mark II . Esta versión empleaba una combinación de lector de tarjetas y perforadora. El lector y el perforador IBM 528 combinados se comportaron como las unidades Hollerith separadas en las máquinas DEUCE Mark I anteriores; sin embargo, también contaba con conversión por hardware de datos alfanuméricos a BCD en la entrada y viceversa en la salida. Los datos también se podían 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 equipo

DEUCE Marca 0 y I:

Velocidad de reloj 1MHzTamaño de palabra 32 bitsTienda de alta velocidad 384 palabrasAritmética: un acumulador de 32 bits; un acumulador de 64 bits que podría usarse también como dos acumuladores de 32 bits. suma resta 64 microsegundos de duración única, 96 microsegundos de doble precisión Suma de un número de longitud simple a un número de longitud doble, con extensión automática de señal, 64 microsegundos. multiplicación 2080 microsegundos división 2112 microsegundostambor magnético 8192 palabras cabezas de lectura y cabezas de escritura separadas Tiempo de lectura de pista 15 ms Tiempo de cambio de cabeza 35 msVelocidad del lector de tarjetas 200 tarjetas por minuto.velocidad 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

MARCA DOS II:

 En cuanto a DEUCE Mark I. Un lector de tarjetas IBM 528 y una perforadora combinados podían leer tarjetas a 200 por minuto y perforar a 100 tarjetas por minuto. Cuando se iniciaron simultáneamente, el lector y el perforador funcionaron a 100 tarjetas por minuto. Se proporcionó conversión automática hacia y desde caracteres de 6 bits. Este modo se sumó a la conversión programada proporcionada por el Mark I DEUCE.

MARCA DEUCE 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 podrían multiplicar varios números enteros en una sola ejecución de la instrucción multiplicar, insertando números enteros en los registros 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) a binario. Lo mismo ocurre con 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 a peniques.

Ver también

Referencias

  1. ^ Copeland, B. Jack (24 de mayo de 2012). El cerebro electrónico de Alan Turing: la lucha por construir ACE, la computadora más rápida del mundo. OUP Oxford. págs.4, 164, 327. ISBN 9780199609154.
  2. ^ DG Burnett-Hall & PA Samet, "A Programming Handbook for the Computer DEUCE", Royal Aircraft Establishment, Ministerio de Aviación, Londres (Inglaterra), abril de 1959, nota técnica MS38.
  3. ^ El DEUCE en NPL no se actualizó intencionalmente y el DEUCE en la Universidad de Nueva Gales del Sur no se actualizó hasta 1963.
  4. ^ ab Hamblin, Charles Leonard (mayo de 1957). Un esquema de codificación sin direcciones basado en notación matemática (mecanografiado). Universidad Tecnológica de Nueva Gales del Sur .{{cite book}}: Mantenimiento CS1: falta el editor de la ubicación ( enlace )
  5. ^ ab Hamblin, Charles Leonard (junio de 1957). "Un esquema de codificación sin dirección 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 .
  6. ^ ab Hamblin, Charles Leonard (1958). GEORGE IA y II: Un esquema de programación de semitraducción para DEUCE: Manual de programación y funcionamiento (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 .
  7. ^ 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 anunciado (en 1960). Se entregó por primera vez aproximadamente al mismo tiempo (principios de 1963) que la otra famosa computadora 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 aritmética polaca inversa; esto ofrece ciertas ventajas a los escritores de compiladores. Se cree que el concepto de dirección cero llamó la atención del equipo de English Electric por primera vez a través del contacto con GEORGE (General Order Generator), 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ó el polaco inverso , y el equipo de KDF9 se sintió atraído por esta convención por la razón pragmática de desear mejorar el rendimiento minimizando los accesos a la tienda principal. Esto puede contrastarse con la línea más "teórica" ​​adoptada independientemente por Burroughs . Además de un almacén 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, lo que le daba 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, el 1 de octubre de 1996.) [Cita corregida el 23 de abril de 2021]
  8. ^ Robinson, C. (1 de abril de 1959). "Programas interpretativos DEUCE". La revista informática . 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. Se comparan y contrastan las características de estos tres esquemas.
  9. ^ 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.
  10. ^ Servicio de biblioteca DEUCE, "Manual de programación DEUCE STAC", English Electric Co., Ltd, Kidsgrove, Staffs, Inglaterra, c. 1960.
  11. ^ Servicio de biblioteca Deuce, "Programa de interpretación general DEUCE", 2.ª ed., The English Electric Company Limited, Kidsgrove, Staffs, Inglaterra, c. 1963.
  12. ^ "Manual de programación DEUCE 'English Electric'", The English Electric Company Limited, mayo de 1956, publicación nº NS-y-16.
  13. ^ Dow, Andrew (20 de agosto de 2009). Pegasus, el corazón del Harrier: la historia y el desarrollo del primer motor a reacción operativo de despegue y aterrizaje vertical del mundo. Pluma y espada. pag. 186.ISBN _ 9781473817142.
  14. ^ Copeland, BJ, ed., Motor de computación automática de Alan Turing, Oxford: Oxford University Press, 2005, ISBN 0-19-856593-3

enlaces externos