|
Pufferspeicher (Cache)
Speicher mit sehr kurzer Zugriffszeit und relativ kleiner
Kapazität der zwischen Arbeitsspeicher und CPU geschaltet ist. Er enthält den jeweils "aktuellen" Teil des Arbeitsspeicher- Inhalts. Im Idealfall befindet sich der Inhalt der jeweils durch die CPU adressierten Arbeitsspeicher-Zelle im Cache bei jedem Speicherzugriff ist nur die Zykluszeit des Cache und nicht jene des Arbeitsspeichers abzuwarten (Geschwindigkeitszuwachsum den Faktor 4 ... 5). Für den Programmierer und die CPU ist der Cache "transparent", d. h. es spielt keine Rolle, ob das referierte Wort imArbeitsspeicher oder im Cache steht die DVS hat scheinbar einen Arbeitsspeicher mit der Kapazität des realen Arbeitsspeichersund der Zykluszeit des Cache. Im realen Betrieb ist die Wahrscheinlichkeit, daß ein referiertesArbeitsspeicher-Wort im Cache steht (=Trefferrate H), immer kleiner 1 ("page fault"). Typische Werte für H liegen im Bereich 50 bis 98%. Die Trefferrate wird umso größer sein, je besser es gelingt das "working set" des aktuellen Programms im Cache zu halten. Auf Grund der Lokalitätseigenschaft von Programmen (die überwiegende Zahl von Speicherzugriffen erfolgt "in der Nähe" der zuletzt referierten Adresse), ist die Wahrscheinlichkeit, dass die benötigte Info bereits im Cache steht, relativ groß. Der Cache wird immer dann mit neuen Werten geladen, wenn ein Speicherzugriff zu einem nicht in ihm enthaltenen Wert erfolgt. In diesem Fall wird immer ein ganzer Datenblock ab der gerade referierten Adresse in den Cache geladen (typisch 4 - 16 Worte). Ursprünglich wurden Pufferspeicher nur bei Großrechnern eingesetzt, heute gibt es Prozessoren mit Cache auf dem Chip (z. B. 68020), wobei der Cache aber funktionell zum Speicherwerk
gehört. Für andere Prozessoren (z.B. 80386) gibt es
spezielle Cache-Controller (z.B. 82385), die zwischen Prozessor und
Speicherwerk geschaltet werden und den Speicher
unabhängig vom Prozessor ansteuern.
|
|
|