Speicherbandbreite - Memory bandwidth

Die Speicherbandbreite ist die Rate, mit der Daten von einem Prozessor aus einem Halbleiterspeicher gelesen oder in diesem gespeichert werden können . Die Speicherbandbreite wird normalerweise in Einheiten von Bytes / Sekunde ausgedrückt , obwohl dies für Systeme mit natürlichen Datengrößen variieren kann, die nicht ein Vielfaches der üblicherweise verwendeten 8-Bit-Bytes sind.

Die für einen bestimmten Speicher oder ein bestimmtes System angekündigte Speicherbandbreite ist normalerweise die maximale theoretische Bandbreite. In der Praxis ist die beobachtete Speicherbandbreite kleiner als die angekündigte Bandbreite (und wird diese garantiert nicht überschreiten). Es gibt eine Vielzahl von Computer-Benchmarks , um die anhaltende Speicherbandbreite unter Verwendung einer Vielzahl von Zugriffsmustern zu messen. Diese sollen einen Einblick in die Speicherbandbreite geben, die ein System für verschiedene Klassen realer Anwendungen aufrechterhalten sollte.

Messkonventionen

Es gibt drei verschiedene Konventionen zum Definieren der im Zähler von "Bytes / Sekunde" übertragenen Datenmenge:

  1. Die bcopy-Konvention : Zählt die Datenmenge, die pro Zeiteinheit von einem Speicherort an einen anderen Speicherort kopiert wird. Zum Beispiel würde das Kopieren von 1 Million Bytes von einem Ort im Speicher zu einem anderen Ort im Speicher in einer Sekunde als 1 Million Bytes pro Sekunde gezählt. Die bcopy-Konvention ist selbstkonsistent, lässt sich jedoch nicht einfach auf Fälle mit komplexeren Zugriffsmustern erweitern, z. B. drei Lese- und einen Schreibvorgang.
  2. Die Stream-Konvention : Summiert die Datenmenge, die der Anwendungscode explizit liest, plus die Datenmenge, die der Anwendungscode explizit schreibt. Unter Verwendung des vorherigen Beispiels für eine Kopie von 1 Million Bytes würde die STREAM-Bandbreite als 1 Million gelesene Bytes plus 1 Million in einer Sekunde geschriebene Bytes gezählt, was insgesamt 2 Millionen Bytes pro Sekunde entspricht. Die STREAM-Konvention ist am direktesten an den Benutzercode gebunden, zählt jedoch möglicherweise nicht den gesamten Datenverkehr, den die Hardware tatsächlich ausführen muss.
  3. Die Hardware-Konvention : Zählt die tatsächliche Datenmenge, die von der Hardware gelesen oder geschrieben wurde, unabhängig davon, ob die Datenbewegung vom Benutzercode explizit angefordert wurde oder nicht. Unter Verwendung des gleichen Beispiels für eine 1-Millionen-Byte-Kopie würde die Hardwarebandbreite auf Computersystemen mit einer Cache-Richtlinie für die Schreibzuweisung zusätzliche 1 Million Byte Datenverkehr enthalten, da die Hardware das Zielarray vor dem Ausführen der Speicher aus dem Speicher in den Cache liest. Dies ergibt insgesamt 3 Millionen Bytes pro Sekunde, die tatsächlich von der Hardware übertragen werden. Die Hardwarekonvention ist am direktesten an die Hardware gebunden, stellt jedoch möglicherweise nicht die Mindestmenge an Datenverkehr dar, die zum Implementieren des Benutzercodes erforderlich ist.
Beispielsweise haben einige Computersysteme die Fähigkeit, Schreibzuweisungsverkehr unter Verwendung spezieller Anweisungen zu vermeiden, was zu der Möglichkeit irreführender Vergleiche der Bandbreite basierend auf unterschiedlichen Mengen des durchgeführten Datenverkehrs führt.

Bandbreitenberechnung und Nomenklatur

Die Nomenklatur unterscheidet sich je nach Speichertechnologie, aber für Standard- DDR-SDRAM- , DDR2-SDRAM- und DDR3-SDRAM- Speicher ergibt sich die Gesamtbandbreite aus:

  • Basis-DRAM-Taktfrequenz
  • Anzahl der Datenübertragungen pro Takt : Zwei im Fall eines Speichers mit "doppelter Datenrate" (DDR, DDR2, DDR3, DDR4).
  • Breite des Speicherbusses (Schnittstelle) : Jede DDR-, DDR2- oder DDR3-Speicherschnittstelle ist 64 Bit breit. Diese 64 Bit werden manchmal als "Leitung" bezeichnet.
  • Anzahl der Schnittstellen : Moderne PCs verwenden normalerweise zwei Speicherschnittstellen ( Zweikanalmodus ) für eine effektive 128-Bit-Busbreite.

Beispielsweise hätte ein Computer mit Zweikanalspeicher und einem DDR2-800-Modul pro Kanal, der mit 400 MHz betrieben wird, eine theoretische maximale Speicherbandbreite von:

400.000.000 Takte pro Sekunde × 2 Zeilen pro Takt × 64 Bit pro Zeile × 2 Schnittstellen =
102.400.000.000 (102,4 Milliarden) Bits pro Sekunde (in Bytes, 12.800 MB / s oder 12,8 GB / s)

Diese theoretische maximale Speicherbandbreite wird als "Burst-Rate" bezeichnet, was möglicherweise nicht nachhaltig ist.

Die Namenskonvention für DDR-, DDR2- und DDR3-Module gibt entweder eine maximale Geschwindigkeit (z. B. DDR2-800) oder eine maximale Bandbreite (z. B. PC2-6400) an. Die Geschwindigkeitsbewertung (800) ist nicht die maximale Taktrate, sondern doppelt so hoch (aufgrund der doppelten Datenrate). Die angegebene Bandbreite (6400) ist die maximale Anzahl von Megabyte, die pro Sekunde mit einer 64-Bit-Breite übertragen werden. In einer Konfiguration im Zweikanalmodus ist dies effektiv eine 128-Bit-Breite. Somit kann die Speicherkonfiguration im Beispiel wie folgt vereinfacht werden: zwei DDR2-800-Module, die im Zweikanalmodus ausgeführt werden.

Zwei Speicherschnittstellen pro Modul sind eine übliche Konfiguration für den PC-Systemspeicher. Einkanal-Konfigurationen sind jedoch bei älteren Geräten, Geräten mit geringem Stromverbrauch oder geringem Stromverbrauch üblich. Einige PCs und die meisten modernen Grafikkarten verwenden mehr als zwei Speicherschnittstellen (z. B. vier für die Intel LGA 2011- Plattform und die NVIDIA GeForce GTX 980). Hochleistungsgrafikkarten, auf denen viele Schnittstellen parallel ausgeführt werden, können eine sehr hohe Gesamtspeicherbusbreite erreichen (z. B. 384 Bit in der NVIDIA GeForce GTX TITAN und 512 Bit in der AMD Radeon R9 290X mit sechs bzw. acht 64-Bit-Schnittstellen).

ECC-Bits

In Systemen mit fehlerkorrigierendem Speicher (ECC) wird die zusätzliche Breite der Schnittstellen (normalerweise 72 statt 64 Bit) in den Bandbreitenspezifikationen nicht berücksichtigt, da die zusätzlichen Bits nicht zum Speichern von Benutzerdaten verfügbar sind. ECC-Bits werden besser als Teil der Speicherhardware betrachtet als als Informationen, die in dieser Hardware gespeichert sind.

Siehe auch

Verweise

Allgemeines

Externe Links