La latencia de estroboscopio de dirección de columna , también llamada latencia CAS o CL , es el retraso en ciclos de reloj entre el comando READ y el momento en que los datos están disponibles. [1] [2] En DRAM asíncrona , el intervalo se especifica en nanosegundos (tiempo absoluto). [3] En DRAM síncrona , el intervalo se especifica en ciclos de reloj. Debido a que la latencia depende de una cantidad de ticks de reloj en lugar del tiempo absoluto, el tiempo real para que un módulo SDRAM responda a un evento CAS puede variar entre usos del mismo módulo si la frecuencia de reloj difiere.
Antecedentes del funcionamiento de la RAM
La RAM dinámica está dispuesta en una matriz rectangular. Cada fila se selecciona mediante una línea de palabra horizontal . El envío de una señal lógica alta a lo largo de una fila determinada habilita los MOSFET presentes en esa fila, conectando cada condensador de almacenamiento a su línea de bits vertical correspondiente . Cada línea de bits está conectada a un amplificador de detección que amplifica el pequeño cambio de voltaje producido por el condensador de almacenamiento. Esta señal amplificada se emite luego desde el chip DRAM y se envía de regreso a la línea de bits para actualizar la fila.
Cuando no hay ninguna línea de palabra activa, la matriz está inactiva y las líneas de bits se mantienen en un estado precargado [4] , con un voltaje a medio camino entre alto y bajo. Esta señal indeterminada es desviada hacia alto o bajo por el capacitor de almacenamiento cuando una fila se activa.
Para acceder a la memoria, primero se debe seleccionar una fila y cargarla en los amplificadores de detección. Esta fila queda entonces activa y se puede acceder a las columnas para leer o escribir.
La latencia CAS es el retraso entre el momento en que la dirección de columna y la señal de estroboscopio de dirección de columna se presentan al módulo de memoria y el momento en que el módulo de memoria pone a disposición los datos correspondientes. La fila deseada ya debe estar activa; si no lo está, se requiere tiempo adicional.
Por ejemplo, un módulo de memoria SDRAM típico de 1 GiB puede contener ocho chips DRAM independientes de un gibibit , cada uno de los cuales ofrece 128 MiB de espacio de almacenamiento. Cada chip está dividido internamente en ocho bancos de 2 27 = 128 Mibits , cada uno de los cuales compone una matriz DRAM independiente. Cada banco contiene 2 14 = 16384 filas de 2 13 = 8192 bits cada una. Se accede a un byte de memoria (de cada chip; 64 bits en total de todo el DIMM) proporcionando un número de banco de 3 bits, una dirección de fila de 14 bits y una dirección de columna de 13 bits. [ cita requerida ]
Efecto sobre la velocidad de acceso a la memoria
Con la DRAM asíncrona, se accedía a la memoria mediante un controlador de memoria en el bus de memoria en función de un tiempo establecido en lugar de un reloj, y estaba separada del bus del sistema. [3] Sin embargo, la DRAM síncrona tiene una latencia CAS que depende de la frecuencia del reloj. En consecuencia, la latencia CAS de un módulo de memoria SDRAM se especifica en ticks de reloj en lugar de tiempo absoluto. [ cita requerida ]
Debido a que los módulos de memoria tienen múltiples bancos internos y los datos pueden ser emitidos desde uno durante la latencia de acceso para otro, los pines de salida pueden mantenerse 100% ocupados independientemente de la latencia CAS a través de la canalización ; el ancho de banda máximo alcanzable está determinado únicamente por la velocidad del reloj. Desafortunadamente, este ancho de banda máximo solo puede lograrse si la dirección de los datos que se van a leer se conoce con suficiente antelación; si la dirección de los datos a los que se accede no es predecible, pueden producirse bloqueos de la canalización , lo que resulta en una pérdida de ancho de banda. Para un acceso a memoria completamente desconocido (también conocido como acceso aleatorio), la latencia relevante es el tiempo para cerrar cualquier fila abierta, más el tiempo para abrir la fila deseada, seguido de la latencia CAS para leer datos de ella. Sin embargo, debido a la localidad espacial , es común acceder a varias palabras en la misma fila. En este caso, la latencia CAS por sí sola determina el tiempo transcurrido.
Debido a que las latencias CAS de los módulos DRAM modernos se especifican en ticks de reloj en lugar de tiempo, al comparar latencias a diferentes velocidades de reloj, las latencias se deben traducir a tiempos absolutos para hacer una comparación justa; una latencia CAS numérica más alta puede ser aún menor si el reloj es más rápido. De la misma manera, un módulo de memoria que está subclockeado podría tener su recuento de ciclos de latencia CAS reducido para preservar el mismo tiempo de latencia CAS. [ cita requerida ]
La memoria RAM de doble velocidad de datos (DDR) realiza dos transferencias por ciclo de reloj y, por lo general, se describe mediante esta velocidad de transferencia. Debido a que la latencia CAS se especifica en ciclos de reloj y no en transferencias (que ocurren tanto en los flancos ascendentes como descendentes del reloj), es importante asegurarse de que sea la velocidad de reloj (la mitad de la velocidad de transferencia) la que se esté utilizando para calcular los tiempos de latencia CAS. [ cita requerida ]
Otro factor que complica la situación es el uso de transferencias en ráfagas. Un microprocesador moderno puede tener un tamaño de línea de caché de 64 bytes, lo que requiere ocho transferencias desde una memoria de 64 bits de ancho (ocho bytes) para llenarse. La latencia CAS solo puede medir con precisión el tiempo necesario para transferir la primera palabra de la memoria; el tiempo necesario para transferir las ocho palabras también depende de la velocidad de transferencia de datos. Afortunadamente, el procesador normalmente no necesita esperar a que se transfieran las ocho palabras; la ráfaga se envía generalmente en primer orden de palabras críticas, y el microprocesador puede utilizar la primera palabra crítica inmediatamente.
En la siguiente tabla, las velocidades de datos se dan en millones de transferencias, también conocidas como megatransferencias , por segundo (MT/s), mientras que las velocidades de reloj se dan en MHz, millones de ciclos por segundo.
Ejemplos de sincronización de memoria
Notas
- ^ Tiempo de transferencia = 1 / Velocidad de datos.
- ^ Velocidad de comando = Velocidad de datos / 2 para velocidad de datos doble (DDR), Velocidad de comando = Velocidad de datos para velocidad de datos única (SDR).
- ^ Tiempo de ciclo = 1 / Velocidad de comando = 2 × Tiempo de transferencia.
- ^ abc N palabra = [(2 × latencia CAS) + (N − 1)] × Tiempo de transferencia.
Véase también
Referencias
- ^ Stokes, Jon "Hannibal" (1998–2004). "Guía de RAM de Ars Technica, parte II: DRAM asincrónica y sincrónica". Ars Technica. Archivado desde el original el 1 de noviembre de 2012.
- ^ Jacob, Bruce L. (10 de diciembre de 2002), Arquitecturas, organizaciones y tecnologías alternativas de DRAM sincrónicas (PDF) , Universidad de Maryland
- ^ ab Evolución de la tecnología de memoria: una descripción general de las tecnologías de memoria del sistema, HP, julio de 2008
- ^ Keeth, Brent; Baker, R. Jacob; Johnson, Brian; Lin, Feng (4 de diciembre de 2007). Diseño de circuitos DRAM: temas fundamentales y de alta velocidad. John Wiley & Sons. ISBN 978-0470184752.
Enlaces externos
- Hoja de cálculo de Google: Comparaciones de tiempos de memoria ingresados por el usuario y ejemplos de tiempos de memoria (solo latencia CAS)
- Hoja de cálculo de Google: Comparación completa de los tiempos reales de la memoria RAM DDR4
- PCSTATS: Ancho de banda de memoria frente a tiempos de latencia
- Cómo funciona el acceso a la memoria
- Guía de hardware de Tom: tiempos ajustados frente a frecuencias de reloj altas
- Comprender los tiempos de RAM
- AnandTech: Todo lo que siempre quiso saber sobre la memoria SDRAM pero tenía miedo de preguntar