Warum werden in Computern Caches verwendet?

... komplette Frage anzeigen

4 Antworten

Caches dienen zum einen als Zwischenspeicher für ansonsten nur langsam zugreifbare Daten, von denen der Computer vermutet, dass sie wiederholt verwendet werden. Das beschleunigt Folgezugriffe auf die Daten erheblich und entlastet die Datenleitungen. Zum anderen sind sie auch Zwischenspeicher für ausgehende Daten, was ebenfalls die Geschwindigkeit wesentlich erhöht und oft die Leitungen etwas entlastet und die Leitungsnutzung etwas gleichmäßiger verteilen kann.

Z. B. ist der Arbeitsspeicher (RAM) im Computer (das sind die heute 4 bis 16 GiByte, die im Datenblatt angegeben werden) deutlich langsamer als der Prozessor, und auch die vergleichsweise langen Leitungen zwischen Arbeitsspeicher und Prozessor sorgen bei den üblichen hunderten von Megahertz bis einzelne Gigahertz schon für merkliche Verzögerungen.

Deshalb hat der Prozessor in seinem Gehäuse einen viel schnelleren Speicher, der aber sehr viel teurer ist als der Massen-Arbeitsspeicher und deshalb entsprechend kleiner gehalten wird. Insbesondere Programmbefehle, die wiederholt ausgeführt werden sollen (Schleifen) werden hier zwischengespeichert.

Umgekehrt werden Daten, die in den Arbeitsspeicher geschrieben werden sollen, erst einmal in den Cache geschrieben, damit der Prozessor mit seiner Arbeit schon mal weitermachen kann, ohne auf den langsamen Arbeitsspeicher warten zu müssen.

Oft hat ein Prozessor mehrere Cache-Speicher mit unterschiedlichen Geschwindigkeiten (und entsprechend unterschiedlichen Preisklassen und Kapazitäten). (Den am nächsten beim Prozessor liegenden, schnellsten und kleinsten, nennt man Level 1, den nächsten Level 2, und - falls vorhanden - folgt Level 3.)

Ein anderes wichtiges Beispiel ist der Cache einer Festplatte. Arbeitsspeicher ist um einen Faktor von ca. 1000 schneller als eine Festplatte, deshalb werden Daten von der Festplatte im Arbeitsspeicher zwischengelagert, damit der Computer sehr viel schneller darauf zugreifen kann, wenn die Daten wieder benötigt werden.

Auch hier werden Daten, die auf die Festplatte gespeichert werden sollen, erst in den Arbeitsspeicher geschrieben, bevor sie endgültig auf der Festplatte landen. Das merkt man am deutlichsten, wenn man ein Programm viele kleine Dateien mehrfach mit unterschiedlichen Daten füllen lässt - das geht erheblich schneller als nach den Zugriffszeiten der Festplatte zu erwarten.

Das ist übrigens der Hauptgrund, weshalb man USB-Speichergeräte nicht vom Computer trennen sollte, bevor sie "ausgeworfen" / "unmounted" worden sind - die Daten werden oft erst bei diesem Vorgang auf das Medium übertragen.

Festplatten haben übrigens oft ein paar Megabyte eigenen Cache, um ihre Lese- und noch mehr ihre Schreibvorgänge zu beschleunigen. Sie können dem Betriebssystem einen erfolgreichen Schreibvorgang melden, sobald die Daten im Cache sind, und danach in Ruhe die Daten auf die eigentliche Platte schreiben. (Sofern die Daten nicht zu schnell hintereinander kommen.)

Bei Flash-Speichern ist der Geschwindigkeitsunterschied weit geringer, aber immer noch merklich. Hier ist auch der Verschleiß durch Schreibvorgänge der Grund für die Verwendung eines Schreib-Caches.

Drittens haben Programme, die mit der Außenwelt kommunizieren, ihren eigenen Cache, insbesondere Internet-Browser. Bei Youtube-Filmchen siehst du, dass der Fortschrittsbalken des Films nicht nur anzeigt, welche Stelle gerade gezeigt wird, sondern dahinter auch, welcher Teil des Films schon auf die Festplatte geschrieben worden ist. Nicht nur kannst du dir den Film dann auch bei kurzzeitigen Aussetzern der Internetverbindung ruckelfrei ansehen, auch wird viel Bandbreite gespart, wenn du dir den Film ein zweites Mal ansehen willst.

(Übrigens haben Internet-Provider auch ihre eigenen Caches, wo oft angefragte Daten vorgehalten werden, damt die Leitung zum Originalserver damit nicht mehrfach belastet wird. Sogar Internet-Verteilerkästen haben ihre eigenen Caches für die von ihnen versorgten Straßen.)

Siehe auch https://de.wikipedia.org/wiki/Cache

Antwort bewerten Vielen Dank für Deine Bewertung

Ein Cache macht immer dann Sinn, wenn ein langsames Speichermedium vorliegt. So werden Daten von Festplatten im Speicher zwischengespeichert, um jeden weiteren Zugriff auf die selbe Datei zu beschleunigen.
Nun haben auch Prozessoren Caches, um langsamen Speicher bei wiederholten Zugriffen auf den selben Speicherbereich zu beschleunigen.
Cache ist aber nicht unbegrenzt vorhanden, ist er voll, so werden ältere gespeicherte Daten überschrieben.

Antwort bewerten Vielen Dank für Deine Bewertung

Quasi als Zwischenablage für schnelle Zugriffe auf Befehle.

1 sek Google:

1. Eintrag:

Zitat:

Cache (L1 / L2 / L3) Der Cache ist ein
spezieller Puffer-Speicher, der zwischen dem Arbeitsspeicher und dem
Prozessor liegt. Damit der Prozessor nicht jeden Programm-Befehl einzeln
aus dem langsamen Arbeitsspeicher holen muss, wird gleich ein ganzer
Befehls- bzw. Datenblock vom Arbeitsspeicher in den Cache geladen

Mit schickem Bildchen dabei.

Antwort bewerten Vielen Dank für Deine Bewertung

Zum Geschwindigkeitsausgleich zwischen langsameren Speichern

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?