Speicherhierarchie und Leistung

Werden zwei Programme abwechselnd auf demselben Kern ausgeführt, können sie langsamer sein als bei einzelner Ausführung. Welche Erklärung aus Sicht des Caches ist am besten geeignet?

  1. ABei abwechselnder Ausführung verdoppelt sich die Zahl der von jedem Programm ausgeführten Befehle selbst
  2. BBei abwechselnder Ausführung wird die Kapazität des Caches auf die Hälfte neu eingestellt
  3. CDie eigenen Daten werden durch die Daten des anderen verdrängt, sodass mehr erneutes Laden anfällt
Antwort und Erläuterung anzeigen

Antwort: C. Die eigenen Daten werden durch die Daten des anderen verdrängt, sodass mehr erneutes Laden anfällt

Beim Wechsel zwischen Programmen sind Cache und TLB mit Daten gefüllt, die das andere Programm verwendet hat, und wenn man wieder an der Reihe ist, sind die benötigten Daten verdrängt. Zugriffe, die bei einzelner Ausführung Treffer gewesen wären, sind dann Misses, und das erneute Laden der Daten aus dem Hauptspeicher kostet Zeit. Je kürzer die Wechselintervalle, desto größer ist dieser Einfluss. Die Zahl der ausgeführten Befehle ändert sich nicht, und die Cache-Kapazität wird auch nicht neu eingestellt. Es ist ein Effekt der gemeinsamen Nutzung des Caches.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Speicherhierarchie und Leistung

  1. Welches ist das am besten geeignete Beispiel für zeitliche Lokalität?
  2. 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?
  3. Wie viele Bit hat das Tag bei einem Direct-Mapped-Cache mit 32-Bit-Adressen, 32 KB Kapazität und 64 Byte Zeilengröße?
  4. Wie viele Sätze hat ein 4-fach satzassoziativer Cache mit 32-Bit-Adressen, 32 KB Kapazität und 64 Byte Zeilengröße?
  5. Wie viele Adressbits dienen bei einem voll assoziativen Cache als Index (der Teil, der den Satz auswählt)?

Vergleiche zu diesem Thema