stringtranslate.com

Ancho de banda de memoria

El ancho de banda de la memoria es la velocidad a la que un procesador puede leer o almacenar datos en una memoria de semiconductores . El ancho de banda de la memoria suele expresarse en unidades de bytes por segundo , aunque esto puede variar para sistemas con tamaños de datos naturales que no sean un múltiplo de los bytes de 8 bits que se utilizan habitualmente.

El ancho de banda de memoria que se anuncia para una memoria o un sistema determinado suele ser el ancho de banda teórico máximo. En la práctica, el ancho de banda de memoria observado será menor que el anunciado (y se garantiza que no lo superará). Existen diversos puntos de referencia informáticos para medir el ancho de banda de memoria sostenido utilizando una variedad de patrones de acceso. Estos tienen como objetivo proporcionar información sobre el ancho de banda de memoria que un sistema debería mantener en diversas clases de aplicaciones reales.

Convenciones de medición

Existen tres convenciones diferentes para definir la cantidad de datos transferidos en el numerador de "bytes/segundo":

  1. Convención bcopy : cuenta la cantidad de datos copiados de una ubicación en la memoria a otra ubicación por unidad de tiempo. Por ejemplo, copiar 1 millón de bytes de una ubicación en la memoria a otra ubicación en la memoria en un segundo se contabilizaría como 1 millón de bytes por segundo. La convención bcopy es autoconsistente, pero no se extiende fácilmente para cubrir casos con patrones de acceso más complejos, por ejemplo, tres lecturas y una escritura.
  2. Convención de flujo : suma la cantidad de datos que el código de la aplicación lee explícitamente más la cantidad de datos que el código de la aplicación escribe explícitamente. [1] Usando el ejemplo anterior de copia de 1 millón de bytes, el ancho de banda de flujo se contabilizaría como 1 millón de bytes leídos más 1 millón de bytes escritos en un segundo, para un total de 2 millones de bytes por segundo. La convención de flujo está más directamente vinculada al código de usuario, pero puede no contar todo el tráfico de datos que el hardware realmente necesita realizar.
  3. Convención de hardware : cuenta la cantidad real de datos leídos o escritos por el hardware, independientemente de si el movimiento de datos fue solicitado explícitamente por el código de usuario o no. Usando el mismo ejemplo de copia de 1 millón de bytes, el ancho de banda de hardware en sistemas informáticos con una política de caché de asignación de escritura incluiría 1 millón de bytes adicionales de tráfico porque el hardware lee la matriz de destino desde la memoria hacia la caché antes de realizar los almacenamientos. Esto da un total de 3 millones de bytes por segundo transferidos realmente por el hardware. La convención de hardware está más directamente vinculada al hardware, pero puede no representar la cantidad mínima de tráfico de datos requerida para implementar el código del usuario.
Por ejemplo, algunos sistemas informáticos tienen la capacidad de evitar la asignación de tráfico de escritura mediante instrucciones especiales, lo que genera la posibilidad de realizar comparaciones engañosas del ancho de banda en función de diferentes cantidades de tráfico de datos realizados.

Cálculo del ancho de banda y nomenclatura

La nomenclatura difiere según las tecnologías de memoria, pero para las memorias DDR SDRAM , DDR2 SDRAM y DDR3 SDRAM , el ancho de banda total es el producto de:

Por ejemplo, una computadora con memoria de doble canal y un módulo DDR2-800 por canal funcionando a 400 MHz tendría un ancho de banda de memoria máximo teórico de:

400.000.000 de relojes por segundo × 2 líneas por reloj × 64 bits por línea × 2 interfaces =
102.400.000.000 (102,4 mil millones) de bits por segundo (en bytes, 12.800 MB/s o 12,8 GB/s)

Este ancho de banda de memoria máximo teórico se denomina "tasa de ráfaga", que puede no ser sostenible.

La convención de nombres para los módulos DDR, DDR2 y DDR3 especifica una velocidad máxima (por ejemplo, DDR2-800) o un ancho de banda máximo (por ejemplo, PC2-6400). La clasificación de velocidad (800) no es la velocidad máxima del reloj, sino el doble (debido a la velocidad de datos duplicada). El ancho de banda especificado (6400) es la cantidad máxima de megabytes transferidos por segundo utilizando un ancho de 64 bits. En una configuración de modo de canal dual, esto es efectivamente un ancho de 128 bits. Por lo tanto, la configuración de memoria en el ejemplo se puede simplificar como: dos módulos DDR2-800 que se ejecutan en modo de canal dual.

Dos interfaces de memoria por módulo es una configuración común para la memoria del sistema de PC, pero las configuraciones de un solo canal son comunes en dispositivos más antiguos, de gama baja o de bajo consumo. Algunas computadoras personales y la mayoría de las tarjetas gráficas modernas utilizan más de dos interfaces de memoria (por ejemplo, cuatro para la plataforma LGA 2011 de Intel y la NVIDIA GeForce GTX 980). Las tarjetas gráficas de alto rendimiento que ejecutan muchas interfaces en paralelo pueden alcanzar un ancho de bus de memoria total muy alto (por ejemplo, 384 bits en la NVIDIA GeForce GTX TITAN y 512 bits en la AMD Radeon R9 290X utilizando seis y ocho interfaces de 64 bits respectivamente).

Puntas ECC

En sistemas con memoria de corrección de errores (ECC), el ancho adicional de las interfaces (normalmente 72 en lugar de 64 bits) no se tiene en cuenta en las especificaciones de ancho de banda porque los bits adicionales no están disponibles para almacenar datos del usuario. Es mejor considerar los bits ECC como parte del hardware de la memoria en lugar de como información almacenada en ese hardware.

Véase también

Referencias

  1. ^ Preguntas frecuentes sobre el benchmark STREAM: recuento de bytes y FLOPS: http://www.cs.virginia.edu/stream/ref.html#counting

General

Enlaces externos