Speicherhierarchie und Leistung

Pro Miss wird eine 64-Byte-Zeile gelesen, die Wartezeit auf den Hauptspeicher beträgt 100 ns; kann nur ein Miss gleichzeitig bearbeitet werden, bleibt die Lesebandbreite bei etwa 0,64 GB/s. Wie hoch wird die Bandbreite ungefähr, wenn 10 Misses gleichzeitig bearbeitet werden können (andere Einschränkungen seien nicht vorhanden)?

  1. A0,064 GB/s
  2. B0,64 GB/s
  3. C6,4 GB/s
Antwort und Erläuterung anzeigen

Antwort: C. 6,4 GB/s

Die Bandbreite ergibt sich als gleichzeitig in Bearbeitung befindliche Datenmenge geteilt durch die Wartezeit (Little's Law). Bei einem Miss sind es 64 B ÷ 100 ns = 0,64 GB/s, bei 10 gleichzeitig bearbeitbaren Misses 10 × 64 B ÷ 100 ns = 6,4 GB/s. Um die Bandbreite des Hauptspeichers auszuschöpfen, ist neben kürzerer Wartezeit auch Speicher-Parallelität unverzichtbar, bei der viele Misses gleichzeitig bearbeitet werden. 0,64 GB/s ist weiterhin der Wert für einen gleichzeitigen Miss, und 0,064 GB/s ist der Wert, bei dem umgekehrt durch 10 geteilt wurde.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Speicherhierarchie und Leistung

  1. Was ist der Hauptvorteil von Stores, die den Cache umgehen (Non-Temporal Stores), wenn große Datenmengen geschrieben werden, die danach vorerst nicht wieder gelesen werden?
  2. Wie hoch ist die Miss-Rate, wenn die Trefferrate des Caches 95 % beträgt?
  3. Welches Verfahren sendet beim Laden einer Miss-Zeile aus dem Hauptspeicher zuerst das von der CPU benötigte Wort und den Rest später?
  4. Warum wird es tendenziell schneller, die beiden obigen Schleifen zu einer zusammenzufassen (Loop Fusion), wenn N groß ist?
  5. Welche Kombination aus Grund und typischer Gegenmaßnahme ist richtig, warum beim Transponieren einer großen Matrix (b[j][i] = a[i][j]) leicht viele Cache-Misses auftreten?

Vergleiche zu diesem Thema