Otras respuestas han medido cómo la RAM funciona internamente, pero aún no han mencionado cómo encaja en un sistema. El tipo de RAM más simple de entender es una RAM asíncrona estática. Dicho dispositivo tiene una cantidad de pines de dirección, una cantidad de pines de datos y algunos pines de control que en conjunto tienen tres estados de interés:
- Estado inactivo, en el que las señales en la dirección y los pines de datos se ignoran, y los pines de datos están 'flotando'.
- Estado de escritura, en el que el dispositivo transferirá continuamente las señales en los pines de datos (que estarán flotando) a la ubicación de la memoria identificada por los pines de dirección.
- Estado de lectura, en el que el dispositivo se esforzará continuamente para impulsar los pines de datos con el último valor escrito en la ubicación de la memoria identificada por los pines de dirección.
Un chip de memoria estática típico tendrá algunas restricciones de tiempo, que pueden modelarse de manera efectiva al decir que las distintas entradas pueden comportarse como si tuvieran varios retrasos (no necesariamente constantes). Una operación de lectura puede hacer que se generen brevemente valores arbitrarios (basura) en los pines de datos antes de que el chip comience a emitir los datos correctos. Para realizar una operación de escritura, uno debe enviar al chip una dirección válida algún tiempo antes de afirmar las señales para poner el chip en el modo de "escritura", y debe mantener los datos correctos en los pines de datos durante un tiempo después de que se retire el chip. del "modo de escritura. Sin embargo, cumplir con estas restricciones generalmente no es demasiado difícil. Muchos chips de memoria tienen un estado adicional que puede pensarse como" prepárate para leer ": el chip determina continuamente qué valor se emitirá en el bus de datos si se le pidió que enviara la ubicación de la memoria direccionada. Si se le pide al chip que envíe esa ubicación, podrá suministrarlo mucho más rápido que si tuviera que comenzar "desde cero".
Tenga en cuenta que mientras un chip de memoria estática típico se conectará internamente como una cuadrícula de filas / columnas (como lo indican otras respuestas), y tendrá aproximadamente la mitad de sus pines de dirección conectados para controlar la columna "fila" y la otra mitad para controlar " ", un chip de memoria dinámica típico utilizará un conjunto de pines de dirección para controlar tanto la fila como la columna. Para acceder a la memoria dinámica, uno debe seleccionar una dirección de fila y luego afirmar un pin llamado / RAS (Selección de dirección de fila). Esto bloqueará la dirección de una fila y hará que esa fila particular de ubicaciones de memoria se lea en un búfer temporal. Luego, uno puede usar los pines de dirección junto con algunos otros pines de control para acceder a ese búfer temporal de una manera similar a una RAM estática. Una vez que uno se hace con una fila, uno debe / RAS. Esto hará que los contenidos (posiblemente modificados) del búfer de la fila se vuelvan a copiar en la fila correspondiente de la matriz. Algún tiempo después de que se libere / RAS, el chip de memoria estará listo para recibir otra dirección de fila y tendrá / RAS confirmado nuevamente.
Tenga en cuenta que el hecho de leer una fila de la matriz de memoria en el búfer temporal borrará esa fila de la matriz de memoria. En consecuencia, incluso si uno no realizó ningún cambio en el búfer de fila, aún sería necesario escribirlo nuevamente en la matriz de memoria antes de poder acceder a otra fila. Tenga en cuenta también que el tiempo requerido para acceder a una fila, y el tiempo entre terminar con una fila y acceder a otra, son mucho más largos que el tiempo requerido para leer y escribir datos dentro del búfer. Aunque muchos microcomputadores antiguos siempre realizarían la secuencia completa "seleccionar fila; leer o escribir byte; deseleccionar fila" para todos y cada uno de los accesos a la memoria, las computadoras más rápidas intentarán hacer todo lo posible con cada operación de selección de fila (confesaré algo de curiosidad acerca de por qué las computadoras más antiguas no hicieron más esfuerzos en ese sentido al acceder a la memoria para cosas como actualizaciones de visualización de video, ya que en muchos casos la memoria de video podría haberse accedido fácilmente en grupos de dos, cuatro u ocho bytes). Además, los dispositivos de memoria modernos incluyen características para permitir que ciertas operaciones se superpongan en muchos casos (por ejemplo, poder escribir un búfer de fila en la matriz de memoria mientras se lee una fila diferente).