Speicherhierarchie und Leistung

Welches ist das am besten geeignete Beispiel für zeitliche Lokalität?

  1. ADie Elemente eines Arrays werden vom Anfang an der Reihe nach je einmal gelesen
  2. BInnerhalb einer Schleife wird dieselbe Summenvariable wiederholt aktualisiert
  3. CJedes Mal wird ein Datum an einer zufälligen Adresse nur einmal gelesen
Antwort und Erläuterung anzeigen

Antwort: B. Innerhalb einer Schleife wird dieselbe Summenvariable wiederholt aktualisiert

Zeitliche Lokalität ist die Eigenschaft, dass einmal verwendete Daten bald wieder verwendet werden; typisches Beispiel sind Variablen, die in einer Schleife wiederholt gelesen und geschrieben werden. Solche Daten werden wiederverwendet, solange sie noch im Cache oder in Registern liegen, sodass der Zugriff schnell ist. Das Lesen eines Arrays vom Anfang an ist ein Beispiel für räumliche Lokalität, bei der nahe beieinanderliegende Adressen nacheinander verwendet werden, und eine andere Eigenschaft als zeitliche Lokalität. Zufällige Einmalzugriffe weisen kaum eine der beiden Lokalitäten auf.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Speicherhierarchie und Leistung

  1. Wird ein zweidimensionales C-Array a[i][j] wie oben mit j als innerer Schleife durchlaufen, ist dies tendenziell schneller als mit i als innerer Schleife. Was ist der Grund?
  2. Wie viele Bit hat das Tag bei einem Direct-Mapped-Cache mit 32-Bit-Adressen, 32 KB Kapazität und 64 Byte Zeilengröße?
  3. Wie viele Sätze hat ein 4-fach satzassoziativer Cache mit 32-Bit-Adressen, 32 KB Kapazität und 64 Byte Zeilengröße?
  4. Wie viele Adressbits dienen bei einem voll assoziativen Cache als Index (der Teil, der den Satz auswählt)?
  5. Der L1-Cache hat eine Trefferzeit von 1 ns und eine Miss-Rate von 5 %, der L2-Cache eine Trefferzeit von 10 ns und eine lokale Miss-Rate von 20 %, der Hauptspeicher eine Zugriffszeit von 100 ns. Wie groß ist die mittlere Speicherzugriffszeit?

Vergleiche zu diesem Thema