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

2

Estoy aprendiendo acerca de la DRAM síncrona y a menudo se menciona un controlador de memoria. ¿Cuál es exactamente el punto de esto? ¿No podría la CPU simplemente asumir 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 exactamente una computadora espera un cierto número de ciclos de reloj para recibir información? ¿Qué hace la computadora durante estos ciclos de reloj?

    
pregunta Derek Farkas

2 respuestas

7

Un controlador de memoria dedicado es obligatorio por varios motivos (integrados en la CPU o no). Debido a que es una memoria dinámica, cada celda de memoria debe ser 'renovada' con un flash cada 16 ms o menos. Con algunos chips Dram que tienen gigabytes de almacenamiento, la CPU pasaría todo su tiempo actualizando el Dram. Mediante el uso de señales de latencia programada o de intercambio (todavía una latencia conocida, o tiempo de demora para actualizar la DRAM), el controlador DRAM le permite a la CPU saber cuándo puede leer o escribir en la DRAM. Tarea, y eso 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 acceso a la DRAM ' tienen su turno '.

Sincrónico 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. Synchronous puede permitir que los datos se muevan en una breve ráfaga, lo que mejora la velocidad de transferencia de datos. Las celdas de memoria Dram usan solo un transistor y un capacitor para "sostener" el estado (1 o 0), por lo que es obligatorio un rápido pulso de actualización de cada celda, o las celdas olvidarán su estado y causarán un fallo en la CPU.

Hace unos 30 años, cuando las DRAM llegaron por primera vez al mercado, fallas y datos. las pérdidas eran comunes.

    
respondido por el Sparky256
5

En cierto modo respondes tu propia pregunta.

  

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

No lo sabe. Debe tener un controlador de memoria que sepa sobre la memoria disponible. En general, la CPU solo intenta acceder a una dirección de memoria externa y espera a que el controlador de la memoria indique que se ha completado el acceso.

Cuanto más compleja sea la memoria, más complejo debe ser el controlador y más complejo es el protocolo. Acaba de empezar a leer sobre la DRAM síncrona, que es un paso más que la DRAM normal, que es un paso más que la SRAM y la ROM que era común 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 aquellos días, 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 termine.

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 moverse en la CPU, por lo que no necesariamente necesitas un controlador separado.

CPU Las CPU modernas son, por supuesto, extremadamente complejas, y tienen varias capas de almacenamiento en caché y están sucediendo, no es tan simple como acceder a una dirección externa.

    
respondido por el pipe

Lea otras preguntas en las etiquetas