Warum ist Cache-Speicher schnell und teuer?

Dr Franke Ghostwriter
Ist vielleicht eine blöde Frage, aber kennt jemand eine Seite, die erklärt warum z.B. Cache-Speicher so schnell, dafür aber klein und teuer ist?
Ich finde zwar immer wieder die Aussagen, aber keine Erklärung, warum der Speicher schneller ist, ob Platin für die Leitungen verwendet wird oder ähnlichen
 
Arbeitsspeicher ist gross. Dein PC hat wahrscheinlich 1 oder 2 Gigabyte Arbeitsspeicher.
Der Level 2 und allenfalls Level 3 Speicher (Cache) ist klein. In ihn passen ein paar Kilobyte (128, 256, ... je nach System und Alter des Systems (vor 5 Jahren weniger, in 5 Jahren wahrscheinlich mehr)).

Will dein Prozessor Programm oder Daten, so muss er diese über einen Bus aus dem Arbeitsspeicher holen.
Dies benötigt Zeit. Darum ist Arbeitsspeicher langsam (gegenüber den Cache).

Ist dir schon aufgefallen, dass, wenn du den PC startest und OpenOffice oder Word startest, dies länger geht, als wenn du OpenOffice/Word schliesst und gerade wieder startest? Da war der Cache im Spiel. Bin mir nicht ganz sicher, aber der L2-Speicher ist glaub ein elektronischer Baustein nahe dem Prozessor, der ein paar Kilobytes zwischenspeichert. Wenn du also OpenOffice/Word schliesst, dann denkst, ups, muss noch einmal etwas im Dokument nachschauen, und dann OpenOffice/Word nochmals aufmachst, so ist noch etwas OpenOffice/Word im Cache, weshalb OpenOffice/Word dann viel schneller öffnet. Soviel ich weiss, kann man den Cache aber nicht einfach erweitern, also mehr dazukaufen.
Hoffe, es ein wenig Grundsätzlich erklärt zu haben. Bin erst im 1. Semester und hatte dieses Fach noch nicht. Evtl. ist es auf wikipedia.org besser erklärt. LG Roger

PS. Darum ist der Registerspeicher noch schneller, noch teurer und noch kleiner: Die Register sind im Prozessor und haben c.a. 32 Bit (je nach System). Wenn ein Programm zum Beispiel eine Unterroutine (Funktion) aufruft, muss sich der Prozessor ja "merken", wo er vor dem Aufruf der Unterroutine im Programm war. Diese Adresse speichert der Prozessor in einem Register. Dann macht er schön die Funktion bis fertig. Dann schaut er im Stack-Pointer-Register (glaub), an welcher Adresse das Programm fortgesetzt werden soll. Es gibt auch noch Data-Segment-Register, Befehlszähler-Register und ein paar andere. Ein Prozessor hat also nicht nur ein Register(-Speicher), sondern mehrere. Will Prozessor 2+5 zusammenzählen, dann speichert er die Zahl 2 in einem Register (und nicht im Arbeitsspeicher!!! (weil Weg zum Arbeitsspeicher zu weit weg)), dann speichert er die Zahl 5 in einem Register und addiert dann die beiden Register. Ergebnis ist dann 7, welches evtl. dann im Arbeitsspeicher in einer Variable gespeichert wird.
Diese verschiedenen Speicher-Typen machen also durchaus Sinn.
 
...
Ist dir schon aufgefallen, dass, wenn du den PC startest und OpenOffice oder Word startest, dies länger geht, als wenn du OpenOffice/Word schliesst und gerade wieder startest? Da war der Cache im Spiel. Bin mir nicht ganz sicher, aber der L2-Speicher ist glaub ein elektronischer Baustein nahe dem Prozessor, der ein paar Kilobytes zwischenspeichert. Wenn du also OpenOffice/Word schliesst, dann denkst, ups, muss noch einmal etwas im Dokument nachschauen, und dann OpenOffice/Word nochmals aufmachst, so ist noch etwas OpenOffice/Word im Cache, weshalb OpenOffice/Word dann viel schneller öffnet.
...
Das kann ich so nicht stehen lassen. Der CPU-Cache dient doch nicht der Zwischenspeicherung von Programmen oder Programmteilen. Er hält lediglich häufig benutzte _Speicherstellen_ nahe der CPU vor. Darum gibt es keine Änderung des Startverhaltens nachdem ich 1x ein Programm offen hatte. Der beschriebene Effekt ist vielmehr auf das Laden der benötigten Programmbibliotheken (Linux: .so / Windows: .dll) in den Hauptspeicher zurückzuführen. Diese werden (je nach Intelligenz der Speicherverwaltung) beim Schließen nicht sofort wieder entfernt.
 
Oben