-
GEBIET DER ERFINDUNG
-
Diese Erfindung bezieht sich auf durch einen Computer implementierte Cache-Speicher eines Datenspeichers und insbesondere auf Cache-Speicher, die mehrere Ebenen aufweisen.
-
HINTERGRUND DER ERFINDUNG
-
Durch Computer implementierte Datenspeichersysteme enthalten üblicherweise verschiedene Typen der Datenspeicherung, bei denen Daten für Host-Computersysteme gespeichert werden. Speichersteuereinrichtungen oder Speichersteuereinheiten steuern den Zugriff auf Datenspeichermedien und Arbeitsspeicher in Reaktion auf Lese- und Schreibanforderungen. Die Speichersteuereinrichtungen können die Daten steuern in Übereinstimmung mit Datenspeichereinheiten wie etwa Zwischenspeicher, nichtflüchtige Speicher, RAID (Redundant Array of Independent Disks), JBOD (Just a Bunch Of Disks) usw., die in verschiedenen Redundanz-, Zugriffsgeschwindigkeits- und Sicherheitsebenen angeordnet werden.
-
Beispielsweise weist ein ESS-(Enterprise Storage System)Datenspeichersystem der International Business Machines Corp. (IBM®) wie etwa ein System DS8000TM redundante Cluster aus Computer-Entitäten, Zwischenspeichern, nichtflüchtigen Speichern usw. auf, die als „zentrale Elektronik-Komplexe” („central electronics complexes”) oder „CECs” bezeichnet werden.
-
In einem Datenspeichersystem weist ein Cache-Speicher einen schnellen Arbeitsspeicher oder eine schnelle Speichereinheit auf, der bzw. die zum Speichern von Daten oder Befehlen verwendet wird, auf die kurz zuvor zugegriffen wurde, häufig zugegriffen wird oder möglicherweise in Kürze zugegriffen wird. Auf Daten, die im Cache-Speicher gespeichert sind, kann rasch zugegriffen werden, anstatt sie abzurufen oder neu zu berechnen, wodurch sowohl Zeit als auch Ressourcen gespart werden.
-
Ein Cache-Speicher kann mit mehreren Ebenen bereitgestellt werden. Ein Cache-Datenspeichersystem kann z. B. sowohl einen „ersten” oder „primären” Cache-Speicher als auch einen „sekundären” Cache-Speicher aufweisen. Üblicherweise verfügt der primäre Cache-Speicher über einen schnelleren Zugriff und ist pro Dateneinheit kostenintensiver als ein sekundärer Cache-Speicher, wobei der sekundäre Cache-Speicher eine höhere Speicherkapazität als der primäre Cache-Speicher aufweist. Ein primärer Cache-Speicher beinhaltet z. B. einen dynamischen Direktzugriffsspeicher (DRAM), während der sekundäre Cache-Speicher Flash-Speicher-Halbleiterdatenträger (SSD) aufweist wie etwa „Flash_Cache” (Handelsmarke von International Business Corp.). Wenn auf Daten zugegriffen wird, kann ein Datenverarbeitungssystem oder eine Datenverarbeitungseinheit zuerst nach Daten in dem primären Cache-Speicher suchen und wenn dort keine Daten vorhanden sind, nach den Daten im sekundären Cache-Speicher suchen. Wenn Daten geschrieben werden, kann ein Datenverarbeitungssystem oder eine Datenverarbeitungseinheit Daten in den primären Cache-Speicher schreiben. Wenn auf Daten in dem primären Cache-Speicher nicht sofort oder häufig zugegriffen wird, können diese Daten zu dem sekundären Cache-Speicher herabgestuft werden. Wenn auf Daten von dem sekundären Cache-Speicher nicht sofort oder häufig zugegriffen wird, können sie zu einem Datenspeicher mit geringerer Zugriffsgeschwindigkeit wie etwa RAID, JBOD usw. verlagert werden.
-
Üblicherweise wird ein LRU-Algorithmus (LRU – least recently used, am längsten nicht verwendet) zum Auswählen verwendet, welche Daten zu der nächstniedrigen Ebene herabzustufen sind.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Verfahren, durch einen Computer implementierte Cache-Datenspeichersysteme und Computerprogrammprodukte werden zum Steuern des Belegens mit Daten in einem sekundären Cache-Speicher eines Datenspeichers bereitgestellt. In diesem Kontext bedeutet „sekundär” jede Ebene des Cache-Speichers des Datenspeichers zwischen einer ersten Ebene eines Cache-Speichers des Datenspeichers und einem anderen Datenspeicher. Daher kann es sich in einem Drei-Ebenen-Cache-Speicher des Datenspeichers bei einem „sekundären” Cache-Speicher des Datenspeichers um die zweite Ebene oder die dritte Ebene handeln.
-
Bei einer Ausführungsform eines durch einen Computer implementierten Cache-Datenspeichersystems, das einen sekundären Cache-Speicher des Datenspeichers aufweist, werden folgende Schritte ausgeführt:
Ermitteln einer Vergleichsmaßzahl potenzieller Daten, die in den Cache-Speicher des Datenspeichers eingegeben werden sollen;
Einstellen eines Schwellenwerts der Vergleichsmaßzahl gemäß einer Wirksamkeit der Zwischenspeicherung eines aktuellen Zustands des sekundären Cache-Speichers des Datenspeichers;
Zurückweisen potenzieller Daten, die dem Cache-Speicher des Datenspeichers bereitgestellt werden, deren Vergleichsmaßzahl kleiner als der Schwellenwert ist; und
Aufnehmen in den sekundären Cache-Speicher des Datenspeichers von potenziellen Daten, die dem Cache-Speicher des Datenspeichers bereitgestellt werden, deren Vergleichsmaßzahl gleich dem Schwellenwert der Vergleichsmaßzahl oder größer als dieser ist.
-
Bei einer weiteren Ausführungsform wird die Wirksamkeit der Zwischenspeicherung ermittelt durch:
Vorhalten einer Referenzmaßzahl in Bezug auf Treffer von Daten, die zuletzt in den sekundären Cache-Speicher des Datenspeichers eingegeben wurden;
Vorhalten einer Referenzmaßzahl in Bezug auf Treffer von Daten, die zuletzt aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden; und
der Einstellschritt weist ein Einstellen des Schwellenwerts der Vergleichsmaßzahl gemäß der Referenzmaßzahl der zuletzt eingegebenen Daten und der Referenzmaßzahl der zuletzt verlagerten Daten auf.
-
Bei einer nochmals weiteren Ausführungsform weist der Einstellschritt auf:
Vergleichen der Referenzmaßzahl der zuletzt eingegebenen Daten mit der Referenzmaßzahl der zuletzt verlagerten Daten;
Verkleinern des Schwellenwerts, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten größer ist als die Referenzmaßzahl der zuletzt verlagerten Daten; und
Vergrößern des Schwellenwerts, wenn die Referenz-Maßzahl der zuletzt eingegebenen Daten kleiner ist als die Referenz-Maßzahl der zuletzt verlagerten Daten.
-
Bei einer weiteren Ausführungsform, bei der das Cache-Datenspeichersystem zusätzlich einen primären Cache-Speicher des Datenspeichers aufweist, beruht die Vergleichsmaßzahl auf der Aktualität (heat) der Daten, wenn die Daten in dem primären Cache-Speicher des Datenspeichers des Cache-Datenspeichersystems gespeichert wurden.
-
Bei einer weiteren Ausführungsform weisen die Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, Daten auf, die aus dem primären Cache-Speicher des Datenspeichers herabgestuft wurden.
-
Bei einer weiteren Ausführungsform werden die zuletzt eingegebenen Daten in einer MRI-Liste aufgeführt und die zuletzt verlagerten Daten in einer MRE-Liste aufgeführt und die Referenzmaßzahl weist einen Zählwert von Treffern in dem sekundären Cache-Speicher des Datenspeichers für die in der MRI-Liste aufgeführten Daten auf, während sich die Daten in dem sekundären Cache-Speicher des Datenspeichers befinden, und Treffern für die Daten in der MRE-Liste, nachdem die Daten aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden.
-
Bei einer weiteren Ausführungsform, bei der die Daten Speicherseiten von Daten aufweisen, wird der Zählwert von Treffern für die Vergleichsmaßzahl seitenweise ermittelt, und die Referenzmaßzahlen der zuletzt eingegebenen Daten und der zuletzt verlagerten Daten werden für alle die Seiten ermittelt, die in der MRI-Liste bzw. der MRE-Liste aufgeführt sind.
-
Bei einer weiteren Ausführungsformweist der Einstellschritt zusätzlich auf, dass der Schwellenwert der Vergleichsmaßzahl unverändert bleibt, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten und die Referenzmaßzahl der zuletzt verlagerten Daten im Wesentlichen gleich sind.
-
Bei einer weiteren Ausführungsform weist der primäre Cache-Speicher des Datenspeichers einen primären DRAM-Cache-Speicher auf, der Daten an den sekundären Cache-Speicher bereitstellt, und der sekundäre Cache-Speicher weist einen Flash-Speicher auf.
-
Für ein besseres Verständnis der vorliegenden Erfindung sollte Bezug auf die nachfolgende genaue Beschreibung genommen werden, die in Verbindung mit den beigefügten Zeichnungen erfolgt.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschaltplan eines beispielhaften Netzwerks und eines durch einen Computer implementierten Speicherserversystems, bei dem die vorliegende Erfindung implementiert werden kann;
-
2 ist eine schematische Darstellung eines durch einen Computer implementierten Cache-Datenspeichersystems von 1;
-
3 ist eine schematische Darstellung verschiedener Zustände des Systems der 1 und 2; und
-
4 ist ein Ablaufplan, der ein beispielhaftes Verfahren zum Betreiben des Systems der 1 und 2 darstellt.
-
GENAUE BESCHREIBUNG DER ERFINDUNG
-
Die Erfindung wird in der folgenden Beschreibung in bevorzugten Ausführungsformen bei Bezugnahme auf die Figuren beschrieben, in denen gleiche Nummern dieselben oder ähnliche Elemente repräsentieren. Zwar wird diese Erfindung in Bezug auf die beste Art zum Erreichen der Zielsetzung dieser Erfindung beschrieben, einem Fachmann ist jedoch klar, dass im Hinblick auf diese Erkenntnisse Variationen realisiert werden können, ohne vom Umfang der Erfindung abzuweichen.
-
In 1 ist ein Beispiel einer computergestützten Netzwerkarchitektur 100 mit einem durch einen Computer implementierten Datenspeichersystem 110 dargestellt, das ein durch einen Computer implementiertes Cache-Datenspeichersystem und ein Verfahren umsetzen kann, die hier erläutert werden. Die Architektur 100 wird lediglich beispielhaft dargestellt und soll nicht einschränkend sein. Das durch einen Computer implementierte Cache-Datenspeichersystem und das Verfahren, die hier offenbart werden, können auf eine große Vielzahl von unterschiedlichen Computern, Servern, Datenspeichersystemen und Netzwerkarchitekturen angewendet werden.
-
Die beispielhafte Netzwerkarchitektur 100 kann ein oder mehrere Host-Computersysteme 102 aufweisen, die mit einem Netzwerk verbunden sind, wie etwa ein Speicherbereich-Netzwerk (SAN) 108. Das Netzwerk kann jede geeignete private oder öffentliche Zusammenschaltung unter Verwendung jedes geeigneten Protokolls aufweisen.
-
Das Speichersystem 110 weist eine Speichersteuereinrichtung 200 auf, die so eingerichtet ist, dass sie Daten zu und von den Switches 202 und dem Datenspeicher 203 und 204 überträgt und deren Betrieb steuert. Der Datenspeicher kann z. B. Arrays aus Halbleiterdatenträgern und Festplattenlaufwerken aufweisen, auf die über Switches 202 zugegriffen werden kann. Alternativ oder zusätzlich kann der Datenspeicher 203 und 204 einzelne Einheiten aufweisen oder kann Datenspeicher-Bibliotheken mit vielen Einheiten aufweisen. Alle oder einige der Host-Systeme 102 können das Speichersystem 110 steuern und nutzen und die Speichersteuereinrichtung 200 und das System zum Zwischenspeichern von Daten nutzen, die darin enthalten sind.
-
Das System zum Zwischenspeichern kann in einer Speichersteuereinrichtung 200 implementiert sein und kann außerdem auf weitere Speichersysteme angewendet werden. Wie gezeigt weist die Speichersteuereinrichtung 200 einen oder mehrere Server 206 auf. Die Steuereinrichtung 200 kann außerdem Host-Adapter 208 und Einheitenadapter 210 aufweisen, um die Schnittstellen bereitzustellen, die die Steuereinrichtung 200 mit Host-Systemen 102 bzw. dem Datenspeicher 203 und 204 verbinden. Mehrere Server 206a, 206b können Redundanz bereitstellen, um sicherzustellen, dass Daten stets für angeschlossene Hosts 102 zur Verfügung stehen. Sollte ein Server 206a ausfallen, kann somit der andere Server 206b funktionsfähig bleiben, um sicherzustellen, dass ein Datentransfer zwischen den Host-Systemen 102 und dem Datenspeicher 203 und 204 fortgesetzt werden kann. Dieser Prozess kann als „Failover” (Ausfallsicherung) bezeichnet werden.
-
Ein Beispiel eines Speichersystems 110 mit einer Architektur, die der in 1 dargestellten Architektur ähnlich ist, ist der DS8000TM Enterprise Storage Server der International Business Machines Corp. (IBM®). Bei dem DS8000TM handelt es sich um eine leistungsfähige Speichersteuereinrichtung mit hoher Kapazität, die einen Datenspeicher bereitstellt, der so ausgelegt ist, dass er einen Dauerbetrieb unterstützt und eine Virtualisierung des Datenspeichers umsetzt, wobei er hier lediglich als Beispiel der Ausführungsform präsentiert wird und nicht einschränkend sein soll. Daher ist das hier erläuterte System zum Zwischenspeichern nicht auf den DS8000TM beschränkt, sondern kann bei jeder vergleichbaren Speichersteuereinrichtung 200 implementiert werden, die ein Zwischenspeichern aufweist, unabhängig von Hersteller, Produktbezeichnung oder Komponenten oder Komponentenbezeichnungen, die dem System 110 zugehörig sind.
-
Bei dem Beispiel von 1 kann jeder Server 206 einen oder mehrere Computerprozessoren 212 und einen Speicher 214 aufweisen. Die Computerprozessoren 212 können interne Verarbeitungs- und Speicherkapazitäten aufweisen, um Softwaremodule zu speichern, die in den Prozessoren ablaufen und u. a. verwendet werden, um auf Daten in dem Datenspeicher 203 und 204 zuzugreifen.
-
Bei einer Ausführungsform kann der Speicher 214 einen Cache-Speicher 218 aufweisen. Immer dann, wenn ein Host 102 auf Daten von dem Speichersystem 110 beispielsweise bei einer Leseoperation zugreift, kann der Server 206, der die Operation, zum Beispiel das Lesen von Daten vom Speicher 204 ausführt, die Daten für den Fall, dass sie erneut benötigt werden, in seinem Cache-Speicher 218 speichern. Wenn auf die Daten durch einen Host 102 erneut zugegriffen wird, kann der Server 206 die Daten von dem Cache-Speicher 218 holen, anstatt sie vom Speicher 204 zu holen, wodurch Zeit und Ressourcen eingespart werden. Wenn ein Host-System 102 in ähnlicher Weise einen Schreibvorgang ausführt, kann der Server 206 die zu speichernden Daten im Cache-Speicher 218 speichern oder das Host-System 102 kann anweisen, dass die zu speichernden Daten im Cache-Speicher 218 gespeichert werden, damit sie zu einem späteren Zeitpunkt zum Speicher 204 ausgelagert werden. Wenn Schreibdaten im Cache-Speicher 218 gespeichert sind, können die Schreibdaten außerdem in einem nichtflüchtigen Speicher (NVS) 220 des gegenüberliegenden Servers 206 gespeichert werden, so dass die Schreibdaten durch den gegenüberliegenden Server 206 wiederhergestellt werden können, wenn der erste Server 206 ausfällt.
-
In den 1 und 2 kann ein Speichersystem 110 sowohl einen Datenspeicher 204 wie etwa Festplattenlaufwerke als auch einen Datenspeicher 203 wie etwa Halbleiterdatenträger (SSDs) auf der Grundlage eines nichtflüchtigen Speichers wie z. B. ein Flash-Speicher aufweisen. Die Eingabe/Ausgabe-(E/A-)Leistung von SSDs oder anderen Typen eines Halbleiterspeichers ist üblicherweise viel höher als die E/A-Leistung von Festplattenlaufwerken. Wegen der höheren E/A-Leistung können die SSDs 203 bei bestimmten Ausführungsformen verwendet werden, um einen großen sekundären Cache-Speicher 300 neben dem Cache-Speicher 218, der als primärer Cache-Speicher dient, und den Festplattendatenträgern 204 bereitzustellen. Die Verwendung eines großen sekundären Cache-Speichers 300 kann die E/A-Leistung des Speichersystems 110 erheblich verbessern.
-
Wenn bei Verwendung des sekundären Cache-Speichers 300 eine Leseanforderung durch einen Server 206 empfangen wird, kann der Server anfangs in dem primären Cache-Speicher 218 nach Daten suchen, und wenn die Daten nicht vorhanden sind, in dem sekundären Cache-Speicher 300, der sich in den SSDs 203 befindet, nach den Daten suchen. Wenn die Daten in keinem Cache-Speicher zur Verfügung stehen, kann der Server 206 die Daten von den Festplattendatenträgern 204 abrufen. Wenn Daten geschrieben oder modifiziert werden, kann ein Server 205 in ähnlicher Weise anfangs die Daten oder die modifizierten Daten in den primären Cache-Speicher 218 schreiben. Die Daten können schließlich zu dem sekundären Cache-Speicher 300 verschoben werden, um in dem primären Cache-Speicher 218 Platz zu schaffen. Diese Daten können schließlich zu den Plattenlaufwerken 204 verschoben werden, um in dem sekundären Cache-Speicher 300 Platz zur Verfügung zu stellen.
-
Wenn Daten von Festplattenlaufwerken 204 gelesen werden, können sie auch in dem primären Cache-Speicher 218 gespeichert werden, falls erneut auf sie zugegriffen werden soll.
-
Der sekundäre Cache-Speicher 300 kann beispielsweise so dimensioniert sein, dass er etwa ein bis zwanzig Prozent der Gesamt-Datenspeicherkapazität des Speichersystems 110 bereitstellt. Somit können für ein Speichersystem 110, das einen Datenspeicher von etwa 40 Terabyte (sowohl von den Festplattenlaufwerken 204 als auch den SSDs 203) bereitstellt, etwa 2 Terabyte dieses Speicherplatzes als sekundärer Cache-Speicher 300 verwendet werden. Der primäre Cache-Speicher 218 hat üblicherweise einen kleinen prozentualen Anteil von der Größe des sekundären Cache-Speichers 300. In einer beispielhaften Ausführungsform kann der Speicherraum sowohl für den primären Cache-Speicher 218 als auch für den sekundären Cache-Speicher 300 in Form von Speicherseiten angeordnet sein, um eine einfache Handhabung bereitzustellen.
-
In den 2, 3 u 4 wird bei einer Ausführungsform ein dynamisch eingestellter Schwellenwert angewendet, um ein selektives Belegen des sekundären Cache-Speichers 300 zu gewährleisten.
-
Bei einer Ausführungsform, bei der der Schwellenwert verwendet wird, um Daten zu filtern, die aus dem primären Cache-Speicher 218 herabgestuft wurden, wird die Einstellung des Schwellenwerts durch Vorhalten von statistischen Angaben lediglich zu Speicherseiten realisiert, die in dem primären Cache-Speicher 218 und einem kleinen Anteil des sekundären Cache-Speichers 300 zwischengespeichert wurden.
-
Die statistischen Angaben, die durch die Steuereinrichtung 200 vorgehalten werden, weisen Vergleichsmaßzahlen 310 von Speicherseiten in dem primären Cache-Speicher 218 auf, bei denen die Möglichkeit besteht, dass sie zu dem sekundären Cache-Speicher 300 herabgestuft werden.
-
Bei einem Beispiel einer Vergleichsmaßzahl handelt es sich um einen Zählwert der Häufigkeit, wie oft auf die Datenseite zugegriffen wurde („Treffer”), seit sie in dem primären Cache-Speicher 218 platziert wurde. Da bei den meisten Cache-Speichern auf der Grundlage eines LRU-Algorithmus (least recent used – am längsten nicht verwendet) (von dem einem Fachmann viele Typen bekannt sind) ermittelt wird, welche Daten herabzustufen sind, besteht eine wirksame Art zum Erhalten der statistischen Angaben darin, die Vergleichsmaßzahl aller Speicherseiten in dem primären Cache-Speicher 218 zu verfolgen und vorzuhalten. Die Anzahl von Treffern kann z. B. in die Form eines Zählers in dem Metadaten-Eintrag für jede Speicherseite in dem primären Cache-Speicher 218 implementiert werden.
-
Zu weiteren Beispielen von Vergleichsmaßzahlen gehören eine Anzahl von „Treffern” einer Speicherseite über eine begrenzte Zeitspanne, während die Speicherseite in dem primären Cache-Speicher 218 platziert war, und ein Verhältnis von „Treffern” auf einer Speicherseite im Vergleich zu einem Mittelwert von „Treffern” auf allen Speicherseiten in dem primären Cache-Speicher 218.
-
Bei einer Ausführungsform handelt es sich bei der Vergleichsmaßzahl und den potenziellen Daten lediglich um Daten, die z. B. bei einer Leseoperation aus dem Speicher 204 kopiert wurden.
-
In 3 ist der einstellbare Schwellenwert T in der Form einer Vergleichsmaßzahl. Der Schwellenwert T der Vergleichsmaßzahl wird gemäß einer Wirksamkeit der Zwischenspeicherung eines aktuellen Zustands des sekundären Cache-Speichers 300 des Datenspeichers eingestellt. Die Steuereinrichtung 200 von 1 vergleicht die Vergleichsmaßzahl 310 von 2 einer potenziellen Speicherseite, die herabgestuft werden soll 320, mit dem Schwellenwert T der Vergleichsmaßzahl. Die Steuereinrichtung weist die potenziellen Daten zurück 330, die dem sekundären Cache-Speichers des Datenspeichers bereitgestellt werden, wenn die Vergleichsmaßzahl 310 der potenziellen Daten kleiner als der Schwellenwert ist. Bei einem Beispiel werden die zurückgewiesenen Daten 330 verworfen 340. Verwerfen bedeutet, dass eine Referenz auf die Daten, wenn sie aus dem Speicher 204 von 1 kopiert wurden, aus dem Speicher 218 entfernt werden und Metadaten (wie etwa ein Index) des primären Speichers 218 und die ursprüngliche Kopie werden im Speicher 204 vorgehalten.
-
Wenn dagegen die potenziellen Daten 320 Daten enthalten, die anfangs zu dem primären Cache-Speicher 218 geschrieben wurden, bedeutet Verwerfen, dass die Daten zum Datenspeicher 204 von 1 geschrieben werden.
-
Weiterhin in 3 nimmt die Steuereinrichtung 200 von 1 in den sekundären Cache-Speicher 300 des Datenspeichers potenzielle Daten 350 auf, die dem sekundären Cache-Speicher 300 des Datenspeichers bereitgestellt wurden, deren Vergleichsmaßzahl 310 von 2 gleich dem Schwellenwert T der Vergleichsmaßzahl oder größer als dieser ist.
-
In den 2 und 3 erfolgt bei einer Ausführungsform die Einstellung der Wirksamkeit der Zwischenspeicherung auf den Schwellenwert T der Vergleichsmaßzahl, die durch die Steuereinrichtung 200 von 1 vorgehalten wird, auf der Grundlage des Vorhaltens einer Referenzmaßzahl 360 in Bezug auf Treffer von Daten, die in den sekundären Cache-Speicher 300 des Datenspeichers zuletzt eingegeben wurden 365 und des Vorhaltens einer Referenzmaßzahl 370 in Bezug auf Treffer von Daten, die aus dem sekundären Cache-Speicher 300 des Datenspeichers zuletzt verlagert wurden (MRE) 375. Bei einer Ausführungsform sind die Anzahlen von Speicherseiten mit Daten, die bei den MRI- und MRE-Referenzmaßzahlen verwendet werden, gleich. Beispielsweise sind die zuletzt eingegebenen Daten 365 in einer MRI-Liste 380 aufgeführt und die zuletzt verlagerten Daten sind in einer MRE-Liste 390 aufgeführt und die Referenzmaßzahl beinhaltet ein Zählen von Treffern in dem sekundären Cache-Speicher des Datenspeichers für die in der MRI-Liste aufgeführten Daten, während sich die Daten in dem sekundären Cache-Speicher des Datenspeichers befinden, und Treffer für die in der MRE-Liste aufgeführten Daten, nachdem die Daten aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden. Die Listen 380, 390 können in Form eines kleinen Ghost-Cache-Speichers vorliegen, der eine Ersetzungsstrategie nach dem FIFO-Prinzip verwendet. Alternativ können die Listen ermittelt werden, indem alle Speicherseitenkennungen hinzugefügt und gelöscht werden, wenn sie in den sekundären Cache-Speicher, innerhalb des sekundären Cache-Speichers und aus dem sekundären Cache-Speicher verschoben werden. Bei jeder Speicherseitenreferenz aktualisiert die Steuereinrichtung die beiden Listen, wobei die Anzahl von Treffern verfolgt wird, die in der MRI-Liste „r(MRI)” und in der MRE-Liste „r(MRE)” vorkommen.
-
Bei einer weiteren Ausführungsform, bei der die Daten Speicherseiten von Daten aufweisen, wird ein Zählwert von Treffern für die Aktualitätsmaßzahl 310 seitenweise ermittelt, bei einem Beispiel die Anzahl von Treffern für eine Speicherseite, während sich diese Speicherseite in dem primären Cache-Speicher 218 befindet. Dagegen werden die Referenzmaßzahlen 360, 370 der zuletzt eingegebenen Daten und der zuletzt verlagerten Daten für alle die Speicherseiten ermittelt, die in der MRI-Liste 365 bzw. der MRE-Liste 375 aufgeführt sind.
-
Bei einer Ausführungsform vergleicht die Steuereinrichtung 200 von 1 die Referenzmaßzahl 360 der zuletzt eingegebenen Daten mit der Referenzmaßzahl 370 der zuletzt verlagerten Daten und verringert den Schwellenwert T, wenn die Referenzmaßzahl 360 der zuletzt eingegebenen Daten größer ist als die Referenzmaßzahl 370 der zuletzt verlagerten Daten, und vergrößert der Schwellenwert, wenn die Referenzmaßzahl 360 der zuletzt eingegebenen Daten kleiner ist als die Referenzmaßzahl 370 der zuletzt verlagerten Daten.
-
In den 2, 3 und 4 stuft die Steuereinrichtung 200 von 1 bei einer Ausführungsform im Schritt 400 eine Speicherseite p aus dem primären Cache-Speicher 218 herab.
-
Im Schritt 410, der in einer Zeitspanne auftreten kann, die nicht mit dem Schritt 400 in Beziehung steht, wird die Referenzmaßzahl 360 der zuletzt eingegebenen Daten 365 des sekundären Cache-Speichers 300 mit der Referenzmaßzahl 370 der zuletzt verlagerten Daten 375 verglichen.
-
Bei einer Ausführungsform muss im stationären Zustand für jede Speicherseite, die in den sekundären Cache-Speicher 300 aufgenommen wird, eine Seite verlagert werden. Das heißt, jede Aufnahme bedeutet, dass eine Seite ersetzt wird. Daher wird bei jedem Herabstufen im primären Cache-Speicher die Steuereinrichtung die letzten n Aufnahmeentscheidungen des sekundären Cache-Speichers bewerten: wenn diese richtig waren (d. h. ein größeres Trefferverhältnis zur Folge hatten), wird der Schwellenwert T verringert. Wenn im Einzelnen die Referenzmaßzahl 360 der zuletzt eingegebenen Daten größer ist 415 als die Referenzmaßzahl 370 der zuletzt verlagerten Daten, wird der Schwellenwert T verringert 420. Das heißt, der vorhergehende Schwellenwert T0 wird um eine Einheit der Maßzahl verringert und wird der neue Schwellenwert T1. Bei einem Beispiel ermöglicht die Einstellung für T1, dass eine Speicherseite mit einem Treffer weniger in den Cache-Speicher aufgenommen wird. Der geringere Schwellenwert hat ein dynamischeres Belegen des sekundären Cache-Speichers zur Folge.
-
Wenn dagegen die n letzten Aufnahmeentscheidungen des sekundären Cache-Speichers falsch waren (d. h. ein kleineres Trefferverhältnis zur Folge hatten), wird der Schwellenwert T vergrößert. Wenn im Einzelnen die Referenzmaßzahl 360 der zuletzt eingegebenen Daten kleiner ist 425 als die Referenzmaßzahl 370 der zuletzt verlagerten Daten, wird der Schwellenwert T vergrößert 430. Das heißt, der vorhergehende Schwellenwert T0 wird um eine Einheit der Maßzahl vergrößert und wird der neue Schwellenwert T1. Bei einem Beispiel ermöglicht die Einstellung für T1, dass nur eine Speicherseite mit einem Treffer mehr in den Cache-Speicher aufgenommen wird. Der höhere Schwellenwert hat zur Folge, dass eine größere Anzahl von ankommenden Speicherseiten verworfen wird 340.
-
Bei einer Ausführungsform kann ein alternativer stationärer Zustand aufrechterhalten werden, wobei dann, wenn die Referenzmaßzahl 360 der zuletzt eingegebenen Daten und die Referenzmaßzahl 370 der zuletzt verlagerten Daten im Wesentlichen gleich sind 440, der Schwellenwert T der Vergleichsmaßzahl unverändert bleibt.
-
Alternativ dazu kann die Einstellung des Schwellenwerts T in bestimmten Zeitabständen durchgeführt werden.
-
Wenn r(MRI) > r(MRE), bedeutet das folglich, dass die neu aufgenommenen Speicherseiten aktueller sind als die verlagerten Speicherseiten und der Schwellenwert T geringer sein sollte. Wenn dagegen r(MRI) < r(MRE), bedeutet das, dass die verlagerten Speicherseiten für das Host-System 102 wertvoller waren als die neu aufgenommenen Speicherseiten und nicht durch die neuen Speicherseiten hätten ersetzt werden sollen; deswegen sollten die Belegungsrate kleiner und der Aufnahmeschwellenwert T größer sein.
-
Bei einer Ausführungsform wird im Schritt 460 der Vergleichswert 310 der herabgestuften Speicherseite 320 „h(p)” mit dem neuen Schwellenwert T1 verglichen. Die Steuereinrichtung weist die potenziellen Daten 320 zurück 465, 330, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, wenn die Vergleichsmaßzahl 310 der potenziellen Daten kleiner ist als der Schwellenwert T, indem z. B. die zurückgewiesenen Daten verworfen werden 340. Die Steuereinrichtung 200 von 1 nimmt in den sekundären Cache-Speicher 300 des Datenspeichers dem sekundären Cache-Speicher 300 des Datenspeichers bereitgestellte potenzielle Daten 320 auf 470, 350, deren Vergleichsmaßzahl 310 gleich dem Schwellenwert T der Vergleichsmaßzahl oder größer als dieser ist.
-
Wenn es beispielsweise bei der Einstellung des Schwellenwerts T während der letzten 1000 Zugriffe 50 Treffer in der MRE-Liste (auf einer ihrer Seiten) und lediglich 10 Treffer in der MRI-Liste (auf einer ihrer Seiten) gegeben hat, bedeutet das, dass Speicherseiten mit einem höheren Wert der Zwischenspeicherung aus dem sekundären Cache-Speicher verlagert werden, um neue Speicherseiten mit einem geringeren Wert der Zwischenspeicherung einzugeben, und deswegen sollte die Steuereinrichtung die Aufnahmerate für den sekundären Cache-Speicher 300 verringern (den Schwellenwert T erhöhen). Wenn es dagegen während der letzten 100 Zugriffe 50 Treffer in der MRI-Liste (auf einer ihrer Seiten) und lediglich 10 Treffer in der MRE-Liste (auf einer ihrer Seiten) gegeben hat, bedeutet das, dass neue Seiten mit einem höheren Wert der Zwischenspeicherung in den sekundären Cache-Speicher eingegeben werden und Seiten mit einem geringeren Wert der Zwischenspeicherung verlagert werden, deswegen sollte die Steuereinrichtung die Aufnahmerate für den sekundären Cache-Speicher 300 vergrößern (den Schwellenwert T verringern), um die Aufnahme einer größeren Anzahl von Speicherseiten mit einem höheren Wert der Zwischenspeicherung zu ermöglichen.
-
Einem Fachmann ist klar, dass die hier offenbarten Ausführungsformen der vorliegenden Erfindung, darunter die durch einen Computer implementierte Steuereinrichtung 200 zum Steuern des Belegens eines sekundären Cache-Speichers 300 des Systems 100 der 1 und 2, und die hier bereitgestellte Funktionalität als System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Ausführungsformen der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Kombination hiervon wie etwa eine Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle als ”Schaltung”, ”Modul” oder ”System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren nichtflüchtigen computerlesbaren Medien verkörpert wird, die computerlesbaren Programmcode aufweisen, der darin ausgeführt wird.
-
Jede Kombination aus einem oder mehreren nichtflüchtigen computerlesbaren Medien kann genutzt werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Speichermedium handeln. Ein computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede geeignete Kombination des Vorhergehenden sein, ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
-
Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, HF-Medien oder jeder geeigneten Kombination aus dem Vorhergehenden, ohne darauf beschränkt zu sein.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache ”C” oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Ausführungsformen der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle implementiert werden können. Diese Computerprogrammbefehle können an einen Prozessor eines Universalcomputers, eines Spezialcomputers oder eine andere programmierbare Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
-
Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, zu dem Befehle gehören, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
-
Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen durch einen Computer implementierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, bereitzustellen.
-
Einem Fachmann ist klar, dass Änderungen in Bezug auf die oben erläuterten Verfahren ausgeführt werden können, darunter Änderungen an der Reihenfolge der Schritte. Des Weiteren ist es für einen Fachmann klar, dass andere Anordnungen spezifischer Komponenten als die hier dargestellten verwendet werden können. Zwar wurden die bevorzugten Ausführungsformen der vorliegenden Erfindung genau erläutert, es ist jedoch offensichtlich, dass Modifikationen und Anpassungen an diese Ausführungsformen für einen Fachmann vorstellbar sind, ohne von dem Umfang der vorliegenden Erfindung abzuweichen, der in den folgenden Ansprüchen dargestellt ist.