DE10050171A1 - Verfahren zur Steuerung von Cache-Speichern, Computersystem, Festplattenlaufwerk und Festplatten-Steuereinheit - Google Patents

Verfahren zur Steuerung von Cache-Speichern, Computersystem, Festplattenlaufwerk und Festplatten-Steuereinheit

Info

Publication number
DE10050171A1
DE10050171A1 DE10050171A DE10050171A DE10050171A1 DE 10050171 A1 DE10050171 A1 DE 10050171A1 DE 10050171 A DE10050171 A DE 10050171A DE 10050171 A DE10050171 A DE 10050171A DE 10050171 A1 DE10050171 A1 DE 10050171A1
Authority
DE
Germany
Prior art keywords
cache
data
order
low
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10050171A
Other languages
English (en)
Other versions
DE10050171B4 (de
Inventor
Atsushi Kanamaru
Hideo Asano
Akira Kibashi
Takahiro Saito
Keiji Kobayashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10050171A1 publication Critical patent/DE10050171A1/de
Application granted granted Critical
Publication of DE10050171B4 publication Critical patent/DE10050171B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Abstract

Es sollen keine gleichen Daten im Cache-Speicher hoher und niederer Ordnung gespeichert werden oder die gleichen im Cache-Speicher hoher und niederer Ordnung gespeicherten Daten sollen verringert werden, so dass jeder der Cache-Speicher Daten effizient speichern kann. DOLLAR A Computersystem, das mit einer HDC-Karte 21 ausgestattet ist, die an einen Erweiterungsbus 20 angeschlossen ist und das mit einer HDD-Einheit 22 ausgestattet ist, die an eine HDC-Karte 21 angeschlossen ist. Die HDC-Karte 21 ist mit einem Plattenpuffer (Cache-Speicher hoher Ordnung) ausgestattet und die HDD-Einheit 22 ist mit einem Plattenpuffer 54 (Cache-Speicher niederer Ordnung) ausgestattet. Die HDC-Karte 21 und die HDD-Einheit 22 tauschen ausgewählte Daten zur Auswahl eines Umlagerungsmodus für jeden der Cache-Speicher aus, wenn das System hochgefahren wird, wodurch sie entsprechend der ausgetauschten ausgewählten Daten jeweils unterschiedliche Umlagerungsmodi auswählen.

Description

Gebiet der Erfindung
Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Steuerung mehrerer Cache-Speicher, sowie auf ein Computersystem, ein Festplattenlaufwerk und eine Festplatten-Steuereinheit, die dazu dienen, die Cache-Speicher in die Lage zu versetzen, effizient Daten zu speichern.
Technischer Hintergrund
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.
Fig. 12 zeigt, wie Daten aus einem konventionellen Plattenpuffer gelesen werden.
In Fig. 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 "Official Gazette of Published Unexamined Patent Application No. 11-110139" dargestellt. In der Gazette werden sowohl das Verfahren als auch eine Vorrichtung zum Einlesen von Daten auf die Vorgriffs-Vorgehensweise beschrieben. Nach dem/der in dieser Gazette 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.
Durch die Erfindung zu lösende Probleme
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.
Unter solchen Umständen ist es eine Aufgabe der vorliegenden Erfindung, ein Verfahren für die Steuerung mehrerer Cache- Speicher bereitzustellen, welches die oben genannten konventionellen Probleme lösen kann und einen verschwenderischen Betrieb vermeidet, bei dem gleiche Daten sowohl im Cache- Speicher niederer als auch hoher Ordnung gespeichert werden, wodurch die Daten in jedem dieser Cache-Speicher effizienter gespeichert werden, und außerdem, ein Computersystem, ein Festplattenlaufwerk und eine Festplatten-Steuereinheit zur Verfügung zu stellen, die alle das Verfahren zur Steuerung mehrerer Cache-Speicher anwenden.
Mittel zur Lösung des Problems
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.
Das Computersystem der vorliegenden Erfindung ist mit einem Cache-Speicher niederer Ordnung und einem mit dem Cache-Speicher niederer Ordnung verbundenen Cache-Speicher hoher Ordnung ausgestattet. Die Cache-Speicher hoher und niederer Ordnung tauschen ausgewählte Daten aus, um jeweils einen Umlagerungsmodus auszuwählen, wenn das Computersystem hochgefahren wird, wobei entsprechend der ausgetauschten ausgewählten Daten jeweils unterschiedliche Umlagerungsmodi ausgewählt werden.
Das Festplattenlaufwerk der vorliegenden Erfindung ist mit einem Cache-Speicher niederer Ordnung zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten ausgestattet, und es ist mit einem Hauptrechner verbunden, der mit Funktionen eines Cache-Speichers hoher Ordnung ausgestattet ist.
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 der vorliegenden Erfindung 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.
Eine weitere Festplatten-Steuereinheit der vorliegenden Erfindung verfügt über eine erste Anschlusseinheit, die an eine erweiterte Anschlusseinheit einer Peripherieeinheit eines Computersystems mit einem Hauptrechner, der über Funktionen eines Cache-Speichers hoher Ordnung verfügt, angeschlossen ist, über eine zweite, an das Festplattenlaufwerk angeschlossene Anschlusseinheit sowie über einen Cache-Speicher niederer Ordnung zum Speichern eines Teils der in dem an die zweite Anschlusseinheit angeschlossenen Festplattenlaufwerk gespeicherten Daten. Die Festplatten-Steuereinheit steuert das an die zweite Anschlusseinheit angeschlossene Festplattenlaufwerk, und sie ermöglicht den Cache-Speichern sowohl hoher als auch niederer Ordnung, ausgewählte Daten mit dem Hauptrechner auszutauschen, so dass sie in unterschiedlichen Umlagerungsmodi betrieben werden können, wenn das an die erste Anschlusseinheit angeschlossene Computersystem hochgefahren wird. Die Festplatten-Steuereinheit wählt sodann entsprechend der ausgetauschten ausgewählten Daten den Umlagerungsmodus des Cache-Speichers niederer Ordnung aus.
Ein weiteres Verfahren der vorliegenden Erfindung zur Steuerung von Cache-Speichern umfasst den Schritt des Löschens von Daten aus einem Cache-Speicher niederer Ordnung, nachdem die Daten als Reaktion auf eine vom Hauptrechner an den Cache-Speicher niederer Ordnung ausgegebenen Anforderung einer Datenübertragung an einen Hauptrechner übertragen wurden.
Noch ein weiteres Verfahren der vorliegenden Erfindung zur Steuerung von Cache-Speichern umfasst den Schritt des Speicherns eines Teils der in einem Cache-Speicher niederer Ordnung gespeicherten Daten in einem Cache-Speicher hoher Ordnung; wobei die vom Cache-Speicher niederer Ordnung als Reaktion auf eine Anforderung von Datenübertragung des Cache-Speichers hoher Ordnung an diesen übertragenen Daten aus dem Cache-Speicher niederer Ordnung gelöscht werden.
Ein weiteres Computersystem der vorliegenden Erfindung umfasst: einen Cache-Speicher niederer Ordnung; und einen Cache-Speicher hoher Ordnung zum Speichern eines Teils der im Cache-Speicher niederer Ordnung gespeicherten Daten; wobei der Cache-Speicher niederer Ordnung, wenn der Cache-Speicher hoher Ordnung eine Datenübertragung vom Cache-Speicher niederer Ordnung anfordert, die übertragenen Daten vom Cache-Speicher niederer Ordnung zum Cache-Speicher hoher Ordnung als Reaktion auf die Anforderung loscht.
Ein weiteres Festplattenlaufwerk der vorliegenden Erfindung ist mit einem Cache-Speicher zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten ausgestattet. Der Cache- Speicher ist dadurch gekennzeichnet, dass er die an den Hauptrechner übertragenen Daten als Reaktion auf eine Anforderung des an das Festplattenlaufwerk angeschlossenen Hauptrechners loscht.
Eine weitere Festplatten-Steuereinheit der vorliegenden Erfindung ist mit einer ersten, an eine erweiterte Anschlusseinheit einer Peripherieeinheit für das Computersystem angeschlossene Anschlusseinheit, einer zweiten, an das Festplattenlaufwerk angeschlossenen Anschlusseinheit sowie mit einem Cache-Speicher zum Speichern eines Teils der auf dem an der zweiten Anschlusseinheit angeschlossenen Festplattenlaufwerk gespeicherten Daten ausgestattet. Diese Steuereinheit steuert das an die zweite Anschlusseinheit angeschlossene Festplattenlaufwerk und der Cache-Speicher löscht, wenn er über die erste Anschlusseinheit eine Anforderung zur Datenübertragung vom Hauptrechner erhält, die als Reaktion auf die Anforderung an den Hauptrechner übertragenen Daten.
Kurze Beschreibung der Zeichnungen
Fig. 1 ist ein schematisches Blockdiagramm eines Computersystems in einer ersten Ausführungsform der vorliegenden Erfindung;
Fig. 2 ist ein schematisches Blockdiagramm der in Fig. 1 gezeigten HDD-Einheit;
Fig. 3 ist ein schematisches Blockdiagramm der in Fig. 1 gezeigten HDC-Karte 21;
Fig. 4 zeigt ein Beispiel eines Arbeitsablaufs eines Cache- Speichers bei der Auswahl eines Umlagerungsmodus;
Fig. 5 zeigt ein weiteres Beispiel eines Arbeitsablaufs eines Cache-Speichers bei der Auswahl eines Umlagerungsmodus;
Fig. 6 ist ein schematisches Blockdiagramm eines Computersystems in einer zweiten Ausführungsform der vorliegenden Erfindung;
Fig. 7 zeigt ein Beispiel des Arbeitsablaufs eines Cache- Speichers beim Speichern von Daten;
Fig. 8 zeigt ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim Speichern von Daten;
Fig. 9 zeigt noch ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim Speichern von Daten;
Fig. 10 zeigt noch ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim Speichern von Daten;
Fig. 11 zeigt noch ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim Speichern von Daten; und
Fig. 12 zeigt, wie Daten von einem konventionellen Plattenpuffer gelesen werden.
Bevorzugte Ausführungsformen
Im Folgenden werden die Ausführungsformen der vorliegenden Erfindung mit Verweis auf die angefügten Zeichnungen im Hinblick auf ein Verfahren zur Steuerung von Cache-Speichern sowie eines Computersystems beschrieben.
Erste Ausführungsform
Mit einem Verfahren zur Steuerung von Cache-Speichern in einer ersten Ausführungsform 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.
Als nächstes wird ein Computersystem zur Realisierung dieses Steuerverfahrens für Cache-Speicher beschrieben.
Fig. 1 zeigt ein schematisches Blockdiagramm eines Computersystems nach der ersten Ausführungsform der vorliegenden Erfindung.
Wie in Fig. 1 gezeigt, umfasst dieses 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 PCT-Bus begrenzt, und die Busse 24a und 24b sind nicht nur auf den ATA/ATAPT-Bus begrenzt.
Fig. 2 zeigt ein schematisches Blockdiagramm der in Fig. 1 gezeigten HDD-Einheit.
Wie in Fig. 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.
Fig. 3 zeigt ein schematisches Blockdiagramm der in Fig. 1 gezeigten HDC-Karte 21.
Wie in Fig. 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.
Fig. 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 Fig. 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 Fig. 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 Fig. 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.
Zweite Ausführungsform
Das Verfahren zur Steuerung von Cache-Speichern in einer zweiten Ausführungsform der vorliegenden Erfindung 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.
Fig. 6 zeigt ein schematisches Blockdiagramm eines Computersystems nach der zweiten Ausführungsform der vorliegenden Erfindung.
In Fig. 6 werden den selben Komponenten die selben Symbole zugewiesen wie jene in der ersten Ausführungsform in Fig. 1, so dass eine redundante Beschreibung vermieden wird.
Wie in Fig. 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 Fig. 6 gezeigte Konfiguration der HDD-Einheit 72 ist die selbe wie die des in Fig. 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.
Fig. 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 Fig. 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 Fig. 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.
Fig. 8 bis 11 zeigen ein weiteres Beispiel des Arbeitsablaufs eines Cache-Speichers beim Speichern von Daten.
Wie in Fig. 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 Fig. 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 Fig. 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 Fig. 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 zweiten 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 der ersten und zweiten Ausführungsform 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 optisch- magnetische 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.
Vorteile der Erfindung
Bei der vorliegenden Erfindung können also der Cache-Speicher hoher sowie niederer Ordnung in unterschiedlichen Umlagerungsmodi betrieben werden. Es ist somit möglich, die Wahrscheinlichkeit zu verringern, dass im Cache-Speicher niederer Ordnung die selben Daten gespeichert sind wie diejenigen, die im Cache-Speicher hoher Ordnung gespeichert sind, wodurch jeder dieser Cache-Speicher Daten effizienter speichern kann.
Weiterhin löscht bei der vorliegenden Erfindung, wenn ein Hauptrechner vom Cache-Speicher niederer Ordnung die Übertragung von Daten anfordert, der Cache-Speicher niederer Ordnung die als Reaktion auf die Anforderung an den Hauptrechner übertragenen Daten. Wenn der Cache-Speicher hoher Ordnung vom Cache-Speicher niederer Ordnung die Übertragung von Daten anfordert, loscht der Cache-Speicher niederer Ordnung die als Reaktion auf die Anforderung an den Cache-Speicher hoher Ordnung übertragenen Daten. Also kann der Cache-Speicher niederer Ordnung Daten effizienter speichern.
Beschreibung der Symbole
10
a,
10
b,
10
c externer Bus
11
CPU
12
Primärer Cache
13
Sekundärer Cache
14
Erster Controller
15
Hauptspeicher
16
Cache-Bereich (Cache-Speicher hoher Ordnung)
17
Cache-Controller
20
Erweiterungsbus
21
HDC-Karte (Festplatten-Steuereinheit)
22
HDD-Einheit
23
CD-ROM-Einheit
24
a,
24
b Bus
31
HDC
32
Cache-Controller
33
Steuerspeicher
34
Puffer-Speicher (Cache-Speicher hoher oder niederer Ordnung)
35
E/A-Port
36
E/A-Port
37
Host-Interface
38
a,
38
b Bus
41
Magnetplatte
42
Spindelmotor
43
Gleitkopf
44
Ausleger
45
Aktor
51
HDC
52
Cache-Controller
53
Steuerspeicher
54
Pufferspeicher (Cache-Speicher niederer Ordnung)
55
Host-Interface
56
Bus
70
Bus
71
Zweiter Controller
72
HDD-Einheit
73
CD-ROM-Einheit
74
a,
74
b Bus
75
Pufferspeicher (Cache-Speicher niederer Ordnung)

Claims (35)

1. Verfahren zur Steuerung mehrerer Cache-Speicher, umfassend einen Cache-Speicher niederer Ordnung und einen Cache- Speicher hoher Ordnung, wobei der Cache-Speicher hoher Ordnung und der Cache- Speicher niederer Ordnung in unterschiedlichen Umlagerungsmodi betrieben werden.
2. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 1, umfassend die Schritte:
Austauschen ausgewählter Daten zur Auswahl eines Umlagerungsmodus für jeden Cache-Speicher zwischen dem Cache-Speicher hoher Ordnung und dem Cache-Speicher niederer Ordnung, wenn ein System hochgefahren wird; und
Auswahl eines Umlagerungsmodus in jedem Cache-Speicher ungleich dem des anderen Cache-Speichers, auf der Basis der ausgetauschten ausgewählten Daten.
3. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 2,
wobei einer der Cache-Speicher hoher und niederer Ordnung ausgewählte Daten zur Auswahl eines Umlagerungsmodus des anderen Cache-Speichers an den anderen Cache-Speicher überträgt; und
wobei der andere Cache-Speicher seinen Umlagerungsmodus entsprechend der vom einen Cache-Speicher übertragenen ausgewählten Daten auswählt.
4. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 3,
wobei der eine Cache-Speicher seinen Umlagerungsmodus auswählt und seinen ausgewählten Umlagerungsmodus an den anderen Cache-Speicher überträgt; und
wobei der andere Cache-Speicher einen Umlagerungsmodus ungleich dem des übertragenen Umlagerungsmodus als seinen Umlagerungsmodus auswählt.
5. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 3,
wobei der eine Cache-Speicher mehrere Umlagerungsmodi, die er nicht selbst auswählen kann, an den anderen Cache- Speicher überträgt; und
wobei der andere Cache-Speicher einen der übertragenen Umlagerungsmodi auswählt.
6. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 2,
wobei einer der Cache-Speicher hoher und niederer Ordnung mehrere Umlagerungsmodi, die er selbst auswählen kann, an den anderen Cache-Speicher überträgt;
wobei der andere Cache-Speicher einen der übertragenen Umlagerungsmodi auswählt, der durch den einen Cache-Speicher ausgewählt werden soll, und den ausgewählten Umlagerungsmodus an den einen Cache-Speicher zurücksendet und dann einen Umlagerungsmodus ungleich dem zurückgesendeten Umlagerungsmodus als seinen Umlagerungsmodus auswählt; und
wobei der eine Cache-Speicher den zurückgesendeten Umlagerungsmodus als seinen Umlagerungsmodus auswählt.
7. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 1, wobei die Cache-Speicher hoher und niederer Ordnung in unterschiedlichen Umlagerungsmodi betrieben werden, die jeweils unter den Modi LRU (Least Recently Used, am längsten nicht genutzt)-Modus, LFU (Least Frequently Used, am seltensten genutzt)-Modus, FIFO (First-In First-Out)-Modus und einem Modus zur Auslagerung desjenigen von mehreren Segmenten, das am wenigsten Daten enthält, ausgewählt werden.
8. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 1, wobei der Cache-Speicher hoher Ordnung ein Plattenpuffer ist, mit dem eine Festplatten-Steuereinheit zur Steuerung eines Festplattenlaufwerks ausgestattet ist und wobei der Cache-Speicher niederer Ordnung ein Plattenpuffer ist, mit dem das Festplattenlaufwerk ausgestattet ist.
9. Computersystem, umfassend:
einen Cache-Speicher niederer Ordnung; und
einen Cache-Speicher hoher Ordnung, der an den Cache- Speicher niederer Ordnung angeschlossen ist;
wobei die Cache-Speicher hoher und niederer Ordnung jeweils miteinander ausgewählte Daten zur Auswahl eines Umlagerungsmodus austauschen, wenn das Computersystem hochgefahren wird, und sie jeweils unterschiedliche Umlagerungsmodi auswählen, entsprechend der ausgetauschten ausgewählten Daten.
10. Computersystem nach Anspruch 9,
wobei einer der Cache-Speicher hoher und niederer Ordnung mit einer Übertragungsvorrichtung zur Übertragung ausgewählter Daten zur Auswahl eines Umlagerungsmodus des anderen Cache-Speichers an den anderen Cache-Speicher ausgestattet ist; und
wobei der andere Cache-Speicher mit einer Auswahlvorrichtung zur Auswahl seines Umlagerungsmodus entsprechend der vom einen Cache-Speicher empfangenen ausgewählten Daten ausgestattet ist.
11. Computersystem nach Anspruch 10,
wobei der eine Cache-Speicher mit einer Modus-Auswahl- Vorrichtung zur Auswahl seines Umlagerungsmodus ausgestattet ist und die Übertragungsvorrichtung einen von der Auswahlvorrichtung ausgewählten Umlagerungsmodus an den anderen Cache-Speicher überträgt; und
wobei die Auswahlvorrichtung des anderen Cache-Speichers einen Umlagerungsmodus ungleich dem vom einen Cache-Speicher empfangenen Umlagerungsmodus als einen Umlagerungsmodus des anderen Cache-Speichers auswählt.
12. Computersystem nach Anspruch 10,
wobei die Übertragungsvorrichtung des einen Cache-Speichers mehrere Umlagerungsmodi, die der eine Cache-Speicher nicht selbst auswählen kann, an den anderen Cache-Speicher überträgt;
wobei die Auswahlvorrichtung des anderen Cache-Speichers eine von mehreren der vom einen Cache-Speicher empfangenen Umlagerungsmodi als seinen Umlagerungsmodus auswählt.
13. Computersystem nach Anspruch 9,
wobei einer der Cache-Speicher hoher und niederer Ordnung mit einer bestimmende Modus-Übertragungsvorrichtung zur Übertragung mehrerer Umlagerungsmodi, die er selbst auswählen kann, an den anderen Cache-Speicher ausgestattet ist, sowie über eine Modus-Auswahlvorrichtung zur Auswahl des vom anderen Cache-Speicher empfangenen Umlagerungsmodus als sein Umlagerungsmodus; und
wobei der andere Cache-Speicher mit
einer Partnermodus-Auswahlvorrichtung zur Auswahl eines Umlagerungsmodus ausgestattet ist, die der eine Cache- Speicher unter mehreren vom einen Cache-Speicher empfangenen Umlagerungsmodi auswählen soll;
einer Partnermodus-Übertragungsvorrichtung zur Übertragung eines selbst ausgewählten Umlagerungsmodus an den einen Cache-Speicher; und
einer Selbstmodus-Auswahlvorrichtung zur Auswahl eines Umlagerungsmodus ungleich dem Umlagerungsmodus, den die Partnermodus-Auswahlvorrichtung als Umlagerungsmodus des anderen Cache-Speichers ausgewählt hat.
14. Computersystem nach Anspruch 9, wobei der Cache-Speicher hoher Ordnung und der Cache- Speicher niederer Ordnung in unterschiedlichen Umlagerungsmodi betrieben werden, die unter den Modi LRU (Least Recently Used)-Modus, LFU (Least Frequently Used)- Modus, FIFO (First-In First-Out)-Modus und einem Modus zur Auslagerung desjenigen von mehreren Segmenten, das am wenigsten Daten enthält, ausgewählt werden.
15. Computersystem nach Anspruch 9,
wobei der Cache-Speicher hoher Ordnung ein Plattenpuffer ist, mit dem die Festplatten-Steuereinheit zur Steuerung des Festplattenlaufwerks ausgestattet ist; und
wobei der Cache-Speicher niederer Ordnung ein Plattenpuffer ist, mit dem das Festplattenlaufwerk ausgestattet ist.
16. Computersystem, umfassend:
ein Festplattenlaufwerk mit einem Cache-Speicher niederer Ordnung zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten; und
eine Festplatten-Steuereinheit mit einem Cache-Speicher hoher Ordnung zum Speichern eines Teils der auf dem Festplattenlaufwerk gespeicherten Daten, die zur Steuerung des Festplattenlaufwerks dient;
wobei die Cache-Speicher hoher und niederer Ordnung jeweils miteinander ausgewählte Daten zur Auswahl eines Umlagerungsmodus austauschen, wenn das Computersystem hochgefahren wird, und entsprechend der ausgetauschten ausgewählten Daten jeweils unterschiedliche Umlagerungsmodi auswählen.
17. Computersystem, umfassend:
ein Festplattenlaufwerk, ausgestattet mit einem Cache- Speicher zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten; und
ein Hauptspeicher zum Speichern eines Teils der auf einem Festplattenlaufwerk gespeicherten Daten und zum Senden/Empfangen von Daten an das/vom Festplattenlaufwerk entsprechend eines von einer Zentraleinheit ausgegebenen Befehls;
wobei der Cache-Speicher und der Hauptspeicher jeweils miteinander ausgewählte Daten zur Auswahl eines Umlagerungsmodus austauschen, wenn das Computersystem hochgefahren wird und entsprechend der ausgetauschten ausgewählten Daten jeweils unterschiedliche Umlagerungsmodi auswählen.
18. Festplattenlaufwerk, umfassend:
ein Cache-Speicher niederer Ordnung zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten, angeschlossen an einen Hauptrechner, der die Funktionen eines Cache-Speichers hoher Ordnung hat;
wobei jeder der Cache-Speicher hoher und niederer Ordnung ausgewählte Daten zur Auswahl eines Umlagerungsmodus mit dem Hauptrechner austauscht, wenn ein System hochgefahren wird, so dass die Cache-Speicher hoher und niederer Ordnung in unterschiedlichen Umlagerungsmodi betrieben werden; und
wobei der Hauptrechner einen Umlagerungsmodus des Cache- Speichers niederer Ordnung entsprechend der ausgetauschten ausgewählten Daten auswählt.
19. Festplatten-Steuereinheit, umfassend:
eine erste Anschlusseinheit, angeschlossen an, eine erweiterte Anschlusseinheit einer Peripherieeinheit, mit dem ein Computersystem ausgestattet ist;
eine zweite Anschlusseinheit, angeschlossen an ein Festplattenlaufwerk mit einem Cache-Speicher niederer Ordnung zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten; und
ein Cache-Speicher hoher Ordnung zum Speichern eines Teils der in dem an die zweite Anschlusseinheit angeschlossenen Festplattenlaufwerk gespeicherten Daten;
wobei die Steuereinheit das an die zweite Anschlusseinheit angeschlossene Festplattenlaufwerk steuert;
wobei die Cache-Speicher hoher und niederer Ordnung jeweils ausgewählte Daten zur Auswahl eines Umlagerungsmodus für jeden Cache-Speicher mit dem an die zweite Anschlusseinheit angeschlossene Festplattenlaufwerk austauschen, so dass sie in unterschiedlichen Umlagerungsmodi betrieben werden, wenn das an die erste Anschlusseinheit angeschlossene Computersystem hochgefahren wird; und
wobei die Steuereinheit einen Umlagerungsmodus des Cache- Speichers hoher Ordnung entsprechend der ausgetauschten ausgewählten Daten auswählt.
20. Festplatten-Steuereinheit, umfassend:
eine erste Anschlusseinheit, angeschlossen an eine erweiterte Anschlusseinheit einer Peripherieeinheit, mit dem ein Computersystem ausgestattet ist, das auch mit einem Hauptrechner, der die Funktionen eines Cache-Speichers hoher Ordnung hat, ausgestattet ist;
eine zweite Anschlusseinheit, angeschlossen an ein Festplattenlaufwerk; und
ein Cache-Speicher niederer Ordnung zum Speichern eines Teils der in dem an die zweite Anschlusseinheit angeschlossenen Festplattenlaufwerk gespeicherten Daten;
wobei die Festplatten-Steuereinheit das an die zweite Anschlusseinheit angeschlossene Festplattenlaufwerk steuert;
wobei jeder der Cache-Speicher hoher und niederer Ordnung ausgewählte Daten zur Auswahl eines Umlagerungsmodus mit einem Hauptrechner austauscht, so dass sie in unterschiedlichen Umlagerungsmodi betrieben werden, wenn das an die erste Anschlusseinheit angeschlossene Computersystem hochgefahren wird; und
wobei die Festplatten-Steuereinheit einen Umlagerungsmodus des Cache-Speichers niederer Ordnung entsprechend der ausgetauschten ausgewählten Daten auswählt.
21. Verfahren zur Steuerung mehrerer Cache-Speicher durch das Löschen von Daten aus einem Cache-Speicher niederer Ordnung, nachdem die Daten an einen Hauptrechner übertragen wurden, als Reaktion auf eine vom Hauptrechner an den Cache-Speicher niederer Ordnung ausgegebene Anforderung einer Datenübertragung.
22. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 21, wobei der Cache-Speicher niederer Ordnung Daten enthält, die wahrscheinlich als nächstes vom Hauptrechner angefordert werden, entsprechend der Daten, die vom Hauptrechner angefordert wurden.
23. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 22, wobei die wahrscheinlich als nächstes vom Hauptrechner angeforderten Daten Vorgriffsdaten der vom Hauptrechner angeforderten Daten sind.
24. Verfahren zur Steuerung mehrerer Cache-Speicher, um einen Teil der in einem Cache-Speicher niederer Ordnung gespeicherten Daten in einem Cache-Speicher hoher Ordnung zu speichern, wobei die als Reaktion auf eine vom Cache-Speicher hoher Ordnung an den Cache-Speicher niederer Ordnung ausgegebene Anforderung zur Datenübertragung vom Cache-Speicher niederer Ordnung an den Cache-Speicher hoher Ordnung übertragenen Daten aus dem Cache-Speicher niederer Ordnung gelöscht werden.
25. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 24,
wobei der Cache-Speicher hoher Ordnung vom Cache-Speicher niederer Ordnung eine Übertragung von Daten anfordert, umfassend sowohl die vom Hauptrechner angeforderten Daten als auch die ersten wahrscheinlich als nächstes vom Hauptrechner angeforderten Daten, entsprechend der Daten, die vom Hauptrechner angefordert wurden, wenn die vom Hauptrechner angeforderten Daten nicht im Cache-Speicher hoher Ordnung gespeichert sind; und
wobei der Cache-Speicher niederer Ordnung die angeforderten Daten an den Cache-Speicher hoher Ordnung überträgt und die zweiten wahrscheinlich als nächstes vom Cache-Speicher hoher Ordnung angeforderten Daten speichert, entsprechend der Daten, die vom Cache-Speicher hoher Ordnung angefordert wurden.
26. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 25,
wobei die ersten vorhergesagten Daten bereits zuvor vom Hauptrechner angeforderte Daten sind; und
wobei die zweiten vorhergesagten Daten Vorgriffsdaten der vom Cache-Speicher hoher Ordnung angeforderten Daten sind.
27. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 25,
wobei die ersten vorhergesagten Daten Vorgriffsdaten der vom Hauptrechner angeforderten Daten sind; und
die zweiten vorhergesagten Daten Vorgriffsdaten der vom Cache-Speicher hoher Ordnung angeforderten Daten sind.
28. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 24,
wobei der Cache-Speicher hoher Ordnung ein Plattenpuffer ist, mit dem die Festplatten-Steuereinheit zur Steuerung des Festplattenlaufwerks ausgestattet ist; und
wobei der Cache-Speicher niederer Ordnung ein Plattenpuffer ist, mit dem das Festplattenlaufwerk ausgestattet ist.
29. Computersystem, umfassend:
ein Cache-Speicher niederer Ordnung; und
ein Cache-Speicher hoher Ordnung zum Speichern eines Teils der in dem Cache-Speicher niederer Ordnung gespeicherten Daten;
wobei der Cache-Speicher niederer Ordnung, wenn vom Cache- Speicher hoher Ordnung an den Cache-Speicher niederer Ordnung eine Anforderung zur Datenübertragung ausgegeben wird, die vom Cache-Speicher niederer Ordnung an den Cache- Speicher hoher Ordnung übertragenen Daten als Reaktion auf diese Anforderung löscht.
30. Computersystem nach Anspruch 29,
wobei der Cache-Speicher hoher Ordnung, wenn in ihm nicht die vom Hauptrechner angeforderten Daten gespeichert sind, vom Cache-Speicher niederer Ordnung eine Übertragung von Daten anfordert, umfassend sowohl die vom Hauptrechner angeforderten Daten als auch die ersten wahrscheinlich als nächstes vom Hauptrechner angeforderten Daten, entsprechend der vom Hauptrechner angeforderten Daten; und
wobei der Cache-Speicher niederer Ordnung die zweiten wahrscheinlich als nächstes vom Cache-Speicher hoher Ordnung angeforderten Daten speichert, entsprechend der vom Cache- Speicher hoher Ordnung angeforderten Daten.
31. Computersystem nach Anspruch 29,
wobei der Cache-Speicher hoher Ordnung ein Plattenpuffer ist, mit dem die Festplatten-Steuereinheit zur Steuerung des Festplattenlaufwerks ausgestattet ist; und
wobei der Cache-Speicher niederer Ordnung ein Plattenpuffer ist, mit dem das Festplattenlaufwerk ausgestattet ist.
32. Computersystem, umfassend:
ein Festplattenlaufwerk mit einem Cache-Speicher niederer Ordnung zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten; und
eine Festplatten-Steuereinheit mit einem Cache-Speicher hoher Ordnung zum Speichern eines Teils der auf dem Festplattenlaufwerk gespeicherten Daten, die zur Steuerung des Festplattenlaufwerks dient;
wobei der Cache-Speicher niederer Ordnung, wenn die Festplatten-Steuereinheit vom Festplattenlaufwerk die Übertragung von Daten anfordert, die vom Festplattenlaufwerk an die Festplatten-Steuereinheit übertragenen Daten als Reaktion auf die Anforderung löscht.
33. Computersystem, umfassend:
ein Festplattenlaufwerk mit einem Cache-Speicher zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten; und
ein Hauptspeicher zum Speichern eines Teils der auf dem Festplattenlaufwerk gespeicherten Daten und zum Austauschen von Daten mit dem Festplattenlaufwerk als Reaktion auf einen von einer Zentraleinheit ausgegebenen Befehl;
wobei beide, sowohl der Cache-Speicher als auch der Hauptspeicher, wenn von ihnen die Übertragung von Daten vom Hauptspeicher an das Festplattenlaufwerk angefordert wird, die vom Festplattenlaufwerk an den Hauptspeicher übertragenen Daten als Reaktion auf die Anforderung löschen.
34. Festplattenlaufwerk, umfassend:
ein Cache-Speicher zum Speichern eines Teils der auf einer Magnetplatte gespeicherten Daten;
wobei der Cache-Speicher, wenn ein an das Festplattenlaufwerk angeschlossener Hauptrechner vom Festplattenlaufwerk die Übertragung von Daten anfordert, die übertragenen Daten als Reaktion auf die Anforderung an den Hauptrechner löscht.
35. Festplatten-Steuereinheit, umfassend:
eine erste Anschlusseinheit, angeschlossen an eine erweiterte Anschlusseinheit einer Peripherieeinheit, mit dem ein Computersystem ausgestattet ist;
eine zweite Anschlusseinheit, angeschlossen an ein Festplattenlaufwerk; und
ein Cache-Speicher zum Speichern eines Teils der in dem mit der zweiten Anschlusseinheit verbunden Festplattenlaufwerk gespeicherten Daten;
wobei die Steuereinheit das an die zweite Anschlusseinheit angeschlossene Festplattenlaufwerk steuert; und
wobei der Cache-Speicher, wenn der Hauptrechner von ihm die Übertragung von Daten über die erste Anschlusseinheit anfordert, die Daten löscht, nachdem die Daten als Reaktion auf die Anforderung an den Hauptrechner übertragen wurden.
DE10050171A 1999-10-15 2000-10-11 Verfahren zur Steuerung von Cache-Speichern Expired - Fee Related DE10050171B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP11-293909 1999-10-15
JP29390999A JP3568110B2 (ja) 1999-10-15 1999-10-15 キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置

Publications (2)

Publication Number Publication Date
DE10050171A1 true DE10050171A1 (de) 2001-04-19
DE10050171B4 DE10050171B4 (de) 2006-01-05

Family

ID=17800734

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10050171A Expired - Fee Related DE10050171B4 (de) 1999-10-15 2000-10-11 Verfahren zur Steuerung von Cache-Speichern

Country Status (5)

Country Link
US (1) US6629200B1 (de)
JP (1) JP3568110B2 (de)
KR (1) KR100388338B1 (de)
DE (1) DE10050171B4 (de)
SG (1) SG90174A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076498A (ja) * 2001-09-05 2003-03-14 Hitachi Ltd ディスク記憶装置
US7688863B2 (en) * 2001-10-19 2010-03-30 Renesas Technology America, Inc. Methods and apparatus for sharing network bandwidth
JP2003216491A (ja) 2002-01-23 2003-07-31 Hitachi Ltd 階層キャッシュ制御方法
FR2846114A1 (fr) * 2002-10-16 2004-04-23 Thomson Licensing Sa Dispositif de memorisation d'une liste d'elements et procede de memorisation d'un element dans un tel dispositif
JP2005267546A (ja) * 2004-03-22 2005-09-29 Hitachi Ltd ディスク制御装置、及びディスク制御装置におけるネットワーク接続ストレージの接続管理方式
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7966450B2 (en) * 2005-09-01 2011-06-21 Micron Technology, Inc. Non-volatile hard disk drive cache system and method
KR100876841B1 (ko) 2006-08-22 2009-01-07 엘지전자 주식회사 캐쉬 메모리 탑재형 컴퓨터 및 그 제어 방법
KR101128234B1 (ko) * 2006-08-23 2012-03-23 엘지전자 주식회사 메모리 접근 제어 장치 및 방법
US8370294B2 (en) * 2009-05-06 2013-02-05 Microsoft Corporation File stashing for storage media
US9053060B2 (en) 2009-09-29 2015-06-09 Canon Kabushiki Kaisha Information processing apparatus having file system consistency recovery function, and control method and storage medium therefor
US8990502B2 (en) 2010-11-23 2015-03-24 International Business Machines Corporation Write cache structure in a storage system
US9098397B2 (en) * 2011-04-04 2015-08-04 International Business Machines Corporation Extending cache for an external storage system into individual servers
JP6112193B2 (ja) * 2013-03-22 2017-04-12 富士通株式会社 アクセス制御プログラム、ディスク装置及びアクセス制御方法
JP6203592B2 (ja) * 2013-10-07 2017-09-27 株式会社日立製作所 計算機システム、キャッシュ管理方法及び計算機
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9535844B1 (en) 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
US10235054B1 (en) * 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
JP6194875B2 (ja) * 2014-12-11 2017-09-13 日本電気株式会社 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
JP2637788B2 (ja) * 1988-09-02 1997-08-06 株式会社日立製作所 ディスクキャッシュ制御方式および情報処理システム
JPH02114345A (ja) * 1988-10-24 1990-04-26 Nec Corp キャッシュメモリ制御方式
JPH03122737A (ja) 1989-10-05 1991-05-24 Nec Corp ページング方式
JPH0588976A (ja) * 1991-09-30 1993-04-09 Pfu Ltd キヤツシユ記憶装置及びそれを用いた情報処理装置とその情報処理方法
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5809280A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation Adaptive ahead FIFO with LRU replacement
US6571324B1 (en) * 1997-06-26 2003-05-27 Hewlett-Packard Development Company, L.P. Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
JPH11110139A (ja) * 1997-09-26 1999-04-23 Internatl Business Mach Corp <Ibm> データ読み取り方法及びデータ読み取り装置
US6243795B1 (en) * 1998-08-04 2001-06-05 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Redundant, asymmetrically parallel disk cache for a data storage system

Also Published As

Publication number Publication date
JP2001117817A (ja) 2001-04-27
JP3568110B2 (ja) 2004-09-22
DE10050171B4 (de) 2006-01-05
SG90174A1 (en) 2002-07-23
US6629200B1 (en) 2003-09-30
KR100388338B1 (ko) 2003-06-25
KR20010050881A (ko) 2001-06-25

Similar Documents

Publication Publication Date Title
DE10050171B4 (de) Verfahren zur Steuerung von Cache-Speichern
EP0077453B1 (de) Speicher-Subsysteme mit Geräten zur Datenbelegungsbeschränkung in deren Cache-Speichern
DE112010003788B4 (de) Datenspeicherung
DE69535330T2 (de) Caching-System mit Explitzer Folgeliste
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
US7769952B2 (en) Storage system for controlling disk cache
US5596736A (en) Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE102008022831B4 (de) Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens
US6988165B2 (en) System and method for intelligent write management of disk pages in cache checkpoint operations
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
US4571674A (en) Peripheral storage system having multiple data transfer rates
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
US6615318B2 (en) Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries
DE69935737T2 (de) Verfahren und gerät um zeitliche und feste daten in einer einzelspeicherstruktur zu verwalten
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
EP0077452A2 (de) Datenaufstieg in Speicher-Subsystemen
DE112018002951T5 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
JPH07506923A (ja) キャッシュ管理を動的に制御するためのシステム及び方法
US6851024B1 (en) Exclusive caching in computer systems
JPH0427580B2 (de)
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE102013209318B4 (de) Durchführen von asynchronen Löschscans mit Zwischenspeicherungs- und Auslagerungsvorgängen
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ASS., 7

8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee