Electrologica X1 - Electrologica X1

Memoria del X1

La Electrologica X1 fue una computadora digital diseñada y fabricada en los Países Bajos de 1958 a 1965. Se produjeron y vendieron unas treinta en los Países Bajos y en el extranjero.

El X1 fue diseñado por el Mathematical Center en Amsterdam , una organización académica que había estado involucrada en el diseño de computadoras desde 1947, y fabricado por Electrologica NV, una compañía formada expresamente con el propósito de producir la máquina.

El X1 era una computadora binaria de estado sólido ("completamente transistorizada") con memoria de núcleo magnético . La longitud de la palabra era de 27 bits y los periféricos incluían cinta perforada y magnética. Fue una de las primeras computadoras europeas en tener una función de interrupción .

El X1 fue objeto del doctorado de Edsger Dijkstra . disertación, y el objetivo del primer compilador completo de ALGOL 60 , completado por Dijkstra y Jaap Zonneveld. En 1965, el X1 fue reemplazado por el X8 . Philips se hizo cargo de Electrologica unos años más tarde.

Conjunto de instrucciones

El X1 permitió la ejecución condicional de cada instrucción, no solo las ramas como es el caso en la mayoría de las computadoras. Existió una capacidad similar en el Zuse Z22 y el ZEBRA , y mucho más tarde en la arquitectura ARM . El enfoque utilizado en el X1 es más flexible que estos otros: hace que la ejecución esté condicionada al estado actual de la bandera de condición que se establece mediante una instrucción anterior si incluye un modificador para ese propósito, pero no se modifica en caso contrario. Como resultado, la ejecución condicional puede basarse en pruebas realizadas varias líneas antes, en lugar de ser condicional basada únicamente en el resultado de la operación aritmética más reciente. Esto permitió una expresión compacta de programas. El siguiente ejemplo demuestra la carga del valor de la memoria en n en el acumulador A , llamando a una subrutina (que presumiblemente usa ese valor en A ) y finalmente configurando A como el valor absoluto del número leído:

   2A n P   // copy [n] to A, set condition flag to "yes" if positive
   6T fn 0  // call the function at fn, which will return with the condition flag preserved
 N 5P AA    // if condition flag is "no", copy -A to A

Los operadores aritméticos X1 utilizaron aritmética en complemento a unos binarios .

Ensamblador

El X1 incluyó un ensamblador simple en su memoria de solo lectura . Tiene características bastante básicas: se pueden definir direcciones simbólicas, pero los símbolos tienen solo dos letras. Las instrucciones se nombran mediante una combinación de un dígito que representa la operación y una letra que designa el registro en el que se operará, o una o dos letras que indican una clase de operación. Por ejemplo, "0A" significa "agregar contenido de memoria al acumulador A", y "5P" significa "poner un acumulador en el negativo de otro acumulador". El uso normal de direcciones simbólicas es nombrar "párrafos", es decir, bloques de código o datos relacionados. Las direcciones simbólicas serían modificadas por un "número de línea" (un desplazamiento numérico) y un "número de página" (un número en el rango de 0 a 31). Por ejemplo, "3 FE 6" es la línea número 3, página número 6, que representa un desplazamiento de 195 (6 * 32 + 3) desde el inicio del párrafo FE. Esta notación de dirección es una peculiaridad del ensamblador; el direccionamiento de hardware simplemente utiliza direcciones de 15 bits.

Referencias