Zum Inhalt springen

Informatik · Klasse 10–13 · aktualisiert

Cache-Speicher: Funktion, Hits und Grenzen erklärt

Du lernst, warum ein Cache die CPU schneller macht, was Hit und Miss sind und warum Schreiben zu veralteten Kopien führen kann.

0 von 11 Aufgaben gelöst

Cache-Speicher: Funktion, Hits und Grenzen erklärt

Kurz gesagt

Ein Cache ist ein schneller Pufferspeicher, der Daten aus einem langsameren Speicher bereithält. Bei einem Cache Hit liegen die Daten schon dort, bei einem Cache Miss muss die CPU warten. Das lohnt sich, weil Programme meist mit hoher Wahrscheinlichkeit Daten wiederholt oder aus der Nachbarschaft brauchen.

Dein Prozessor rechnet viel schneller, als der Arbeitsspeicher Daten liefern kann. Ohne Zwischenspeicher würde er oft ausgebremst. Ein Cache löst dieses Problem zum Teil, bringt aber auch eigene Grenzen mit.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

5 Abschnitte

Ein Cache ist ein schneller Pufferspeicher (ein Zwischenspeicher). Er hilft, wiederholte Zugriffe auf vergleichsweise langsame Datenspeicher zu vermeiden. Daten, die schon einmal geladen wurden, bleiben im Cache und können später schneller abgerufen werden.

In einer Speicherhierarchie (Speicher, geordnet von schnell und klein bis langsam und groß) liegt der Cache zwischen CPU und Arbeitsspeicher. Auf vielen heutigen Computern arbeiten Prozessorregister in der Regel im Takt der CPU, also genauso schnell wie sie. Prozessorcaches brauchen etwa einige Dutzend Taktzyklen (Arbeitsschritte im Takt der CPU), abhängig vom Level, und der Arbeitsspeicher hunderte Taktzyklen. Das Ziel des Caches ist eine kürzere Zugriffszeit und/oder weniger Zugriffe auf das langsame Hintergrundmedium (den langsameren Speicher hinter dem Cache).

Das lohnt sich nur dort, wo die Zugriffszeit die Gesamtleistung deutlich beeinflusst. Bei CPUs kann ein Cache den Flaschenhals der Von-Neumann-Architektur verringern. Die Ausführungsgeschwindigkeit von Programmen kann dadurch im Mittel enorm gesteigert werden.

Definition

Cache

Ein Cache ist ein schneller Pufferspeicher, der (wiederholte) Zugriffe auf vergleichsweise langsame Datenspeicher oder aufwendige Neuberechnungen zu vermeiden hilft.

Beispiel: DNS-Cache

  1. 1Im Domain Name System wird bei einer Namensauflösung ein Name nachgeschlagen. Das Ergebnis wird vorübergehend in einem lokalen Cache zwischengespeichert.
  2. 2Folgende identische DNS-Anfragen können aus dem Cache bedient werden.
  3. 3Der Nameserver muss nicht erneut gefragt werden. Dadurch wird die Performance erhöht.

Merke: Daten, die schon einmal geladen oder erzeugt wurden, bleiben im Cache und sind später schneller abrufbar.

Teste dich

LeichtWas ist das Ziel beim Einsatz eines Caches?

Alles auf einen Blick

Cache-Speicher

  • Cache

    Schneller Pufferspeicher, der wiederholte Zugriffe auf langsamere Speicher vermeiden hilft

  • Hit und Miss

    Beim Hit liegen die Daten im Cache, beim Miss nicht. Miss Rate = 1 − Hit Rate

  • Lokalität

    Zeitlich wird dieselbe Adresse bald wieder benutzt, räumlich folgt eine Nachbaradresse, jeweils mit hoher Wahrscheinlichkeit

  • Cachehierarchie

    L1 wird zuerst durchsucht, größere Ebenen folgen. Schneller Speicher ist teuer und platzbegrenzt

  • Schreibstrategien

    Write-through hält Cache und Hauptspeicher normalerweise gleich, write-back ist schneller, aber vorübergehend inkonsistent

  • Kohärenz

    Bei mehreren Caches muss ein Algorithmus verhindern, dass sie für dieselbe Adresse verschiedene Daten liefern

Musteraufgabe · Schritt für Schritt

Einen Wert mit write-back ändern (ausgedachtes Beispiel)

  1. 1Annahme: Adresse A enthält den Wert 5, im Cache und im Hauptspeicher. Der Cache nutzt write-back.
  2. 2Schritt 1: Das Programm schreibt 7 nach A. Der Block ist im Cache, also ein Write Hit.
  3. 3Schritt 2: Nur der Cache bekommt 7. Der Hauptspeicher enthält weiter 5, das Dirty-Bit wird gesetzt.
  4. 4Schritt 3: Liest jetzt ein anderer Prozessor A aus dem Hauptspeicher, sieht er den veralteten Wert 5. Das ist das Problem der Inkonsistenz.
  5. 5Schritt 4: Wird der Block ersetzt, wird 7 in den Hauptspeicher geschrieben. Dann stehen beide auf 7.
  6. 6Zum Vergleich: Bei write-through hätten Cache und Hauptspeicher schon in Schritt 2 beide 7 enthalten.

Fehler finden

Prüfe die Aussagen zu zwei Prozessoren mit eigenem Cache (ausgedachtes Beispiel) In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Liegt die Hit Rate bei 0,9, beträgt die Miss Rate . Wird dieselbe Adresse in einer Schleife immer wieder gelesen, nutzt der Cache die Lokalität. Bei steht ein geänderter Block zunächst nur im Cache, ein gesetztes Dirty-Bit zeigt das an.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Cache-Speicher

LeichtDie CPU fragt Daten an, die nicht im Cache liegen. Wie heißt dieser Fall?
MittelWarum verwendet man oft mehrere Caches statt eines einzigen großen und schnellen?
SchwerWelche Aussage zu write-back im Vergleich zu write-through stimmt?

Weiterlesen in Informatik