¿Cómo funciona la RAM en un sistema informático?

Alguien ya ha proporcionado una descripción de cómo funciona la tecnología DRAM actual. Sin embargo, creo que vale la pena considerar de manera más general el concepto de cómo podemos crear un dispositivo que memorice información.

De hecho, todo lo que necesita en principio para memorizar algo es un dispositivo que cumpla con los siguientes criterios:

  • El dispositivo tiene múltiples elementos repetidos (“celdas”)
  • Cada celda puede tener dos o más estados diferentes
  • El estado de cada celda se puede cambiar, al menos una vez
  • El estado de cada celda se puede leer

Antes de que podamos almacenar información en este dispositivo, también necesitamos:

  • que la información está codificada en números
  • Un enfoque estándar para representar números usando combinaciones de estados celulares.

Para una memoria de computadora viable, los actos de cambio del estado de la celda (para la memoria que se puede escribir) y la lectura deben ser rápidos y confiables, y las celdas deben poder reducirse y repetirse para lograr una alta densidad y eficiencia energética. Sin embargo, esto tiene más que ver con la eficiencia que con la capacidad básica de memorizar.

Para un ejemplo simple del esquema anterior, digamos que queremos memorizar un nombre, por ejemplo: “Paul”. Primero tenemos que codificar esto en números. Una forma estándar de hacerlo es asignar un número a cada letra del alfabeto, de modo que “Paul” se pueda representar como una serie de cuatro números. Podríamos simplemente tener a = 1, b = 2, …, y = 25, z = 26. Luego, necesitamos un enfoque para representar los números 1 a 26 utilizando estados de celda del dispositivo. Digamos que las celdas de nuestro dispositivo tienen solo dos estados diferentes, en cuyo caso podemos decidir representar los números usando binario de longitud fija. En este caso necesitamos 5 dígitos binarios, entonces a = 1 = 00001, b = 2 = 00010, … y = 25 = 11001, z = 26 = 11010. Usando esta codificación obtenemos “paul” representado como 10000, 00001, 10101 , 01100.

Ahora tenemos que elegir nuestro dispositivo de memoria celular. Simplemente hagamos de esto un interruptor mecánico conectado a una luz y batería para mostrar si el interruptor está encendido o apagado. Nuestro dispositivo consta de cuatro bancos de cinco de estas celdas de interruptor / luz. Para memorizar “Paul” usando el esquema de codificación anterior, alternamos los interruptores de modo que un interruptor / luz esté encendido para almacenar el binario 1, y apagado para almacenar el binario 0:

on off off off off (que representa la “p”)

apagado apagado apagado apagado encendido (que representa la “a”)

on off on off on (que representa la “u”)

apagado encendido encendido apagado apagado (que representa la “l”)

Podemos volver a leer “Paul” en cualquier momento que deseemos observando las luces e invirtiendo la codificación descrita anteriormente. Trabajo realizado: tenemos una memoria de trabajo que almacena el nombre “paul” y, de hecho, puede almacenar cualquier nombre de hasta cuatro caracteres usando el alfabeto romano. Para atender nombres más largos y diferentes alfabetos, solo aumentamos el número de celdas y ampliamos el esquema de codificación.

Tenga en cuenta que este dispositivo en particular es una memoria no volátil, lo que significa que no se necesita energía para mantener la memoria. Ciertamente necesitamos energía tanto para escribir (configurar los interruptores) como para leer (encender las lámparas), pero podemos eliminar esta energía y el nombre “paul” aún estará en la memoria indefinidamente, listo para ser leído en una fecha futura.

En segundo lugar, tenga en cuenta que el dispositivo anterior requiere que una persona (o un robot) lo use. Sin embargo, puede ver cómo se puede modificar el dispositivo para que funcione más fácilmente dentro de un sistema eléctrico. Para escribir, puede hacer que los interruptores funcionen electromagnéticamente. La lectura se puede hacer eléctricamente simplemente detectando la continuidad del interruptor: las lámparas se pueden quitar por completo.

El siguiente refinamiento podría ser quitar la parte móvil, el interruptor mecánico y reemplazarlo con algo como uno de los siguientes (por ejemplo):

  • un electroimán, donde el estado está representado por campos magnéticos en diferentes orientaciones, como se usa en algunas de las primeras memorias de computadora con “núcleo magnético”
  • un imán que usa un sustrato magnético persistente, nuevamente con diferentes orientaciones de campo magnético, como se usa en una amplia gama de tecnologías de disco y cinta
  • una muesca, o no, en un material reflectante, como se usa para el almacenamiento de medios ópticos como CD
  • un fusible, que puede quemarse o no, como se usa en las tecnologías ROM
  • un transistor, que puede estar encendido o apagado en el sentido de que puede conducir o no la electricidad, en realidad la base de la RAM estática moderna
  • un condensador, que almacena una carga eléctrica, o no, como en la DRAM moderna
  • una partícula fundamental que tiene diferentes estados cuánticos, como se está investigando para varias tecnologías de memoria cuántica

En cada caso, la celda completa también necesita los circuitos para cambiar y leer el estado, y si es necesario para mantener el estado si es volátil. Ahora está comenzando en el largo camino que conduce desde el concepto básico hasta el desarrollo de la memoria moderna de la computadora y más allá.

En efecto, la DRAM moderna es una gran red de condensadores muy pequeños que pueden almacenar una carga o vaciarse. Durante una escritura, las celdas se cargan o drenan según sea necesario para representar unos o ceros. El proceso se invierte para una lectura, de modo que la información se puede devolver a pedido.

Dado que los condensadores pierden lentamente su carga por sí solos, la DRAM debe actualizarse periódicamente, que es un proceso automatizado de leer todo el contenido de la memoria y volver a escribirlo para mantener la carga en el nivel correcto. (Si se agotara demasiado, los valores se convertirían en ceros y, por lo tanto, la información se corrompería y se perdería. Hay otros tipos de memoria que no requieren este proceso de actualización, pero hay otros inconvenientes, como una menor densidad física y una mayor consumo de energía (p. ej., memoria ram estática) o menor rendimiento de escritura y vida útil limitada (flash) que los hace menos adecuados como reemplazo de DRAM.

Cuando abre un programa o ejecuta un sistema operativo (llamaremos a ambos como aplicación), su aplicación leerá todos los bloques de comandos necesarios en la memoria. e inicie su aplicación.

La computadora comienza desde la primera línea de comando (cambios de 16 bits a 64 bits con el sistema operativo) Algunos comandos pueden requerir parámetros, también existen en la memoria después de ese comando.

Con los comandos Jump o Return, las aplicaciones que ejecutan la celda de memoria pueden repetir tantas como sea necesario.

La aplicación misma solicitará más memoria para los bloques de datos. El uso de la memoria aumentará.

La CPU solo obtiene comandos ubicados en la memoria. (RAM) comienza a utilizar con la memoria del BIOS.

La memoria de acceso aleatorio (RAM) es la forma más conocida de memoria de computadora. La RAM se considera “acceso aleatorio” porque puede acceder a cualquier celda de memoria directamente si conoce la fila y la columna que se cruzan en esa celda.

Lo contrario de la RAM es la memoria de acceso en serie (SAM). SAM almacena datos como una serie de celdas de memoria a las que solo se puede acceder secuencialmente (como una cinta de cassette). Si los datos no están en la ubicación actual, cada celda de memoria se verifica hasta que se encuentran los datos necesarios. SAM funciona muy bien para memorias intermedias, donde los datos se almacenan normalmente en el orden en que se utilizarán (un buen ejemplo es la memoria intermedia de textura en una tarjeta de video). Los datos de RAM, por otro lado, se pueden acceder en cualquier orden.