Speicherhierarchie und Leistung

Ein voll assoziativer Cache mit 2 Zeilen Kapazität und LRU-Ersetzung ist anfangs leer. Wie viele Misses treten auf, wenn die Blöcke in der Reihenfolge A, B, A, C, B, A referenziert werden?

  1. A4
  2. B5
  3. C6
Antwort und Erläuterung anzeigen

Antwort: B. 5

Der Reihe nach: A (Miss, [A]), B (Miss, [A,B]), A (Treffer, A ist jetzt am jüngsten), C (Miss, das älteste B wird verdrängt, [A,C]), B (Miss, das älteste A wird verdrängt, [C,B]), A (Miss, das älteste C wird verdrängt, [B,A]); es sind 5 Misses. 4 ergibt sich bei einer Zählung, bei der man fälschlich annimmt, dass beim Einlegen von C das A verdrängt wird; wichtig ist, dass bei LRU das getroffene A aktualisiert wird. 6 ist die Zahl, bei der der Treffer des dritten Zugriffs auf A übersehen wurde.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Speicherhierarchie und Leistung

  1. Bei welchem Zugriff entfaltet Hardware-Prefetch besonders leicht seine Wirkung?
  2. Welche Aussage zur Frage, wie weit im Voraus Daten gelesen werden sollen (Prefetch-Distanz), ist richtig, wenn Software-Prefetch-Anweisungen eingefügt werden?
  3. In der obigen Schleife ist int 4 Byte groß und die Cache-Zeile 64 Byte; das Array liegt nicht im Cache, und sein Anfang ist an der Zeilengrenze ausgerichtet. Wie hoch ist die Miss-Rate beim Lesen des Arrays ohne Prefetch?
  4. Was ist der Hauptzweck von Loop Blocking (Tiling), das z. B. beim Matrixprodukt verwendet wird?
  5. Warum wird die oben gezeigte Summierung nur der x-Koordinaten tendenziell schneller, wenn sie auf eine Struktur von Arrays umgeschrieben wird (jede Komponente in einem eigenen Array)?

Vergleiche zu diesem Thema