| Infos Home | Impressum | Original Artikel & Autoren Liste |
Den Namen verdankt der Cache der Tatsache, dass er als Teil des Steuerwerks im Verborgenen arbeitet. Nur selten spricht ein Programmierer den Cache explizit an, etwa um ihn zu leeren (Flush).
Wörtlich aus dem Englischen übersetzt bedeutet Cache (gesprochen: kæʃ, wie das Bargeld - cash, entlehnt aus dem französischen cacher - verbergen, caché - verborgen) soviel wie "geheimes Lager". Aus den Quotes-of-the-day eines Linux Betriebssystems: "Cache: A very expensive part of the memory system of a computer that no one is supposed to know is there."\n
Das Funktionieren des Caches beruht auf der so genannten Lokalitätseigenschaft.
Ebenfalls wird unterschieden zwischen Hardwarecaches und Softwarecaches.
Cache-Techniken werden auch von Anwenderprogrammen wie Webbrowsern angeboten, welche zum Beispiel aus dem Web geladene Bilder oder Webseiten in einem Cache zwischenlagern können, so dass diese bei einem erneuten Aufruf nicht noch einmal über die langsamere Verbindung aus dem Web geholt werden müssen. Das wäre ein Beispiel für einen Softwarecache, eine Software, ein Computerprogramm, der Webbrowser, welcher sich eines Speichers bedient, z.B. einer Festplatte oder das RAM, um Daten zwischenzulagern.
Die Einrichtung eines Cache bietet Vorteile unter der Annahme, dass der erreichbare Performancegewinn den Aufwand für das Kopien/Original-Update-Management übertrifft - etwa bei häufigen und wiederholten Zugriffen. Dieser Vorteil schwindet naturgemäß, je mehr Elemente zwischengespeichert werden.
Im Cache liegende Daten lassen sich mit einer bestimmten Menge von Büchern oder Unterlagen auf einem Schreibtisch vergleichen, die dort für die Erledigung einer bestimmten Arbeit griffbereit liegen (vielleicht auch in Kopie). Nach einer entsprechenden Erledigung wandern diese Dinge wieder zurück in ein Regal oder in einen möglichweise in einem anderen Zimmer stehenden Aktenschrank.
Die Größe und die Stufung des Caches kann bei Prozessoren (CPUs) die Verarbeitungsgeschwindigkeit der Daten beeinflussen. Aktuelle Modelle verfügen über zwei bis drei Cache-Stufen:
Der Level-2-Cache puffert größere aktuell zu verarbeitete Datenbestände, auch unter Umständen ganze Programmabschnitte. In der günstigsten Anordnung liegt dieser Cache wie der Level-1-Cache auf dem Prozessorchip (on-Die) und wird mit der vollen Prozessortaktrate angesprochen. Liegt der L2-Cache außerhalb der CPU, also z.B. auf einer "entfernteren" Platine, so muss die Taktrate in der Regel halbiert werden. Der L2-Cache ist in der Regel zwischen 512 und 2048 KiB groß.
Insbesondere wenn der L2-Cache on-Die vorliegt, kann eine weitere Stufe, der Level-3-Cache noch einmal eine Beschleunigung des Speicherzugriffs bedeuten.
Cachetypen
Man unterscheidet Read-Only- (nur zum Lesen vorhalten), Read-Write- (zum Lesen und Verändern vorhalten) und Write-Through-Cache (beim Verändern werden die Originale direkt erneuert).
Auch mehrstufige Verfahren (Second-Level-Cache) sind möglich. Dabei werden Daten über mehrere Stufen durchgereicht bzw. vorgehalten. Meist ist der Cache im Vergleich zum Hauptspeicher sehr klein. Auf die Elemente kann aber sehr schnell und einfach zugegriffen werden. Der Zwischenspeicher wird zwischen einem entfernteren oder aufwändig erreichbaren oder langsameren Bereich und einer (schnellen) Verarbeitungseinheit geschaltet und vermindert die operative Distanz zu den Verarbeitungsobjekten.Cachetechniken
Alle Hardwarecaches gehören zu den assoziativen Speichern und sind damit inhaltsadressierbar. Während frühere Caches Abbilder einzelner Speicherzellen bildeten, sind neuere Caches burstadressierbar bzw. paged. Dies bedeutet, dass wenn der Prozessor auf einen externen Speicherblock zugreift, wird dieser während des Lesens zusätzlich in den Cache kopiert, um bei wiederholtem Zugriff besonders schnell zur Verfügung zu stehen. Hierbei vergleicht die Cachelogik eine anliegende Adresse mit den Adressen (Indizes) der gecachten Speichersegmente, und bei einem Treffer (hit) wird anstelle eines externen Speicherzugriffs der Inhalt des Caches aktiviert. Dasselbe gilt auch beim Schreiben: Wird eine bestimmte Speicherzelle oft geschrieben, wird zunächst nur der Inhalt des Caches verändert und erst zu einem günstigen Zeitpunkt (etwa, wenn gerade eine Leseoperation auf den Cache stattfindet und der externe Speicher entlastet ist) der Inhalt des Caches in den externen Speicher kopiert. Dies kann die Befehlsausführung erheblich verschnellern.Cacheverwaltung
Für eine korrekte Verarbeitung der zwischengespeicherten Daten bedarf es ausgeklügelter Cache-Algorithmen zur Verwaltung des Caches. Diese stellen die notwendige Korrespondenz zwischen den Kopien und den Originalen her. Einerseits müssen nicht im Cache vorhandene aber dennoch angeforderte Elemente aus dem Originalbereich nachgeladen werden und es müssen im Falle von Änderungen diese auf jeden Fall aus dem Cache in die Originale übertragen werden. Möglicherweise können oder müssen Elemente, die selten oder gar nicht angefordert werden, aus dem Cache entfernt werden, da nur ein Teil der Gesamtmenge vorgehalten kann.Cachelevel
Der Level-1-Cache hält die aktuellen Adressen, Befehle und Zwischenergebnisse auf Vorrat, damit diese nicht langwierig aus "entfernterem" Speicher aufgerufen werden müssen. Dieser Cache liegt stets direkt im Prozessorkern und hat in der Regel eine Größe von 8 bis 256 KiB.Stufung des Datenzugriffs im Computer
...sortiert von schnell nach "langsam":
|
Der Ursprungsartikel stammt von der deutschsprachigen Wiki pedia (siehe oben: "Original Artikel & Autoren Liste"). Der Text steht unter der GNU Freie Dokumentation Lizenz. |