¿Cuál es el uso preciso de un controlador de memoria y la latencia de RAM?

Estoy aprendiendo sobre DRAM síncrona y a menudo menciona un controlador de memoria. ¿Cuál es exactamente el punto de esto? ¿No podría la CPU simplemente tomar el trabajo de solicitar y recibir datos con su propio reloj? Y otra cosa que me ha confundido es la latencia de RAM. ¿Cómo espera exactamente una computadora un cierto número de ciclos de reloj para recibir información? ¿Qué hace la computadora durante estos entre ciclos de reloj?

"¿No podría la CPU simplemente tomar el trabajo de solicitar y recibir datos con su propio reloj?" Claro, pero prefiero que haga algo, ya sabes... útil .
Tenga en cuenta que, por lo general, el controlador de memoria es un subsistema en el mismo chip físico que la CPU.
Los primeros microprocesadores tenían que hacer esto (ver wiki ), pero era engorroso. El Z80 agregó registros/circuitos especiales para ayudar ( este bit del enlace anterior ).

Respuestas (2)

Un controlador de memoria dedicado es obligatorio por varias razones (integrado en la CPU o no). Debido a que es una memoria dinámica, cada celda de memoria debe 'refrescarse' con una luz estroboscópica cada 16 mS más o menos.

Dado que algunos chips Dram tienen gigabytes de almacenamiento, la CPU dedicaría todo su tiempo a actualizar el Dram. Usando latencia cronometrada o señales de protocolo de enlace (todavía una latencia conocida, o tiempo de retraso para actualizar la DRAM), el controlador de DRAM le permite a la CPU saber cuándo puede leer o escribir en la DRAM.

El controlador de memoria también maneja otra tarea complicada, y es permitir que otros dispositivos, como un chip controlador de LCD, tengan acceso a la DRAM si la CPU no exige acceso. Este árbol de prioridad integrado en el controlador DRAM permite que varios dispositivos además de la CPU "tengan su turno " para acceder a la DRAM.

Síncrono simplemente significa que la CPU y el controlador DRAM comparten el mismo reloj, o la CPU proporciona el reloj para la solicitud de lectura/escritura. Síncrono puede permitir que los datos se muevan en ráfagas cortas, lo que mejora la velocidad de transferencia de datos.

Las celdas de memoria Dram usan solo un transistor y un capacitor para "mantener" el estado (1 o 0), por lo que es obligatorio un pulso de actualización rápido para cada celda, o las celdas olvidarán su estado y provocarán un bloqueo de la CPU.

Hace unos 30 años, cuando las DRAM llegaron por primera vez al mercado, los bloqueos y la pérdida de datos eran comunes.

Usted responde a su propia pregunta.

¿Cómo espera exactamente una computadora un cierto número de ciclos de reloj para recibir información?

no sabe Debe tener un controlador de memoria que conozca la memoria disponible. Por lo general, la CPU¹ solo intenta acceder a una dirección de memoria externa y espera a que el controlador de memoria indique que se completó el acceso.

Cuanto más compleja se vuelve la memoria, más complejo debe ser el controlador y más complejo se vuelve el protocolo. Acabas de empezar a leer sobre la DRAM síncrona, que está un paso por encima de la DRAM normal, que está un paso por encima de la SRAM y la ROM, que eran comunes antes de la DRAM.

No era necesario un controlador de memoria con SRAM: la memoria solía ser más rápida que la CPU en el pasado, por lo que la CPU solo podía poner una dirección en el bus y leer/escribir los datos directamente.

Luego vino la DRAM, que requería un controlador de memoria muy simple que pudiera multiplexar el bus de direcciones superior e inferior y esperar a que la DRAM terminara.

SDRAM agrega aún más, porque ahora puede acceder a diferentes páginas sin penalización, y luego viene DDR, DDR2, etc.

Ahora, mucho de esto también puede pasar a la CPU, por lo que no necesariamente necesita un controlador separado.

¹ Las CPU modernas son, por supuesto, extremadamente complejas y tienen varias capas de almacenamiento en caché y cosas que suceden; no es tan simple como acceder a una dirección externa.