En el diseño de las computadoras modernas , la geometría de la memoria describe la estructura interna de la memoria de acceso aleatorio . La geometría de la memoria es un tema de interés para los consumidores que actualizan sus computadoras, ya que los controladores de memoria más antiguos pueden no ser compatibles con productos posteriores. La terminología de la geometría de la memoria puede ser confusa debido a la cantidad de términos superpuestos.
La geometría de un sistema de memoria puede considerarse como una matriz multidimensional. Cada dimensión tiene sus propias características y su propia realización física. Por ejemplo, la cantidad de pines de datos en un módulo de memoria es unidimensional.
La geometría de la memoria describe la configuración lógica de un módulo de RAM, pero a los consumidores siempre les resultará más fácil comprender la configuración física. Gran parte de la confusión que rodea a la geometría de la memoria se produce cuando la configuración física oculta la configuración lógica. La primera característica definitoria de la RAM es el factor de forma. Los módulos de RAM pueden tener un formato compacto SO-DIMM para aplicaciones con limitaciones de espacio, como portátiles , impresoras , ordenadores integrados y ordenadores de formato pequeño , y un formato DIMM , que se utiliza en la mayoría de los ordenadores de sobremesa. [ cita requerida ]
Las otras características físicas, determinadas mediante un examen físico, son la cantidad de chips de memoria y si ambos lados de la "tarjeta" de memoria están ocupados. Los módulos con una cantidad de chips de RAM igual a una potencia de dos no admiten la detección o corrección de errores de memoria. Si hay chips de RAM adicionales (entre potencias de dos), estos se utilizan para ECC .
Los módulos de RAM están "codificados" mediante muescas en los costados y a lo largo de la parte inferior del módulo. Esto indica la tecnología y la clasificación de los módulos, por ejemplo, si es DDR2 o DDR3, y si es adecuado para computadoras de escritorio o para servidores. La codificación se diseñó para dificultar la instalación de módulos incorrectos en un sistema (pero hay más requisitos que los que se incluyen en las claves). Es importante asegurarse de que la codificación del módulo coincida con la clave de la ranura que se pretende que ocupe. [ cita requerida ]
La presencia de chips adicionales que no sean de memoria en el módulo puede ser una indicación de que fue diseñado [¿ por quién? ] para sistemas de memoria de alta capacidad para servidores, y que el módulo puede ser incompatible con sistemas del mercado masivo. [ cita requerida ]
Como la siguiente sección de este artículo cubrirá la arquitectura lógica, que abarca la estructura lógica que abarca cada ranura ocupada en un sistema, las características físicas de las ranuras en sí mismas se vuelven importantes. Al consultar la documentación de su placa base o leer las etiquetas en la propia placa, puede determinar la estructura lógica subyacente de las ranuras. Cuando hay más de una ranura, están numeradas, y cuando hay más de un canal, las diferentes ranuras también están separadas de esa manera, generalmente con un código de colores. [ cita requerida ]
En la década de 1990, se lanzaron computadoras que usaban acceso a memoria no uniforme coherente con la caché , lo que permitió combinar varias computadoras que tenían cada una su propio controlador de memoria de modo que el software que se ejecutaba en ellas pudiera usar dispositivos de E/S, memoria y CPU de todos los sistemas participantes como si fueran una unidad ( imagen de sistema único ). Con el lanzamiento de Opteron por parte de AMD, que integró el controlador de memoria en la CPU, los sistemas NUMA que comparten más de un controlador de memoria en un solo sistema se han vuelto comunes en aplicaciones que requieren la potencia de más de un escritorio común. [ cita requerida ]
Los canales son la estructura de más alto nivel en el nivel del controlador de memoria local. Las computadoras modernas pueden tener dos, tres o incluso más canales . Por lo general, es importante que, para cada módulo en cualquier canal, haya un módulo lógicamente idéntico en la misma ubicación en cada uno de los otros canales ocupados. [ cita requerida ]
La capacidad del módulo es el espacio agregado en un módulo medido en bytes o, de manera más general, en palabras . La capacidad del módulo es igual al producto del número de rangos por la densidad de rangos, y donde la densidad de rangos es el producto de la profundidad de rangos por el ancho de rangos. [1] El formato estándar para expresar esta especificación es (profundidad de rangos) Mbit × (ancho de rangos) × (número de rangos). [ cita requerida ]
Los rangos son subunidades de un módulo de memoria que comparten la misma dirección y buses de datos y se seleccionan mediante selección de chip (CS) en el direccionamiento de bajo nivel. Por ejemplo, un módulo de memoria con 8 chips en cada lado, con cada chip con un bus de datos de 8 bits de ancho, tendría un rango para cada lado para un total de 2 rangos, si definimos un rango como de 64 bits de ancho. Un módulo compuesto por chips Micron Technology MT47H128M16 con la organización 128 Mib × 16, lo que significa 128 Mi de profundidad de memoria y bus de datos de 16 bits de ancho por chip; si el módulo tiene 8 de estos chips en cada lado de la placa, habría un total de 16 chips × datos de 16 bits de ancho = 256 bits de ancho total de datos. Para una interfaz de datos de memoria de 64 bits de ancho, esto equivale a tener 4 rangos, donde cada rango se puede seleccionar mediante una señal de selección de chip de 2 bits. Los controladores de memoria como el chipset Intel 945 enumeran las configuraciones que admiten: "Tecnologías DDR2 de 256-Mib, 512-Mib y 1-Gib para dispositivos ×8 y ×16", "cuatro rangos para todos los dispositivos DDR2 con una densidad de hasta 512-Mibit", "ocho rangos para dispositivos DDR2 de 1-Gibit". Como ejemplo, tomemos un controlador de memoria i945 con cuatro módulos de memoria Kingston KHX6400D2/1G, donde cada módulo tiene una capacidad de 1 GiB . [2] Kingston describe cada módulo como compuesto por 16 chips "64M×8-bit" y cada chip tiene un bus de datos de 8 bits de ancho. 16 × 8 equivale a 128, por lo tanto, cada módulo tiene dos rangos de 64 bits cada uno. Por lo tanto, desde el punto de vista del MCH hay cuatro módulos de 1 GB. En un nivel lógico superior, el MCH también ve dos canales, cada uno con cuatro rangos.
Por el contrario, los bancos , aunque son similares desde una perspectiva lógica a los rangos, se implementan de manera bastante diferente en el hardware físico. Los bancos son subunidades dentro de un solo chip de memoria, mientras que los rangos son subunidades compuestas por un subconjunto de los chips en un módulo. De manera similar a la selección de chip, los bancos se seleccionan mediante bits de selección de banco, que son parte de la interfaz de memoria. [ cita requerida ]
La forma más baja de organización que cubre la geometría de la memoria, a veces llamada "dispositivo de memoria". Estos son los circuitos integrados que forman cada módulo, o módulo de RAM. La medida más importante de un chip es su densidad, medida en bits. Debido a que el ancho del bus de memoria suele ser mayor que el número de chips, la mayoría de los chips están diseñados para tener ancho, lo que significa que están divididos en partes iguales internamente, y cuando se llama a una "profundidad" de dirección, en lugar de devolver solo un valor, se devuelven más de un valor. Además de la profundidad, se ha agregado una segunda dimensión de direccionamiento a nivel de chip, los bancos. Los bancos permiten que un banco esté disponible, mientras que otro banco no está disponible porque se está actualizando . [ cita requerida ]
Algunas de las medidas de los módulos son el tamaño, el ancho, la velocidad y la latencia. Un módulo de memoria consta de un múltiplo de los chips de memoria para igualar el ancho del módulo deseado. Por lo tanto, un módulo SIMM de 32 bits podría estar compuesto por cuatro chips de 8 bits de ancho (×8). Como se señaló en la parte del canal de memoria, un módulo físico puede estar compuesto por uno o más rangos lógicos. Si ese SIMM de 32 bits estuviera compuesto por ocho chips de 8 bits, el SIMM tendría dos rangos. [ cita requerida ]
Un canal de memoria está formado por filas. Físicamente, un canal de memoria con un solo módulo de memoria podría presentarse como si tuviera una o más filas lógicas. [ cita requerida ]
Este es el nivel más alto. Una computadora típica tiene solo un controlador de memoria con uno o dos canales. La sección de características lógicas describió las configuraciones NUMA, que pueden adoptar la forma de una red de controladores de memoria. Por ejemplo, cada zócalo de un AMD K8 de dos zócalos puede tener un controlador de memoria de dos canales, lo que le da al sistema un total de cuatro canales de memoria.
Se pueden encontrar varios métodos para especificar la geometría de la memoria, que proporcionan diferentes tipos de información.
(profundidad de memoria) × (ancho de memoria)
El ancho de memoria especifica el ancho de datos de la interfaz del módulo de memoria en bits. Por ejemplo, 64 indicaría un ancho de datos de 64 bits, como se encuentra en los DIMM no ECC comunes en las familias de RAM SDR y DDR1–4. Una memoria con un ancho de 72 indicaría un módulo ECC, con 8 bits adicionales en el ancho de datos para el síndrome del código de corrección de errores. (El síndrome ECC permite corregir errores de un solo bit). La profundidad de memoria es la capacidad total de memoria en bits dividida por el ancho de memoria sin paridad . A veces, la profundidad de memoria se indica en unidades de Meg (2 20 ), como en 32×64 o 64×64, que indican una profundidad de 32 Mi y 64 Mi respectivamente.
(densidad de memoria)
Esta es la capacidad total de memoria del chip. Ejemplo: 128 Mib.
(profundidad de memoria) × (ancho de memoria)
La profundidad de la memoria es la densidad de la memoria dividida por el ancho de la memoria. Ejemplo: para un chip de memoria con una capacidad de 128 Mib y un bus de datos de 8 bits de ancho, se puede especificar como: 16 Meg × 8. A veces se omite el "Mi", como en 16×8.
(profundidad de memoria por banco) × (ancho de memoria) × (número de bancos)
Ejemplo: un chip con la misma capacidad y ancho de memoria que el anterior pero construido con 4 bancos se especificaría como 4 Mi × 8 × 4.