Cache - Allgemein        Zurück zur Homepage  handnlkr.gif (1629 Byte)
  http://www.lv2.ifkomhessen.de/cache.htm#S1        Zurück zur Auswahl


Inhalt

Begriff
Meldungen
Weitere Quellen


Begriff
http://www.martinvogel.de/lexikon/ch
Cache
(1989) Als Cache [Kesch] bezeichnet man einen Speicherbereich, auf den sehr schnell zugegriffen werden kann und welcher häufig zu lesende Daten aus einem anderen Speicher enthält. Relativ zur
Festplatte ist das RAM ein schneller Speicher - wenn Sie ausreichend RAM-Kapazität (mehr als 1 MB) zur Verfügung haben, empfiehlt sich die Einrichtung eines Cache-Speichers. Da beispielsweise ein Datenbankprogramm oft mehrmals hintereinander auf dieselben Informationen zugreift, ist die Einrichtung eines Cache mit deutlich weniger Festplattenzugriffen verbunden. Programme hierzu gibt es zuhauf. Einige der bekanntesten Vertreter aus DOS-Zeiten sind zum Beispiel Smartdisk von Microsoft oder PC-Cache von Central Point.   Bei sehr schnellen Rechnern gibt es eine weitere Cache-Stufe. Hier werden Daten aus dem RAM in einem extrem schnellen Speicherbereich in der CPU zwischengespeichert.

http://www.e-online.de/sites/com/0309291.htm
Der Cache ist ein spezieller Puffer-Speicher, der zwischen dem Arbeitsspeicher und dem Prozessor liegt. Damit der Prozessor nicht jeden Programm-Befehl aus dem langsamen Arbeitsspeicher holen muß, wird gleich ein ganzer Befehls- oder Datenblock in den Cache kopiert. Die Warscheinlichkeit, das die nachfolgenden Programmbefehle im Cache liegen, ist sehr groß, da die Programm-Befehle nacheinander abgearbeitet werden. Erst wenn alle Prgramm-Befehle abgearbeitet sind, oder ein Sprungbefehl zu einer Sprungadresse außerhalb des Caches erfolgt, dann muß der Prozessor auf den Arbeitsspeicher zugreifen. Deshalb sollte der Cache groß sein, damit der Prozessor die Programm-Befehle, ohne Pause, hintereinander ausführen kann. Im Zusammenhang mit dem Cache, treten immer wieder folgende Begriffe auf:
First-Level-Cache:
Das ist der schnellste Speicher, der im Prozessor eingebaut ist. Dort werden Befehle und Daten zwischengespeichert. Die Bedeutung des L1 Caches wächst mit der höheren Geschwindigkeit der CPU. Denn dieser Cache vermeidet entsprechende Verzögerungen in der Datenübermittlung und hilft eine CPU optimal auszulasten.
Second-Level-Cache:
Das ist der eigentliche Cache, der außerhalb des Prozessors liegt. In ihm werden die Daten des Arbeitsspeichers( RAM) zwischengespeichert. Über die Größe dieses Caches versorgen die Prozessorhersteller die unterschiedlichen Marktsegmente

mit speziell modifizierten Prozessoren
Third-Level-Cache:
Diese Art von Cache verwendet AMD bei seinem Prozessor K6-3. Er liegt außerhalb des Prozessors, und ist bis zu 2 MB groß.
Write-Trough
Das ist das Verfahren bei dem der Second-Level-Cache die Daten sofort in den Arbeitsspeicher schreibt. Die Steuerung für

den Schreibvorgang wird vom Cache übernommen. Der Prozessor kann in dieser Zeit weiterarbeiten.
Write-Back
Das ist das Verfahren bei dem der Second-Level-Cache dem Prozessor mitteilt, das die Daten in den Arbeitsspeicher

geschrieben sind.

http://www.nickles.de/c/g/289.htm
Cache
Unter einem Cache versteht man einen Raum in dem Daten mehr oder weniger temporär gespeichert
werden. So werden beispielsweise angeforderte Webseitem im Cache-Verzeichnis des Browsers abgelegt, sodas sie - sofern sie erneut angefordert werden - schneller als beim ersten mal geliefert werden können.
Es gibt Caches für verschiedene Aufgaben, so zum Beispiel Festplatten-Caches und Cache-Memory.


http://www.computerlexikon.com/?w=1&q=76  
Der Cache ist ein Speicher, der zum Zwischenspeichern von Daten dient (Puffer).
Der Grundgedanke eines Cache besteht darin, daß wenige große Zugriffe auf eine bestimmte Menge von Daten eine geringere Zeitspanne benötigen als eine Vielzahl von kleinen Zugriffen auf dieselbe Datenmenge.
Gelingt es nun, aus irgendwelchen Zusammenhängen zu erschließen, welche Daten in der Zukunft benötigt werden, kann man bei Anforderung einiger weniger Datenblöcke gleich eine große Zahl in den Puffer einlesen. Lag man mit der Vorausschau richtig, kann dadurch die Leistung des Computers erhöht werden. War die Annahme falsch, muß man die anderen Datenblöcke erneut einlesen und verliert Leistung. Je besser die Methoden zur Vorausschau sind, desto mehr erhöht ein Cache die Gesamtleistung des Computers.
Bei einem Disk-Cache werden Zugriffe auf die Festplatte über einen Bereich im Hauptspeicher oder einen internen Cache auf dem Festplatten-Controller oder im Laufwerk selbst gepuffert. Beim Prozessorcache
sorgt ein schneller Cache dafür, daß der Prozessor nicht darauf warten muss, bis einzelne Zugriffe auf den lang- sameren Hauptspeicher ausgeführt worden sind. (sogenannter L1 Cache = First Level Cache, weil am nächsten
zu CPU)  Schließlich gibt es noch den Cache bei HTML-Browsern. Dieser dient dazu, Dateien, die schon
einmal geladen hat, nicht noch ein mal über die Leitung schicken zu müssen. -> Geschwindigkeitssteigerung.

http://www.giga.de/dbout/reporter5/fullstories/nr10084.html
Cache Manager 4.0
Ohne Cache geht nichts. Oder, zumindest mit sehr wenig Cache geht fast nichts. Je nachdem was mit dem Rechner überwiegend, bzw. von Fall zu Fall gemacht wird, ist es sinnvoll die Einstellungen zuoptimieren .....
So können entweder Fehler beim Brennen beseitigt oder die Performance des Systems optimiert werden.
Nicht immer gilt die Faustregel: viel hilft viel. So kann ein zu großer Cache nicht die gewünschte Geschwindigkeit bringen und belegt dazu noch unnötig RAM. Mit dem Cache Manager 4.0 könnt Ihr vorgefertigte Profile verwenden oder den Cache benutzerdefiniert einstellen. Klar, dass nach einer Umstellung ein Neustart gemacht werden muss. Dieses Tool ist erfreulicher Weise Freeware und darf auch frei weitergegeben werden.


http://www.glossar.de/glossar/1frame.htm?http%3A//www.glossar.de/glossar/amglos_c.htm
Cache
Ein schneller Puffer, der Daten zwischenspeichert und diese immer wieder sehr schnell zur  Verfügung stellen kann. Es gibt mehrere Cache-Arten:
- solche, die Daten aus dem Arbeitsspeicher in CPU-Nähe (im First- oder Second-Level-Cache) puffern
- solche, die Daten von der Festplatte im Arbeitsspeicher zwischenlagern (z.B. Smartdrive bzw. smartdrv.exe),
oder Daten vom langsamen CD-ROM-Laufwerk auf der Festplatte "cachen". Der Festplatten-Cache puffert hardwareseitig Schreib- und Lesezugriffe. Je nach Festplatte ist der Cache bei den 1999 am Markt erhältlichen Festplatten zwischen 128 und 4096 KB groß; ElDE-Platten haben häufig 512 KB, SCSI-Modelle 1024 KB Cache. Da die Algorithmen unterschiedlich effektiv arbeiten, steigert ein größerer Cache nicht zwangsläufig das Plattentempo. .....

top.gif (86 Byte)


Meldungen
Cache

http://www.glossar.de/glossar/1frame.htm?http%3A//www.glossar.de/glossar/amglos_c.htm
Ein schneller Puffer, der Daten zwischenspeichert und diese immer wieder sehr schnell zur
Verfügung stellen kann. Es gibt mehrere Cache-Arten:
solche, die Daten aus dem Arbeitsspeicher in CPU-Nähe (im First- oder Second-Level-Cache) puffern solche, die Daten von der Festplatte im Arbeitsspeicher zwischenlagern (z.B. Smartdrive bzw. smartdrv.exe),  oder Daten vom langsamen CD-ROM-Laufwerk auf der Festplatte "cachen".
Der Festplatten-Cache puffert hardwareseitig Schreib- und Lesezugriffe. Je nach Festplatte ist der Cache beiden 1999 am Markt erhältlichen Festplatten zwischen 128 und 4096 KB groß; ElDE-Platten haben häufig 512 KB, SCSI-Modelle 1024 KB Cache. Da die Algorithmen unterschiedlich effektiv arbeiten,
steigert ein größerer Cache nicht zwangsläufig das Plattentempo.

Werden die im Cache befindlichen Daten erneut benötigt, tritt die beschleunigende Wirkung des Cache voll zu Tage, da diese nicht mehr von dem langsameren Medium geholt werden müssen. Im World Wide Web gibt es ähnliche Mechanismen: Daten, die von entfernten und/oder belasteten Servern lange Wege gehen müssen (z.B. von www.microsoft.com, werden beim Provider (z.B. bei T-Online) im Puffer eines Proxy-Servers gecachet. So müssen sie nicht jedesmal über das INTERNET geladen werden. Alle geladen Daten werden lokal auf der Festplatte des INTERNET-Nutzers gepuffert, sodass beispielsweise die Startseiten des Providers nur noch im Bedarfsfall durch die Telefonleitung geladen werden müssen.
Web-Design-Tipp: immer aktuell beim Leser trotz Cache
Um zu vermeiden, daß Web-Seiten, die täglich aktualisiert werden, beim Aufruf aus den Cache-Speichern
der surfenden Personen bzw. der Provider "herausgekramt" und damit veraltet wiedergegeben werden, können im Header der jeweiligen Web-Seite (Bereich zwischen <head> und </head>) drei verschiedene "Meta"-Tags gesetzt werden:
<meta http-equiv="pragma" content="no-cache"> verhindert, dass die Seite auf den Proxyservern der Provider gespeichert wird. Will ein Leser auf Ihre Seite, wird sie vom Server immer frisch aus dem Internet geladen.
<meta http-equiv="expires" content="0"> signalisiert, dass die Gültigkeit der Seite  abgelaufen ist und sie nachgeladen werden muss.
<meta http-equiv="cache-control" content="no-cache"> sorgt dafür, dass der Browser des Anwenders die Seite nicht im lokalen Cache speichert.
Am Kürzel "http-equiv" ist zu erkennen, dass es sich um eine Anweisung für den Browser handelt. Das Zwischenspeichern ist andererseits eine gute Hilfe, um das Datenaufkommen im Internet zu verringern. Bei den derzeitigen Bandbreiten haben

Anwender aufgrund der verkürzten Ladezeiten einen großen Nutzen vom Cache. Deshalb sollten Sie sich überlegen, ob es wirklich notwendig ist, diese Meta-Tags anzuwenden.
Cache-Programm
Systemprogramm, das einen Teil des vorhandenen Arbeitsspeicher dazu verwendet, Datenträgerinhalte zwischenzuspeichern
und somit den Zugriff auf Datenträger zu beschleunigen. Bei einem Lesecache werden nur die bereits vom Datenträger
geladenen Daten für eine erneute Verwendung zwischengespeichert,  bei einem Schreibcache können Daten auch verzögert
auf dem Datenträger gespeichert werden.

http://www.hardware-bastelkiste.de/cache.html
Cache im PC - einfach nicht so einfach
Mit den Ausführungen auf dieser Seite soll nur ein kleiner Einblick in die Welt des Cache gegeben werden.
Eine vollständige Abhandlung würde diesen Rahmen hier sprengen; Literatur dazu ist in vielfältiger Form im
Handel erhältlich.
Vorbemerkungen
Erstmals wurde zur Beschleunigung der Speicherzugriffe in 386er-Computer ein Cache eingesetzt (ab ca.25MHz Taktfrequenz), denn der Zugriff auf den Hauptspeicher (DRAM) dauerte für diese CPU's (schon) zu lange. Der Cache als aus statischen RAM-Bausteinen (SRAM) aufgebaute spezielle Speicherbereich war zur damaligen Zeit noch sehr teuer und auch noch relativ langsam (ca. 25..50ns, im Gegensatz zu 4..15ns heutiger Caches). Deshalb war der Cache-Speicher auch anders aufgebaut: es gab nur einen Cache und der war relativ klein (meist 32..128kByte). Trotz dieser Einschränkungen war damit aber eine Leistungssteigerung möglich, denn übliche DRAM-Bausteine hatten Zugriffszeiten von 100..200ns und auch die Taktfrequenzen der
Prozessoren waren noch nicht so hoch. Mit Einführung der 486er-Prozessoren wurde der Cache dann geteilt: Der Prozessor selber beinhaltete einen (relativ kleinen) Cache, der üblicherweise mit vollem Prozessortakt läuft (L1-Cache, "Prozessorcache") und einen externen Cache (L2-Cache, "Speichercache"), der relativ groß ist aber meist nur mit "Bus-Geschwindigkeit" läuft (Ausnahmen z.B. PPro, PII ..). Eine dem Cache verwandte Arte ist übrigens der sogenannte Prefetch-Queue (Warteschlange) im Prozessor, die aber andere Aufgaben hat und auch etwas anders als übliche Caches aufgebaut ist (existierte auch schon in Oldie-Prozessoren, das aber nur am Rande). Da diese Art von Speicher (statischer RAM) teurer ist als der als Hauptspeicher eingesetzte (dynamischer RAM), wurde bei der Einführung der EDO-RAM-Speicher im Pentium versucht Kosten zu sparen, indem man den externen (L2-)Cache einfach wegließ und auch auf den Motherboards keinen Platz zum Nachrüsten dafür vorsah. Das die verbesserten Zugriffszeiten des EDO-RAM kein Ausgleich für den  weggelassenen Cache sein konnte war schnell auch den Herstellern klar, denn das effektive Wirkprinzip des Cache läßt sich durch EDO's nicht nachbilden.

Aufbau und Arten
Prinzipieller Aufbau eines Caches. Ab 486er für den L2-Cache (extern); der L1-Cache (CPU-intern) ist
ähnlich aufgebaut.
Es gibt verschiedene Arten von Caches (interne Arbeitsweise):
Asynchroner Cache (A-Cache): Diese Cache-RAMs sind wie die DRAMs in Bänken organisiert und
arbeiten asynchron zum Prozessor-Takt mit Ennable-Signnalen.
Synchroner Cache (S-Cache): Synchrone SRAMs (Synchronous SRAM) sind im Gegensatz
zu den asynchronen Cache-RAMs optimaler an das Motherboard angepaßt, da sie mit einem zur CPU
synchronen Takt arbeiten und so Wartezyklen eingespart werden. Die Zugriffszeiten liegen typisch unter
20ns und können auf den meisten Boards optional zu den A-Cache-Bausteinen eingesetzt werden.
Burst-Cache (B-Cache): Burst-SRAMs sind in der Lage selbständig nach Übermittlung der Startadresse die darauffolgenden Adressen (intern) selbst zu erzeugen. Durch diese Art der Adressierung fällt ein großer Teil
des Overheads weg, wodurch die Daten schneller zur Verfügung gestellt werden können.
Pipelined-Burst-Cache (PB-Cache): In fast allen neueren PCs sind die PB-SRAMs zu finden, die gegenüber den Burst-SRAMs bei aufeinanderfolgenden Burst-Zugriffen die Daten durch eine überlappende Übertragung von Startadresse und Daten einen Zyklus einsparen können (die Startadresse wird quasi im SRAM im voraus gespeichert und der Datenzugriff schon vorbereitet).
Organisation des Caches
Während in 386er- und älteren 486er-Prozessoren der L1-Cache aus einem Stück bestand (Unified Cache,
d.h. Daten und Programmcode in einem gemeinsamen Cache), sind die L1-Caches der modernen
Prozessoren zweigeteilt in einen jeweils gleich großen Daten- und einen Code-Cache mit jeweils eigener
TLB (Translation Lookaside Buffer zur Umsetzung der linearen Adresse in die physikalische). Dies hat den Vorteil,
das das Programm nicht ständig noch genutzte Daten aus den Cache wirft und umgekehrt.
Zwar ist dieses Verfahren nicht so (Cache-)Speicher-effektiv, da z.B. im Extremfall der eine (Halb-)Cache
nur halbvoll ist, während der andere aus allen Nähten platzt, aber die Performance wird trotzdem gesteigert, da nicht ständig kurz vorher rausgeworfene Daten wieder neu eingeladen werden müssen. Eine
Unterscheidung des L2-Cache in Daten - und Code-Cache ist eher selten, wenn überhaupt anzutreffen. Moderne L1-Caches sind zumeist als 4-Wege set-assoziativer Cache aufgebaut (zur Erläuterung siehe Glossar).
Die Cache-Bausteine
Der Cache auf einem Motherboard kann in unterschiedlichen Bauweisen auftreten:
als DIP-Bausteine gesteckt/gelötet
Diese Art wird bei 386er-/486er-Boards am häufigsten verwendet. Zu erkennen an dem "Schaltkreisbergwerk" in einer Ecke des Boards. Meist ist eine Konfiguration wie folgt  üblich:(8* 8kx8 bedeutet 8 Bausteine mit einer Organisation von 8kBit mit 8Bit Datenbusbreite)
Größe  ......
Assoziativer Cache:
Eine aufwendige Cache-Verwaltung, die zu jeder Index-Adresse mehrere Einträge gestattet (zweifach, vierfach ... voll-assoziativ). Dadurch wird das Risiko des gefürchteten Trashings erheblich kleiner. Man benötigt aber zwei, vier ... jede Menge Komparatoren die, alle gleichzeitig aktiv sein müssen. Nicht voll-assoziative Caches müssen sich außerdem die zeitliche Reihenfolge der Einträge merken, damit bei Überfüllung immer der älteste rausgeworfen wird (LRU-Algorithmus: Least Recently Used). Der
486er verfügt über einen 8-KByte-Vierfach-Assoziativ-Cache.
Burst:
Optimale Performance erreicht der 486er bei einem Cache Read Miss, wenn er eine komplette Cache-Line (vier DWords) in einem Schwung (Burst) einliest. Am schnellsten ist der 2-1-1-1-Burst, der für das erste Byte 2 CPU-Takte und für die drei folgenden nur noch je einen Takt benötigt.
Cache-Line:
Die Verwaltungseinheit eines Cache. Beim 486er besteht sie aus vier DWords (also 16 Byte). Jede Cache-Line benötigt daneben einen Eintrag im Tag-RAM. Second-Level-Caches haben im Regelfall ebenfalls eine Cache-Line von 4 DWords.
Cache-Bereich:
Die meisten Second-Level-Caches geizen mit Adreßbits für Tag-RAMs und Komparatoren, so daß sie nur einen Teil des 4-GB-Adreßraums des 486er cachen können (der 486er selbst cacht alles).
Cache Read Miss:
Das angeforderte Datum steht nicht im Cache und muß vom Hauptspeicher nachgeladen werden.
Cache Read Hit:
Das angeforderte Datum steht bereits im Cache. Beim First-Level-Cache vermag die CPU darauf genausoschnell zuzugreifen, wie auf die internen Register. Beim Second-Level-Cache wird das Datum in der Regel per Burst fast wait-state-frei an die CPU und parallel an den 1st-Level-Cache geschickt.
Cache Write Hit:
Die betroffene Adresse ist gecacht, Cache und Hauptspeicher müssen aktualisiert werden. Ein WriteThru unterscheidet zwischen ... Clean und ... Miss.
Cache Write Hit Clean:
(Write Thru) Die betroffene Adresse ist gecacht und noch unverändert, also nicht dirty. Dieser Zugriff dauert oft einen Takt länger, da nicht nur das Datum im Cache abgespeichert, sondern auch noch das Dirty-Bit gesetzt werden muß.
Cache Write Hit Dirty:
(Write Thru) Die betroffene Adresse ist gecacht, aber bereits dirty. Der Cache-Controller braucht nur das Datum im Cache abzuspeichern.
Cache Write Miss:
Dieser Zugriff geht im Regelfall völlig am Cache vorbei direkt auf den Hauptspeicher.
Castoff:
Auch beim Write Thru müssen irgendwann Daten zum Hauptspeicher zurückgeschrieben werden, wenn der Cache den Eintrag für ein neues Datum benötigt ('Castoff'). Ein spezieller Castoff-Buffer, der eine ganze Cache-Line aufnimmt, kann hierbei viel Zeit sparen.
Daten-Kohärenz:
Der wichtigste Job des Cache-Controllers: alle beteiligten Prozessoren und Bus-Master müssen mit übereinstimmenden aktuellen Daten arbeiten. Bei größeren Multiprozessorsystemen wird dieses durch aufwendige Daten-Konsistenz-Protokolle (M.E.S.I.) erreicht.
Direct Mapped Cache:
Eine einfache Cache-Verwaltung; nur ein Komparator ist nötig, um den Eintrag im Tag-RAM an der Index-Adresse mit dem Rest der Zugriffsadresse ('die Map-Adresse') zu vergleichen. Der Nachteil ist, dass er für jede Index-Adresse nur einen einzigen Eintrag erlaubt und so Trashing leicht möglich wird.
Dirty-Bit:
Bei Write Thru muß sich der Cache-Controller merken, welche gecachten Daten im Cache eventuell nicht mit den zugehörigen im Hauptspeicher übereinstimmen, da zwischenzeitlich auf die Adresse geschrieben wurde (ein Vergleich auf wirkliche Änderung findet in aller Regel nicht statt). Unglücklich ist, dass zumeist nur ein Dirty-Bit für eine ganze Cache-Line gesetzt wird. Beim Castoff müssen dann alle vier DWords zurückgeschrieben werden, selbst wenn sich nur ein Byte geändert hat.
First-Level-Cache (L1-Cache):
Ist beim 486er der interne Cache des Prozessors, der mit dem externen Second-Level-Cache korrespondiert.
Index-Adresse:
Der Teil der Zugriffsadresse, der direkt das Tag-RAM adressiert. Bei 64 KB Cache mit einer Cache-Line von 4 DWords sind das die Adreßbits A15..A4.
Interleave:
Eine Methode, SRAMs oder DRAMs verschachtelt im Adreßraum anzulegen; dadurch erreicht man bei adreßmäßig aufeinanderfolgenden Zugriffen (was ja bei Bursts und Opcode-Fetches die Regel ist) einen deutlich schnelleren Zugriff beziehungsweise kann langsamere RAMs einsetzen. DieVerschachtelung kann dword-weise (siehe SiS-Chipsatz), aber auch page-weise (Chips) erfolgen.
Non-Cacheable-Areas:
In einigen Fällen muß man bestimmte Speicherbereiche vorn Cachen ausnehmen, insbesondere wenn sich dort Kommunikationsbereiche wie Dual-Ported-RAMs, Memory Mapped I/O (XGAs), Coprozessoren und so weiter befinden.
Page Mode:
Der Zugriff auf Daten, die innerhalb einer DRAM-Page liegen (je nach DRAM zwischen 256 Byte und 2 KByte), ist beim Page-Mode (mit CAS-only) gut doppelt so schnell wie beim klassischen RAS-/CAS-Zugriff. Dafür dauern aber Page-Wechsel etwas länger.
Posted Write Cache:
Ein Cache mit Write-Buffern.
Second-Level-Cache (L2-Cache):
Ein zweiter Cache zwischen dem kleineren, aber schnelleren First-Level-Cache und dem größeren, aber noch langsameren Hauptspeicher. Er muß dafür sorgen, daß der 1st-Level-Cache immer komplett in ihm abgebildet ist (`Consistency by Inclusion').
Set:
Jedes Tag und die zugeordnete Cache-Line sind Element eines Set. Die 8-bit-Adresse A11-A4 bestimmt das gewünschte aus

256 möglichen Sets. Ein Set setzt sich also im Prinzip aus einem Cache-Directory-Eintrag und dem zugehörigen Cache- Speichereintrag für jeden Weg zusammen.
Tag-RAM:
Sehr schnelles und teures SRAM, in dem sich der Cache-Controller die Adressen der gecachten Daten vermerkt, sowie gegebenenfalls einige Attribute: Dirty bei Write Thru, oder auch Valid-Bits oder LRU-Bits bei assoziativen Caches.
Trashing:
Das Zweitschlimmste (nach der Daten-Inkohärenz), was einem Cache passieren kann. Bei unglücklichen Adreßlagen schmeißen sich aufeinanderfolgende Zugriffe immer wieder gegenseitig aus dem Cache, was viel Zeit kostet. Assoziative Caches verringern dieses Risiko insbesondere bei kleinen Caches erheblich; ab etwa 64 kByte ist aber auch bei Direct Mapped Caches das Risiko schon recht klein. Trashing kann auch beim Page-Mode der DRAMs auftreten (dauernde Page-Wechsel verringert Interleave das Risiko.
Valid-Bit:
Manche Caches (etwa der 1st-Level des 486er) merken sich zu jeder Adresse in einem Bit, ob diese gültig ist oder nicht. Der Vorteil ist, daß man dann den Cache sehr leicht ein- oder ausschalten kann. Die meisten Second-Level-Caches verzichten auf

das "teure" Valid-Bit und müssen dann beim Einschalten des Cache durch aufwendige Füllroutinen dafür sorgen, daß der Cache nur gültige Einträge enthält. Write-Thru-Caches müssen ferner beim Abschalten des Cache alle Dirty-Einträge zurückschreiben.
Weg (Way):
Gibt die Assoziativität des Cache-Systems an.
Write Thru (Write Through):
Jedes geschriebene Datum gelangt sofort oder gepuffert über einen oder mehrere Write-Buffer an den Hauptspeicher. Bei einem Cache Write Hit wird parallel dazu der Cache-Eintrag aktualisiert. Diese Methode benutzt der 486er selbst, der mit vier Write-Buffern (4 x DWord) ausgerüstet ist.
Write Back (Write Copy):
Der Cache speichert das neue Datum zwischen und merkt sich in einem Dirty-Bit, daß der Hauptspeicher an der zugehörigen Adresse nicht mehr aktuell ist. Der 486er muß nicht auf das Abspeichern warten, sondern kann ohne Zeitverlust weitermachen.

Die meisten Write-Back-Caches machen das aber nur bei einem Cache Write Hit. Ein Cache Write Miss hingegen wird dann immer direkt auf den Hauptspeicher geführt und nicht gecacht.
Write Buffer:
Nehmen das zu schreibende Datum auf und schreiben es erst 'bei Gelegenheit', wenn der Bus frei ist zurück. Wenn die Schreibvorgänge nicht zu schnell aufeinanderfolgen, können sie aus CPU-Sicht daher wait-state-frei erfolgen. Der 486er hat gleich vier solcher Buffer.
(c) 2002 by (M)Tronics
Last updated: Tuesday, September 03, 2002


http://wb.rus.uni-stuttgart.de/pc/hauptspeicher.asp
Cache-Speicher
Da die Von-Neumann-Architektur häufige Hauptspeicherzugriffe erfordert,   kommt es hier auf eine sehr effiziente Organisation an. Man setzt daher zwischen CPU und Hauptspeicher häufig Cache-Speicher ein.
Cache-Prinzip
Unter dem Cache-Prinzip versteht man, daß ein großer, langsamerer Speicher   von einem kleinerem, schnellen Speicher (Cache) gepuffert wird. Dabei werden Daten, die mit dem größeren Speicher ausgetauscht werden, im Cache zwischengespeichert. Soll auf diese Daten noch einmal zugegriffen werden,  muss nicht auf den langsameren Speicher zurückgegriffen werden, sondern können dem Cache entnommen werden. Woher die Daten nun kommen, kann dem Zugreifenden wegen der »transparenten« Organisation des Caches egal sein:
er braucht vom Cache keine Notiz zu nehmen. Daß der Einsatz eines Hauptspeichercaches für die Systemleistung zentral ist, sieht man auch daran, daß der Cache selbst nochmals gecached wird: Ein
kleinerer, noch schnellerer »First Level«-Cache wird dem größeren »SecondLevel«-Cache vorgeschaltet
und häufig in den Prozessor integriert.
Cache-Zugriffsarten
Man unterscheidet zwei Varianten von Cache-Zugriffen. Welche eingesetzt  wird, hängt vom Prozessor
und Chipsatz ab.
Write Through
Sollen Daten in den Hauptspeicher geschrieben werden, so werden sie in den Cache und direkt in den Hauptspeicher geschrieben. WriteThrough-Schreibzugriffe sind deshalb bei gecacheten Speichern nicht
schneller als bei cachelosen Systemen.
Write Back
Daten werden nur in den Cache geschrieben und erst dann an den Hauptspeicher übergeben, wenn dies notwendig wird (wenn die Daten im Cache ersetzt werden). Der Schreibzugriff ist deshalb schneller als bei
Write-Through-Cache.
Aufbau
Ein Cache-Speicher erfordert zwei verschiedene Speicher:
Tag-RAM
Speicher zur Verwaltung der Informationen im Cache. In Chipsatz integriert oder in Cachemodul (COAST). Die Größe dieses Speichers bestimmt, wie groß der Hauptspeicher ist, der gechached werden kann.
Häufig wird das Tag-RAM auf maximal 64MB Hauptspeicher ("cacheable area") ausgelegt - auf Speicher
außerhalb dieses Bereichs wird dann ohne Cache zugegriffen. Einige Boards ermöglichen die Erweiterung des Tag-RAMs mit Hilfe eines zusätzlichen Speicherbausteins (erkennbar an leerem Sockel).
maximale Hauptspeichergröße und Cacheable Area
Jedes MB oberhalb der "cacheable area" ist verschenkt, ja die Systemleistung bricht beim Speicherausbau sogar ein! Dagegen

hilft auch ein größerer Cache nichts - nur ein vorausschauend ausgewähltes Board: Der Chipsatz muß eine größere "cacheable area" unterstützen und das Tag-RAM muß groß genug sein (Adreßbreite > 8 Bit für mehr als 64MB RAM, eventuell kann hier aufgerüstet werden).
SRAM (Static Random Access Memory)
Die eigentlichen Daten werden in Zellen gespeichert, die aus bistabilen Schaltungen (Flipflops) bestehen.
Die Speicherung bleibt - ohne Refresh - solange erhalten, wie die Versorgungsspannung anliegt; außerdem zerstört das Lesen einer Speicherzelle deren Inhalt nicht.
Bei SRAM kann man unterscheiden:
A-Cache (Asynchronous SRAM): Da SRAMs keinen Refresh benötigen, braucht kein Taktsignal angelegt zu werden.

PB-Cache (Pipeline Burst SRAM): Nachdem ein Speicherzugriff stattfand, werden Adressen für folgende Zugriffe automatisch generiert. Anlegen der Folgeadressen kann entfallen.
CSRAM (Clock Synchronous RAM):
Anders als beim PB-Cache müssen nach einmaligem Zugriff überhaupt keine Folgeadressen mehr generiert werden; CSRAM liefert einfach die Folgedaten automatisch "bis auf Widerruf". CSRAM soll mit bis zu 750 MHz betrieben werden können.  Wie bei DRAM ist die Zugriffszeit auch beim Cache ein kritischer Wert:
Für einen externen Taktvon 66MHz benötigt man A-Cache mit maximal 15ns oder PB-Cache mit max. 8,5ns Zugriffszeit.
Cache-Typ
PB-Cache ist heute Standard; wenn Ihnen A-Cache angeboten wird, sollten Sie dankend ablehnen. CSRAM ist im Intel Pentium II Xeon integriert.
Cache-Module
Mit COAST (Cache on a Stick) gibt es eine Standard-Modulform für Cache. Vergleichbar mit den SIMMs
beim Hauptspeicher.
Sinnvoller Aufbau des Speichers
Gab es lange Zeit eine gewisse »Normalform« für den Aufbau des Hauptspeichers (256 kB A-Cache und PM-DRAM), so gibt es mittlerweile nicht nur durch die unterschiedlichen RAM-Typen Alternativen. Die Hersteller versuchen nämlich ebenfalls, durch eine veränderte Organisation des Hauptspeichers (im Extremfall durch Weglassen des Caches) die Rechnerkosten zu senken.

http://www.rz.uni-passau.de/dienstleistungen/kommunikation/cache.html
Was ist ein WWW-Cache ?
Das generelle Prinzip
Das WWW (World Wide Web) arbeitet wie viele andere Internet-Dienste nach dem Client-Server-Prinzip. Ein Server bietet Dienste an. Ein Client nutzt diese. Im Falle des WWW spricht man beim Client von einem
WWW-Browser. Client und Server verständigen sich über das Netz mit dem Protokoll HTTP. Dieses ist nicht
zu verwechseln mit der Sprache HTML, die zur Beschreibung von WWW-Dokumenten dient. Ein Client fordert von einem WWW-Server ein Dokument an. Die Adressierung geschieht über ein URL (Uniform Resource Locator). Diese Adresse ist weltweit eindeutig für dieses Dokument.
Nehmen wir folgende Situation an:
Ein Server in den USA bietet ein interessantes Dokument an. Er kündigt dies in einer weltweiten
Diskussionsgruppe an. Es fordern dieses Dokument eventuell Tausende von Nutzern an einem Tag an. Es
wird unter Umständen selbst von einer Einrichtung n-mal unabängig voneinander geholt. Dies bedeutet, das
Dokument wird auf der überlasteten Transatlantikstrecke vielfach übertragen.
Was kann man daran ändern ?
Man speichert das Dokument lokal und liefert es an die Clients aus ohne direkt mit dem Server Kontakt
aufzunehmen. Damit wird das Dokument nur einmal über die internationale Verbindung transportiert und nicht
n-mal. Die Auslieferung an den Client kann wesentlich schneller erfolgen. Diese Funktion als schneller
Zwischenspeicher wird als Cache bezeichnet. Man findet diese Funktionalität auch in Computerspeicher- systemen.
Wie funktioniert ein Cache ?
Die Anforderung von Dokumenten geschieht bei der Nutzung eines Caches nicht direkt beim Server, sondern
beim Cache. Der Cache sieht dann bei den zwischengespeicherten Dokumenten nach, ob das geforderte
Dokument lokal vorhanden ist. Falls ja, wird es sofort an den Client ausgeliefert. Falls nein, wird das
Dokument beim Server geholt, lokal gespeichert und dann an den Client ausgeliefert. Der nächste Client
bekommt dann das lokal zwischengespeicherte Dokument sehr schnell. Da der Cache aber nicht alle
Dokumente des WWW zwischenspeichern kann, muß er nach einer konfigurierbaren Strategie gespeicherte
Dokumente wieder entfernen.
Was muß der Benutzer tun, um den Cache nutzen zu können ?
Die Cache-Server haben gleichzeitig auch eine Proxy-Funktion. Damit können alle Dokumentanforderungen
an den Proxy-Cache gestellt werden. Er besorgt das Dokument (als Stellvertreter) für den Client.
Sie müssen nun den WWW-Browser so konfigurieren, daß der Proxy-Cache-Server genutzt   wird.
Sie geben http://www.rz.uni-passau.de/lib/netscape/default.pac als automatisches Konfigurationsskript an.
Welche Dokumente können zwischengespeichert werden?
Dokumente, welche durch ein Programm dynamisch erzeugt oder modifiert werden, sollten nicht
zwischengespeichert werden. Es sind dies meist URLs die ein cgi-bin im Pfad haben. Es gibt aber auch
Möglichkeiten für die Server, das Zwischenspeichern zu verbieten oder ein Verfallsdatum für das Objekt
anzugeben, über das hinaus das Objekt nicht gehalten werden darf. Leider versuchen einige Firmen auf
diesem Wege das Zwischenspeichern zu verhindern, obwohl die Dokumente nicht dynamisch und auch nicht
individuell an einen Anfragenden angepaßt sind.
Was sind hierarchische Caches?
Das Konzept kann noch weiter erweitert werden zu einem hierarchischen Cache-Verbund. Die einzelnen
Caches werden in einer hierarchischen Struktur miteinander verbunden. Ein Institutscache z.B. verbindet sich
mit anderen Institutssystemen als Nachbarn und nutzt einen oder mehrere Universitätscaches
als Eltern(teil). Die Universitätscaches verbinden sich mit einem oder mehreren Caches anderer Universitäten
oder Einrichtungen als Nachbarn und nutzen einen oder mehrere deutschlandweit verteilte Caches
als Eltern(teil). Der DFN-Verein hat in einem Projekt jetzt 10 solcher Cacheserver an verschiedenen B-Win-
Knoten installiert und in Betrieb genommen. .....

http://www.urz.uni-heidelberg.de/Ausbildung/Unterlagen/Internet/sbkurs/netsc4/cache.html
Standardmäßig legt jeder WWW Browser einen Speicher- und Disk-Cache an, in dem referenzierte
WWW-Seiten gespeichert werden, so daß sie beim nächsten Mal schneller präsentiert werden können.
Evtl. muß man eine Seite "nachladen" (mit dem Hauptsymbol Neu laden), um die aktuelle Version zu
bekommen.

http://www.spiegel.de/extra/0,1518,149952,00.html
Wenn Sie bei der SPIEGEL-ONLINE-Registrierung oder bei bestimmten Spielen Probleme haben, sollten Sie Ihre Browser-Cache-Einstellungen überprüfen. Die richtigen Einstellungen machen Sie so:
Internet Explorer:
    #Im Menü "Extras" "Internetoptionen" wählen
    #Im Kasten "Temporäre Internetdateien" auf "Einstellungen" klicken
    #Bei "Neuere Version der gespeicherten Seite suchen" die Einstellung "Bei jedem Zugriff auf die Seite"
      aktiviere
Netscape Navigator:
    #Im Menü "Bearbeiten" "Einstellungen" wählen
    #"Erweitert" auffalten
    #auf "Cache" klicken
    #"Vergleich zwischen Cache und Netzwerkdokument erfolgt jedesmal" aktivieren

top.gif (86 Byte)


Weitere Quellen
http://de.geocities.com/quhno/cache.html

http://faq-php.de

top.gif (86 Byte)


   Zurück zur Homepage  handnlkr.gif (1629 Byte)       Zur Auswahl
             koffer.gif (12001 Byte)                   AG00088_.gif (337 Byte) Zurück zum Seitenanfang
   Kommentare stets erwünscht an  Webmaster

Modifiziert:  26.02.05 / Ti   wt-wapp1.jpg (38628 Byte)