¿Cuántos bits se direccionan a través de un comando CAS en DRAM?

Por lo que entiendo, el emparejamiento de una columna y una fila corresponde a 64 bits del chip DRAM, pero esto me hace pensar que uno incurriría en la latencia CAS (~18 ciclos de reloj en DDR4) para CADA transferencia. Siento que obviamente este no es el caso o, de lo contrario, la DRAM estaría severamente limitada por el retraso de CAS y no por el ancho de banda disponible. ¡Gracias por la ayuda!

¿No depende totalmente del chip específico?
Con el dispositivo adecuado (uno que admita el modo de página), puede obtener 256 bits de un acceso CAS.
No olvide que los chips DDR tienen múltiples bancos internamente, lo que significa que puede intercalar operaciones en bancos individuales para mantener lleno el ancho de banda de E/S, incluso si un solo banco no puede hacerlo por sí solo. Esto es lo que hacemos normalmente en los sistemas de video de gran ancho de banda, donde el problema se simplifica un poco porque casi todos los accesos son secuenciales de todos modos.
Gran punto Dave. ¿Puede ampliar lo que quiere decir con múltiples "bancos"? Estoy familiarizado con el concepto de rangos en los sistemas de memoria. ¿Son lo mismo?
No sé qué es un "rango" en este contexto. Un chip DDR típico tiene 4 bancos que funcionan esencialmente de forma independiente entre sí, excepto que comparten un conjunto común de buses de entrada (dirección y comando) y E/S (datos). Por lo general, pueden transferir hasta 8 palabras de datos en una ráfaga DDR. Puede iniciar una transferencia en ráfaga en el banco 0 y, mientras eso sucede internamente y en el bus de datos, puede iniciar una transferencia en ráfaga en el banco 1 usando los buses de comando y dirección, y así sucesivamente. En el momento en que se ha iniciado la ráfaga en el banco 3, el banco 0 ya está listo para una nueva operación.
... Se transfieren 32 palabras de datos en cada "súper ráfaga" a través de los cuatro bancos. Por lo general, puede lograr una utilización del bus superior al 90 %, incluso con una combinación de lecturas y escrituras.

Respuestas (1)

La cantidad de bits depende del ancho del chip de memoria, siempre puede poner más en paralelo para obtener más datos al mismo tiempo. Entonces, cada ciclo de acceso es cualquiera que sea el ancho del chip.

Puede variar, pero generalmente puede acceder a varias direcciones de fila sin tener que configurar la columna nuevamente, siempre que sea la misma.

Si todas las filas están en un bloque, puede ser aún más rápido y hacer una ráfaga en la que el propio chip incrementa automáticamente la dirección de la fila internamente.

En una PC (mi conocimiento aquí está desactualizado, así que pido disculpas si ha cambiado desde entonces) siempre se accede a la DRAM en ráfagas de 4 ciclos, cada ráfaga tiene una dirección completamente calificada con CAS y RAS configurados. Sin embargo, otros controladores de memoria pueden actuar de manera muy diferente y pueden hacer un mejor uso de los posibles beneficios de velocidad según su aplicación.

En una PC x86_64, el tamaño de la línea de caché L2 es de 64 bytes, por lo que este es el tamaño natural en el que desea acceder (leer) cualquier RAM de nivel superior (más quizás bits ECC)
DDR4 tiene 64 bits de ancho, lo que implicaría que si se le solicita que ajuste la memoria en pares, una lectura es de 128 bits y se necesitaría una ráfaga de 4 ciclos para llenar una línea de caché. Entonces eso parece atar muy bien.
Gracias por las respuestas. ¿Alguien sabe de algún buen material de lectura que pueda tener esta misma información o simplemente muchas cosas básicas sobre SDRAM? Preferiblemente algo de buena reputación que pueda citar en una presentación informal.