Ordenador

Una máquina con el programa en memoria

Fecha
1948
Época
Época moderna
Etapa
V Era eléctrica
Dificultad

Lámina

Leyenda
  1. 1Bastidores de válvulas de vacío
  2. 2Tubo de memoria catódico: un punto por bit
  3. 3Panel de interruptores para introducir datos
  4. 4Teleimpresor y cinta perforada
  5. 5Relé: un interruptor movido por un electroimán
  6. 6Válvula de vacío: su rejilla gobierna la corriente
  7. 7Transistor: el interruptor de semiconductor

Anatomía

BA5 más 3 son 8; en binario, 0101 más 0011 son 1000; acarreos: c1 c2 c3
Cables a 5 V (1 lógico) y los LED que enciendenBloques de puertas: XOR, Y y O, cinco por columnaCables de puente a 0 V (0 lógico)Interruptores: A atrás, B delante, el bit que vale 8 a la izquierdaEn las palancas se marcan dos números de cuatro bits, A en la fila de atrás y B en la de delante, con el bit que vale 8 a la izquierda y el que vale 1 a la derecha, como en el papel. Cada columna de debajo es un sumador completo de cinco puertas. Una XOR y una Y comparan los dos bits de la columna; una segunda XOR suma el acarreo que llega por la derecha y da el bit de suma; una segunda Y y una O forman el acarreo para la columna siguiente. La columna de la derecha toma su acarreo del riel de 0 V y la de la izquierda envía el suyo al quinto LED. En la placa de pruebas de la lámina, estas 20 puertas van de cuatro en cuatro en cinco circuitos: dos 74HC86, dos 74HC08 y un 74HC32. La figura dibuja cada puerta por separado para que se pueda seguir el cableado, y omite la alimentación de los circuitos y las resistencias de 10 kΩ que mantienen cada entrada a 0 V con la palanca abajo. A 5 V, una XOR responde en 11 ns, una Y en 7 ns y una O en 6 ns (valores típicos): cada columna añade 13 ns al recorrido del acarreo, y en este modelo el cambio de entradas más lento se estabiliza al cabo de 52 ns; el cableado, la alimentación y la temperatura desplazan estos valores. La figura reproduce cada nanosegundo en 40 ms, de modo que se ve el acarreo pasar de una columna a otra. Por el camino, un LED de suma puede encenderse y apagarse antes de quedar fijo, y la lectura, que lee los LED, pasa por sumas falsas. Los sumadores reales también lo hacen: en un ordenador, el resultado se toma en un flanco de reloj previsto para después de que se haya estabilizado.

Un ordenador es una máquina de calcular programable; el modelo actual guarda su programa en su propia memoria y calcula en binario, con interruptores que solo están encendidos o apagados. El primero que ejecutó un programa desde una memoria electrónica fue el «Baby» de Mánchester, el 21 de junio de 1948, y móviles y portátiles siguen todavía su esquema.

Qué es

Un ordenador ejecuta un programa, una lista de instrucciones, sobre unos datos. En el diseño de programa almacenado que se describe aquí, el programa está en la misma memoria que los números con los que trabaja, así que la máquina puede cargar uno nuevo, cambiarlo o escribir otro sin que haya que reconstruirla. Esa idea distingue el ordenador de programa almacenado de las máquinas programables anteriores, que tomaban sus instrucciones de cintas, tarjetas, clavijas o interruptores.

Los ordenadores actuales trabajan en binario, solo con las cifras 0 y 1, porque dos estados son fáciles de hacer fiables: un interruptor está abierto o cerrado. El ENIAC y algunas otras máquinas antiguas aún contaban en decimal. Para una sociedad que reconstruye sus herramientas, calcula, controla máquinas como bombas y redes eléctricas y transmite mensajes.

Cómo funciona

Los números binarios. El binario es un sistema posicional como nuestras cifras decimales, pero cada posición vale el doble que la de su derecha: 1, 2, 4, 8, 16. Trece es 8 + 4 + 1 y se escribe 1101. Ocho cifras binarias, o bits, bastan para todos los enteros de 0 a 255.

Dos circuitos con pila y bombilla: dos pulsadores en serie a la izquierda y dos en paralelo a la derecha En serie, la bombilla solo se enciende si se pulsan los dos; en paralelo, basta con uno.

Las puertas lógicas. Dos interruptores en serie solo encienden una lámpara si ambos están cerrados: es una puerta Y. En paralelo basta cualquiera de ellos: una puerta O. Un relé cuyo contacto se abre cuando su bobina recibe corriente forma una puerta NO, que convierte el 1 en 0. Al relé lo mueve un electroimán; a la válvula de vacío, la tensión de su rejilla; al transistor, la señal de su base o de su puerta. Con Y, O y NO se puede expresar cualquier regla que lleve de unos bits de entrada a unos bits de salida.

Sumar con puertas. En binario, 1 + 1 da 10: suma 0 y acarreo 1. El bit de suma vale 1 cuando exactamente una entrada vale 1, una regla llamada O exclusiva (XOR); el acarreo solo vale 1 si las dos valen 1, que es una Y. Juntas forman un semisumador. Un sumador completo recibe además el acarreo de la columna de la derecha, y ocho en cadena suman dos números de 8 bits, columna a columna, como un escolar en su cuaderno.

La memoria. Dos puertas NO-O (una O seguida de una NO), en las que cada salida alimenta una entrada de la otra, forman un biestable: un impulso en una de las entradas libres lo pone a 1, un impulso en la otra lo devuelve a 0, y guarda ese bit mientras haya corriente. Mánchester guardaba los bits como puntos cargados en un tubo catódico, y el EDSAC como pulsos de sonido en tubos de mercurio. Cada palabra, un grupo de bits, lleva un número, su dirección.

El ciclo. Un registro, el contador de programa, contiene la dirección de la instrucción siguiente. El procesador la busca, la descodifica, la ejecuta y vuelve a empezar. Una instrucción puede sumar un número de la memoria al acumulador, guardar un resultado o saltar a otro sitio si un valor es negativo; ese salto condicional permite al programa repetir y elegir. Teclados y sensores meten los datos; pantallas, impresoras y motores sacan los resultados.

Cómo construirlo

Un procesador moderno exige una fábrica de chips, pero su lógica se aprende sobre una mesa.

Una placa de prototipos con dos interruptores deslizantes que encienden cada uno un LED a través de una resistencia, alimentada por un portapilas Pruebe primero cada interruptor con su LED; un LED necesita siempre una resistencia en serie.

Reunir el material. Una placa de prototipos sin soldadura, dos o tres pilas AA en un portapilas (de 3 a 4,5 V) o una fuente USB de 5 V, dos conmutadores de dos polos, dos LED, dos resistencias de 330 a 470 ohmios y cable. Cada LED se monta con la pata larga (ánodo) hacia el conmutador y la corta (cátodo) a 0 V. Escriba primero la tabla de verdad: para las entradas A B = 00, 01, 10, 11, la suma es 0, 1, 1, 0 y el acarreo 0, 0, 0, 1.

Cablear el acarreo. Lleve la alimentación al común del primer polo de A, su contacto «encendido» al común del primer polo de B, y ese contacto «encendido» a un LED a través de una resistencia; la otra pata del LED vuelve a 0 V. Solo se enciende con 11: es la Y.

Cablear la suma. En los segundos polos, una el contacto «encendido» de A con el contacto «apagado» de B, y el «apagado» de A con el «encendido» de B. Alimente el común de A y lleve el común de B al segundo LED a través de una resistencia, con el cátodo a 0 V. Se enciende cuando los conmutadores están en posiciones distintas: es el XOR. Compruebe los cuatro casos con la tabla.

Encadenar un sumador mayor. Un sumador completo son dos semisumadores y una puerta O que reúne sus acarreos. A partir de aquí resultan más cómodos los circuitos lógicos: un sumador de 4 bits necesita dos 74HC86 (XOR), dos 74HC08 (Y) y un 74HC32 (O). Aliméntelos como indica la hoja de datos (patilla 14 al positivo, patilla 7 a 0 V y un condensador de 100 nF entre ambas). Cada acarreo de salida entra en la columna siguiente y el primer acarreo de entrada va a 0 V; cada entrada de conmutador lleva una resistencia de 10 kilohmios a 0 V, y cada LED de salida una de 1 kilohmio.

Hacer funcionar un ordenador en papel. Dibuje ocho casillas de memoria numeradas, un acumulador y un contador de programa a 0. Escriba CARGA 5 en la casilla 0, SUMA 6 en la 1, GUARDA 7 en la 2, ALTO en la 3, y luego 3 en la casilla 5 y 4 en la 6. Haga de procesador: lea la casilla que señala el contador, ejecútela y súmele uno al contador. La casilla 7 acaba conteniendo 7. Codifique ahora cada instrucción con dos cifras, primero la operación y luego la dirección, con CARGA 1, SUMA 2, GUARDA 3 y ALTO 0: el programa se convierte en 15, 26, 37, 00, números entre los datos.

Seguridad. Solo pilas o una fuente USB de 5 V, nunca la red eléctrica. Cada LED necesita su resistencia. Una pila o una batería externa en cortocircuito puede calentar sus cables hasta quemar. Desconecte la alimentación antes de recablear. La salida de un chip no puede alimentar la bobina de un relé: gobiérnela con un transistor adecuado a su corriente y ponga un diodo en paralelo con ella, con el extremo marcado con una franja (el cátodo) hacia el positivo, para absorber el pico de tensión al desconectarla.

Historia y evolución

Boceto simplificado de la pieza de demostración en latón de la máquina diferencial de Babbage: columnas de ruedas entre pilares Boceto simplificado de la parte de su primera máquina diferencial, una séptima, que Babbage hizo montar en 1832; todavía funciona.

La máquina analítica de Charles Babbage, concebida en 1834, tenía un almacén, un molino para el cálculo y un programa en tarjetas perforadas; nunca llegó a construirse. Ada Lovelace publicó en 1843 una secuencia de operaciones para ella. Las tabuladoras eléctricas de tarjetas de Herman Hollerith contaron el censo de Estados Unidos de 1890.

En 1936 Alan Turing describió una máquina universal que lee sus instrucciones en la misma cinta que sus datos. Konrad Zuse presentó en Berlín su Z3 de relés el 12 de mayo de 1941. Desde febrero de 1944, el Colossus electrónico de Tommy Flowers ayudó a romper el cifrado alemán Lorenz en Bletchley Park; siguió siendo secreto hasta los años setenta. El ENIAC de J. Presper Eckert y John Mauchly, en Filadelfia, presentado en 1946, era de uso general, pero se programaba cambiando cables de sitio. Cada uno puede reclamar el primer puesto, según se exija electrónica, uso general o programa almacenado.

El informe de John von Neumann sobre el EDVAC, de 1945, fruto del trabajo con Eckert, Mauchly y otros, describía una máquina que guardaba programa y datos en una sola memoria. La primera en funcionar fue el «Baby» de Mánchester, de Frederic Williams, Tom Kilburn y Geoff Tootill, el 21 de junio de 1948. El EDSAC de Maurice Wilkes, en Cambridge, lo siguió el 6 de mayo de 1949 y pronto dio servicio a sus usuarios.

Mánchester hizo funcionar un ordenador de transistores en noviembre de 1953. Los circuitos integrados, fabricados por primera vez en 1958, entraron en los ordenadores en los años sesenta y, en 1971, el 4004 de Intel puso un procesador entero en un solo chip.


Escribe un nombre, una fecha, un material, un ámbito…