Uni-Aufgabe: Cache-Performance

Hallo,

ich hoffe ich bin hier im richtigen Forum. Falls nicht einfach verschieben. Danke!

Es geht um eine Aufgabe, die ich von meiner Uni erhalten habe. Und zwar soll entschieden werden, ob ich auf einem Prozessorchip einen 32 kByte Cache für Daten und Befehle oder besser jeweils einen separaten 16 kByte Cache für Daten und Befehle verbauen soll.

Gegeben ist:

  • Typischerweise dienen 74% der Speicherzugriffe dem Holen von Befehlen
  • Ich habe bei 1000 Befehlen beim 16 kByte Befehlscache durchschnittlich 4 Fehlzugriffe
  • Ich habe bei 1000 Befehlen beim 16 kByte Datencache durchschnittlich 40 Fehlzugriffe
  • Ich habe bei 1000 Befehlen beim 32 kByte Befehls- und Datencache durchschnittlich 43 Fehlzugriffe
  • Ich soll annehmen, dass 36% aller Befehle während der Programmausführung Lade/Speicher-Befehle sind

Meiner Meinung nach sind die 36% die Anzahl der Zugriffe auf den Datencache. Das irritiert mich jedoch, da ja auch von 74% der Speicherzugriffe für das Holen von Befehlen verwendet werden (typischerweise). Also kann ich ja eigentlich die 74% ignorieren, da es bei 36% Zugriffe auf den Datencache 64% Zugriffe auf den Befehlscache geben müsste. Warum wird das dann überhaupt aufgeführt? Oder habe ich da was falsch verstanden?

Generell ist ja auch ziemlich offensichtlich, dass ich immer mit dem 16 kByte-Cache besser fahre, da sogar die hohen Fehlzugriffsrate auf den 16 kByte-Datencache geringer sind, als die Fehlzugriffsrate auf den gemeinsamen 32 kByte Cache.

Verstehe die Aufgabe irgendwie nicht. Wäre super, wenn mir jemand helfen könnte. Danke! :smile: