Cache-Speicher erhöhen System-Durchsatz

06.06.1975

MÜNCHEN - Der Begriff "Cache-Speicher" führt meist noch in der gedanklichen Verbindung zur "black box", die Wunderdinge vollbringen kann. Was ist eigentlich ein Cache-Speicher, was kann er, wozu ist er da?

Die Übersetzung des englischen Wortes hilft nicht viel weiter. Im Langenscheidt steht bei "chache": unterirdisches Depot, geheimes Lager. Lassen wir's dabei bewenden und halten uns an Definitionen, die die Hersteller geben: "Ein Cache-Memory ist ein kleiner Übergangsspeicher, der durch hohe Geschwindigkeit den Durchsatz des Systems erhöhen soll", erläutert Frank Berger, DEC-Vertriebsleiter für den Laborbereich. Bei Data General wird der Cache-Speicher als schneller bipolarer Pufferspeicher umschrieben, der dem Hauptspeicher vorgelagert ist und die effektive Zykluszeit reduziert.

Beide Hersteller verwenden den Cache-Speicher in ihren Systemen (DEC PDP-11/70, Data General Eclipse), weil aus Kostengründen nicht der gesamte Hauptspeicher in den neuen MOS-Technologien ausgelegt werden kann. Halbleiterspeicher sind eben immer noch um so viel teurer als Kernspeicher, daß es sich bei einem System mittlerer Größenordnung erheblich im Preis bemerkbar macht. So wundert es nicht, daß gerade Minicomputerhersteller, die ja "Großrechnerleistung zu kleinen Preisen" bieten wollen, sich des Cache bedienen, um einen höheren Durchsatz zu erzielen.

DEC-Entwicklungsingenieure haben - wie Berger berichtet - durch Simulation festgestellt, daß Zugriffe von der CPU auf den Hauptspeicher ganz typisch immer in der Umgebung der letzten Instruktion oder des zuletzt benutzten Datenwortes erfolgen.

Was liegt näher, als den Bereich, der gerade abläuft, in einen schnelleren Speicher zu legen, um einen erhöhten Systemdurchsatz zu erzielen.

Neue Algorithmen

In den Cache-Speicher werden Daten des Hauptspeichers nach einem LRU-Algorithmus (last recently used) eingelagert, auf die am häufigsten zugegriffen wird. Wovon hängt nun die Effektivität eines Cache-Speichers ab?

Zuerst selbstverständlich von der Geschwindigkeit, zweitens davon, zu wieviel Prozent eine Anforderung (ein Zugriff) aus dem Cache befriedigt werden kann. Schließlich von seiner Größe: Je mehr Worte im Cache gefunden werden und nicht im Hauptspeicher desto höher die Durchsatzrate.

Da der Cache-Speicher jeweils Kopien von Teilen des Hauptspeichers enthält, ist er um so effektiver, je größer die Zeitdifferenz einer Übertragung vom Cache gegenüber dem langsameren Hauptspeicher ist.

Aber was ist ein Kriterium dafür, daß ein Übergangsspeicher möglichst viele Anforderungen befriedigen kann? Sicherlich der Aufbau eines Programms: "Bei einem Programm, das wild durcheinander springt, wird auch der Cache-Speicher nicht viel ausrichten können", erklärt Frank Berger.

Dafür werden Routinen, die ständig wiederkehren, wie zum Beispiel Interpretationen von Benutzerbefehlen auf Mikroebene, im MOS-Code schneller ausgeführt.

DEC gibt an - ". . . Programme, die gelaufen sind, haben es bewiesen" -, daß die durchschnittliche Trefferrate (Hitrate) bei über 90 Prozent liege, der Cache-Speicher also nur bei einem von zehn Zugriffen "passen" muß. Der Cache-Speicher bringe diese Leistung für jedes beliebige Programm -mit der erwähnten Einschränkung - und auch bei variablen Daten, die während des Programmablaufs verändert werden.

Die Diskussion über den Cache hat gerade erst begonnen: "Jeder macht sich da Überlegungen, mit einem möglichst kleinen klarzukommen", sagt Frank Berger, "um mit geringem Aufwand vernünftige Durchsatzraten zu erzielen."