Das Kefk Network Wiki befindet sich im Testbetrieb.


Cache-Algorithmus

Aus Kefk.

Wechseln zu: Navigation, Suche

Ein Cache-Algorithmus ist ein Algorithmus zur Steuerung eines Cache, mit dem Speicherzugriffe und Inkonsistenzprobleme zwischen einer CPU und dem Arbeitsspeicher optimiert werden sollen.

Ursprünglich galt der Cache als ein Zwischenpuffer zwischen CPU und Speicher. Da die Taktfrequenzen immer mehr voneinander abwichen, wurde es nötig einen Puffer (Cache) einzuführen. Man erkannte aber früh, dass man mit dem Cache einen beträchtlichen Teil der Bandbreite des Speicher-Bus sparen kann.

Dazu werden die Daten nicht direkt in den Speicher geschrieben sondern auf den Cache. Die Methode nennt sich write-back (copy-back, store-in). Wird ein Block im Cache überschrieben, findet allerdings auch ein Schreiben in den Speicher statt. Wird ein Block im Cache verfehlt (write-miss), wird er zuerst in den Cache kopiert. Dann wird entweder nur in den Cache geschrieben (write-allocate) oder direkt in den übergeordneten Speicher (no-write-allocate).

Diese Methode wird in der Regel in Rechnerarchitekturen mit einem Prozessor eingesetzt. Allerdings kann es hier zu Inkonsistenzen bei I/O-Operationen kommen. Multiprozessorsysteme sind zudem darauf angewiesen ihren Speicher aufzuteilen, das heißt Inkonsistenzen können durch write-back schnell auftreten. Deswegen wird bei der write-through Methode direkt der übergeordnete Speicher aktualisiert.

Das verhindert Inkonsistenzen, aber beansprucht zusätzliche Bandbreite. Deshalb machen Mehrprozessorsysteme zusätzlich von Snooping-Protokollen Gebrauch. Wenn ein Prozessor einen Cache-Inhalt verändern will, kann er diese Änderungen an alle anderen Prozessoren propagieren. Beim write-broadcast wird eine Kopie des Cache-Blocks an alle Prozessoren geschickt. Beim write-invalidate werden alle anderen Kopien dieses Blocks ungültig erklärt.

Persönliche Werkzeuge