En informática , la memoria intercalada es un diseño que compensa la velocidad relativamente lenta de la memoria de acceso aleatorio dinámico (DRAM) o memoria de núcleo , distribuyendo uniformemente las direcciones de memoria entre los bancos de memoria . De esta forma, las lecturas y escrituras de memoria contiguas utilizan cada banco de memoria de forma secuencial, lo que resulta en un mayor rendimiento de la memoria debido a la reducción del tiempo de espera para que los bancos de memoria estén listos para las operaciones.
Se diferencia de las arquitecturas de memoria multicanal , principalmente porque la memoria entrelazada no añade más canales entre la memoria principal y el controlador de memoria . Sin embargo, también es posible el entrelazado de canales, por ejemplo, en los procesadores freescale i.MX 6, que permiten realizar el entrelazado entre dos canales.
Descripción general
Con la memoria intercalada, las direcciones de memoria se asignan a cada banco de memoria de forma secuencial. Por ejemplo, en un sistema intercalado con dos bancos de memoria (suponiendo 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 es de n vías cuando hay n bancos y la ubicación de memoria i reside en el banco i módulo n .

La memoria intercalada permite lecturas contiguas (comunes tanto en multimedia como en la ejecución de programas) y escrituras contiguas (frecuentes al llenar búferes de almacenamiento o comunicación), utilizando cada banco de memoria de forma secuencial, en lugar de usar el mismo repetidamente. Esto se traduce en un rendimiento de memoria significativamente mayor, ya que cada banco tiene un tiempo de espera mínimo entre lecturas y escrituras.
DRAM intercalada
La memoria principal ( memoria de acceso aleatorio , RAM) suele estar compuesta por un conjunto de chips de memoria DRAM , que se agrupan para formar un banco de memoria. Mediante un controlador de memoria compatible con el entrelazado, es posible organizar estos bancos de memoria de forma que se entrelacen.
Los datos en la DRAM se almacenan en unidades de páginas. Cada banco de DRAM tiene un búfer de filas que funciona como caché para acceder a cualquier página del banco. Antes de leer una página del banco de DRAM, esta se carga primero en el búfer de filas . Si la página se lee inmediatamente del búfer de filas (acierto), tiene la menor latencia de acceso a memoria en un ciclo de memoria. Si se produce un fallo del búfer de filas, también llamado conflicto de búfer de filas, la lectura es más lenta porque la nueva página debe cargarse en el búfer de filas antes de leerse. Los fallos de búfer de filas ocurren cuando se atienden solicitudes de acceso a diferentes páginas de memoria en el mismo banco. Un conflicto de búfer de filas provoca un retraso considerable en el acceso a memoria. En cambio, los accesos a memoria de diferentes bancos pueden realizarse en paralelo con un alto rendimiento.
El problema de los conflictos de búfer de filas ha sido ampliamente estudiado y cuenta con una solución eficaz. [ 1 ] El tamaño de un búfer de filas es normalmente el tamaño de una página de memoria gestionada por el sistema operativo. Los conflictos o fallos de búfer de filas se producen por una secuencia de accesos a diferentes páginas en el mismo banco de memoria. El estudio [ 1 ] muestra que un método convencional de intercalado de memoria propagaría los conflictos de asignación de direcciones a nivel de caché al espacio de direcciones de memoria, causando fallos de búfer de filas en un banco de memoria. El método de memoria intercalada basado en permutaciones desarrollado por Zhao Zhang, Zhichun Zhu y Xiaodong Zhang resuelve el problema con un coste de microarquitectura mínimo. [ 1 ] Sun Microsystems adoptó rápidamente este método de intercalado por permutaciones en sus productos. [ 2 ] Este método, libre de patentes, se encuentra en muchos microprocesadores comerciales, como AMD, Intel y NVIDIA , para sistemas embebidos, portátiles, ordenadores de sobremesa y servidores empresariales. [ 3 ]
En las configuraciones tradicionales (planas), los bancos de memoria pueden asignarse a un bloque contiguo de direcciones de memoria, lo cual es muy sencillo para el controlador de memoria y ofrece un rendimiento equivalente en escenarios de acceso completamente aleatorio, en comparación con los niveles de rendimiento logrados mediante el entrelazado. Sin embargo, en la práctica, las lecturas de memoria rara vez son aleatorias debido a la localidad de referencia , y la optimización para un acceso cercano proporciona un rendimiento mucho mejor en configuraciones entrelazadas.
La forma en que se accede a la memoria no afecta al tiempo de acceso a las ubicaciones de memoria que ya están en caché , sino que solo influye en las ubicaciones de memoria que deben recuperarse de la DRAM.
Historia
Las primeras investigaciones sobre memoria entrelazada se llevaron a cabo en IBM en los años 60 y 70 en relación con el ordenador IBM 7030 Stretch , [ 4 ] pero el desarrollo continuó durante décadas mejorando el diseño, la flexibilidad y el rendimiento para producir implementaciones modernas.
Véase también
Referencias
- 1 2 3 Zhao Zhang, Zhichun Zhu y Xiaodong Zhang (2000). Un esquema de intercalado de páginas basado en permutaciones para reducir conflictos de búfer de filas y explotar la localidad de datos . MICRO' 33.
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ "Carta del periódico Sun al Director de la Oficina de Transferencia de Tecnología del College of William and Mary" (PDF) . 15 de julio de 2005.
- ↑ "El profesor Xiaodong Zhang recibe el premio ACM Microarchitecture Test of Time 2020" . Departamento de Ciencias de la Computación e Ingeniería, Facultad de Ingeniería, Universidad Estatal de Ohio . 19 de enero de 2021.
- ↑ Mark Smotherman (julio de 2010). "IBM Stretch (7030) — Paralelismo agresivo de uniprocesador" . clemson.edu . Consultado el 7 de diciembre de 2013 .
Enlaces externos
- Dale Adams habla sobre la memoria intercalada en Centris 650 y Quadra 800.
- Sistemas de memoria y procesadores segmentados por Harvey G. Cragon
- Memoria de computadora
- Gestión de la memoria