Memoria intercalada - Interleaved memory

En informática , la memoria intercalada es un diseño que compensa la velocidad relativamente lenta de la memoria dinámica de acceso aleatorio (DRAM) o la memoria central , distribuyendo las direcciones de memoria de manera uniforme entre los bancos de memoria . De esa manera, las lecturas y escrituras de memoria contigua utilizan cada banco de memoria a su vez, lo que da como resultado un mayor rendimiento de la memoria debido a la reducción de la espera para que los bancos de memoria estén listos para las operaciones.

Es diferente de las arquitecturas de memoria multicanal , principalmente porque la memoria intercalada no agrega más canales entre la memoria principal y el controlador de memoria . Sin embargo, el entrelazado de canales también es posible, por ejemplo, en procesadores i.MX 6 de escala libre , que permiten realizar el entrelazado entre dos canales.

Visión general

Con la memoria intercalada, las direcciones de memoria se asignan a cada banco de memoria por turno. Por ejemplo, en un sistema intercalado con dos bancos de memoria (asumiendo memoria direccionable por palabra ), si la dirección lógica 32 pertenece al banco 0, entonces la dirección lógica 33 pertenecería al banco 1, la dirección lógica 34 pertenecería al banco 0, y así sucesivamente. . Se dice que una memoria intercalada está intercalada de n vías cuando hay n bancos y la ubicación de memoria i reside en el banco i mod n .

Ejemplo de entrelazado de memoria con 4 bancos. Los bancos rojos son refrescantes y no se pueden usar.

La memoria intercalada da como resultado lecturas contiguas (que son comunes tanto en multimedia como en ejecución de programas) y escrituras contiguas (que se usan con frecuencia al llenar búferes de almacenamiento o comunicación) utilizando cada banco de memoria por turno, en lugar de usar el mismo repetidamente. Esto da como resultado un rendimiento de memoria significativamente mayor, ya que cada banco tiene un tiempo de espera mínimo entre lecturas y escrituras.

DRAM intercalado

La memoria principal ( memoria de acceso aleatorio , RAM) generalmente se compone de una colección de chips de memoria DRAM , donde varios chips pueden agruparse para formar un banco de memoria. Entonces es posible, con un controlador de memoria que admita el entrelazado, disponer estos bancos de memoria de modo que los bancos de memoria queden entrelazados.

Los datos en DRAM se almacenan en unidades de páginas. Cada banco de DRAM tiene un búfer de fila que sirve como caché para acceder a cualquier página del banco. Antes de leer una página en el banco DRAM, primero se carga en el búfer de filas . Si la página se lee inmediatamente desde el búfer de fila (o un hit de búfer de fila), tiene la latencia de acceso a memoria más corta en un ciclo de memoria. Si es un error de búfer de fila, lo que también se denomina conflicto de búfer de fila, es más lento porque la nueva página debe cargarse en el búfer de fila antes de leerla. Los errores de búfer de fila ocurren cuando se atienden las solicitudes de acceso en diferentes páginas de memoria en el mismo banco. Un conflicto de búfer de fila incurre en un retraso sustancial para el acceso a la memoria. Por el contrario, los accesos a la memoria a diferentes bancos pueden realizarse en paralelo con un alto rendimiento.

En los diseños tradicionales (planos), a los bancos de memoria se les puede asignar un bloque contiguo de direcciones de memoria, lo cual es muy simple para el controlador de memoria y brinda el mismo rendimiento en escenarios de acceso completamente aleatorio, en comparación con los niveles de rendimiento logrados mediante el entrelazado. Sin embargo, en realidad, las lecturas de memoria rara vez son aleatorias debido a la localidad de referencia , y la optimización para accesos cercanos proporciona un rendimiento mucho mejor en diseños intercalados.

La forma en que se direcciona la memoria no tiene ningún efecto en el tiempo de acceso para las ubicaciones de memoria que ya están almacenadas en caché , lo que afecta solo a las ubicaciones de memoria que deben recuperarse de la DRAM.

Historia

Las primeras investigaciones sobre la memoria intercalada se realizaron en IBM en los años 60 y 70 en relación con la computadora IBM 7030 Stretch , pero el desarrollo continuó durante décadas mejorando el diseño, la flexibilidad y el rendimiento para producir implementaciones modernas.

Ver también

Referencias

enlaces externos