El motor analítico, diseñado por Charles Babbage a mediados de 1800 pero nunca construido, debía usar discos de engranajes, cada uno con los dígitos 0-9 en ellos, en pilas altas. Suponiendo que el diseño de su “tienda” fuera similar al de su motor de diferencia, leer una pila implicaría rotar los discos para copiar su valor en una pila temporal, y luego devolverlos a sus posiciones originales para volver a colocar el valor.
Konrad Zuse, en su computadora alemana de retransmisión anterior a la Segunda Guerra Mundial, utilizó un sistema de tiras metálicas ranuradas y pequeños alfileres. Exactamente cómo funcionó ese recuerdo, no estoy seguro.
Otras primeras computadoras usaban “flip-flops”, circuitos lógicos que tendrían un estado u otro, construidos a partir de relés o tubos de vacío. Un flip-flop puede estar hecho de dos relés, tubos de vacío o transistores, y todavía se usan diseños similares para alguna memoria de alta velocidad, donde a veces se la llama “memoria estática”. El inconveniente de este tipo de memoria es un alto conteo de componentes y un alto consumo de energía, lo que limita la cantidad de memoria disponible en un espacio pequeño.
Uno de los tipos de memoria más intrigantes utilizados en las primeras computadoras fue la “memoria de línea de retardo”. En este tipo de memoria, se envió una onda de sonido o pulso eléctrico por una “línea de retardo”, donde se propagó a una velocidad conocida. Al colocar múltiples pulsos en la línea de retardo a lo largo del tiempo, puede obtener de cientos a miles de bits de datos en la línea. La circuitería fue diseñada para escribir desde un extremo de la línea, leer desde el otro, y si no hay solicitudes de lectura o escritura en proceso, simplemente reescriba los datos nuevamente dentro de la línea (para que los pulsos giren en un bucle). Dado que solo podía leer un poco cuando iba completamente alrededor de la línea de retraso, tenía que tener cuidado con su tiempo para asegurarse de no tener una penalización de rendimiento al tener que esperar a que sus datos estén disponibles. Las líneas de retardo a veces estaban hechas de alambre, pero algunas eran tubos largos llenos de mercurio.
Después de la memoria de la línea de retardo, se desarrolló la “memoria central”: en esto, una rejilla de pequeños toroides (anillos en forma de rosquilla) hechos de ferrita (un material magnético) se colocó con alambres delgados, cada anillo de ferrita o “núcleo” , que tiene tres cables que lo atraviesan, un cable de fila, un cable de columna y un cable de detección. Si pasa una corriente a través del centro de un núcleo, puede hacer que su magnetismo interno cambie de una dirección a otra (ya sea en sentido horario o antihorario). Este giro puede ser detectado por un pico de corriente en el cable de detección. Dado que se necesita una corriente conocida para hacer que se voltee, y una corriente demasiado pequeña no hará que se voltee, puede escribir en un núcleo específico ejecutando la mitad de la corriente necesaria a través del cable de fila y la mitad de la corriente necesaria a través de la columna cable. Hay muy poca corriente para afectar otros núcleos en la fila o la columna, pero ese núcleo tendrá suficiente corriente para cambiar. Para leer la memoria central, escribe un 0 en el núcleo que está eligiendo, y si detecta un pico en el cable de detección, eso significa que era un 1, así que escriba un 1 para restablecerlo. La memoria central tenía la gran ventaja de ser “no volátil”, lo que significa que no perdió memoria cuando se restableció. Además, a diferencia de la línea de retardo y tecnologías de memoria similares, no era secuencial: podía direccionar cualquier ubicación de memoria que quisiera sin esperar a que volviera a aparecer.
La memoria utilizada en mi primera computadora, una Commodore VIC 20, era “RAM estática”, básicamente la misma idea básica que la memoria flip-flop descrita anteriormente, pero miniaturizada en un circuito integrado. Cada bit de memoria usa alrededor de 6 transistores. A diferencia de la memoria central, la RAM estática se puede leer de forma no destructiva pero es volátil. Sin embargo, mientras tenga energía, la memoria se puede leer.
Por otro lado, mi primera PC usó “RAM dinámica”. En esta forma de memoria, una carga se mantiene en un condensador pequeño para indicar un 1 o un 0. Para leer la RAM dinámica, el circuito drena cualquier carga en el condensador y detecta si hubo o no una carga (similar a cómo la memoria central hace una lectura). Al igual que la memoria central, luego reescribe una carga si encuentra alguna. A diferencia de la memoria central o el ram estático, los condensadores en el ram dinámico tienen fugas, y si no se escriben con la frecuencia suficiente, “olvidarán” lo que tenían. Como tal, la memoria RAM dinámica está diseñada con un circuito de “actualización” que reescribe periódicamente el contenido de cada celda de memoria. La principal ventaja de la memoria RAM dinámica es que, incluso con la complejidad adicional de reescribir la memoria y los circuitos de actualización, se necesitan significativamente menos componentes en el chip IC para usar: 1 transistor por celda de memoria frente a 6 para la memoria estática.
No estoy seguro de qué “tres tipos de memoria de computadora” querías, pero aquí hay 7.