Bande passante mémoire - Memory bandwidth

La bande passante mémoire est la vitesse à laquelle les données peuvent être lues ou stockées dans une mémoire à semi - conducteurs par un processeur . La bande passante mémoire est généralement exprimée en unités d' octets / seconde , bien que cela puisse varier pour les systèmes avec des tailles de données naturelles qui ne sont pas un multiple des octets 8 bits couramment utilisés.

La bande passante mémoire annoncée pour une mémoire ou un système donné est généralement la bande passante théorique maximale. En pratique, la bande passante mémoire observée sera inférieure (et ne dépassera pas) la bande passante annoncée. Il existe une variété de benchmarks informatiques pour mesurer la bande passante mémoire soutenue en utilisant une variété de modèles d'accès. Celles-ci sont destinées à fournir un aperçu de la bande passante mémoire qu'un système doit supporter sur diverses classes d'applications réelles.

Conventions de mesure

Il existe trois conventions différentes pour définir la quantité de données transférées au numérateur "octets / seconde":

  1. La convention bcopy : compte la quantité de données copiées d'un emplacement en mémoire vers un autre emplacement par unité de temps. Par exemple, la copie de 1 million d'octets d'un emplacement en mémoire vers un autre emplacement en mémoire en une seconde serait comptée comme 1 million d'octets par seconde. La convention bcopy est auto-cohérente, mais n'est pas facilement étendue pour couvrir les cas avec des modèles d'accès plus complexes, par exemple trois lectures et une écriture.
  2. La convention Stream : additionne la quantité de données que le code d'application lit explicitement plus la quantité de données que le code d'application écrit explicitement. En utilisant l'exemple précédent de copie de 1 million d'octets, la bande passante STREAM serait comptée comme 1 million d'octets lus plus 1 million d'octets écrits en une seconde, pour un total de 2 millions d'octets par seconde. La convention STREAM est la plus directement liée au code utilisateur, mais peut ne pas compter tout le trafic de données que le matériel doit réellement effectuer.
  3. La convention matérielle : compte la quantité réelle de données lues ou écrites par le matériel, que le mouvement des données ait été explicitement demandé par le code utilisateur ou non. En utilisant le même exemple de copie de 1 million d'octets, la bande passante matérielle sur les systèmes informatiques avec une stratégie d'allocation de cache en écriture inclurait 1 million d'octets supplémentaires de trafic car le matériel lit la matrice cible de la mémoire dans le cache avant d'effectuer les magasins. Cela donne un total de 3 millions d'octets par seconde effectivement transférés par le matériel. La convention matérielle est la plus directement liée au matériel, mais peut ne pas représenter la quantité minimale de trafic de données requise pour implémenter le code de l'utilisateur.
Par exemple, certains systèmes informatiques ont la capacité d'éviter le trafic d'allocation d'écriture à l'aide d'instructions spéciales, ce qui entraîne la possibilité de comparaisons trompeuses de la bande passante en fonction des différentes quantités de trafic de données effectuées.

Calcul et nomenclature de la bande passante

La nomenclature diffère selon les technologies de mémoire, mais pour la mémoire DDR SDRAM , DDR2 SDRAM et DDR3 SDRAM , la bande passante totale est le produit de:

  • Fréquence d'horloge DRAM de base
  • Nombre de transferts de données par horloge : Deux, dans le cas d'une mémoire à «double débit» (DDR, DDR2, DDR3, DDR4).
  • Largeur du bus mémoire (interface) : chaque interface mémoire DDR, DDR2 ou DDR3 a une largeur de 64 bits. Ces 64 bits sont parfois appelés «ligne».
  • Nombre d'interfaces : les ordinateurs personnels modernes utilisent généralement deux interfaces de mémoire ( mode double canal ) pour une largeur de bus effective de 128 bits.

Par exemple, un ordinateur avec une mémoire double canal et un module DDR2-800 par canal fonctionnant à 400 MHz aurait une bande passante mémoire maximale théorique de:

400,000,000 horloges par seconde × 2 lignes par horloge × 64 bits par ligne × 2 interfaces =
102 400 000 000 (102,4 milliards) de bits par seconde (en octets, 12 800 Mo / s ou 12,8 Go / s)

Cette bande passante mémoire maximale théorique est appelée «taux de rafale», ce qui peut ne pas être durable.

La convention de dénomination des modules DDR, DDR2 et DDR3 spécifie soit une vitesse maximale (par exemple, DDR2-800), soit une bande passante maximale (par exemple, PC2-6400). L'indice de vitesse (800) n'est pas la vitesse d'horloge maximale, mais le double (en raison du taux de données doublé). La bande passante spécifiée (6400) correspond au maximum de mégaoctets transférés par seconde en utilisant une largeur de 64 bits. Dans une configuration en mode double canal, il s'agit en fait d'une largeur de 128 bits. Ainsi, la configuration de la mémoire dans l'exemple peut être simplifiée comme suit: deux modules DDR2-800 fonctionnant en mode double canal.

Deux interfaces de mémoire par module sont une configuration courante pour la mémoire système d'un PC, mais les configurations à un seul canal sont courantes dans les appareils plus anciens, bas de gamme ou à faible consommation. Certains ordinateurs personnels et la plupart des cartes graphiques modernes utilisent plus de deux interfaces de mémoire (par exemple, quatre pour la plate-forme Intel LGA 2011 et la NVIDIA GeForce GTX 980). Les cartes graphiques hautes performances exécutant de nombreuses interfaces en parallèle peuvent atteindre une largeur totale de bus mémoire très élevée (par exemple, 384 bits dans la NVIDIA GeForce GTX TITAN et 512 bits dans l'AMD Radeon R9 290X en utilisant respectivement six et huit interfaces 64 bits).

Bits ECC

Dans les systèmes avec mémoire de correction d' erreur (ECC), la largeur supplémentaire des interfaces (généralement 72 bits au lieu de 64 bits) n'est pas comptée dans les spécifications de bande passante car les bits supplémentaires ne sont pas disponibles pour stocker les données utilisateur. Les bits ECC sont mieux considérés comme faisant partie du matériel de mémoire plutôt que comme des informations stockées dans ce matériel.

Voir également

Les références

Général

Liens externes