| Cache - Allgemein | Zurück zur Homepage |
| 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. .....
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
Weitere
Quellen
http://de.geocities.com/quhno/cache.html
http://faq-php.de
| Zurück zur Homepage |
Zur Auswahl |
| Kommentare stets erwünscht an Webmaster | Modifiziert:
26.02.05 / Ti |