DE112012004209T5 - Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers - Google Patents

Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers Download PDF

Info

Publication number
DE112012004209T5
DE112012004209T5 DE112012004209.3T DE112012004209T DE112012004209T5 DE 112012004209 T5 DE112012004209 T5 DE 112012004209T5 DE 112012004209 T DE112012004209 T DE 112012004209T DE 112012004209 T5 DE112012004209 T5 DE 112012004209T5
Authority
DE
Germany
Prior art keywords
data
metric
cache memory
secondary cache
recently
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.)
Pending
Application number
DE112012004209.3T
Other languages
English (en)
Inventor
c/o IBM Corporation Gupta Lokesh Mohan
S. c/o IBM Research GmbH Eleftheriou Evangelos
c/o IBM Research GmbH Koltsidas Ioannis
c/o IBM Research GmbH Pletka Roman
c/o IBM Research GmbH Haas Robert
c/o IBM Corporation Benhase Michael Thomas
c/o IBM Research GmbH Hu Xiao-Yu
c/o IBM Corp. Blinick Stephen
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 DE112012004209T5 publication Critical patent/DE112012004209T5/de
Pending legal-status Critical Current

Links

Images

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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions

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

Das Belegen mit Daten, die in einen sekundären Cache-Speicher eines Datenspeichers eingegeben werden sollen, wird gesteuert durch Ermitteln einer Vergleichsmaßzahl potenzieller Daten, Einstellen eines Schwellenwerts der Vergleichsmaßzahl; Zurückweisen potenzieller Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, deren Vergleichsmaßzahl kleiner ist als der Schwellenwert; und Aufnehmen potenzieller Daten, deren Vergleichsmaßzahl gleich dem Schwellenwert oder größer als dieser ist. Die Einstellung des Schwellenwerts der Vergleichsmaßzahl wird ermittelt durch Vergleichen einer Referenzmaßzahl in Bezug auf Treffer von Daten, die in den sekundären Cache-Speicher des Datenspeichers zuletzt eingegeben wurden, mit einer Referenzmaßzahl in Bezug auf Treffer bei Daten, die aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden; Verringern 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 Referenzmaßzahl der zuletzt eingegebenen Daten kleiner ist als die Referenzmaßzahl der zuletzt verlagerten Daten.

Description

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

Claims (25)

  1. Verfahren zum Belegen eines sekundären Cache-Speichers eines Datenspeichers eines durch einen Computer implementierten Cache-Datenspeichersystems mit Daten, wobei das Verfahren aufweist: Ermitteln einer Vergleichsmaßzahl potenzieller Daten, die in den sekundären Cache-Speicher eines 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 sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, deren Vergleichsmaßzahl kleiner ist als der Schwellenwert; und Aufnehmen von potenziellen Daten in den sekundären Cache-Speicher des Datenspeichers, deren Vergleichsmaßzahl gleich dem Schwellenwert der Vergleichsmaßzahl oder größer als dieser ist.
  2. Verfahren nach Anspruch 1, das zusätzlich aufweist: 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 wobei der Einstellschritt ein Einstellen des Schwellenwerts der Vergleichsmaßzahl gemäß der Referenzmaßzahl der zuletzt eingegebenen Daten und der Referenzmaßzahl der zuletzt verlagerten Daten aufweist.
  3. Verfahren nach Anspruch 2, wobei der Einstellschritt aufweist: Vergleichen der Referenzmaßzahl der zuletzt eingegebenen Daten mit der Referenzmaßzahl der zuletzt verlagerten Daten; wenn die Referenzmaßzahl der zuletzt eingegebenen Daten größer ist als die Referenzmaßzahl der zuletzt verlagerten Daten, Verringern des Schwellenwerts; und wenn die Referenzmaßzahl der zuletzt eingegebenen Daten kleiner ist als die Referenzmaßzahl der zuletzt verlagerten Daten, Vergrößern des Schwellenwerts.
  4. Verfahren nach Anspruch 3, wobei das Cache-Datenspeichersystem zusätzlich einen primären Cache-Speicher des Datenspeichers aufweist und wobei die Vergleichsmaßzahl auf dem Vergleichswert der Daten beruht, während diese Daten in dem primären Cache-Speicher des Datenspeichers des Cache-Datenspeichersystems gespeichert wurden.
  5. Verfahren nach Anspruch 4, wobei die Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, Daten aufweisen, die aus dem primären Cache-Speicher des Datenspeichers herabgestuft wurden.
  6. Verfahren nach Anspruch 5, wobei die zuletzt eingegebenen Daten in einer MRI-Liste aufgeführt sind und die zuletzt verlagerten Daten in einer MRE-Liste aufgeführt sind und die Referenzmaßzahl einen Zählwert 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 aufweist, nachdem die Daten aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden.
  7. Verfahren nach Anspruch 6, wobei die Daten Speicherseiten von Daten aufweisen und Zählwerte von Treffern für die Vergleichsmaßzahl seitenweise ermittelt werden und die Referenzmaßzahlen für die zuletzt eingegebenen Daten und die zuletzt verlagerten Daten für alle Speicherseiten ermittelt werden, die in der MRI-Liste bzw. MRE-Liste aufgeführt sind.
  8. Verfahren nach Anspruch 3, wobei der Einstellschritt zusätzlich aufweist, dass der Schwellenwert der Vergleichsmaßzahl unverändert bleibt, wenn die Referenzmaßzahl für die zuletzt eingegebenen Daten und die Referenzmaßzahl für die zuletzt verlagerten Daten im Wesentlichen gleich sind.
  9. Durch einen Computer implementiertes Cache-Datenspeichersystem, das aufweist: einen sekundären Cache-Speicher des Datenspeichers; und eine Steuereinrichtung zum Belegen des sekundären Cache-Speichers des Datenspeichers mit Daten, wobei die Steuereinrichtung: eine Vergleichsmaßzahl potenzieller Daten ermittelt, die in den sekundären Cache-Speicher des Datenspeichers eingegeben werden sollen; den Schwellenwert der Vergleichsmaßzahl gemäß einer Wirksamkeit der Zwischenspeicherung eines aktuellen Zustands des sekundären Cache-Speichers des Datenspeichers einstellt; potenzielle Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, zurückweist, deren Vergleichsmaßzahl kleiner als der Schwellenwert ist; und potenzielle Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, in den sekundären Cache-Speicher des Datenspeichers aufnimmt, deren Vergleichsmaßzahl gleich dem Schwellenwert oder größer als dieser ist.
  10. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 9, wobei die Steuereinrichtung zusätzlich: eine Referenzmaßzahl in Bezug auf Treffer von Daten vorhält, die zuletzt in den sekundären Cache-Speicher des Datenspeichers eingegeben wurden; eine Referenzmaßzahl in Bezug auf Treffer von Daten vorhält, die zuletzt aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden, und in dem Einstellschritt den Schwellenwert der Vergleichsmaßzahl gemäß der Referenzmaßzahl der zuletzt eingegebenen Daten und der Referenzmaßzahl der zuletzt verlagerten Daten einstellt.
  11. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 10, wobei die Steuereinrichtung in dem Einstellschritt: die Referenzmaßzahl der zuletzt eingegebenen Daten mit der Referenzmaßzahl der zuletzt verlagerten Daten vergleicht; den Schwellenwert erhöht, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten größer ist als die Referenzmaßzahl der zuletzt verlagerten Daten; und den Schwellenwert verringert, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten kleiner ist als die Referenzmaßzahl der zuletzt verlagerten Daten.
  12. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 11, das zusätzlich einen primären Cache-Speicher des Datenspeichers aufweist; und wobei die Vergleichsmaßzahl auf dem Vergleichswert der Daten beruht, während die Daten in dem primären Cache-Speicher des Datenspeichers des Cache-Datenspeichersystems gespeichert wurden.
  13. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 12, wobei die Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, Daten aufweisen, die von dem primären Cache-Speicher des Datenspeichers herabgestuft wurden.
  14. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 13, wobei die Steuereinrichtung in den Schritten des Vorhaltens von Referenzwerten zusätzlich: die zuletzt eingegebenen Daten in einer MRI-Liste aufführt und die zuletzt verlagerten Daten in einer MRE-Liste aufführt und wobei die Referenzmaßzahl Zählwerte von Treffern in dem sekundären Cache-Speicher des Datenspeichers für die in der MRI-Liste aufgeführten Daten 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, aufweist.
  15. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 14, wobei die Daten Speicherseiten von Daten aufweisen und die Steuereinrichtung die Zählwerte der Treffer für die Vergleichsmaßzahl seitenweise ermittelt und die Referenzmaßzahlen der zuletzt eingegebenen Daten und der zuletzt verlagerten Daten für alle Speicherseiten ermittelt, die in der MRI-Liste bzw. der MRE-Liste aufgeführt sind.
  16. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 11, wobei der Einstellschritt der Steuereinrichtung zusätzlich aufweist, 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.
  17. Durch einen Computer implementiertes Cache-Datenspeichersystem nach Anspruch 11, wobei der primäre Cache-Speicher des Datenspeichers einen primären DRAM-Cache-Speicher aufweist, der Daten dem sekundären Cache-Speicher bereitstellt, und der sekundäre Cache-Speicher einen Flash-Speicher aufweist.
  18. Computerprogrammprodukt zum Belegen eines sekundären Cache-Speicher des Datenspeichers eines durch einen Computer implementierten Cache-Datenspeichersystems mit Daten, wobei das Computerprogrammprodukt ein computernutzbares Speichermedium mit nichtflüchtigem computernutzbaren Programmcode aufweist, der darin verkörpert ist, wobei der computernutzbare Programmcode aufweist: computernutzbaren Programmcode zum Ermitteln einer Vergleichsmaßzahl potenzieller Daten, die in den sekundären Cache-Speicher des Datenspeichers eingegeben werden sollen; computernutzbaren Programmcode zum Einstellen eines Schwellenwerts der Vergleichsmaßzahl gemäß einer Wirksamkeit der Zwischenspeicherung eines aktuellen Zustands des sekundären Cache-Speichers des Datenspeichers; computernutzbaren Programmcode zum Zurückweisen potenzieller Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden und deren Vergleichsmaßzahl kleiner ist als der Schwellenwert; und computernutzbaren Programmcode zum Aufnehmen potenzieller Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, in den sekundären Cache-Speicher des Datenspeichers, deren Vergleichsmaßzahl gleich dem Schwellenwert der Vergleichsmaßzahl oder größer als dieser ist.
  19. Computerprogrammprodukt nach Anspruch 18, das zusätzlich computernutzbaren Programmcode aufweist zum: 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 in dem Einstellschritt Einstellen des Schwellenwerts der Vergleichsmaßzahl gemäß der Referenzmaßzahl der zuletzt eingegebenen Daten und der Referenzmaßzahl der zuletzt verlagerten Daten.
  20. Computerprogrammprodukt nach Anspruch 19, das zusätzlich computernutzbaren Programmcode aufweist, um in dem Einstellschritt: die Referenzmaßzahl der zuletzt eingegebenen Daten mit der Referenzmaßzahl der zuletzt verlagerten Daten zu vergleichen; den Schwellenwert zu verringern, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten größer ist als die Referenzmaßzahl der zuletzt verlagerten Daten; und den Schwellenwert zu vergrößern, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten kleiner ist als die Referenzmaßzahl der zuletzt verlagerten Daten.
  21. Computerprogrammprodukt nach Anspruch 20, wobei das Cache-Datenspeichersystem zusätzlich einen primären Cache-Speicher des Datenspeichers aufweist und wobei die Vergleichsmaßzahl auf dem Vergleichswert der Daten beruht, während die Daten in dem primären Cache-Speicher des Datenspeichers des Cache-Datenspeichersystems gespeichert wurden.
  22. Computerprogrammprodukt nach Anspruch 21, wobei die Daten, die dem sekundären Cache-Speicher des Datenspeichers bereitgestellt werden, Daten beinhalten, die von dem primären Cache-Speicher des Datenspeichers herabgestuft wurden.
  23. Computerprogrammprodukt nach Anspruch 2, wobei die zuletzt eingegebenen Daten in einer MRI-Liste aufgeführt sind und die zuletzt verlagerten Daten in einer MRE-Liste aufgeführt sind und die Referenzmaßzahl Zählwerte 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 Daten, die in der MRE-Liste aufgeführt sind aufweist, nachdem die Daten aus dem sekundären Cache-Speicher des Datenspeichers verlagert wurden.
  24. Computerprogrammprodukt nach Anspruch 23, wobei die Daten Speicherseiten von Daten beinhalten und Zählwerte von Treffern für die Vergleichsmaßzahl seitenweise ermittelt werden und die Referenzmaßzahlen der zuletzt eingegebenen Daten und der zuletzt verlagerten Daten für alle Speicherseiten ermittelt werden, die in der MRI-Liste bzw. der MRE-Liste aufgeführt sind.
  25. Computerprogrammprodukt nach Anspruch 20, wobei der computernutzbare Programmcode in dem Einstellschritt den Schwellenwert der Vergleichsmaßzahl unverändert lässt, wenn die Referenzmaßzahl der zuletzt eingegebenen Daten und die Referenzmaßzahl der zuletzt verlagerten Daten im Wesentlichen gleich sind.
DE112012004209.3T 2011-10-31 2012-10-19 Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers Pending DE112012004209T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/285,740 2011-10-31
US13/285,740 US8972661B2 (en) 2011-10-31 2011-10-31 Dynamically adjusted threshold for population of secondary cache
PCT/IB2012/055730 WO2013064935A1 (en) 2011-10-31 2012-10-19 Dynamically adjusted threshold for population of secondary cache

Publications (1)

Publication Number Publication Date
DE112012004209T5 true DE112012004209T5 (de) 2014-09-11

Family

ID=48173646

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004209.3T Pending DE112012004209T5 (de) 2011-10-31 2012-10-19 Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers

Country Status (7)

Country Link
US (2) US8972661B2 (de)
JP (1) JP5908100B2 (de)
KR (1) KR20140082639A (de)
CN (1) CN103907100B (de)
DE (1) DE112012004209T5 (de)
GB (1) GB2513741B (de)
WO (1) WO2013064935A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152423B2 (en) * 2011-10-31 2018-12-11 International Business Machines Corporation Selective population of secondary cache employing heat metrics
US9158706B2 (en) 2011-10-31 2015-10-13 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
US9733991B2 (en) 2012-09-14 2017-08-15 International Business Machines Corporation Deferred re-MRU operations to reduce lock contention
US9547604B2 (en) 2012-09-14 2017-01-17 International Business Machines Corporation Deferred RE-MRU operations to reduce lock contention
GB2514571A (en) * 2013-05-29 2014-12-03 Ibm Cache allocation in a computerized system
US9501419B2 (en) * 2014-10-08 2016-11-22 HGST Netherlands B.V. Apparatus, systems, and methods for providing a memory efficient cache
WO2016082176A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 一种数据阈值预测方法与相关装置
CN104834609B (zh) * 2015-05-31 2017-12-22 上海交通大学 基于历史升降级频率的多级缓存方法
WO2017019129A1 (en) * 2015-07-24 2017-02-02 Hewlett Packard Enterprise Development Lp Computing system cache
US9952904B2 (en) 2015-08-21 2018-04-24 International Business Machines Corporation Distributing tracks to add to cache to processor cache lists based on counts of processor access requests to the cache
US10108552B2 (en) 2015-08-21 2018-10-23 International Business Machines Corporation Using cache lists for processors to determine tracks to demote from a cache
US10114753B2 (en) 2015-08-21 2018-10-30 International Business Machines Corporation Using cache lists for multiple processors to cache and demote tracks in a storage system
US10067884B2 (en) 2015-08-21 2018-09-04 International Business Machines Corporation Distributing a plurality of tracks to add to cache to lists assigned to processors
US9811474B2 (en) * 2015-10-30 2017-11-07 International Business Machines Corporation Determining cache performance using a ghost cache list indicating tracks demoted from a cache list of tracks in a cache
US9824030B2 (en) * 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage
US10282304B2 (en) * 2016-04-27 2019-05-07 Vmware, Inc. Caching using an admission control cache layer
JP6711121B2 (ja) * 2016-05-10 2020-06-17 富士通株式会社 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
US10552327B2 (en) 2016-08-23 2020-02-04 Apple Inc. Automatic cache partitioning
US10204045B2 (en) 2016-08-30 2019-02-12 International Business Machines Corporation Data file handling in a volatile memory
US10540295B2 (en) 2017-06-21 2020-01-21 International Business Machines Corporation Processing cache miss rates to determine memory space to add to an active cache to reduce a cache miss rate for the active cache
US11609858B2 (en) * 2018-12-26 2023-03-21 Samsung Electronics Co., Ltd. Bypass predictor for an exclusive last-level cache
US11113207B2 (en) * 2018-12-26 2021-09-07 Samsung Electronics Co., Ltd. Bypass predictor for an exclusive last-level cache
US11151053B2 (en) * 2019-08-07 2021-10-19 International Business Machines Corporation Increasing data read and/or write heat tracking resolution in storage devices having cache architecture
CN113766650B (zh) * 2021-08-26 2022-06-28 武汉天地同宽科技有限公司 基于动态平衡的互联网资源获取方法及系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293608A (en) 1991-04-19 1994-03-08 Legent Corporation System and method for optimizing cache memory utilization by selectively inhibiting loading of data
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US6507893B2 (en) * 2001-01-26 2003-01-14 Dell Products, L.P. System and method for time window access frequency based caching for memory controllers
JP2004355365A (ja) 2003-05-29 2004-12-16 Fujitsu Ltd キャッシュ管理装置およびキャッシュメモリ管理方法
US7757045B2 (en) * 2006-03-13 2010-07-13 Intel Corporation Synchronizing recency information in an inclusive cache hierarchy
US7596662B2 (en) * 2006-08-31 2009-09-29 Intel Corporation Selective storage of data in levels of a cache memory
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US20080133844A1 (en) * 2006-12-01 2008-06-05 Srinivasan Ramani Method and apparatus for extending local caches in a multiprocessor system
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US20080282059A1 (en) 2007-05-09 2008-11-13 Kattamuri Ekanadham Method and apparatus for determining membership in a set of items in a computer system
US8024513B2 (en) 2007-12-04 2011-09-20 International Business Machines Corporation Method and system for implementing dynamic refresh protocols for DRAM based cache
US8161242B2 (en) * 2008-08-01 2012-04-17 International Business Machines Corporation Adaptive spill-receive mechanism for lateral caches
US8397016B2 (en) 2008-12-31 2013-03-12 Violin Memory, Inc. Efficient use of hybrid media in cache architectures
US8195901B2 (en) 2009-02-05 2012-06-05 International Business Machines Corporation Firehose dump of SRAM write cache data to non-volatile memory using a supercap
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8176220B2 (en) 2009-10-01 2012-05-08 Oracle America, Inc. Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
US8255627B2 (en) 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing
US8255624B2 (en) * 2009-12-17 2012-08-28 Hitachi, Ltd. Storage apparatus and its control method
JP2011150684A (ja) 2009-12-21 2011-08-04 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
JP5434738B2 (ja) 2010-03-26 2014-03-05 日本電気株式会社 ディスク装置
US20120124291A1 (en) * 2010-11-16 2012-05-17 International Business Machines Corporation Secondary Cache Memory With A Counter For Determining Whether to Replace Cached Data
US10152423B2 (en) * 2011-10-31 2018-12-11 International Business Machines Corporation Selective population of secondary cache employing heat metrics
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache

Also Published As

Publication number Publication date
GB2513741A (en) 2014-11-05
WO2013064935A1 (en) 2013-05-10
GB2513741B (en) 2016-11-02
US20130111133A1 (en) 2013-05-02
US8972662B2 (en) 2015-03-03
JP5908100B2 (ja) 2016-04-26
CN103907100A (zh) 2014-07-02
US20130111131A1 (en) 2013-05-02
JP2014535106A (ja) 2014-12-25
CN103907100B (zh) 2016-05-25
KR20140082639A (ko) 2014-07-02
GB201409211D0 (en) 2014-07-09
US8972661B2 (en) 2015-03-03

Similar Documents

Publication Publication Date Title
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102019130450B4 (de) Bypass-Speicherklasse Lese Cache auf der Grundlage eines Schwellwertes der Warteschlange
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112018002951B4 (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
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE102020103817B4 (de) Schwellwertanpassung der Warteschlangentiefe eines Speicherklassenspeichers
DE112011102487B4 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE112013001284B4 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112012002615T5 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE3851730T2 (de) Cachespeicherverwaltung für ein peripheres Ratenspeichersubsystem.
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
DE112016004527T5 (de) Implementieren eines Hardware-Beschleunigers für das Management eines Speicher-Schreibcachespeichers
DE112012004798T5 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112013001905T5 (de) Erhöhte Inline-Deduplizierungseffizienz
DE102021115763A1 (de) Identifizierung und klassifizierung der schreibstrompriorität
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112020001937T5 (de) Vorausschauender datenvorabruf in einer datenspeicher-vorrichtung
DE102014116031A1 (de) SWAT-Befehl und API für atomare Auslagerung und Trimmen von LBAs
DE112014000448T5 (de) Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung
DE102016101311B4 (de) Datenspeicherverfahren, Datenspeichervorrichtung und Solid State Disk
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence
R016 Response to examination communication