-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zur Steuerung
mehrerer Cache-Speicher, das die Cache-Speicher in die Lage versetzt,
effizient Daten zu speichern.
-
Ein
Computersystem besteht normalerweise aus einer CPU, einem Hauptspeicher,
einem Festplattenlaufwerk (HDD) etc., wobei diese Bauelemente des
Computersystems unterschiedliche Datenübertragungsraten haben. Normalerweise
wird ein DRAM als ein solcher Hauptspeicher verwendet. Die Datenübertragungsrate
des DRAM ist weit geringer als die der CPU, so dass der DRAM oft
zu einem Faktor wird, der die Betriebsgeschwindigkeit der CPU herabsetzt.
Die Datenübertragungsraten
solcher externen Speichereinheiten wie einer HDD-Einheit, einer CD-ROM-Einheit
etc. sind weit geringer als die des DRAM, so dass die Betriebsgeschwindigkeit
des DRAM oft durch den Betrieb einer solchen Einheit herabgesetzt
wird. Eine solch unterschiedliche Betriebsgeschwindigkeit von Einheiten,
die untereinander Daten austauschen behindert deshalb die beabsichtigte
Leistung dieser Einheiten, auch wenn sie selbst jeweils in der Lage
sind, Daten schnell zu übertragen,
weil die Übertragungsrate
des gesamten Systems von einer Einheit bestimmt wird, die unter
ihnen die langsamste Übertragungsrate
hat.
-
Um
einen solchen Geschwindigkeitsunterschied zwischen den Einheiten
zu verringern, wird ein Computersystem deshalb mit einem Cache-Speicher
ausgestattet. Der Cache-Speicher nutzt die Lokalisierung von Objekt-Programm
und/oder -Daten am besten, wobei es einen Teil der Daten speichert, die
in der Einheit niederer Ordnung mit niedriger Datenübertragungsrate
gespeichert sind. Also wird die Anzahl der Zugriffe auf die Einheit
niederer Ordnung verringert, wodurch die Datenübertragungsrate des gesamten
Computersystems erhöht
wird.
-
Ein
typischer Cache-Speicher ist zwischen einer CPU und einem Hauptspeicher
angeordnet. Wenn mehrere Cache-Speicher vorhanden sind, werden sie
der Reihe nach von der CPU her als Primärer Cache, Sekundärer Cache,...
bezeichnet. Je näher
der Cache der CPU ist, desto geringer ist seine Speicherkapazität. Generell
wird für
jeden dieser Cache-Speicher ein SRAM verwendet.
-
Der
Hauptspeicher dient als Cache-Speicher für einen externen Speicher.
Also wird die Anzahl der Zugriffe auf den externen Speicher verringert,
wodurch die Betriebsgeschwindigkeit des Hauptspeichers verbessert
werden kann. Manchmal wird auch solch ein externer Speicher wie
eine so genannte Erweiterungskarte etc. mit einem Cache-Speicher
ausgestattet. Zum Beispiel wird jede HDD-Einheit mit einem Cache-Speicher
ausgestattet, um einen Teil der auf einer Magnetplatte gespeicherten
Daten zu speichern. Mit Hilfe eines solchen Cache-Speichers wird die
Anzahl der Zugriffe auf die Magnetplatte verringert, wodurch die
Datenübertragungsrate
der HDD-Einheit verbessert werden kann. Ein Cache-Speicher, mit
dem der Hauptspeicher, die Erweiterungskarte, die HDD-Einheit, etc.
auf diese Weise ausgestattet sind, wird als Plattenpuffer (disc
cache) bezeichnet.
-
Generell
wird bei diesen Plattenpuffern ein als "vorgreifendes Verfahren" bezeichnetes Datenlese-Verfahren
angewendet. Nach diesem "vorgreifenden" Datenlese-Verfahren
werden, nachdem das Lesen der angeforderten Daten aus einem von
einem Hauptrechner angeforderten Bereich beendet ist, mit diesen
zusammen auch die Daten in dem auf die angeforderten Daten folgenden
Bereich gelesen. Dieses Verfahren kann so die Cache-Trefferquote
beim sequenziellen Lesen von Daten aus aufeinanderfolgenden Adressen
in aufsteigender Reihenfolge verbessern.
-
12 zeigt,
wie Daten aus einem konventionellen Plattenpuffer gelesen werden.
-
In 12 bedeutet
ein Hauptrechner eine Einheit, die Lese/Schreibdaten von/auf eine(r) HDD-Einheit
anfordert. Sowohl der Hauptrechner als auch die HDD-Einheit ist
mit einem Cache-Speicher ausgestattet,
und Daten werden zwischen den Cache-Speichern dieser Einheiten ausgetauscht.
In diesem Fall wird der Cache-Speicher des Hauptrechners als Cache-Speicher
hoher Ordnung angesehen und der Cache-Speicher der HDD-Einheit wird
als Cache-Speicher
niederer Ordnung angesehen. Hier wird davon ausgegangen, dass die
von einem Anwendungsprogramm angeforderten Daten D1 weder im Hauptrechner
noch in der HDD-Einheit gespeichert sind.
-
Wenn
ein Anwendungsprogramm vom Hauptrechner die Übertragung von Daten D1 anfordert,
kommt es im Hauptrechner zu einem Cache-Fehltreffer. Also wird von der HDD-Einheit
die Übertragung
von Daten D3 angefordert, welche sowohl die Daten D1 als auch die
Daten D2 in der auf die Adresse der Daten D1 folgenden Adresse enthaltenen
Daten enthalten. In der HDD-Einheit werden also die vom Hauptrechner
angeforderten Daten D3 von der Objekt-Magnetplatte gelesen und im Cache-Speicher
gespeichert, um diesem Cache-Fehltreffer abzuhelfen. Die Daten D3
werden an den Hauptrechner übertragen.
Also enthält
der Cache-Speicher des Hauptrechners die Daten D3. Darüber hinaus
werden in der HDD-Einheit
die Daten D4 in der auf die übertragenen
Daten folgenden Adresse von der Magnetplatte gelesen und im Cache-Speicher
gespeichert.
-
Ein
solches vorgreifendes Datenleseverfahren wird zum Beispiel in der
Patentanmeldung JP 11-110139 dargestellt. In der Patentanmeldung
werden sowohl das Verfahren als auch eine Vorrichtung zum Einlesen
von Daten auf die Vorgriffs-Vorgehensweise
beschrieben. Nach dem/der in dieser Patentanmeldung beschriebenen
Verfahren und Vorrichtung werden die angeforderten Daten, falls
ein Lesebefehl von aufeinanderfolgenden Adressen in absteigender
Reihenfolge festgestellt wird, aus einem vom Hauptrechner angeforderten
Bereich gelesen; danach werden Daten auch von einer der Adresse
der angeforderten Daten vorangehenden Adresse gelesen, wodurch die
Cache-Trefferquote beim Lesen der aufeinanderfolgenden Adressen
in absteigender Reihenfolge verbessert werden kann.
-
In
US Patent 4,928,239 wird ein Cache-Controller vorgestellt, welcher
auf Anforderung von einer Standard-Ersetzungsstrategie auf eine
effizientere Ersetzungsstrategie umschalten kann.
-
Allerdings
sind bei den konventionellen Verfahren des Speicherns von Daten
in einem Cache-Speicher die selben Daten sowohl in dem Hauptrechner
als auch der HDD-Einheit gespeichert. Wenn ein Anwendungsprogramm
vom Hauptrechner das Lesen von Daten anfordert und der Hauptrechner
einen Treffer in dem Cache-Speicher erzielt, werden die angeforderten
Daten also vom Hauptrechner in den Cache-Speicher hoher Ordnung übertragen.
Von der HDD-Einheit wird das Lesen der Daten nicht angefordert.
Wenn also die selben Daten gleichzeitig im Cache-Speicher der HDD-Einheit
gespeichert sind, werden die Daten nicht effizient genutzt.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren für die Steuerung
mehrerer Cache-Speicher bereitzustellen, welches deren Effizienz
erhöht.
-
Ein
Verfahren der vorliegenden Erfindung zur Steuerung mehrerer Cache-Speicher
steuert mehrere Cache-Speicher, darunter einen Cache-Speicher niederer
Ordnung sowie einen Cache-Speicher hoher Ordnung, so dass die Cache-Speicher
niederer und hoher Ordnung in verschiedenen Umlagerungsmodi (swap
modes) betrieben werden.
-
Jeder
der Cache-Speicher hoher und niedriger Ordnung tauscht ausgewählte Daten
mit dem Hauptrechner aus, so dass die Cache-Speicher hoher und niederer Ordnung
in unterschiedlichen Umlagerungsmodi betrieben werden, wenn das
System hochgefahren wird. Entsprechend der ausgetauschten ausgewählten Daten
wählt das
Festplattenlaufwerk den Umlagerungsmodus des Cache-Speichers niederer
Ordnung aus.
-
Eine
Festplatten-Steuereinheit verfügt über eine
erste Anschlusseinheit, die an eine erweiterte Anschlusseinheit
einer Peripherieeinheit des Computers angeschlossen ist, eine zweite
Anschlusseinheit, die an das Festplattenlaufwerk mit einem Cache-Speicher niederer
Ordnung zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten
angeschlossen ist sowie über
einen Cache-Speicher hoher Ordnung zum Speichern eines Teils der
im an die zweite Anschlusseinheit angeschlossenen Festplattenlaufwerk
gespeicherten Daten. Die Festplatten-Steuereinheit steuert das Festplattenlaufwerk,
das an die zweite Anschlusseinheit angeschlossen ist und versetzt
die Cache-Speicher hoher
und niederer Ordnung in die Lage, ausgewählte Daten mit dem Festplattenlaufwerk,
welches an die zweite Anschlusseinheit angeschlossen ist, auszutauschen,
wenn das an die erste Anschlusseinheit angeschlossene Computersystem
hochgefahren wird, so dass die Cache-Speicher hoher und niederer Ordnung
in unterschiedlichen Umlagerungsmodi betrieben werden. Die Festplatten-Steuereinheit
wählt sodann
entsprechend der ausgetauschten ausgewählten Daten den Umlagerungsmodus
des Cache-Speichers
hoher Ordnung aus.
-
1 ist
ein schematisches Blockdiagramm eines Computersystems in einer ersten
Ausführungsform;
-
2 ist
ein schematisches Blockdiagramm der in 1 gezeigten
HDD-Einheit;
-
3 ist
ein schematisches Blockdiagramm der in 1 gezeigten
HDC-Karte 21;
-
4 zeigt
ein Beispiel eines Arbeitsablaufs eines Cache-Speichers bei der Auswahl eines Umlagerungsmodus
gemäß der Erfindung;
-
5 zeigt
ein weiteres Beispiel eines Arbeitsablaufs eines Cache-Speichers
bei der Auswahl eines Umlagerungsmodus gemäß der Erfindung;
-
6 ist
ein schematisches Blockdiagramm eines Computersystems in einer zweiten
Ausführungsform;
-
7 zeigt
ein Beispiel des Arbeitsablaufs eines Cache-Speichers beim Speichern von Daten;
-
8 zeigt
ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim
Speichern von Daten;
-
9 zeigt
noch ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers
beim Speichern von Daten;
-
10 zeigt
noch ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers
beim Speichern von Daten;
-
11 zeigt
noch ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers
beim Speichern von Daten; und
-
12 zeigt,
wie Daten von einem konventionellen Plattenpuffer gelesen werden.
-
Mit
einem Verfahren zur Steuerung von Cache-Speichern der vorliegenden
Erfindung können die
Cache-Speicher hoher und niederer Ordnung in unterschiedlichen Umlagerungsmodi
betrieben werden. "Umlagerung" bedeutet den Ersatz
alter in einem Cache-Speicher
gespeicherter Daten durch neue Daten, wenn der Cache-Speicher über keinen freien
Platz verfügt.
-
Hauptsächliche
Umlagerungsmodi zur Anwendung mit dem Verfahren der vorliegenden
Erfindung sind der LRU (Least Recently Used, am längsten nicht
genutzt)-Modus, der LFU (Least Frequently Used, am seltensten genutzt)-Modus
sowie der FIFO (First-In First-Out)-Modus. Der LRU-Modus ist ein Modus zur
Auslagerung von Daten, die am längsten nicht
genutzt wurden. Der LFU-Modus ist ein Modus zur Auslagerung von
Daten, die am seltensten genutzt werden. Der FIFO-Modus ist ein
Modus zur Auslagerung von Daten in der Reihenfolge ihres Eingangs.
Die Umlagerungsmodi sind nicht nur auf diese begrenzt; zum Beispiel
könnten
verschiedene andere Umlagerungsmodi angewendet werden, darunter
ein Verfahren zur Auslagerung eines Segments mit dem geringsten
Datenumfang.
-
Wenn
sowohl der Cache-Speicher hoher Ordnung als auch der niederer Ordnung
im gleichen Umlagerungsmodus betrieben werden, speichern beide Cache-Speicher
schließlich
Daten mit den selben Merkmalen. Wenn zum Beispiel beide Cache-Speicher,
der hoher Ordnung und der niederer Ordnung, im LRU-Modus betrieben
werden, werden die Daten ausgelagert, auf die am längsten nicht mehr
zugegriffen wurde. Also werden in diesen Cache-Speichern die Daten
gespeichert, auf die zuletzt zugegriffen wurde. Und wenn sowohl
der Cache-Speicher hoher Ordnung als auch der niederer Ordnung im
LFU-Modus betrieben werden, werden die Daten ausgelagert, auf die
am seltensten zugegriffen wurde. Also werden in diesen Cache-Speichern
die Daten gespeichert, auf die häufig
zugegriffen wird. Wenn weiterhin sowohl der Cache-Speicher hoher
als auch der niederer Ordnung im FIFO-Modus betrieben werden, werden
aus diesen Cache-Speichern die zuerst gespeicherten Daten der Reihe
nach ausgelagert. Also werden in diesen Cache-Speichern die Daten
gespeichert, auf die als letztes zugegriffen wurde.
-
Wenn
hingegen beispielsweise der Cache-Speicher hoher Ordnung im LFU-Modus
und der Cache-Speicher niederer Ordnung im FIFO-Modus betrieben
wird, werden die Daten, auf die oft zugegriffen wird, im Cache-Speicher
hoher Ordnung gespeichert und die Daten, auf die zuletzt zugegriffen
wurde, werden im Cache-Speicher niederer Ordnung gespeichert. Auf
diese Weise werden in den Cache-Speichern
Datenelemente mit verschiedenen Merkmalen gespeichert, und so kann
die Wahrscheinlichkeit verringert werden, dass die selben Daten
in beiden Cache-Speichern enthalten sind. Mit anderen Worten, man
kann die Wahrscheinlichkeit verringern, dass die im Cache-Speicher
hoher Ordnung gespeicherten Daten auch im Cache-Speicher niederer
Ordnung gespeichert werden, so dass die Daten in jedem Cache-Speicher
effizient gespeichert werden können.
-
Die
Cache-Speicher hoher und niederer Ordnung sollten vorzugsweise in
unterschiedlichen Umlagerungsmodi mit unterschiedlichen Merkmalen
betrieben werden. Dies deshalb, weil die Wahrscheinlichkeit, dass
unterschiedliche Datenelemente in den Cache-Speichern hoher und
niederer Ordnung gespeichert werden, dann höher ist, als wenn die Cache-Speicher
in Umlagerungsmodi mit ähnlichen Merkmalen
betrieben werden, wodurch jeder der Cache-Speicher effizienter genutzt
werden kann. Es sollte allerdings vermieden werden, einen Umlagerungsmodus
anzuwenden, der die Cache-Trefferquote senken könnte. Dies, weil ein solcher
Cache-Speicher seine Funktion, den meisten Nutzen aus der Datenlokalisierung
zu ziehen, dann nicht voll ausnutzen kann.
-
Wie
in 1 gezeigt, umfasst ein Computersystem eine CPU 11,
einen sekundären
Cache 13, eine erste Brückenschaltung 14 und
einen Hauptspeicher 15. Die CPU 11 ist mit einem
primären
Cache 12 ausgestattet. Die CPU 11 ist an den sekundären Cache 13 durch
einen externen Bus 10a angeschlossen. Die CPU 11 ist
an die erste Brückenschaltung 14 durch
einen externen Bus 10b angeschlossen. Die erste Brückenschaltung 14 ist
an den Hauptspeicher 15 durch einen externen Bus 10c angeschlossen.
Sowohl der primäre
Cache 12 als auch der sekundäre Cache 13 bestehen
zum Beispiel aus einem SRAM. Der primäre Cache 12 besitzt
eine Speicherkapazität
von mehreren zehn Kilobyte bis mehreren hundert Kilobyte. Der sekundäre Cache 13 besitzt
zum Beispiel eine Speicherkapazität von mehreren hundert Kilobyte
bis mehreren Megabyte. Der Hauptspeicher 15 besteht zum
Beispiel aus einem DRAM. Der Hauptspeicher 15 besitzt zum
Beispiel eine Speicherkapazität
von mehreren zehn Megabyte bis mehreren hundert Megabyte.
-
Die
erste Brückenschaltung 14 ist
an einen Erweiterungsbus 20 angeschlossen, der für eine erweiterte
Peripherieeinheit verwendet wird. Der Erweiterungsbus 20 besteht
zum Beispiel aus einem PCI (Peripheral Component Interconnect)-Bus.
Die erste Brückenschaltung 14 ist
zum Beispiel mit Funktionen eines Taktgebers, eines CPU-Anschlusses,
eines sekundären
Cache-Controllers,
eines Hauptspeicher-Controllers, eines PCI-Bus-Anschlusses etc. ausgestattet, die nicht
dargestellt sind.
-
Eine
Festplattencontroller (HDC)-Karte 21 ist an den Erweiterungsbus 20 angeschlossen.
Außerdem
sind eine HDD (Festplatten)-Einheit 22 und eine CD-ROM-Einheit 23 an
die HDC-Karte 21 über einen Bus 24a bzw.
einen Bus 24b angeschlossen. Jeder der Busse 24a und 24b ist
zum Beispiel ein ATA (AT Attachment)/ATAPI (ATA Packet Interface)-Bus.
Die HDC-Karte 21 dient dazu, eine weitere HDD-Einheit hinzuzufügen und/oder
die Steuerfunktionen der HDD-Einheit zu erweitern.
-
Die
HDC-Karte 21 ist nicht nur auf die Erweiterung der Steuerfunktionen
der HDD-Einheit 22 begrenzt; es kann jede Karte sein, die
mit einem Cache-Speicher ausgestattet ist. Zum Beispiel kann es eine
SCSI (Small Computer System Interface)-Karte sein. Der Erweiterungsbus 20 ist
nicht nur auf den PCI-Bus begrenzt, und die Busse 24a und 24b sind nicht
nur auf den ATA/ATAPI-Bus begrenzt.
-
Wie
in 2 gezeigt, ist die HDD-Einheit 22 mit
einer Magnetplatte 41 ausgestattet, die über eine Datenaufzeichnungsschicht
und einen Gleitkopf 43 (nicht dargestellt) für den Magnetkopf
zum Aufzeichnen und Wiederherstellen verfügt.
-
Die
Magnetplatte 41 ist fest am rotierenden Schaft eines Spindelmotors 42 angebracht
und wird durch den Spindelmotor 42 angetrieben. Der Gleitkopf 43 ist
am vorderen Teil des Auslegers 44 angebracht. Der Ausleger 44 ist
an einem Aktor 45 befestigt und stützt den Gleitkopf 43 elastisch.
Der Ausleger 44 wird durch den Aktor 45 über der
Aufzeichnungsschicht der Magnetplatte 41 bewegt. Also bewegt
sich der Gleitkopf 43 annähernd in der radialen Richtung
der Magnetplatte 41, wodurch an einer bestimmten Position
auf der Aufzeichnungsschicht der Magnetplatte 41 auf Daten
zugegriffen wird.
-
Hierbei
können
eine oder mehrere Magnetplatten als Magnetplatte 41 verwendet
werden. Eine Aufzeichnungsschicht wird auf einer Seite oder auf beiden
Seiten der Magnetplatte 41 gebildet. Der Gleitkopf 43 und
der Ausleger 44 sind so ausgelegt, dass sie jeder Aufzeichnungsschicht
der Magnetplatte 41 entsprechen.
-
Ein
Antriebsmechanismus, bestehend aus der Magnetplatte 41,
dem Spindelmotor 42, dem Gleitkopf 43, dem Ausleger 44 und
dem Aktor 45 wird über
einen Steuerschaltkreis 50 gesteuert. Der Steuerschaltkreis 50 ist
mit einem Festplatten-Controller (Hard Disk Controller, HDC) 51,
einem Steuerspeicher 53 und einem Plattenpuffer 54 und
einem Host Interface 55 ausgestattet. Diese Komponenten
sind miteinander durch einen Bus 56 verbunden.
-
Der
HDC 51 steuert die gesamte HDD-Einheit 22 entsprechend
eines Steuerprogramms und/oder Steuerdaten, die im Steuerspeicher 53 gespeichert
sind. Der HDC 51 führt
eine Rechenoperation aus, um Fehler auszusteuern, die bei der Servosteuerung
und/oder beim Aufzeichnen/Wiederherstellen auftreten, wobei er den
Spindelmotor 42 und den Aktor 45 so antreibt,
dass Daten über
den Magnetkopf zum Aufzeichnen auf die Magnetplatte 41 aufgezeichnet
werden sowie Daten über
den Magnetkopf zum Wiederherstellen von der Magnetplatte 41 wiederhergestellt
und gelesen werden. Der HDC 51 ist mit einem Cache-Controller 52 ausgestattet, um
den Plattenpuffer 54 in die Lage zu versetzen, einen Teil
der auf der Magnetplatte 41 gespeicherten Daten zu speichern.
-
Der
Steuerspeicher 53 speichert ein Steuerprogramm, das durch
den HDC 51 ausgeführt
wird sowie Steuerdaten, die für
das Steuerprogramm verwendet werden. Der Plattenpuffer 54 speichert Schreibdaten,
die auf der Magnetplatte 41 temporär aufgezeichnet werden sollen.
Der Plattenpuffer 54 arbeitet auch als Pufferspeicher,
um Daten, die von der Magnetplatte 41 gelesen werden, temporär zu speichern.
Die HDC-Karte 21 ist mit dem Host-Interface 55 über einen
Bus 21a verbunden. Das Host-Interface 55 ist ein
Schnittstellenschaltkreis für
den Austausch von Daten mit der HDC-Karte 21.
-
Der
Plattenpuffer 54 hat eine Cache-Speicherfunktion, um einen
Teil der auf der Magnetplatte 41 wie oben beschrieben gespeicherten
Daten zu speichern. Der Plattenpuffer 54 entspricht einem
Cache-Speicher niederer Ordnung. Der Plattenpuffer 54 besteht
zum Beispiel aus einem DRAM und hat eine Speicherkapazität von mehreren
Megabyte bis mehreren zehn Megabyte. Der Cache-Controller 52 steuert
diesen Plattenpuffer. Der Cache-Controller 52 unterstützt Umlagerungsmodi,
zum Beispiel den FIFO-Modus und den LRU-Modus.
-
Die
HDD-Einheit 22 tauscht Setup-Daten mit der HDC-Karte (Hauptrechner) 21 aus,
wenn das Computersystem hochgefahren wird, und die HDD-Einheit 22 wird
entsprechend der ausgetauschten Setup-Daten initialisiert. Zu diesem
Zeitpunkt überträgt die HDD-Einheit 22 den
von ihm wählbaren Umlagerungsmodus
(FIFO- oder LRU-Modus) des Cache-Speichers an die HDC-Karte 21 und
wählt den von
der HDC-Karte 21 als Reaktion auf die Übertragung übertragenen Umlagerungsmodus
als den Umlagerungsmodus seines Cache-Speichers aus.
-
Wie
in 3 gezeigt, ist die HDC-Karte 21 mit einem
HDC 31, einem Steuerspeicher 33, einem Plattenpuffer 34,
einem E/A-Port 35, einem E/A-Port 36 und einem
Host-Interface 37 ausgestattet. Der HDC 31, der
Steuerspeicher 33, der Plattenpuffer 34 und das
Host-Interface 37 sind untereinander durch einen Bus 38c verbunden.
Der E/A-Port 35 ist mit dem HDC 31 durch einen
Bus 38a verbunden und der E/A-Port 36 ist wiederum
mit dem HDC 31 durch einen Bus 38b verbunden.
-
Der
HDC 31 steuert die gesamte HDC-Karte 21 entsprechend
des Steuerprogramms und der im Steuerspeicher 33 gespeicherten
Steuerdaten. Der HDC 31 ist mit einem Cache-Controller 32 ausgestattet,
um den Plattenpuffer 34 einen Teil der in der HDD-Einheit 22 gespeicherten
Daten speichern zu lassen.
-
Der
Steuerspeicher 33 speichert ein durch den HDC 31 ausgeführtes Steuerprogramm
und Steuerdaten, die für
das Steuerprogramm verwendet werden. Der Plattenpuffer 34 speichert
Schreibdaten, die in der HDD-Einheit 22 temporär gespeichert
werden sollen. Der Plattenpuffer 34 verfügt außerdem über Funktionen
eines Pufferspeichers zum temporären
Speichern von Daten, die von der HDD-Einheit 22 gelesen
wurden. Der E/A-Port 35 ist mit der HDD-Einheit 22 durch einen Bus 24a verbunden
und der E/A-Port 36 ist mit der CD-ROM-Einheit 23 durch einen
Bus 24b verbunden. Das Host-Interface 37 ist an
einen Erweiterungsbus 20 angeschlossen. Das Host-Interface 37 ist
eine Schnittstellenleitung zum Versenden/Empfangen von Daten durch
den Erweiterungsbus 20.
-
Der
Plattenpuffer 34 verfügt über Funktionen eines
Cache-Speichers,
um wie oben beschrieben einen Teil der Daten zu speichern, die in
der HDD-Einheit 22 gespeichert sind. Der Plattenpuffer 34 entspricht
also einem Cache-Speicher hoher Ordnung im Hinblick auf den Plattenpuffer 54,
mit dem die HDD-Einheit 22 ausgestattet
ist. Der Plattenpuffer 34 besteht zum Beispiel aus einem
DRAM und hat eine Speicherkapazität von mehreren Megabyte bis mehreren
zehn Megabyte. Der Cache-Controller 32 steuert
den Plattenpuffer 34. Der Cache-Controller 32 unterstützt zum
Beispiel die Modi FIFO, LRU und LFU.
-
Die
HDC-Karte 21 sendet/empfängt Setupdaten an die/von der
HDD-Einheit (Einheit
niederer Ordnung) 22, wenn das Computersystem hochgefahren
wird, und die HDC-Karte 21 wird entsprechend der gesendeten/empfangenen
Setupdaten initialisiert. Zu diesem Zeitpunkt wählt zum Beispiel die HDC-Karte 21 aus
den von der HDD-Einheit 22 übertragenen Umlagerungsmodi
einen Umlagerungsmodus aus, den die HDD-Einheit 22 auswählen soll,
und überträgt den ausgewählten Umlagerungsmodus
an die HDD-Einheit 22. Weiter wählt die HDC-Karte 21 einen
anderen als den an die HDD-Einheit 22 übertragenen Umlagerungsmodus
als den Umlagerungsmodus seines Cache-Speichers aus. Die Priorität der Auswahl
des Objekt-Umlagerungsmodus wird vorher festgelegt.
-
4 zeigt
ein Beispiel eines Arbeitsablaufes eines Cache-Speichers bei der Auswahl eines Umlagerungsmodus.
-
Das
Computersystem wird hochgefahren, danach überträgt die HDD-Einheit 22 wählbare Umlagerungsmodi
(FIFO- und LRU-Modus) des Cache-Speichers an die HDC-Karte 21 (Schritt
S1). Beim Empfang der Umlagerungsmodi von der HDD-Einheit 22 (Schritt
S2) wählt
die HDC-Karte 21 einen Umlagerungsmodus aus, der von der HDD-Einheit 22 unter
den empfangenen Umlagerungsmodi entsprechend der festgelegten Priorität ausgewählt werden
soll (Schritt S3) und sendet den ausgewählten Umlagerungsmodus an die
HDD-Einheit 22 zurück
(Schritt S4).
-
Wenn
die HDD-Einheit 22 den Umlagerungsmodus von der HDC-Karte 21 empfängt(Schritt
S5), wählt
sie ihn als den Umlagerungsmodus ihres Cache-Speichers aus (Schritt
S6). Die HDC-Karte 21 wählt
hingegen einen anderen (LRU-Modus) Umlagerungsmodus als den der
HDD-Einheit 22 als Umlagerungsmodus für ihren Cache-Speicher aus,
entsprechend der festgelegten Priorität (Schritt 7).
-
Der
in 5 gezeigte Ablauf kann auch zur Auswahl eines
Umlagerungsmodus eines Objekt-Cache-Speichers verwendet werden.
In diesem Fall wird davon ausgegangen, dass in der HDD-Einheit 22 ein
Standard-Umlagerungsmodus (FIFO-Modus) vorgegeben ist.
-
Der
in der HDD-Einheit 22 vorgegebene Standard-Umlagerungsmodus
(FIFO-Modus) wird von der HDD-Einheit 22 an die HDC-Karte 21 übertragen
(Schritt S11), wenn das Computersystem hochgefahren wird. Wenn die
HDC-Karte 21 den Umlagerungsmodus von der HDD-Einheit 22 empfängt (Schritt
S12), wählt
sie einen anderen (LFU-Modus) als
den Umlagerungsmodus der HDD-Einheit 22 als Umlagerungsmodus
ihres Cache-Speichers aus (Schritt S13), entsprechend der vorgegebenen
Priorität.
-
Weiter
kann die HDC-Karte 21, wenn sie über keinen anderen als den
Umlagerungsmodus der HDD-Einheit 22 verfügt, die
HDD-Einheit 22 vom Effekt in Kenntnis setzen, so dass die
HDD-Einheit 22 einen anderen als den Standard-Umlagerungsmodus auswählt.
-
In 4 kann
die HDC-Karte 21 den Objekt-Umlagerungsmodus festlegen,
aber es ist auch möglich,
die HDD-Einheit 22 den Objekt-Umlagerungsmodus festlegen
zu lassen. In einem solchen Fall wird lediglich vorausgesetzt, dass
die Einheit, die nicht über
den Umlagerungsmodus entscheiden kann, über mindestens einen Umlagerungsmodus verfügt. In 5 kann
die HDC-Karte 21 auch bei eingebauter HDD-Einheit 22 ersetzt
werden, so dass die HDC-Karte 21 den
Standard-Umlagerungsmodus auf die HDD-Einheit 22 überträgt.
-
Auf
diese Weise können
Umlagerungsmodi zwischen dem Cache-Speicher (Cache-Speicher hoher Ordnung)
der HDC-Karte 21 und dem Cache-Speicher (Cache-Speicher
niederer Ordnung) der HDD-Einheit 22 ausgetauscht werden,
wenn das Computersystem hochgefahren wird, wodurch die Cache-Speicher
unterschiedliche Umlagerungsmodi auswählen können. Also kann jeder dieser
Cache-Speicher seinen optimierten Umlagerungsmodus auswählen.
-
Der
Ablauf der Umlagerungsmodus-Auswahl ist nicht auf den oben beschriebenen
begrenzt; verschiedene andere Verfahren können außerdem angewendet werden. Zum
Beispiel ist es auch möglich, dass
ein Cache-Speicher seine nicht auswählbaren Umlagerungsmodi an
den anderen Cache-Speicher überträgt und dass
der andere Cache-Speicher seinen Umlagerungsmodus unter den übertragenen Umlagerungsmodi
auswählt.
-
Das
Verfahren zur Steuerung von Cache-Speichern in einer weiteren Ausführungsform verhindert,
dass die Cache-Speicher hoher und niederer Ordnung die gleichen
Daten speichern. Konkret werden die vom Cache-Speicher niederer
Ordnung an den Cache-Speicher hoher Ordnung übertragenen Daten aus dem Cache-Speicher
niederer Ordnung gelöscht.
Mit diesem Verfahren kann der Cache-Speicher niederer Ordnung Daten
effizienter speichern.
-
In 6 werden
den selben Komponenten die selben Symbole zugewiesen wie jene in
der ersten Ausführungsform
in 1, so dass eine redundante Beschreibung vermieden
wird.
-
Wie
in 6 gezeigt ist die zweite Brückenschaltung 71 an
den Erweiterungsbus 20 angeschlossen. Und es kann eine
Peripherieeinheit (nicht dargestellt), eine HDD-Einheit 72 und
eine CD-ROM-Einheit 73 an die zweite Brückenschaltung 71 über einen
Bus 70, einen Bus 74a bzw. einen Bus 74b angeschlossen
werden. Der Bus 70 ist zum Beispiel ein ISA (Industry Standard
Architecture)-Bus. Die Busse 74a und 74b sind
zum Beispiel ein ATA (AT Attachment)/ATAPI (ATA Packet Interface)-Bus.
-
Die
zweite Brückenschaltung 71 dient
zum Anschließen
einer Peripherieeinheit an einen Erweiterungsbus, dessen Spezifikation sich
von der des Erweiterungsbus 20 unterscheidet. Die zweite
Brückenschaltung 71 verfügt über Funktionen
eines PCI-Bus-Anschlusses,
einer Unterbrechungssteuerung, eines DMA (Direct Memory Access)-Controllers,
eines ISA-Busanschlusses etc. Der Bus 70 ist nicht nur
auf den ISA-Bus begrenzt und die Busse 74a und 74b sind
nicht nur auf den ATA/ATAPI-Bus begrenzt.
-
Der
Hauptspeicher 15 tauscht entsprechend der von der CPU 11 ausgegebenen
Befehle mit der HDD-Einheit 72 Daten aus. Der Hauptspeicher 15 ist mit
einem Plattenpuffer 16 zum Speichern eines Teils der in
der HDD-Einheit 72 gespeicherten Daten ausgestattet. Der
Plattenpuffer 16 entspricht einem Cache-Speicher hoher Ordnung im Hinblick auf
den Plattenpuffer 75, mit dem die HDD-Einheit 72 ausgestattet
ist. Der Plattenpuffer 16 hat eine Speicherkapazität von zum
Beispiel mehreren Megabyte bis mehreren zehn Megabyte. Der Hauptspeicher-Controller 17,
mit dem die erste Brückenschaltung 14 ausgestattet
ist, steuert den Plattenpuffer 16.
-
Wenn
der Plattenpuffer 16 des Hauptspeichers 15 (genauer,
der Hauptspeicher-Controller 17) keine von der CPU 11 angeforderten
Daten enthält, fordert
er von der HDD-Einheit 72 die Übertragung sowohl der von der
CPU 11 angeforderten als auch der voraussichtlich als nächstes von
der CPU 11 angeforderten Daten an und speichert die von
der HDD-Einheit 72 als Reaktion auf die Anforderung übertragenen
Daten. Die Daten, die voraussichtlich als nächstes angefordert werden,
sind zum Beispiel die bereits zuvor von der CPU 11 angeforderten
Daten und/oder die Vorgriffsdaten (Look-ahead data) der von der
CPU 11 angeforderten Daten.
-
Die
in 6 gezeigte Konfiguration der HDD-Einheit 72 ist
die selbe wie die des in 1 gezeigten HDD 22.
Obwohl die HDD-Einheit 72 mit
einem Plattenpuffer 75 mit Funktionen eines Cache-Speichers niederer
Ordnung ausgestattet ist, unterscheidet sich die Cache-Steuerung
der HDD-Einheit 72 von der des Plattenpuffers 54 der
HDD-Einheit 22. Der Plattenpuffer 75 ist so ausgelegt,
dass er die von der HDD-Einheit 72 gelesenen Daten löscht. Der
Plattenpuffer 75 hat zum Beispiel eine Speicherkapazität von mehreren
Megabyte bis mehreren zehn Megabyte.
-
Wenn
der Plattenpuffer 75 der HDD-Einheit 72 (genauer
gesagt ist es ein Cache-Controller (nicht dargestellt)) die vom
Hauptspeicher 15 angeforderten Daten nicht enthält, liest
er die Daten von der Magnetplatte 41. Die Daten umfassen
sowohl die vom Hauptspeicher 15 angeforderten als auch
die voraussichtlich als nächstes
vom Hauptspeicher 15 angeforderten Daten. Der Plattenpuffer 75 speichert
dann die vom Hauptspeicher 15 angeforderten Daten und überträgt die gespeicherten
Daten an den Hauptspeicher 15. Wenn die angeforderten Daten
an den Hauptspeicher 15 übertragen wurden, löscht der Plattenpuffer 75 die
Daten und speichert die Daten, die voraussichtlich als nächstes vom
Hauptspeicher 15 angefordert werden. Die voraussichtlich
als nächstes
angeforderten Daten umfassen zum Beispiel Vorgriffsdaten der vom
Hauptspeicher 15 angeforderten Daten.
-
In
der vorliegenden Beschreibung bedeutet "Löschen" nicht nur das Löschen von
an den Hauptspeicher übertragenen
Daten, sondern auch ein Aktualisieren der Steuerdaten (Fahne (tag),
Gültig-Merker
(valid-flags) etc.) der im Speichermanagement-Bereich gespeicherten
Daten sowie der Daten und Vorgänge,
die mit dem Löschen
der Daten im Zusammenhang stehen, zum Beispiel Beschreibung jener
Bereiche der Datenelemente als leere Bereiche.
-
7 zeigt
ein Beispiel eines Arbeitsablaufes eines Cache-Speichers beim Speichern von Daten.
-
Hier
wird vorausgesetzt, dass weder der Plattenpuffer 16 des
Hauptspeichers 15 (Cache-Speicher des Hauptrechners) noch
der Plattenpuffer 75 der HDD-Einheit 72 (Cache-Speicher
der Einheit niederer Ordnung) die von der CPU 11 (Anwendungsprogramm) angeforderten
Daten enthalten.
-
Zunächst fordert
ein Anwendungsprogramm vom Hauptspeicher 15 die Übertragung
von Daten an. Dann kommt es zu einem Cache-Fehltreffer im Plattenpuffer 16 des
Hauptspeichers 15. Es wird also von der HDD-Einheit 72 die Übertragung
von Daten A angefordert, darunter sowohl die Daten, die vom Anwendungsprogramm
angefordert werden als auch die voraussichtlich als nächstes vom
Anwendungsprogramm angeforderten Daten. Infolgedessen kommt es zu
einem Cache-Fehltreffer im Plattenpuffer 75 der HDD-Einheit 72.
Die vom Hauptspeicher 15 angeforderten Daten A werden also
von der Magnetplatte 41 gelesen und im Plattenpuffer 75 gespeichert,
worauf sie in den Hauptspeicher 15 übertragen werden. Also werden
die Daten A im Plattenpuffer 16 des Hauptspeichers 15 gespeichert.
-
Weiterhin
löscht
die HDD-Einheit 72 die Daten A aus ihrem Plattenpuffer 75,
wenn die Daten A zum Hauptspeicher 15 übertragen wurden. Danach liest
der Hauptrechner die Daten B in der auf die der übertragenen Daten A folgenden
Adresse auf der Magnetplatte 41 und speichert die Daten
B in ihrem Plattenpuffer 75.
-
Nach
dem konventionellen Datenleseverfahren, das in 12 gezeigt
wird, speichert der Cache-Speicher der konventionellen HDD-Einheit
sowohl die vom Hauptrechner angeforderten Daten D3 als auch die
Daten D4 (Vorgriffsdaten) in der auf die Daten D3 folgenden Adresse.
Im Gegensatz dazu speichert der Cache-Speicher der HDD-Einheit in dieser
zweiten Ausführungsform
nicht die vom Hauptrechner angeforderten Daten A, sondern nur die
Daten B (Vorgriffsdaten) in der auf die Daten A folgenden Adresse.
-
Wenn
die beiden Cache-Speicher die selbe Speicherkapazität haben,
kann der Cache-Speicher der HDD-Einheit bei der ersten Ausführungsform also
viel mehr Vorgriffsdaten speichern als derjenige der konventionellen
HDD-Einheit. In 12 bedeuten die Daten B1 die
Vorgriffsdaten D4, die in dem Cache-Speicher der konventionellen
HDD-Einheit gespeichert werden können
und die Daten B2 bedeuten die Vorgriffsdaten, die auf die Daten
B1 folgen, die von der Magnetplatte gelesen wurden, nachdem die
Daten A aus dem Cache-Speicher gelöscht wurden. Also ist die Anwendung
der Lokalisierung des Datenraums am nützlichsten, um die Trefferquote des
Cache-Speichers in der ersten Ausführungsform zu erhöhen. Das
ist der Grund, warum der Cache-Speicher
in dieser Ausführungsform
Daten effizienter speichern kann.
-
Es
gibt zwei Arten der Datenlokalisierung: zeitliche Lokalisierung
und räumliche
Lokalisierung. Die zeitliche Lokalisierung bedeutet eine große Wahrscheinlichkeit,
auf Daten in der selben Adresse mehrfach zugreifen zu können. Die
räumliche
Lokalisierung bedeutet eine große
Wahrscheinlichkeit, auf Daten in Adressen zugreifen zu können, die
nahe bei den zugegriffenen Daten liegen.
-
8 bis 11 zeigen
ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim
Speichern von Daten.
-
Wie
in 8 gezeigt, nutzt der Plattenpuffer 16 des
Hauptspeichers 15 die Daten A2, die zuletzt von einem Anwendungsprogramm
angefordert wurden, als die Daten, die voraussichtlich als nächstes vom
Anwendungsprogramm angefordert werden. Deshalb kann die zeitliche
Lokalisierung von Daten angewendet werden, um die Trefferquote des
Plattenpuffers 16 zu erhöhen.
-
Wie
in 9 gezeigt nutzt der Plattenpuffer 16 des
Hauptspeichers 15 die Vorgriffsdaten A2 der von einem Anwendungsprogramm
angeforderten Daten A1 als die Daten, die voraussichtlich als nächstes vom
Anwendungsprogramm angefordert werden. Also ist die Anwendung der
räumlichen
Lokalisierung der Daten am nützlichsten,
um die Trefferquote des Plattenpuffers 16 zu erhöhen.
-
In
dem in 10 gezeigten Beispiel besteht der
Plattenpuffer 16 des Hauptspeichers 15 aus mehreren
Segmenten, zum Beispiel die drei Segmente Segment 1, Segment 2 und
Segment 3. In diesen Segmenten 1 bis 3 werden
Datenelemente gespeichert, die entsprechend der von einem Anwendungsprogramm
erteilten Befehlen wiederholt von der HDD-Einheit angefordert werden.
-
In
Segment 1 sind die Daten A1, die vom Befehl 1 des
Anwendungsprogramms angefordert wurden sowie die Vorgriffsdaten
A2 der Daten A1 gespeichert. Im Segment 2 sind die Daten
A3, die vom Befehl 2 des Anwendungsprogramms angefordert
wurden sowie Vorgriffsdaten A4 der Daten A3 gespeichert. Und in
Segment 3 sind die Daten A5, die von Befehl 3 des
Anwendungsprogramms angefordert wurden sowie Vorgriffsdaten A6 der
Daten A5 gespeichert. Wenn also ein Cache-Speicher auf diese Weise
in mehrere Segmente aufgeteilt wird, ist die Anwendung der zeitlichen
Lokalisierung von Daten am nützlichsten,
um die Trefferquote des Plattenpuffers 16 zu erhöhen.
-
Andererseits
sind im Plattenpuffer 75 der HDD-Einheit 72 die
jüngsten
vom Hauptspeicher 15 angeforderten Daten A5 sowie die Vorgriffsdaten
B der Daten A6 gespeichert. Also ist die Anwendung der räumlichen
Lokalisierung von Daten am nützlichsten,
um die Trefferquote des Plattenpuffers 75 zu erhöhen.
-
In
dem in 11 gezeigten Beispiel hat der Plattenpuffer 75 der
HDD-Einheit 72 ebenfalls mehrere Segmente, zum Beispiel
die drei Segmente Segment 1 bis 3. In diesen Segmenten 1 bis 3 des
Plattenpuffers 16 des Hauptspeichers 15 sind Datenelemente
gespeichert; die Daten A1, Daten A2 und Daten A3, die entsprechend
Befehl 1, Befehl 2 und Befehl 3 eines
Anwendungsprogramms nacheinander von der HDD-Einheit 72 angefordert
wurden. In den Segmenten 1 bis 3 des Plattenpuffers 75 der HDD-Einheit 72 sind
ebenfalls Datenelemente gespeichert; die Vorgriffsdaten C1, C2 und
C3 der Daten A1, A2 und A3, die nacheinander vom Hauptspeicher 15 angefordert
wurden. Also ist die Anwendung der zeitlichen Lokalisierung von
Daten am nützlichsten,
um die Trefferquote des Plattenpuffers 75 zu erhöhen.
-
Das
Verfahren der Nutzung mehrerer Segmente in einem Cache-Speicher ist nicht
nur auf das oben Beschriebene begrenzt; zum Beispiel können andere
konventionelle, bekannte Verfahren wie die direkte Abbildung, volle
Assoziativität,
Satz-Assoziativität
etc. angewendet werden. Die Größe der einzelnen
Segmente ist nicht fest begrenzt; sie kann variabel sein.
-
In
der weiteren Ausführungsform
gibt es zwei Stufen für
die Speicherebene; der Plattenpuffer 16 (Cache-Speicher
hoher Ordnung) des Hauptspeichers 15 und der Plattenpuffer 75 (Cache-Speicher niederer
Ordnung) der HDD-Einheit 72. Man vermeidet aber, dass die
an den Cache-Speicher hoher Ordnung übertragenen Daten im Cache-Speicher
niederer Ordnung gespeichert sind. Wenn es hingegen wie in der ersten
Ausführungsform
beschrieben die drei Speicherebenen Hauptspeicher, Erweiterungskarte und
HDD-Einheit gibt,
kann festgelegt werden, dass im Cache-Speicher der Erweiterungskarte
nicht die von der Erweiterungskarte an den Hauptspeicher übertragenen
Daten gespeichert sein dürfen
und im Cache-Speicher der HDD-Einheit nicht die von der HDD-Einheit
zur Erweiterungskarte übertragenen Daten
gespeichert sein dürfen.
-
In
den Ausführungsformen
ist die HDD-Einheit als die Speichereinheit niedrigster Ordnung
definiert. Die Speichereinheit niedrigster Ordnung ist aber nicht
nur auf eine solche HDD-Einheit begrenzt; zum Beispiel kann auch
ein solches Plattenlaufwerk wie eine Magnetbandeinheit, eine optischmagnetische
Platteneinheit etc. verwendet werden.
-
Wie
oben beschrieben eignet sich die vorliegende Erfindung besonders
für Peripherieeinheiten, die
jeweils mit einem Cache- Speicher
ausgestattet sind. Weil der primäre
Cache, der sekundäre
Cache und der Hauptspeicher normalerweise auf der Hauptplatine des
Objekt-Computersystems installiert sind, wird das Verfahren der
Datenübertragung
zwischen diesen Speichern am optimalsten als integriertes System
ausgelegt. Weil solche konventionellen Peripherieeinheiten wie eine
Erweiterungskarte, eine HDD-Einheit etc. hingegen normalerweise
unabhängig
voneinander entwickelt werden, sind diese Einheiten im Hinblick
auf die Speicherebene hoher Ordnung nicht immer optimal ausgelegt.
Bei der vorliegenden Erfindung wird so gut wie möglich vermieden, dass im Cache-Speicher niederer
Ordnung die gleichen Daten gespeichert sind wie im Cache-Speicher hoher
Ordnung, wodurch die Trefferquote des Cache-Speichers niederer Ordnung
durch die Anwendung der Datenlokalisierung verbessert werden kann.
Also kann das Verfahren der Datenübertragung zwischen diesen
Speichern im Hinblick auf die Speicherebene hoher Ordnung optimal
ausgelegt werden.
-
Außerdem ist
die vorliegende Erfindung am effektivsten, wenn sowohl der Cache-Speicher
hoher als auch der niederer Ordnung annähernd die selbe Speicherkapazität haben.
Wenn der Cache-Speicher niederer
Ordnung nämlich
eine extrem höhere
Speicherkapazität
hat als der Cache-Speicher hoher Ordnung, wird der Umfang der Daten
im Vergleich zur Speicherkapazität
des Cache-Speichers niederer Ordnung gering, auch wenn im Cache-Speicher hoher Ordnung
und niederer Ordnung die selben Daten gespeichert sind.
-
Wenn
hingegen der Cache-Speicher hoher Ordnung und der niederer Ordnung
beinahe die selbe Speicherkapazität haben, wird der Umfang der Daten
im Vergleich zur Speicherkapazität
des Cache-Speichers
niederer Ordnung groß,
wenn die selben Daten sowohl im Cache-Speicher hoher als auch dem
niederer Ordnung gespeichert sind. Also können im Cache-Speicher niederer
Ordnung anstelle der an den Cache-Speicher hoher Ordnung übertragenen
Daten solche Daten wie Vorgriffsdaten gespeichert werden, wodurch
die Trefferquote des Cache-Speichers niederer Ordnung relativ verbessert wird.