El controlador de memoria es un circuito digital que administra el flujo de datos que van y vienen de la memoria principal de la computadora . Un controlador de memoria puede ser un chip separado o integrado en otro chip, por ejemplo, si se coloca en el mismo troquel o como parte integral de un microprocesador ; en el último caso, se suele denominar controlador de memoria integrado (IMC). Un controlador de memoria a veces también se denomina controlador de chip de memoria (MCC) [1] o unidad de controlador de memoria (MCU). [2]
Una forma común de controlador de memoria es la unidad de gestión de memoria (MMU) que en muchos sistemas operativos, como Unix , implementa el direccionamiento virtual .
Historia
La mayoría de los microprocesadores de estaciones de trabajo o de escritorio modernos utilizan un controlador de memoria integrado (IMC), incluidos los microprocesadores de Intel , AMD y los creados en torno a la arquitectura ARM .
Antes de K8 (alrededor de 2003), los microprocesadores AMD tenían un controlador de memoria implementado en el puente norte de su placa base . En K8 y posteriores, AMD empleó un controlador de memoria integrado. [3] Asimismo, hasta Nehalem (alrededor de 2008), los microprocesadores Intel usaban controladores de memoria implementados en el puente norte de la placa base. Nehalem y luego cambió a un controlador de memoria integrado. [4]
Otros ejemplos de microprocesadores que el uso de controladores de memoria integrados incluyen IBM 's POWER5 , y Sun Microsystems ' s UltraSPARC T1 .
Si bien un controlador de memoria integrado tiene el potencial de aumentar el rendimiento del sistema, por ejemplo, al reducir la latencia de la memoria , bloquea el microprocesador en un tipo (o tipos) específico de memoria, lo que obliga a rediseñarlo para admitir tecnologías de memoria más nuevas. Cuando se introdujo DDR2 SDRAM , AMD lanzó nuevas CPU Athlon 64. Estos nuevos modelos, con un controlador DDR2, utilizan un zócalo físico diferente (conocido como Socket AM2 ), por lo que solo encajarán en placas base diseñadas para el nuevo tipo de RAM. Cuando el controlador de memoria no está en funcionamiento, se puede instalar la misma CPU en una nueva placa base, con un puente norte actualizado .
Algunos microprocesadores de la década de 1990, como el DEC Alpha 21066 y el HP PA-7300LC , tenían controladores de memoria integrados; sin embargo, en lugar de mejorar el rendimiento, esto se implementó para reducir el costo de los sistemas al eliminar la necesidad de un controlador de memoria externo.
Algunas CPU están diseñadas para tener sus controladores de memoria como componentes externos dedicados que no forman parte del chipset. Un ejemplo es IBM POWER8 , que utiliza chips Centaur externos que se montan en módulos DIMM y actúan como búfer de memoria, chips de caché L4 y como controladores de memoria reales. La primera versión del chip Centaur usó memoria DDR3, pero luego se lanzó una versión actualizada que puede usar DDR4. [5]
Propósito
Los controladores de memoria contienen la lógica necesaria para leer y escribir en DRAM y para "refrescar" la DRAM . Sin actualizaciones constantes, la DRAM perderá los datos escritos en ella ya que los condensadores pierden su carga en una fracción de segundo (no más de 64 milisegundos según los estándares JEDEC ).
La lectura y escritura en la DRAM se realiza seleccionando las direcciones de datos de fila y columna de la DRAM como las entradas al circuito multiplexor , donde el demultiplexor de la DRAM utiliza las entradas convertidas para seleccionar la ubicación de memoria correcta y devolver los datos, que luego son devuelto a través de un multiplexor para consolidar los datos con el fin de reducir el ancho de bus requerido para la operación.
El ancho del bus es el número de líneas paralelas disponibles para comunicarse con la celda de memoria. Los anchos de bus de los controladores de memoria varían de 8 bits en sistemas anteriores a 512 bits en sistemas y tarjetas de video más complicados (generalmente implementados como cuatro controladores de memoria simultáneos de 64 bits que operan en paralelo, aunque algunos están diseñados para operar en "modo de grupo "donde se pueden usar dos controladores de memoria de 64 bits para acceder a un dispositivo de memoria de 128 bits ).
Algunos controladores de memoria, como el integrado en los procesadores PowerQUICC II, incluyen hardware de detección y corrección de errores . [6]
Seguridad
Algunos controladores de memoria experimentales (principalmente destinados al mercado de servidores donde la protección de datos es legalmente requerida) contienen un segundo nivel de traducción de direcciones, además del primer nivel de traducción de direcciones realizado por la unidad de administración de memoria de la CPU . [7]
Los controladores de memoria integrados en ciertos procesadores Intel Core también brindan codificación de memoria como una característica que convierte los datos del usuario escritos en la memoria principal en patrones pseudoaleatorios . [8] [9]
Se supone que la codificación de memoria (en la teoría criptográfica) previene el análisis forense y de ingeniería inversa basado en la remanencia de datos DRAM al hacer que varios tipos de ataques de arranque en frío sean ineficaces. En la práctica actual esto no se ha logrado.
Sin embargo, Memory Scrambling solo se ha diseñado para solucionar problemas eléctricos relacionados con DRAM. Los estándares de codificación de memoria de finales de la década de 2010 no solucionan ni previenen problemas o problemas de seguridad. Los estándares de codificación de memoria de la década de 2010 no son criptográficamente seguros, ni necesariamente de código abierto o abiertos a revisión o análisis públicos. [10]
ASUS e Intel tienen sus propios estándares de codificación de memoria. Actualmente, las placas base de ASUS han permitido al usuario elegir qué estándares de codificación de memoria usar [ASUS o Intel] o si desactivar la función por completo.
Variantes
Memoria de velocidad de datos doble
Los controladores de memoria de doble velocidad de datos (DDR) se utilizan para controlar DDR SDRAM , donde los datos se transfieren tanto en los flancos ascendentes como descendentes del reloj de memoria del sistema. Los controladores de memoria DDR son significativamente más complicados en comparación con los controladores de velocidad de datos únicos [ cita requerida ] , pero permiten transferir el doble de datos sin aumentar la velocidad de reloj de la celda de memoria o el ancho del bus.
Memoria multicanal
Los controladores de memoria de memoria multicanal son controladores de memoria en los que los dispositivos DRAM se separan en varios buses diferentes para permitir que los controladores de memoria accedan a ellos en paralelo. Esto aumenta la cantidad teórica de ancho de banda del bus en un factor del número de canales. Si bien un canal para cada celda DRAM sería la solución ideal, agregar más canales es muy difícil debido al número de cables, la capacitancia de la línea y la necesidad de que las líneas de acceso en paralelo tengan longitudes idénticas.
Memoria con búfer completo
Los sistemas de memoria con búfer completo colocan un dispositivo de búfer de memoria en cada módulo de memoria (llamado FB-DIMM cuando se usa RAM con búfer completo), que a diferencia de los dispositivos controladores de memoria tradicionales, usan un enlace de datos en serie al controlador de memoria en lugar del enlace paralelo utilizado en diseños de RAM anteriores. Esto reduce la cantidad de cables necesarios para colocar los dispositivos de memoria en una placa base (lo que permite utilizar un número menor de capas, lo que significa que se pueden colocar más dispositivos de memoria en una sola placa), a expensas de aumentar la latencia (el tiempo necesario para acceder a una ubicación de la memoria). Este aumento se debe al tiempo requerido para convertir la información paralela leída desde la celda DRAM al formato serial usado por el controlador FB-DIMM, y nuevamente a una forma paralela en el controlador de memoria en la placa base.
En teoría, el dispositivo de búfer de memoria del FB-DIMM podría construirse para acceder a cualquier celda DRAM, lo que permite un diseño de controlador de memoria independiente de la celda de memoria, pero esto no se ha demostrado, ya que la tecnología está en su infancia.
Controlador de memoria flash
Muchos dispositivos de memoria flash , como las memorias USB, incluyen un controlador de memoria flash en un chip. La memoria flash es intrínsecamente más lenta de acceder que la RAM y, a menudo, se vuelve inutilizable después de unos pocos millones de ciclos de escritura, lo que generalmente la hace inadecuada para aplicaciones de RAM.
Ver también
- Depuración de memoria
- MMU
- Unidad de generación de direcciones
- Arquitectura de memoria multicanal
Referencias
- ^ Guía de examen de certificación Comptia A +, séptima edición, por Mike Meyers, en el glosario, parte inferior de la página 1278: "Chip que gestiona las solicitudes de memoria de la CPU".
- ↑ Neat, Adam G. (4 de diciembre de 2003). Maximización del rendimiento y la escalabilidad con IBM WebSphere . ISBN 9781590591307. Consultado el 6 de febrero de 2015 .
- ^ Vries, Hans de. "Chip Architect: arquitectura de microprocesador de próxima generación de AMD" . www.chip-architect.com . Consultado el 17 de marzo de 2018 .
- ^ Torres, Gabriel (26 de agosto de 2008). "Dentro de la microarquitectura Intel Nehalem" . Secretos de hardware . pag. 2 . Consultado el 7 de septiembre de 2017 .
- ^ Prickett Morgan, Timothy (17 de octubre de 2016). "IBM trae memoria DDR4 para soportar los sistemas de energía" . IT Jungle . pag. 1 . Consultado el 7 de septiembre de 2017 .
- ^ "Controlador de memoria"
- ^ Esta es una característica de seguridad en el sentido de que permite que el sistema operativo proporcione una mejor protección aparte de usar un bit para denegar la ejecución de código arbitrario en las áreas de memoria RAM (sistema y / o usuario). John Carter, Wilson Hsieh, Leigh Stoller, Mark Swansony, Lixin Zhang, et al. "Impulso: la construcción de un controlador de memoria más inteligente" .
- ^ "Computadora de escritorio de la familia de procesadores Intel Core de segunda generación, computadora de escritorio de la familia de procesadores Intel Pentium y computadora de escritorio de la familia de procesadores Intel Celeron" (PDF) . Junio de 2013. p. 23 . Consultado el 3 de noviembre de 2015 .
- ^ "Móvil de la familia de procesadores Intel Core de segunda generación y móviles de la familia de procesadores Intel Celeron" (PDF) . Septiembre de 2012. p. 24 . Consultado el 3 de noviembre de 2015 .
- ^ Igor Skochinsky (12 de marzo de 2014). "El secreto del motor de gestión de Intel" . SlideShare . págs. 26-29 . Consultado el 13 de julio de 2014 .
enlaces externos
- Informe técnico de memoria DDR de doble canal de Infineon / Kingston (un proveedor de memoria) : explica los controladores de memoria de doble canal y cómo usarlos
- Introducción al controlador de memoria
- Guía de Intel sobre modos de memoria de uno y varios canales