DE10050171B4 - Verfahren zur Steuerung von Cache-Speichern - Google Patents

Verfahren zur Steuerung von Cache-Speichern Download PDF

Info

Publication number
DE10050171B4
DE10050171B4 DE10050171A DE10050171A DE10050171B4 DE 10050171 B4 DE10050171 B4 DE 10050171B4 DE 10050171 A DE10050171 A DE 10050171A DE 10050171 A DE10050171 A DE 10050171A DE 10050171 B4 DE10050171 B4 DE 10050171B4
Authority
DE
Germany
Prior art keywords
cache
data
order
cache memory
replacement
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.)
Expired - Fee Related
Application number
DE10050171A
Other languages
English (en)
Other versions
DE10050171A1 (de
Inventor
Atsushi Sagamihara Kanamaru
Hideo Machida Asano
Akira Zama Kibashi
Takahiro Yokohame Saito
Keiji Fujisawa 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren zur Steuerung mehrerer jeweils wenigstens zwei Ersetzungsstrategien aufweisenden Cache-Speicher in einem einen Cache-Speicher niederer Ordnung und einen Cache-Speicher hoher Ordnung aufweisenden Computersystem, gekennzeichnet durch
Austauschen ausgewählter Daten zur Auswahl einer Ersetzungsstrategie für jeden Cache-Speicher zwischen dem Cache-Speicher hoher Ordnung und dem Cache-Speicher niederer Ordnung, wenn das Computersystem hochgefahren wird;
Auswahl einer Ersetzungsstrategie in jedem Cache-Speicher ungleich dem des anderen Cache-Speichers, auf der Basis der ausgetauschten ausgewählten Daten, wodurch der Cache-Speicher hoher Ordnung und der Cache-Speicher niederer Ordnung mit unterschiedlichen Ersetzungsstrategien betrieben werden.

Description

  • 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.

Claims (7)

  1. Verfahren zur Steuerung mehrerer jeweils wenigstens zwei Ersetzungsstrategien aufweisenden Cache-Speicher in einem einen Cache-Speicher niederer Ordnung und einen Cache-Speicher hoher Ordnung aufweisenden Computersystem, gekennzeichnet durch Austauschen ausgewählter Daten zur Auswahl einer Ersetzungsstrategie für jeden Cache-Speicher zwischen dem Cache-Speicher hoher Ordnung und dem Cache-Speicher niederer Ordnung, wenn das Computersystem hochgefahren wird; Auswahl einer Ersetzungsstrategie in jedem Cache-Speicher ungleich dem des anderen Cache-Speichers, auf der Basis der ausgetauschten ausgewählten Daten, wodurch der Cache-Speicher hoher Ordnung und der Cache-Speicher niederer Ordnung mit unterschiedlichen Ersetzungsstrategien betrieben werden.
  2. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 1, wobei einer der Cache-Speicher hoher oder niederer Ordnung ausgewählte Daten zur Auswahl einer Ersetzungsstrategie des anderen Cache-Speichers an den anderen Cache-Speicher überträgt; und wobei der andere Cache-Speicher seine Ersetzungsstrategie entsprechend der vom einen Cache-Speicher übertragenen ausgewählten Daten auswählt.
  3. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 2, wobei der eine Cache-Speicher seine Ersetzungsstrategie auswählt und seine ausgewählte Ersetzungsstrategie an den anderen Cache-Speicher überträgt; und wobei der andere Cache-Speicher eine Ersetzungsstrategie ungleich der der übertragenen Ersetzungsstrategie als seine Ersetzungsstrategie auswählt.
  4. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 2, wobei der eine Cache-Speicher mehrere Ersetzungsstrategien, die er nicht selbst auswählen kann, an den anderen Cache-Speicher überträgt; und wobei der andere Cache-Speicher eine der übertragenen Ersetzungsstrategien auswählt.
  5. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 1, wobei einer der Cache-Speicher hoher oder niederer Ordnung mehrere Ersetzungsstrategien, die er selbst auswählen kann, an den anderen Cache-Speicher überträgt; wobei der andere Cache-Speicher eine der übertragenen Ersetzungsstrategien auswählt, die durch den einen Cache-Speicher ausgewählt werden soll, und die ausgewählte Ersetzungsstrategie an den einen Cache-Speicher zurücksendet und dann eine Ersetzungsstrategie ungleich der zurückgesendeten Ersetzungsstrategie als seine Ersetzungsstrategie auswählt; und wobei der eine Cache-Speicher die zurückgesendete Ersetzungsstrategie als seine Ersetzungsstrategie auswählt.
  6. Verfahren zur Steuerung mehrerer Cache-Speicher nach Anspruch 1, wobei die Cache-Speicher hoher und niederer Ordnung mit unterschiedlichen Ersetzungsstrategien 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.
  7. 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.
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
JP29390999A JP3568110B2 (ja) 1999-10-15 1999-10-15 キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP11-293909 1999-10-15

Publications (2)

Publication Number Publication Date
DE10050171A1 DE10050171A1 (de) 2001-04-19
DE10050171B4 true 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 日本電気株式会社 キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム

Citations (2)

* 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
JPH11110139A (ja) * 1997-09-26 1999-04-23 Internatl Business Mach Corp <Ibm> データ読み取り方法及びデータ読み取り装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Patent Citations (2)

* 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
JPH11110139A (ja) * 1997-09-26 1999-04-23 Internatl Business Mach Corp <Ibm> データ読み取り方法及びデータ読み取り装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Computer, März 1994, S. 38-46 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10050171B4 (de) Verfahren zur Steuerung von Cache-Speichern
DE69535330T2 (de) Caching-System mit Explitzer Folgeliste
DE112010003788B4 (de) Datenspeicherung
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE60035151T2 (de) Hardware-Anordnung zur Verwaltung von Cachespeicherstrukturen in einem Datenspeichersystem
DE102020103817B4 (de) Schwellwertanpassung der Warteschlangentiefe eines Speicherklassenspeichers
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE19983793B4 (de) System mit einem Prozessor, auf dem mehrere, gleichzeitig aktive Ausführungsentitäten ausgeführt werden, und mit einem mehrere, den Ausführungsentitäten zugewiese Cache-Abschnitte aufweisenden Cache-Speicher
US7769952B2 (en) Storage system for controlling disk cache
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
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
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
JPH0427580B2 (de)
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE10062063B4 (de) Verfahren, System, Computerprogramm-Produkt und Speichervorrichtung zur Steuerung einer Warteschlange von Anforderungen unterschiedlicher Priorität
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
US6851024B1 (en) Exclusive caching in computer systems
DE112012001302T5 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE10055603A1 (de) Ausgewogener Zugriff auf Datenbestände mit redundanten Kopien, die in Datenspeicherbibliotheken abgelegt werden
DE60008148T2 (de) System und verfahren zum abrollen von schleifen in einem trace-cache
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102007052853A1 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter
DE102013209318B4 (de) Durchführen von asynchronen Löschscans mit Zwischenspeicherungs- und Auslagerungsvorgängen
DE112019001863T5 (de) Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen
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