DE112012001302B4 - Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern - Google Patents

Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern Download PDF

Info

Publication number
DE112012001302B4
DE112012001302B4 DE112012001302.6T DE112012001302T DE112012001302B4 DE 112012001302 B4 DE112012001302 B4 DE 112012001302B4 DE 112012001302 T DE112012001302 T DE 112012001302T DE 112012001302 B4 DE112012001302 B4 DE 112012001302B4
Authority
DE
Germany
Prior art keywords
attribute
condition
tracks
write
request
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.)
Active
Application number
DE112012001302.6T
Other languages
English (en)
Other versions
DE112012001302T5 (de
Inventor
Michael Thomas Benhase
Lokesh Mohan Gupta
Matthew Joseph Kalos
Binny Sher Gill
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 DE112012001302T5 publication Critical patent/DE112012001302T5/de
Application granted granted Critical
Publication of DE112012001302B4 publication Critical patent/DE112012001302B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Abstract

Computerprogrammprodukt zum Verwalten von Daten in einer Speichereinheit (4, 10; 100) mit sequenziellem Zugriff, die Leseanforderungen und Schreibanforderungen von einem System (2a, 2b...2n) in Bezug auf Spuren empfängt, die auf einem Speichermedium (114) mit sequenziellem Zugriff gespeichert sind, wobei das Computerprogrammprodukt aufweist ein computerlesbares Speichermedium mit einem darauf ausgebildeten computerlesbaren Programmcode, der ausgeführt wird, um Operationen durchzuführen, wobei die Operationen aufweisen:Cachen empfangener modifizierter Spuren in einer nichtflüchtigen Speichereinheit (104), die in der Speichereinheit (100) mit sequenziellem Zugriff integriert ist, in Reaktion auf Feststellen, dass modifizierte Spuren gecacht werden sollen;Empfangen (500) einer Schreibanforderung mit modifizierten Spuren;Ermitteln (502), ob ein Attribut der empfangenen Schreibanforderung eine Bedingung erfüllt;Cachen (508) der empfangenen modifizierten Spuren für die Schreibanforderung in der nichtflüchtigen Speichereinheit (104) in Reaktion auf das Ermitteln (502), dass das festgelegte Attribut die Bedingung nicht erfüllt;Hinzufügen (518) einer Ausmusterungsanforderung in eine Anforderungswarteschlange (116) für die empfangene Schreibanforderung mit dem festgelegten Attribut, das die Bedingung nicht erfüllt;Schreiben (656, 606) der empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen mit dem Attribut, das die Bedingung nicht erfüllt;Führen einer Umgehungswarteschlange (122), die Schreibanforderungen für modifizierte Spuren, bei denen das festgelegte Attribut die Bedingung nicht erfüllt, in Warteschlange hält;in Reaktion auf das Abschließen (650) des Verarbeitens einer Schreibanforderung in der Anforderungswarteschlange, Verarbeiten (656) einer Schreibanforderung in der Umgehungswarteschlange in Reaktion darauf, dass die Umgehungswarteschlange wenigstens eine Schreibanforderung aufweist (652), wobei die Schreibanforderungen in der Umgehungswarteschlange mit einer höheren Priorität gegenüber Schreibanforderungen in der Anforderungswarteschlange verarbeitet werden.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Computerprogrammprodukt, ein System und ein Verfahren zum Verwenden eines Attributes einer Schreibanforderung um zu ermitteln, wo Daten in einem Speichersystem mit mehreren Cachespeichern, unter anderem einem nichtflüchtigen Cachespeicher, in einer Speichereinheit mit sequenziellem Zugriff gespeichert werden sollen.
  • Beschreibung des Standes der Technik
  • Ein Cachespeicher-Managementsystem führt Zwischenspeichern von Spuren, auf die vor Kurzem zugegriffen wurde, in einer Speichereinheit als Ergebnis von Lese- und Schreiboperationen in einer Speichereinheit mit einem schnelleren Zugriff als dem bei der Speichereinheit durch, die die angeforderten Spuren speichert, wie beispielsweise einem Hauptspeicher (memory). Nachfolgende Leseanforderungen auf Spuren in dem Cachespeicher mit dem schnelleren Zugriff werden mit einer höheren Geschwindigkeit zurückgegeben als die angeforderten Spuren von dem Speicher mit dem langsameren Zugriff, womit die Leselatenz verringert wird. Das Cachespeicher-Managementsystem kann auch vollständig zu einer Schreibanforderung zurückkehren, wenn die an die Speichereinheit gerichtete modifizierte Spur in den Cachespeicher geschrieben wird und bevor die modifizierte Spur heraus auf die Speichereinheit wie beispielsweise ein Festplattenwerk geschrieben wird. Die Latenz zum Schreiben auf die Speichereinheit ist normalerweise deutlich länger als die Latenz zum Schreiben auf einen Cachespeicher. Auf diese Weise wird durch das Verwenden des Cachespeichers auch die Schreiblatenz verringert.
  • Ein Cachespeicher-Managementsystem kann eine verkettete Liste mit einem Eintrag für jede in dem Cachespeicher gespeicherte Spur führen, die Schreibdaten, die vor ihrem Schreiben auf die Speichereinheit in dem Cachespeicher zwischengespeichert werden, oder Lesedaten aufweisen kann. Wenn bei dem allgemein verwendeten Verfahren mit dem am wenigsten aktuell verwendeten Cachespeicher, Least Recently Used- (LRU) Cache, auf eine Spur in dem Cachespeicher zugegriffen wird, d.h. ein Cachespeicher-„Treffer“ („cache hit“) ausgeführt wird, wird der Eintrag in der LRU-Liste für die zugegriffene Spur an ein am aktuellsten verwendetes Ende (Most Recently Used, MRU) der Liste verschoben. Falls die angeforderte Spur nicht in dem Cachespeicher vorhanden ist, d.h. es sich um einen Cachespeicher-Fehltreffer (cache miss) handelt, kann die Spur in dem Cachespeicher, deren Eintrag sich an dem am wenigsten aktuell verwendeten (LRU-) Ende der Liste befindet, entfernt (oder zurück in den Speicher (storage) ausmustern) werden, und ein Eintrag für die Spurdaten, die von dem Speicher in den Cachespeicher bereitgestellt (staged) werden, wird dem MRU-Ende der LRU-Liste hinzugefügt. Bei diesem Verfahren mit dem am wenigsten aktuell verwendeten Cachespeicher (LRU-Cachespeicher) verbleiben Spuren, auf die öfter zugegriffen wird, wahrscheinlich in dem Cachespeicher, wohingegen Daten, auf die weniger häufig zugegriffen wird, wahrscheinlich von dem LRU-Ende der Liste entfernt werden, um Platz in dem Cachespeicher für Spuren zu schaffen, auf die erstmals zugegriffen wird.
  • Bei dem LRU-Cachespeicher-Verfahren wird versucht, die temporäre Lokalität zu optimieren, indem Spuren ausgemustert (destage) werden, die mit der geringsten Wahrscheinlichkeit bald erneut geschrieben werden, um die Anzahl an Ausmusterungsoperationen zu minimieren, d.h. wenn ein Schreibvorgang, der nicht ausgemustert wird, überschrieben wird, dann wird das Auslesen des überschriebenen Schreibvorgangs vermieden, wodurch Zeit und Aufwand zum Schreiben der Daten von dem Cachespeicher auf die Platte eingespart wird. Des Weiteren besteht ein Wunsch dahingehend, das Ausmustern so durchzuführen, dass räumliche Lokalität ausgenutzt wird, was bedeutet, dass Daten an Speicherorte geschrieben werden, die am nächsten zueinander liegen, um die Entfernung zu optimieren, über die die Speichereinheit-Schreibmechanismen und die Speichermedien verschoben werden müssen, um den nächsten Speicherort, an den geschrieben werden soll, zu erreichen.
  • Ein Verfahren zum Ausnutzen von sowohl zeitlicher als auch räumlicher Lokalität ist der Wise Ordering for Writes (WOW)- Algorithmus. Der WOW-Algorithmus verwendet eine kreisförmig verkettete Liste oder eine Zeiteinteilung (clock), wobei die kreisförmig verkettete Liste einen Eintrag für jede in einem Cachespeicher zwischengespeicherte Schreibanforderung besitzt. Die Einträge werden in der verketteten Liste entsprechend dem Speicherort geordnet, an den die dazugehörige Schreibanforderung gerichtet wird, um die Vorteile räumlicher Lokalität auszunutzen. Des Weiteren weist jeder Eintrag ein Bit auf, das anzeigt, ob die Schreibdaten für den Speicherort in dem Cachespeicher kürzlich aktualisiert worden sind. Das Bit für einen Eintrag wird gesetzt, wenn die Schreibdaten für den Eintrag aktualisiert werden. Ein Zeiger zeigt auf einen aktuellen Eintrag in der kreisförmigen verketteten Liste. Bei einer Aufgabe, die den WOW-Algorithmus verwendet, wird auf einen von dem Zeiger adressierten Eintrag zugegriffen. Zeigt das Bit für den Eintrag an, dass die Daten für den Eintrag in dem Cachespeicher kürzlich aktualisiert worden sind, wird das Bit gesetzt, um anzuzeigen, dass die Schreibdaten nicht vor kurzem aktualisiert worden sind, und der Zeiger wird so erhöht, dass er auf den nächsten Eintrag zeigt, so dass der Eintrag, der Schreibdaten für einen Speicherort aufweist, der sich räumlich am nächsten zu dem vorher geschriebenen Speicherort befindet, berücksichtigt wird. Es wird der Eintrag zum Schreiben ausgewählt, der sich räumlich am nächsten zu dem zuletzt geschriebenen Speicherort befindet und dessen Bit anzeigt, dass die Schreibdaten für den Eintrag nicht vor kurzem aktualisiert worden sind.
  • Auf diese Weise wird mit dem WOW-Algorithmus räumliche Lokalität ausgenutzt, da ein nächster zu schreibender Eintrag zur Berücksichtigung ausgewählt wird, der sich räumlich am nächsten zu der zuletzt ausgemusterten Schreibanforderung befindet. Des Weiteren wird auch zeitliche Lokalität ausgenutzt, da ein Eintrag, der vor kurzem aktualisiert worden ist, so lange übersprungen wird, bis sich der Zeiger kreisförmig zurück zu diesem übersprungenen zu berücksichtigenden Eintrag bewegt.
  • Plattenlaufwerke können den WOW-Algorithmus sowie weitere Algorithmen implementieren, die sowohl die lineare als auch Winkelposition der Schreibspuren berücksichtigen und eine Optimierung beider in Bezug auf eine aktuelle Schreibkopfposition durchführen, um die minimale Gesamtleistungszeit zu ermitteln. Dieser Prozess wird als „Command re-ordering based on seek and rotational optimization“ („Befehlsneuanordnung auf der Grundlage von Suche und rotierender Optimierung“) bezeichnet. Die Logikboards der Plattenlaufwerke analysieren Schreibanforderungen und ermitteln auf der Grundlage von sowohl wie viel Zeit es dauern wird, die verschiedenen Zylinder und Winkelposition der zu beschreibenden Spur zu suchen, und wie viel Zeit während des Wartens für das Rotieren der Daten unter den Köpfen verstreichen wird, welche zuerst zu bearbeiten ist.
  • Auf dem Gebiet der Technik besteht ein Bedarf an verbesserten Verfahren zur Verwendung eines Cachespeichers in einem Speichersystem.
  • Die US 2010 / 0 274 962 A1 betrifft ein Verfahren und ein System zum Implementieren einer Schnellzugriffsspeicherungsstrategie für eine nichtflüchtige Speichervorrichtung.
  • KURZDARSTELLUNG
  • Es werden ein Computerprogrammprodukt, ein System und ein Verfahren zum Verwenden eines Attributes einer Schreibanforderung bereitgestellt, um zu ermitteln, wo Daten in einem Speichersystem mit mehreren Cachespeichern einschließlich eines nichtflüchtigen Cachespeichers in einer Speichereinheit mit sequenziellem Zugriff gecacht werden sollen. In Reaktion auf das Feststellen, dass modifizierte Spuren gecacht werden sollen, werden empfangene modifizierte Spuren in der nichtflüchtigen Speichereinheit gecacht, die in der Speichereinheit mit sequenziellem Zugriff integriert ist. Es wird eine Schreibanforderung mit modifizierten Spuren empfangen. Es wird ein Ermitteln dahingehend durchgeführt, ob ein Attribut der empfangenen Schreibanforderung eine Bedingung erfüllt. In Reaktion auf das Ermitteln, dass das festgelegte Attribut die Bedingung nicht erfüllt, werden die empfangenen modifizierten Spuren für die Schreibanforderung in der nichtflüchtigen Speichereinheit gecacht. Für die empfangene Schreibanforderung, die das festgelegte Attribut besitzt, das die Bedingung nicht erfüllt, wird eine Ausmusterungsanforderung in eine Anforderungswarteschlange hinzugefügt. Die empfangenen modifizierten Spuren für die Schreibanforderung mit dem ermittelten Attribut, das die Bedingung erfüllt, werden mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen geschrieben, die das Attribut aufweisen, welches die Bedingung nicht erfüllt. Eine Umgehungswarteschlange wird geführt, die Schreibanforderungen für modifizierte Spuren, bei denen das festgelegte Attribut die Bedingung nicht erfüllt, in Warteschlange hält. In Reaktion auf das Abschließen des Verarbeitens einer Schreibanforderung in der Anforderungswarteschlange wird eine Schreibanforderung in der Umgehungswarteschlange in Reaktion darauf verarbeitet, dass die Umgehungswarteschlange wenigstens eine Schreibanforderung aufweist, wobei die Schreibanforderungen in der Umgehungswarteschlange mit einer höheren Priorität gegenüber Schreibanforderungen in der Anforderungswarteschlange verarbeitet werden.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung.
    • 2 veranschaulicht eine Ausführungsform von ersten Cachespeicher-Managementdaten.
    • 3 veranschaulicht eine Ausführungsform von zweiten Cachespeicher-Managementdaten.
    • 4 veranschaulicht eine Ausführungsform einer Speichereinheit mit sequenziellem Speicherzugriff.
    • 5 veranschaulicht eine Ausführungsform eines ersten Cachespeicher-Steuerblockes.
    • 6 veranschaulicht eine Ausführungsform eines zweiten Cachespeicher-Steuerblockes.
    • 7 veranschaulicht eine Ausführungsform eines Cachespeicher-Steuerblockes eines nichtflüchtigen Speichers.
    • 8 veranschaulicht eine Ausführungsform eines Eintrages in einem räumlichen Index.
    • 9 veranschaulicht eine Ausführungsform von Operationen zum Ermitteln, ob Spuren in dem ersten Cachespeicher entfernt werden sollen, um Platz für Spuren zu schaffen, die dem ersten Cachespeicher hinzugefügt werden sollen.
    • 10 veranschaulicht eine Ausführungsform von Operationen zum Freimachen von Platz in dem ersten Cachespeicher.
    • 11 veranschaulicht eine Ausführungsform von Operationen zum Hinzufügen einer Spur zu dem ersten Cachespeicher.
    • 12 veranschaulicht eine Ausführungsform von Operationen zum Weitergeben einer Spur an den zweiten Cachespeicher.
    • 13 veranschaulicht eine Ausführungsform von Operationen zum Freimachen von Platz in dem zweiten Cachespeicher.
    • 14 veranschaulicht eine Ausführungsform von Operationen zum Verarbeiten einer Leseanforderung für angeforderte Spuren.
    • 15 veranschaulicht eine Ausführungsform von Operationen an der Speichereinheit mit sequenziellem Zugriff zum Verarbeiten einer Schreibanforderung.
    • 16 veranschaulicht eine Ausführungsform von Operationen an der Speichereinheit mit sequenziellem Zugriff zum Ermitteln, ob die modifizierten Spuren für eine Schreibanforderung in einer nichtflüchtigen Speichereinheit zwischengespeichert werden sollen.
    • 17 veranschaulicht eine Ausführungsform von Operationen an der Speichereinheit mit sequenziellem Zugriff zum Verarbeiten einer Anforderu ngswartesch lange.
    • 18 veranschaulicht eine Ausführungsform von Operationen an der Speichereinheit mit sequenziellem Zugriff zum Verarbeiten einer Ausmusterungsanforderung g in der Anforderungswarteschlange.
    • 19 veranschaulicht eine Ausführungsform von Operationen an der Speichereinheit mit sequenziellem Zugriff zum Verarbeiten von Schreibanforderungen in der Anforderungswarteschlange und der Schreibum gehungswartesch lange.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung. Eine Vielzahl von Hosts 2a, 2b...2n kann Eingabe/Ausgabe- (E/A) Anforderungen über ein Netzwerk 6 an einen Speicher-Controller 4 ausgeben, um einen Zugriff auf Daten auf Datenträgern 8 (z.B. Logical Unit Numbers, Logical Devices, Logical Subsystems, usw.) in einem Speicher 10 vorzunehmen. Der Speicher-Controller 4 weist einen Prozessorkomplex 12, aufweisend einen oder mehrere Prozessoren mit einem oder mehreren Kernen, einen ersten Cachespeicher 14, eine erste Cachespeicher-Backup-Einheit 16 zum Sichern von Spuren in dem Cachespeicher 14 und einen zweiten Cachespeicher 18 auf. Der erste Cachespeicher 14 und der zweite Cachespeicher 18 cachen Daten, die zwischen den Hosts 2a, 2b...2n und dem Speicher 10 übertragen werden. Die erste Cachespeicher-Backup-Einheit 16 kann ein nichtflüchtiges Speichern von Spuren in dem ersten Cachespeicher 14 bereitstellen. In einer weiteren Ausführungsform kann die erste Cachespeicher-Backup-Einheit 16 in einem Cluster oder einer Hardware auf einem anderen Stromkreislauf (power boundary) als dem des ersten Cachespeichers 14 angeordnet sein.
  • Der Speicher-Controller 4 besitzt einen Speicher 20, der einen Speicher-Manager 22 zum Verwalten der Übertragung von zwischen den Hosts 2a, 2b...2n und dem Speicher 10 übertragenen Spuren sowie einen Cachespeicher-Manager 24, der die zwischen den Hosts 2a, 2b...2n und dem Speicher 10 in dem ersten Cachespeicher 14 übertragenen Daten verwaltet, eine erste Cachespeicher-Backup-Einheit 16 und den zweiten Cachespeicher 18 aufweist. Eine Spur kann eine jede beliebige Einheit von in dem Speicher 10 konfigurierten Daten wie beispielsweise eine Spur, eine Logikblockadresse (Logical Block Address, LBA)) usw. aufweisen, die Teil einer größeren Gruppierung von Spuren wie beispielsweise eines Datenträgers, einer Logikeinheit usw. ist. Der Cachespeicher-Manager 24 führt erste Cachespeicher-Managementdaten 26 und zweite Cachespeicher-Managementdaten 28 zum Verwalten von (unmodifizierten) Lese- und (modifizierten) Schreibspuren in dem ersten Cachespeicher 14 und dem zweiten Cachespeicher 18. Ein Index 30 einer ersten Cachespeicher-Backup-Einheit liefert einen Index von Spurenkennungen zu einem Ort in der ersten Cachespeicher-Backup-Einheit 16.
  • Der Speicher-Manager 22 und ein Cachespeicher-Manager 24 sind in 1 dargestellt, wenn ein Programmcode in den Speicher 20 geladen und von dem Prozessorkomplex 12 ausgeführt wird. Alternativ dazu können einige oder alle Funktionen in Hardware-Einheiten in dem Speicher-Controller 4 wie beispielsweise in anwendungsspezifischen integrierten Schaltungen (Application Specific Integrated Circuits, ASICs) implementiert werden.
  • Der zweite Cachespeicher 18 kann Spuren in einem Log Structured Array (LSA) 32 speichern, wobei Spuren in der Reihenfolge, wie sie empfangen werden, in einer sequenziellen Reihenfolge geschrieben werden und auf diese Weise ein zeitliches Ordnen der Spuren, die in den zweiten Cachespeicher 18 geschrieben werden, bereitgestellt wird. In einem LSA werden spätere Versionen von bereits in dem LSA vorhandenen Spuren an das Ende des LSA 32 geschrieben. In alternativen Ausführungsformen kann der zweite Cachespeicher 18 Daten in anderen Formaten als in einem LSA speichern.
  • In einer Ausführungsform kann der erste Cachespeicher 14 einen Arbeitsspeicher (RAM) wie beispielsweise einen dynamischen Arbeitsspeicher (DRAM) aufweisen, und der zweite Cachespeicher 18 kann einen Flash-Speicher wie beispielsweise eine Halbleiter-Einheit aufweisen, und der Speicher 10 ist aus einer oder mehreren Speichereinheiten mit sequenziellem Zugriff wie beispielsweise Festplattenlaufwerken und Magnetband gebildet. Der Speicher 10 kann eine einzige Speichereinheit mit sequenziellem Zugriff oder eine Anordnung aus Speichereinheiten wie beispielsweise eine Anordnung aus Just a Bunch of Disks (JBOD), Direct Access Storage Device (DASD), Redundant Array of Independent Disks (RAID), eine Virtualisierungseinheit usw. aufweisen. In einer Ausführungsform handelt es sich bei dem ersten Cachespeicher 14 um eine Speichereinheit mit einem schnelleren Zugriff als dem bei dem zweiten Cachespeicher 18, und bei dem zweiten Cachespeicher 18 handelt es sich um eine Speichereinheit mit einem schnelleren Zugriff als bei dem Speicher 10. Des Weiteren kann der erste Cachespeicher 14 höhere Kosten pro Speicherplatzeinheit als der zweite Cachespeicher 18 aufweisen, und der zweite Cachespeicher 18 kann höhere Kosten pro Speicherplatzeinheit als Speichereinheiten in dem Speicher 10 aufweisen.
  • Der erste Cachespeicher 14 kann Teil des Speichers 20 sein oder in einer separaten Speichereinheit wie beispielsweise einem DRAM implementiert sein. In einer Ausführungsform kann die erste Cachespeicher-Backup-Einheit 16 einen nichtflüchtigen Backup-Speicher (NVS, non-volatile backup-storage) wie beispielsweise einen nichtflüchtigen Speicher z.B. einen batteriegepufferten Arbeitsspeicher (RAM), einen statischen RAM (SRAM) usw. aufweisen.
  • Das Netzwerk 6 kann ein Speichernetzwerk (SAN), ein Lokalnetz (LAN), ein Weitverkehrsnetz (WAN), das Internet und Intranet usw. aufweisen.
  • 2 veranschaulicht eine Ausführungsform der ersten Cachespeicher-Managementdaten 26 aufweisend einen Spurenindex 50, der einen Index an Spuren in dem ersten Cachespeicher 14 zum Steuern von Blöcken in einem SteuerblockVerzeichnis 52 aufweist; eine Liste von unmodifizierten sequenziellen LRU 54, die eine zeitliche Reihenfolge unmodifizierter sequenzieller Spuren in dem ersten Cachespeicher 14 bereitstellt; eine Liste modifizierter LRU 56, die eine zeitliche Reihenfolge modifizierter sequenzieller und nichtsequenzieller Spuren in dem ersten Cachespeicher 14 bereitstellt; und eine Liste unmodifizierter nichtsequenzieller LRU 58, die eine zeitliche Reihenfolge unmodifizierter nichtsequenzieller Spuren in dem ersten Cachespeicher 14 bereitstellt.
  • In bestimmten Ausführungsformen wird beim Ermitteln, dass die erste Cachespeicher-Backup-Einheit 16 voll ist, die Liste modifizierter LRU 56 zum Ausmustern modifizierter Spuren von dem ersten Cachespeicher 14 so verwendet, dass die Kopie dieser Spuren in der ersten Cachespeicher-Backup-Einheit 16 verworfen werden kann, um in der ersten Cachespeicher-Backup-Einheit 16 Platz für neue modifizierte Spuren zu schaffen.
  • 3 veranschaulicht eine Ausführungsform der zweiten Cachespeicher-Managementdaten 28 aufweisend einen Spurenindex 70, der einen Index an Spuren in dem zweiten Cachespeicher zum Steuern von Blöcken in einem Steuerblockverzeichnis 72 bereitstellt; eine unmodifizierte Liste 74, die eine zeitliche Reihenfolge unmodifizierter Spuren in dem zweiten Cachespeicher 18 bereitstellt; und einen räumlichen Index 76, der eine räumliche Reihenfolge der modifizierten Spuren in dem zweiten Cachespeicher 18 auf der Grundlage der physischen Orte in dem Speicher 10 bereitstellt, in dem die modifizierten Spuren gespeichert werden.
  • Alle LRU-Listen 54, 56, 58 und 74 können die Spuren-IDs von Spuren in dem ersten Cachespeicher 14 und dem zweiten Cachespeicher 18 aufweisen, die danach geordnet sind, wann zuletzt auf die identifizierte Spur zugegriffen wurde. Die LRU-Listen 54, 56, 58 und 74 haben ein „most recently used“ (am aktuellsten genutztes) (MRU) Ende, das eine Spur anzeigt, auf die am aktuellsten zugegriffen wurde, sowie ein LRU-Ende (least recently used), das eine am wenigsten aktuell verwendete Spur oder eine Spur anzeigt, auf die am wenigsten aktuell zugegriffen wurde. Die Spuren-IDs von den Cachespeichern 14 und 18 hinzugefügten Spuren werden dem MRU-Ende der LRU-Liste hinzugefügt, und auf Spuren, die von den Cachespeichern 14 und 18 zurückgesetzt wurden, wird von dem LRU-Ende zugegriffen. Die Spuren-Indizes 50 und 70 sowie der räumliche Index 76 können eine Scatter-Index-Tabelle (SIT) aufweisen. Es können auch alternative Datentypstrukturen verwendet werden, um die zeitliche Reihenfolge von Spuren in den Cachespeichern 14 und 18 sowie die räumliche Reihenfolge in dem zweiten Cachespeicher 18 zu gewährleisten.
  • Nichtsequenzielle Spuren können Online Line Transaction Processing (OLTP)-Spuren aufweisen, die oftmals Schreibvorgänge kleiner Blöcke aufweisen, die nicht gänzlich zufällig sind und ein gewisses Maß an Referenzlokalität besitzen, d.h. sie weisen eine Wahrscheinlichkeit auf, dass auf sie wiederholt zugegriffen wird.
  • 4 veranschaulicht eine Ausführungsform einer Speichereinheit mit sequenziellem Zugriff 100, bei der der Speicher 10 mit einer oder mehreren Speichereinheiten mit sequenziellem Zugriff 100 ausgebildet sein kann. Diese Speichereinheit mit sequenziellem Zugriff 100 weist eine Steuerlogik, die als E/A-Manager 102 dargestellt ist, eine nichtflüchtige Speichereinheit 104 zum Zwischenspeichern von modifizierten Daten sowie einen Speicher (memory) 106 auf, der einen Spurenindex 108 aufweist, der einen Index von Spuren in der nichtflüchtigen Speichereinheit 104 bereitstellt, um Blöcke in einem Steuerblockverzeichnis 110 zu steuern; einen räumlichen Index 112, der eine räumliche Reihenfolge der modifizierten Spuren in dem nichtflüchtigen Speicher 104 an den physischen Orten in einem Speichermedium mit sequenziellem Zugriff 114 gewährleistet, auf dem modifizierte Spuren gespeichert werden; und eine Anforderungswarteschlange 116 auf, in der Lese- und Schreibanforderungen eingereiht werden. Der E/A-Manager 102 fügt der Anforderungswarteschlange 112 Lese- und Schreibanforderungen hinzu und greift von der Anforderungswarteschlange 112 aus auf Lese- und Schreibanforderungen zu, um eine Ausführung gegenüber einem Medium mit sequenziellem Zugriff 114 durchzuführen. Der E/A-Manager 102 kann Befehle an eine Lese-/Schreibsteuereinheit 118 senden, die Steuersignale erzeugt, um einen oder mehrere Aktuatoren mit Lese-/Schreibköpfen 120 an eine Position auf dem Speichermedium mit sequenziellem Zugriff 114 zu bewegen, an der Daten gelesen oder geschrieben werden können.
  • Der Speicher 106 weist des Weiteren eine Schreibumgehungswarteschlange 118 zum Zwischenspeichern von sequenziellen Schreibanforderungen und ihren modifizierten Spuren in einem Zwischenspeicher 122 auf, die nicht in der nichtflüchtigen Speichereinheit 104 gespeichert werden, sondern direkt auf das Speichermedium mit sequenziellem Zugriff 114 geschrieben werden. Der Zwischenspeicher 122 kann vorübergehend Lese- und Schreibeingabeanforderungen und Daten zwischenspeichern, die an eine Leseanforderung zurückgegeben werden. Der Zwischenspeicher 122 kann in einer separaten Einheit als in der nichtflüchtigen Speichereinheit 104 vorhanden sein und einen kleineren Speicherplatz als die nichtflüchtige Speichereinheit 104 aufweisen.
  • Ein Zwischenspeicher 124 in der Einheit 100 kann vorübergehend Lese- und Schreibanforderungen sowie Daten zwischenspeichern, die einer Leseanforderung zurückgegeben werden. Der Zwischenspeicher 124 kann des Weiteren zum vorübergehenden Speichern von modifizierten Spuren für Schreibanforderungen verwendet werden, die nicht in der nichtflüchtigen Speichereinheit geführt werden, wie beispielsweise sequenzielle Schreibanforderungen und ihre modifizierten Daten. Der Zwischenspeicher 124 kann in einer von der nichtflüchtigen Speichereinheit 104 separaten Einheit vorhanden sein und einen kleineren Speicherplatz als den in der nichtflüchtigen Speichereinheit 104 vorhandenen aufweisen. Alternativ dazu kann ein Teil oder der gesamte Zwischenspeicher 124 in der nichtflüchtigen Speichereinheit implementiert sein.
  • Das Speichermedium mit sequenziellem Zugriff 114 kann eine oder mehrere Platten für Festplattenlaufwerke für eine Festplattenlaufwerkeinheit oder ein Magnetband aufweisen. In bestimmten Ausführungsformen kann die nichtflüchtige Speichereinheit 104 eine Flash-Speichereinheit aufweisen, die aus einem Halbleiterspeicher gebildet ist. In bestimmten Ausführungsformen ist die nichtflüchtige Speichereinheit 104, z.B. der Flash-Speicher, auf der Platine der Speichereinheit mit sequenziellem Zugriff 100 in dem Gehäuse implementiert, das die Komponenten der Speichereinheit mit sequenziellem Zugriff 100 aufweist. Sie kann beispielsweise eine 8-GB-Flash-Speichereinheit aufweisen. Es können einige oder alle der Funktionen des E/A-Managers 102 als von einem Prozessor in der Speichereinheit mit sequenziellem Zugriff 100 ausgeführter Code implementiert sein. Alternativ dazu können einige oder alle der Funktionen des E/A-Managers 102 in einem ASIC auf der Speichereinheit mit sequenziellem Zugriff 100 implementiert sein.
  • 5 veranschaulicht eine Ausführungsform eines Eintrages eines ersten Cachespeicher-Steuerblockes 150 in dem Steuerblockverzeichnis 52, aufweisend eine Steuerblockkennung (ID) 152, einen ersten Cachespeicher-Ort 154 des physischen Ortes der Spur in dem ersten Cachespeicher 14, Daten 156, die anzeigen, ob die Spur modifiziert oder unmodifiziert ist, sowie Daten 158, die anzeigen, ob es sich bei der Spur um einen sequenziellen oder einen nichtsequenziellen Zugriff handelt.
  • 6 veranschaulicht eine Ausführungsform eines Eintrages eines zweiten Cachespeicher-Steuerblockes 160 in dem zweiten Cachespeicher-Steuerblockverzeichnis 72, aufweisend eine Steuerblockkennung (ID) 162 und einen LSA-Ort 164, an dem sich die Spur in dem LSA 32 befindet.
  • 7 veranschaulicht eine Ausführungsform eines Eintrages eines Steuerblockes eines nichtflüchtigen Speichers 170 in dem Steuerblockverzeichnis 110 des nichtflüchtigen Speichers 104, aufweisend eine Steuerblockkennung (ID) 172 und einen physischen Ort 174, an dem sich die Spur befindet, wie beispielsweise einen LSA-Ort, falls die Spur in einem LSA auf der nichtflüchtigen Speichereinheit gespeichert wird.
  • 8 veranschaulicht einen Eintrag eines räumlichen Indexes 180, aufweisend eine Spurkennung 182 einer Spur in der nichtflüchtigen Speichereinheit 104 und den physischen Ort 184, an dem die Spur in dem Speichermedium mit sequenziellen Zugriff 114 gespeichert ist, wie beispielsweise einen Zylinder, eine Plattennummer, eine Winkelposition auf dem Zylinder usw.
  • 9 veranschaulicht eine Ausführungsform von Operationen, die von dem Cachespeicher-Manager 24 durchgeführt werden, um unmodifizierte Spuren von dem ersten Cachespeicher 14 zurückzusetzen. Die Zurücksetzoperation kann nach dem Feststellen, dass Platz in dem ersten Cachespeicher 14 freigemacht werden soll, initiiert werden. Beim Initiieren (in Block 200) einer Operation, um festzulegen, ob Spuren von dem ersten Cachespeicher 14 entfernt werden sollen, um Spuren aufzunehmen, die dem ersten Cachespeicher 14 hinzugefügt werden, ermittelt der Cachespeicher-Manager 24 (in Block 202), ob nichtsequenzielle oder sequenzielle unmodifizierte Spuren zurückgesetzt werden sollen, auf der Grundlage von erwarteten Treffern (hits) auf unterschiedlichen Typen von unmodifizierten Spuren. Wird (in Block 204) die Festlegung dahingehend getroffen, dass unmodifizierte sequenzielle Spuren zurückgesetzt werden sollen, verwendet der Cachespeicher-Manager 24 (in Block 206) die Liste unmodifizierter sequenzieller LRU 54, um die von dem LRU-Ende der Liste zurückzusetzenden unmodifizierten sequenziellen Spuren zu ermitteln, die nicht an den zweiten Cachespeicher 18 weitergeleitet werden. Falls (in Block 204) eine Feststellung dahingehend getroffen wird, dass unmodifizierte nichtsequenzielle Spuren zurückgesetzt werden sollen, verwendet der Cachespeicher-Manager 24 die Liste unmodifizierter nichtsequenzieller LRU 58, um (in Block 208) die unmodifizierten nichtsequenziellen Spuren festzulegen, die zurückgesetzt werden sollen. Die unmodifizierten nichtsequenziellen Spuren werden (in Block 210) in den zweiten Cachespeicher 18 weitergegeben.
  • 10 veranschaulicht eine Ausführungsform von Operationen, die von dem Cachespeicher-Manager 24 ausgeführt werden, um Spuren von dem ersten Cachespeicher 14 auszumustern. Der Cachespeicher-Manager 24 kann regelmäßig Spuren als Teil von geplanten Operationen ausmustern und die Geschwindigkeit von Ausmusterungen erhöhen, wenn Platz in der ersten Cachespeicher-Backup-Einheit 16 benötigt wird. Beim Initiieren (in Block 250) der Operation zum Ausmustern von modifizierten Spuren verarbeitet der Cachespeicher-Manager 24 (in Block 252) die Liste modifizierter LRU 56, um die von dem LRU-Ende der LRU-Liste 56 auszumusternden modifizierten Spuren festzulegen. Der Cachespeicher-Manager 24 schreibt (in Block 254) die festgelegten modifizierten Spuren (sequenziell oder nichtsequenziell) in den Speicher 10, wobei der zweite Cachespeicher 18 umgangen wird. Der Cachespeicher-Manager 24 verwirft (in Block 260) die Kopie der ausgemusterten modifizierten Spuren aus der ersten Cachespeicher-Backup-Einheit 16.
  • Mit den Operationen der 9 und 10 werden nichtsequenzielle Spuren ausgelesen, jedoch nicht an den zweiten Cachespeicher 18 weitergegeben. Modifizierte Spuren (Schreibvorgänge) werden direkt in den Speicher 10 geschrieben, wobei der zweite Cachespeicher umgangen wird. Sequenzielle unmodifizierte Spuren (Lesevorgänge) werden verworfen und nicht anderswohin kopiert, und unmodifizierte nichtsequenzielle Spuren, die von dem ersten Cachespeicher 14 ausgelesen wurden, werden an den zweiten Cachespeicher 18 weitergegeben.
  • 11 veranschaulicht eine Ausführungsform von Operationen, die von dem Cachespeicher-Manager 24 durchgeführt werden, um dem ersten Cachespeicher 14 eine Spur hinzuzufügen, d.h. an ihn weiterzugeben, wobei die Spuren einen Schreibvorgang oder eine modifizierte Spur von einem Host 2a, 2b...2n, eine nichtsequenzielle Spur in dem zweiten Cachespeicher 18 aufweisen kann, die einer Leseanforderung unterliegt und als Ergebnis in den ersten Cachespeicher 14 verschoben wird, oder angeforderte Daten, die weder in Cachespeichern 14 oder 18 gefunden wurden und von dem Speicher 10 abgerufen werden, zu lesen. Beim Empfangen (in Block 300) der dem ersten Cachespeicher 14 hinzuzufügenden Spur erstellt der Cachespeicher-Manager 24 (in Block 301) einen Steuerblock 150 (5) für die hinzuzufügende Spur, der den Ort 154 in dem ersten Cachespeicher 14 anzeigt und anzeigt, ob die Spur modifiziert/unmodifiziert 156 und sequenziell/nichtsequenziell 158 ist. Dieser Steuerblock 150 wird dem Steuerblockverzeichnis 52 des ersten Cachespeichers 14 hinzugefügt. Der Cachespeicher-Manager 24 fügt (in Block 302) einen Eintrag zu dem Spurenindex 50 des ersten Cachespeichers, der die Spuren-ID der hinzuzufügenden Spur aufweist, sowie einen Index zu dem erstellten Cachespeicher-Steuerblock 150 in dem Steuerblockverzeichnis 52 hinzu. Es wird ein Eintrag (in Block 304) dem MRU-Ende der LRU-Liste 54, 56 oder 58 des Spurentyps der hinzuzufügenden Spur hinzugefügt. Wenn es sich (in Block 306) bei der hinzuzufügenden Spur um eine modifizierte nichtsequenzielle Spur handelt, wird die hinzuzufügende Spur auch (in Block 308) zu der ersten Cachespeicher-Backup-Einheit 16 kopiert, und es wird ein Eintrag zu dem Index der ersten Cachespeicher-Backup-Einheit 30 für die hinzugefügte Spur hinzugefügt. Wenn es sich (in Block 306) bei der hinzuzufügenden Spur um eine unmodifizierte sequenzielle handelt, endet die Steuerung.
  • 12 veranschaulicht eine Ausführungsform von Operationen, die von dem Cachespeicher-Manager 24 zum Weitergeben einer unmodifizierten nichtsequenziellen Spur an den zweiten Cachespeicher 18 durchgeführt werden, die von dem ersten Cachespeicher 14 zurückgesetzt wird. Beim Initiieren (in Block 350) der Operation zum Weitergeben einer Spur an den zweiten Cachespeicher 18, fügt der Cachespeicher-Manager 24 (in Block 352) die an den LSA 32 in dem zweiten Cachespeicher 18 weitergegebene Spur hinzu und erstellt (in Block 354) einen Steuerblock 160 (6) für die hinzuzufügende Spur, der den Spurort 164 in dem LSA 32 anzeigt. Es wird ein Eintrag (in Block 356) zu dem Spurenindex des zweiten Cachespeichers 70, der die Spuren-ID der weitergegebenen Spur aufweist, sowie ein Index an den erstellten Cachespeicher-Steuerblock 160 in dem Steuerblockverzeichnis 72 für den zweiten Cachespeicher 18 hinzugefügt. Der Cachespeicher-Manager 24 zeigt (in Block 360) die weitergegebene Spur an dem MRU-Ende der Liste unmodifizierter LRU 74 wie beispielsweise durch Hinzufügen der Spuren-ID an das MRU-Ende an.
  • Der Cachespeicher-Manager 12 kann den zweiten Cachespeicher 18 als einen Nur-Lese-Cachespeicher für ausschließlich unmodifizierte sequenzielle Spuren verwenden. Modifizierte sequenzielle und nichtsequenzielle Spuren werden direkt in die Speichereinheit mit sequenziellem Zugriff 100 geschrieben, und die nichtflüchtige Speichereinheit 104 in der Speichereinheit mit sequenziellem Zugriff 100 liefert einen Schreib-Cachespeicher für modifiziere nichtsequenzielle Spuren.
  • 13 veranschaulicht eine Ausführungsform von Operationen, die von dem Cachespeicher-Manager 24 zum Freimachen von Platz in dem zweiten Cachespeicher 18 für neue, dem zweiten Cachespeicher 18 hinzuzufügenden Spuren durchgeführt werden, d.h. Spuren, die von dem ersten Cachespeicher 14 zurückgesetzt wurden. Beim Initiieren dieser Operation (in Block 400) legt der Cachespeicher-Manager 24 (in Block 402) unmodifizierte Spuren in dem zweiten Cachespeicher 18 von dem LRU-Ende der Liste unmodifizierter LRU 74 fest und annulliert (in Block 404) die festgelegten unmodifizierten Spuren, ohne die annullierten unmodifizierten Spuren an den Speicher 10 auszulesen.
  • 14 veranschaulicht eine Ausführungsform von Operationen, die von dem Cachespeicher-Manager 24 zum Abrufen angeforderter Spuren für eine Leseanforderung von den Cachespeichern 14 und 18 sowie dem Speicher 10 durchgeführt werden. Der Speicher-Manager 22, der die Leseanforderung verarbeitet, kann Anforderungen an den Cachespeicher-Manager 24 für die angeforderten Spuren vorlegen. Beim Empfangen (in Block 450) der Anforderung für die Spuren verwendet der Cachespeicher-Manager 24 (in Block 454) den Spurenindex 50 des ersten Cachespeichers, um zu ermitteln, ob sich alle der angeforderten Spuren in dem ersten Cachespeicher 14 befinden. Befinden sich (in Block 454) nicht alle der angeforderten Spuren in dem ersten Cachespeicher 14, verwendet der Cachespeicher-Manager 24 (in Block 456) den Spurenindex 70 des zweiten Cachespeichers, um jegliche der angeforderten Spuren in dem zweiten Cachespeicher 18 zu ermitteln, die sich nicht in dem ersten Cachespeicher 14 befinden. Werden (in Block 458) irgendwelche der angeforderten Spuren nicht in dem ersten Cachespeicher 14 oder in dem zweiten Cachespeicher 18 gefunden, ermittelt der Cachespeicher-Manager 24 (in Block 460) jegliche der angeforderten Spuren in dem Speicher 10 anhand des Spurenindexes 70 des zweiten Cachespeichers, die sich nicht in dem ersten 14 oder dem zweiten Cachespeicher 18 befinden. Anschließend gibt der Cachespeicher-Manager 24 (in Block 462) jegliche der ermittelten Spuren in dem zweiten Cachespeicher 18 und dem Speicher 10 an den ersten Cachespeicher 14 weiter. Der Cachespeicher-Manager 24 verwendet (in Block 464) den Spurenindex 50 des ersten Cachespeichers, um die angeforderten Spuren von dem ersten Cachespeicher 14 abzurufen, um sie der Leseanforderung zurückzugeben. Die Einträge für die abgerufenen Spuren werden (in Block 466) an das MRU-Ende der LRU-Liste 54, 56, 58 verschoben, die Einträge für die abgerufenen Einträge enthält. Mit den Operationen von 13 ruft der Cachespeicher-Manager 24 angeforderte Spuren von einem Cachespeicher 14 der höchsten Ebene, dann dem zweiten Cachespeicher 18 ab, bevor er zu dem Speicher 10 übergeht, da die Cachespeicher 14 und 18 die am aktuellsten modifizierte Version einer angeforderten Spur enthalten würden. Die aktuellste Version wird zunächst in dem ersten Cachespeicher 14, dann in dem zweiten Cachespeicher 18, wenn nicht in dem ersten Cachespeicher 14 vorhanden, und anschließend in dem Speicher 10 gesucht, wenn sie weder in Cachespeicher 14 noch 18 vorhanden ist.
  • Mit den Operationen von 14 sammelt der Cachespeicher-Manager 24 angeforderte Spuren von einem Cachespeicher 14 der höchsten Ebene, dann von dem zweiten Cachespeicher 18, bevor er zu dem Speicher 10 übergeht, da die Cachespeicher 14 und 18 den schnellsten Zugriff auf die angeforderten Spuren gewährleisten, und der erste Cachespeicher 14 gewährleistet die am aktuellsten modifizierte Version einer angeforderten Spur.
  • 15 veranschaulicht eine Ausführungsform von Operationen, die von dem E/A-Manager 102 an der Speichereinheit mit sequenziellem Zugriff 100 zum Verarbeiten einer Schreibanforderung mit modifizierten Spuren für das Speichermedium mit sequenziellem Zugriff 114 durchgeführt werden. Beim Empfangen (in Block 500) der Schreibanforderung ermittelt der E/A-Manager 102 (in Block 502), ob ein Attribut einer Schreibanforderung eine Bedingung erfüllt. Wird (in Block 502) die Bedingung erfüllt, wie beispielsweise die, dass es sich bei der Schreibanforderung um eine sequenzielle Schreibanforderung handelt, oder dass die Blockgröße der Schreibanforderung über einem vorgegebenen Schwellenwert liegt, wird die Schreibanforderung (in Block 504) der Schreibumgehungswarteschlange 122 hinzugefügt. Die modifizierten Spuren der Schreibanforderung, die die Bedingung erfüllen, werden (in Block 506) in dem Zwischenspeicher 124 zwischengespeichert. Schreibanforderungen in der Schreibumgehungswarteschlange 122 werden direkt von dem Zwischenspeicher 124 in das Speichermedium mit sequenziellem Zugriff 114 geschrieben, ohne dass sie in der nichtflüchtigen Speichereinheit 104 gecacht werden.
  • In einer Ausführungsform kann es sich bei der Bedingung, die bestimmt, ob die Schreibanforderung nicht in der nichtflüchtigen Speichereinheit 104 gecacht und direkt in das Speichermedium mit sequenziellem Zugriff 114 geschrieben wird, um die Schreibanforderung handeln, die eine sequenzielle Schreibanforderung aufweist. In einer alternativen Ausführungsform können modifizierte Spuren in der nichtflüchtigen Speichereinheit gecacht werden, wenn die Blockgröße der Schreibanforderung unter einem Schwellenwert liegt, so dass sequenzielle und nichtsequenzielle Schreibanforderungen mit einer Anzahl von Blöcken unter dem Schwellenwert in der nichtflüchtigen Speichereinheit 104 gecacht werden.
  • Wenn (in Block 502) das Attribut der Schreibanforderung die Bedingung nicht erfüllt, z.B. wenn es sich um eine nichtsequenzielle Schreibanforderung handelt, fügt der E/A-Manager 102 (in Block 508) die empfangenen modifizierten Spuren der nichtflüchtigen Speichereinheit 104 hinzu. In einer Ausführungsform können die Spuren einem LSA in der nichtflüchtigen Speichereinheit 104 hinzugefügt werden oder in einem anderen Format in der Einheit 104 gespeichert werden. Der E/A-Manager 102 erstellt (in Block 510) einen Cachespeicher-Steuerblock 170 (7) für jede empfangene modifizierte Spur, der einen Ort in der nichtflüchtigen Speichereinheit 104 (z.B. LSA-Ort) der modifizierten Spur anzeigt. Dem Spurenindex 108 wird (in Block 512) ein Eintrag hinzugefügt, der die Spuren-ID der modifizierten Spur in der nichtflüchtigen Speichereinheit 104 aufweist, und dem erstellten Steuerblock 170 wird ein Index hinzugefügt.
  • Der E/A-Manager 102 ermittelt (in Block 514) einen physischen Ort, wo die modifizierte Spur auf dem Speichermedium mit sequenziellem Zugriff 114 gespeichert wird, wie beispielsweise ein Zylinder auf dem Medium. Des Weiteren kann in einer zusätzlichen Ausführungsform der ermittelte physische Ort, der in dem räumlichen Index 112 enthalten ist, eine Winkelposition auf dem Zylinder der modifizierten Spur (auch als der Sektor bezeichnet) aufweisen. Der E/A-Manager 102 fügt (in Block 516) dem räumlichen Index 112 einen Eintrag hinzu, der die Spuren-ID 182 der modifizierten Spur und den ermittelten physischen Ort 184 der modifizierten Spur auf dem Speichermedium mit sequenziellem Zugriff 114 anzeigt. Der E/A-Manager 102 fügt des Weiteren (in Block 518) der Anforderungswarteschlange 116 eine Ausmusterungsanforderung für jede zu schreibende Spur hinzu. Diese Ausmusterungsanforderung identifiziert möglicherweise nicht die auszulesende spezielle Spur, die später unter Verwendung eines Algorithmus zum Verringern der Gesamtzugriffszeit zum Durchführen des Schreibvorgangs ermittelt wird.
  • 16 veranschaulicht eine Ausführungsform von Operationen, die von dem E/A-Manager 102 zum Überprüfen mehrerer Attribute der Schreibanforderungen durchgeführt werden, um zu ermitteln, ob die Schreibanforderung in die Anforderungswarteschlage 116 oder die Schreibumgehungswarteschlange 122 zu halten ist. Beim Initiieren (in Block 530) der Operation zum Ermitteln, ob die Schreibanforderung die Bedingung erfüllt, ermittelt der E/A-Manager 102 (in Block 532), ob es sich bei der empfangenen Schreibanforderung um eine sequenzielle Schreibanforderung handelt. Wenn (in der Nein-Abzweigung von Block 532) es sich bei der Schreibanforderung um eine nichtsequenzielle Schreibanforderung handelt, speichert der E/A-Manager 102 (in Block 534) die modifizierten Spuren für die Schreibanforderung in der nichtflüchtigen Speichereinheit 104 und fügt dem MRU-Ende der Anforderungswarteschlange 116 eine Ausmusterungsanforderung hinzu.
  • Handelt es sich (in Block 532) bei der Schreibanforderung um eine sequenzielle Schreibanforderung und übersteigt (in Block 536) die Größe des Schreibvorgangs wie beispielsweise die Anzahl der Blöcke einen Schwellenwert, d.h. handelt es sich um eine große Schreibanforderung, fügt der E/A-Manager (in Block 538) die Schreibanforderung der Schreibumgehungswarteschlange 122 hinzu und speichert die modifizierten Spuren in dem Zwischenspeicher 124. Übersteigt (in Block 536) die Größe der sequenziellen Schreibanforderung nicht den Schwellenwert, d.h. handelt es sich um einen relativ kleineren Schreibvorgang, geht die Steuerung zu Block 534 über, in dem dieser sequenzielle Schreibvorgang kleinerer Größe in der nichtflüchtigen Speichereinheit 104 gecacht wird.
  • 17 veranschaulicht eine Ausführungsform von Operationen, die von dem E/A-Manager 192 zum Verarbeiten der Anforderungswarteschlange 116 durchgeführt werden, die kontinuierlich wiederholt werden können, während Anforderungen in die Anforderungswarteschlange 116 eingereiht werden. Wenn beim Initiieren (in Block 550) einer Operation zum Verarbeiten der Anforderungswarteschlange 116 (in Block 552) es sich bei der Anforderung um eine Leseanforderung handelt, sammelt der E/A-Manager 102 (in Block 554) jegliche der angeforderten Spuren in der nichtflüchtigen Speichereinheit 104, um sie der Leseanforderung zurückzugeben. Sind (in Block 556) angeforderte Spuren nicht in der nichtflüchtigen Speichereinheit 104 vorhanden, sammelt der E/A-Manager 102 (in Block 558) jegliche der angeforderten Spuren, die nicht in der nichtflüchtigen Speichereinheit 104 gefunden wurden, von dem Speichermedium mit sequenziellem Zugriff 114. Nach dem Sammeln all der angeforderten Spuren (von Block 558 oder der Nein-Abzweigung von Block 556) gibt der E/A-Manager 102 (in Block 560) die gesammelten Leseanforderungspuren an den Speicher-Controller 4 zurück (1), ohne dass die angeforderten Lesespuren in der nichtflüchtigen Speichereinheit 104 gecacht werden.
  • Handelt es sich (in Block 562) bei der Anforderung um eine Ausmusterungs-/Schreibanforderung, geht die Steuerung (in Block 562) zu Block 600 in 18 über, um die Ausmusterungs-/Schreibanforderung zu verarbeiten. Um die Ausmusterungsanforderung (in Block 600) auszuführen, vergleicht der E/A-Manager 102 (in Block 602) eine aktuelle Position des Schreibkopfes 120 in Bezug auf das Speichermedium mit sequenziellem Zugriff 114 mit physischen Orten (z.B. Zylinder und Winkelposition) der modifizierten Spuren, die in dem räumlichen Index 112 angezeigt und anderweitig auf dem Speichermedium mit sequenziellem Zugriff festgelegt sind. Der räumliche Index 112 kann alle erforderliche Daten zum Ermitteln der Spur in nächster zeitlicher Nähe zu dem Schreibkopf enthalten, wie beispielsweise die Zylinder- und Winkelposition der zu schreibenden Spur, oder er kann nur einige der Daten, z.B. den Zylinder aufweisen, und der erforderlich Rest der Daten zum physischen Ort kann anhand der Lese-/Schreibsteuereinheit 118 ermittelt werden. Auf der Grundlage des Vergleiches wählt der E/A-Manager 102 (in Block 606) eine modifizierte Spur aus, die in einer minimalen Zeit von der aktuellen Position des Schreibkopfes 120 geschrieben werden kann und schreibt (in Block 606) die ausgewählte modifizierte Spur auf das Speichermedium mit sequenziellem Zugriff 114. Die ausgemusterte modifizierte Spur wird annulliert (in Block 608).
  • In einer Ausführungsform, in der die Speichereinheit mit sequenziellem Zugriff ein Festplattenlaufwerk und das Speichermedium mit sequenziellem Zugriff 114 eine Magnetplatte aufweist, zeigt der räumliche Index einen Zylinder der Spur auf der Magnetplatte an. Um die modifizierte Spur zu ermitteln, auf die in minimaler Zeit von der aktuellen Position des Schreibkopfes aus zugegriffen werden kann, kann der E/A-Manager 102 den Zylinder und die Winkelposition der modifizierten Spuren in dem räumlichen Index 112 analysieren, um die Zeiten zu schätzen, die der Schreibkopf 120 für das Suchen bis zu den Zylindern der modifizierten Spuren und das Drehen der Platte unter dem Schreibkopf 120 zum Erreichen der Winkelpositionen der modifizierten Spuren benötigt. Anschließend kann der E/A-Manager eine modifizierte Spur auswählen, die ein Minimum der geschätzten Zugriffszeiten beträgt.
  • In einer weiteren Ausführungsform kann die Speichereinheit mit sequenziellem Zugriff 114 ein Festplattenlaufwerk mit mehreren Platten und mehreren Schreibköpfen zum Beschreiben einer jeden Platte aufweisen. Der E/A-Manager 102 kann die geschätzte Zeit zum Suchen und Drehen zu einer jeden modifizierten Spur auf einer jeden Platte von der aktuellen Position der Schreibköpfe zum Auswählen einer modifizierten Spur verwenden, die die minimale geschätzte Zeit für den Zugriff über die Platten hinweg aufweist.
  • 19 veranschaulicht eine Ausführungsform von Operationen, die von dem E/A-Manager 102 zum Verarbeiten von Schreibanforderungen in der Schreibumgehungswarteschlange 122 und zum Verarbeiten von Schreib- und Leseanforderungen in der Anforderungswarteschlange 116 durchgeführt werden. Bei Abschluss (in Block 650) der Verarbeitung einer Lese- oder Schreibanforderung in der Anforderungswarteschlange 650 ermittelt der E/A-Manager 102 (in Block 652), ob die Schreibumgehungsanforderungswarteschlange leer ist. Ist dies der Fall, geht der E/A-Manager 102 (in Block 654) zu Block 550 in 17 über, um eine Anforderung in der Anforderungswarteschlange 116 zu verarbeiten. Falls (in Block 652) die Schreibumgehungsanforderungswarteschlange 122 nicht leer ist, verarbeitet der E/A-Manager 102 (in Block 656) eine Schreibanforderung in der Schreibumgehungsanforderungswarteschlange 122 durch Schreiben der zwischengespeicherten modifizierten Spuren für die verarbeitete Schreibanforderung in das Speichermedium mit sequenziellem Zugriff 114, wodurch die nichtflüchtige Speichereinheit 104 umgangen wird. Auf diese Weise wird den Schreibanforderungen in der Umgehungswarteschlange 122 eine höhere Wahrscheinlichkeit als in der Anforderungswarteschlange 116 sichergestellt. Wenn nach dem Verarbeiten einer Schreibanforderung von der Schreibumgehungsanforderungswarteschlange 122 (in Block 658) eine aufeinanderfolgende vorgegebene erste Anzahl an Schreibanforderungen in der Schreibumgehungsanforderungswarteschlange 122 verarbeitet worden ist, geht die Steuerung zu Block 550 in 17 über, um eine zweite vorgegebene Anzahl von Anforderungen in der Anforderungswarteschlange 116 zu verarbeiten, um einen „Mangel“ von Anforderungen in der Anforderungswarteschlange 116 zu vermeiden. Wenn anderenfalls (in Block 658) die aufeinanderfolgende vorgegebene erste Anzahl an Schreibanforderungen von der Schreibumgehungsanforderungswarteschlange 122 nicht verarbeitet worden ist, d.h. die Mangelsituation nicht aufgetreten ist, geht die Steuerung zurück zu Block 656, um eine weitere Schreibanforderung in der Schreibumgehungsanforderungswarteschlange 122 zu verarbeiten.
  • Wenn darüber hinaus der E/A-Manager 102 ermittelt, dass eine Ausmusterungsoperation zum Ausmustern der modifizierten Spuren in der nichtflüchtigen Speichereinheit 104 auf das Speichermedium mit sequenziellem Zugriff 114 durchgeführt werden muss, um Platz in dem nichtflüchtigen Speichermedium 104 freizumachen, kann die Ausmusterungsoperation die Verarbeitung der Schreibanforderungen in der Schreibumgehungsanforderungswarteschlange 122 so lange unterbrechen, bis die Ausmusterungsoperation abgeschlossen ist.
  • Beschriebene Ausführungsformen stellen Verfahren bereit, die eine Verwendung eines Cachespeichers einer zweiten Ebene zwischen einem Cachespeicher einer primären oder ersten Ebene und einem Speicher ermöglichen, um den Cachespeicher-Platz zu erhöhen, wenn der erste Cachespeicher mit dem schnellsten Zugriff 14 über den teuersten Speicherplatz beziehungsweise Kosten pro Byte verfügt, und ein zweiter Cachespeicher, der weniger teuer als der erste Cachespeicher jedoch schneller als der Speicher ist, verwendet werden kann, um die Menge an Daten, die in dem System gecacht werden können, zu erhöhen. Durch Vergrößern des Speicherplatzes in Cachespeichern mit schnellerem Zugriff wird der Zugriff auf die gecachten Daten verbessert, wenn die angeforderten Daten in dem Cachespeicher vorhanden sind und von einem Cachespeicher zurückgegeben werden können, anstatt einen Aufruf von dem weniger teuren Speicher mit langsameren Zugriff ausführen zu müssen. Des Weiteren werden in den beschriebenen Ausführungsformen unmodifizierte nichtsequenzielle Spuren dem zweiten Cachespeicher auf der Grundlage einer zeitlichen Reihenfolge in dem ersten Cachespeicher hinzugefügt, und anschließend werden sie in dem zweiten Cachespeicher auf der Grundlage des räumlichen physischen Ortes in dem Speicher mit sequenziellem Zugriff so sortiert, dass die ausgemusterten Spuren in Gruppen von Spuren an nahe oder aufeinanderfolgende physische Orte in dem Speicher geschrieben werden, um das Schreiben der Spuren in den Speicher zu optimieren.
  • Beschriebene Ausführungsformen liefern des Weiteren eine nichtflüchtige Speichereinheit 104 wie beispielsweise einen Flash-Speicher in der Speichereinheit mit sequenziellem Zugriff 100, um Cachen von modifizierten Spuren zu ermöglichen, während Leseanforderungen auf Spuren von der nichtflüchtigen Speichereinheit 104 zurückgegeben werden können, bevor sie zum Verbessern der Leseleistung zu dem Speichermedium mit sequenziellem Zugriff 114 ausgemustert werden. Des Weiteren kann die Schreibleistung verbessert werden, indem vollständig zu dem Schreibvorgang in Reaktion darauf zurückgekehrt wird, dass der Schreibvorgang in der nichtflüchtigen Speichereinheit 104 gespeichert wird, bevor er zu dem Speichermedium mit sequenziellem Zugriff 114 ausgemustert wird.
  • Weitere Vorteile werden durch Schreiben bestimmter Typen von Schreibanforderungen, normalerweise für Daten, auf die weniger häufig zugegriffen wird z.B. sequenzielle Schreibdaten direkt in das Speichermedium mit sequenziellem Zugriff 114 und Umgehen des Cachespeichers der nichtflüchtigen Speichereinheit 104 umgesetzt, um mehr Speicherplatz in dem Cachespeicher der nichtflüchtigen Speichereinheit 104 für Schreibdaten freizumachen, auf die wahrscheinlich häufiger zugegriffen wird, wie beispielsweise nichtsequenzielle Schreibspuren. Dadurch können Daten, auf die häufiger zugegriffen wird, an Leseanforderungen von der Speichereinheit mit schnellerem Zugriff 104 wie beispielsweise einem Flash-Speicher zurückgegeben werden, anstatt auf die häufiger zugegriffenen Daten von dem langsameren Speichermedium mit sequenziellem Zugriff 114 wie beispielsweise einem Plattenlaufwerk zugreifen zu müssen.

Claims (23)

  1. Computerprogrammprodukt zum Verwalten von Daten in einer Speichereinheit (4, 10; 100) mit sequenziellem Zugriff, die Leseanforderungen und Schreibanforderungen von einem System (2a, 2b...2n) in Bezug auf Spuren empfängt, die auf einem Speichermedium (114) mit sequenziellem Zugriff gespeichert sind, wobei das Computerprogrammprodukt aufweist ein computerlesbares Speichermedium mit einem darauf ausgebildeten computerlesbaren Programmcode, der ausgeführt wird, um Operationen durchzuführen, wobei die Operationen aufweisen: Cachen empfangener modifizierter Spuren in einer nichtflüchtigen Speichereinheit (104), die in der Speichereinheit (100) mit sequenziellem Zugriff integriert ist, in Reaktion auf Feststellen, dass modifizierte Spuren gecacht werden sollen; Empfangen (500) einer Schreibanforderung mit modifizierten Spuren; Ermitteln (502), ob ein Attribut der empfangenen Schreibanforderung eine Bedingung erfüllt; Cachen (508) der empfangenen modifizierten Spuren für die Schreibanforderung in der nichtflüchtigen Speichereinheit (104) in Reaktion auf das Ermitteln (502), dass das festgelegte Attribut die Bedingung nicht erfüllt; Hinzufügen (518) einer Ausmusterungsanforderung in eine Anforderungswarteschlange (116) für die empfangene Schreibanforderung mit dem festgelegten Attribut, das die Bedingung nicht erfüllt; Schreiben (656, 606) der empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen mit dem Attribut, das die Bedingung nicht erfüllt; Führen einer Umgehungswarteschlange (122), die Schreibanforderungen für modifizierte Spuren, bei denen das festgelegte Attribut die Bedingung nicht erfüllt, in Warteschlange hält; in Reaktion auf das Abschließen (650) des Verarbeitens einer Schreibanforderung in der Anforderungswarteschlange, Verarbeiten (656) einer Schreibanforderung in der Umgehungswarteschlange in Reaktion darauf, dass die Umgehungswarteschlange wenigstens eine Schreibanforderung aufweist (652), wobei die Schreibanforderungen in der Umgehungswarteschlange mit einer höheren Priorität gegenüber Schreibanforderungen in der Anforderungswarteschlange verarbeitet werden.
  2. Computerprogrammprodukt nach Anspruch 1, wobei es sich bei der nichtflüchtigen Speichereinheit um eine Einheit mit schnellerem Zugriff als der bei dem Speichermedium mit sequenziellem Zugriff handelt.
  3. Computerprogrammprodukt nach Anspruch 1, wobei die Speichereinheit mit sequenziellem Zugriff ein Festplattenlaufwerk aufweist, das einen Zwischenspeicher (124) aufweist, wobei die nichtflüchtige Speichereinheit eine Flash-Einheit separat von einer Einheit aufweist, die den Zwischenspeicher aufweist, wobei das Speichermedium (114) mit sequenziellem Zugriff wenigstens eine magnetische Platte aufweist, wobei die empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, in dem Zwischenspeicher (124) solange gespeichert werden, bis sie auf das Speichermedium (114) mit sequenziellem Zugriff geschrieben werden, ohne dass sie in der nichtflüchtigen Speichereinheit (104) gespeichert werden.
  4. Computerprogrammprodukt nach Anspruch 1, wobei die Operationen des Weiteren aufweisen: Führen eines räumlichen Indexes (112), der die modifizierten Spuren in der nichtflüchtigen Speichereinheit in einer Reihenfolge basierend auf ihrem physischen Ort (184) in dem Speichermedium (114) mit sequenziellem Zugriff anzeigt; und in Reaktion auf das Verarbeiten (600) einer Ausmusterungsanforderung in der Anforderungswarteschlange, Vergleichen (602) einer aktuellen Position eines Schreibkopfes mit physischen Orten der modifizierten Spuren auf dem Speichermedium (114) mit sequenziellem Zugriff, die in dem räumlichen Index angezeigt werden, um eine modifizierte Spur zum Auslesen aus der nichtflüchtigen Speichereinheit auf das Speichermedium (114) mit sequenziellem Zugriff auszuwählen (604), und wobei die Schreibanforderungen mit dem festgelegten Attribut, das die Bedingung erfüllt, auf das Speichermedium (114) mit sequenziellem Zugriff ohne Verwendung des räumlichen Indexes geschrieben (606) werden.
  5. Computerprogrammprodukt nach Anspruch 1, wobei die Bedingung das Attribut aufweist, dass es sich um eine sequenzielle Schreibanforderung handelt, und wobei das festgelegte Attribut die Bedingung nicht erfüllt (532), wenn die Schreibanforderung eine nichtsequenzielle Schreibanforderung aufweist.
  6. Computerprogrammprodukt nach Anspruch 1, wobei das festgelegte Attribut eine Anzahl von zu schreibenden Spuren als Teil der empfangenen Schreibanforderung aufweist, und wobei das festgelegte Attribut die Bedingung erfüllt (536), wenn die festgelegte Anzahl von zu schreibenden Spuren größer ist als eine Schwellenwertanzahl von Spuren, und wobei die Bedingung nicht erfüllt (536) ist, wenn die festgelegte Anzahl von Spuren kleiner als die Schwellenwertanzahl von Spuren ist.
  7. Computerprogrammprodukt nach Anspruch 1, wobei das festgelegte Attribut ein erstes Attribut aufweist und die festgelegte Bedingung eine erste Bedingung aufweist, wobei die Operationen des Weiteren aufweisen: Festlegen eines zweiten Attributes der Schreibanforderung in Reaktion auf Ermitteln (532), dass das erste Attribut die erste Bedingung erfüllt; Ermitteln (536), ob das zweite Attribut eine zweite Bedingung erfüllt; Cachen (534) der empfangenen modifizierten Spuren in der nichtflüchtigen Speichereinheit in Reaktion auf Ermitteln, dass das festgelegte zweite Attribut die zweite Bedingung erfüllt; und Hinzufügen (534) einer Ausmusterungsanforderung in die Anforderungswarteschlange für Schreibanforderungen mit dem festgelegten ersten Attribut, das die erste Bedingung erfüllt, und dem zweiten Attribut, das die zweite Bedingung erfüllt, wobei die empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten ersten Attribut, das die erste Bedingung erfüllt, und dem festgelegten zweiten Attribut, das die zweite Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen geschrieben werden, bei denen das erste Attribut die erste Bedingung nicht erfüllt und für Schreibanforderungen, bei denen das erste Attribut die erste Bedingung erfüllt aber das zweite Attribut die zweite Bedingung nicht erfüllt.
  8. Computerprogrammprodukt nach Anspruch 7, wobei das festgelegte erste Attribut anzeigt, ob es sich bei der Schreibanforderung um einen sequenziellen Schreibvorgang oder einen nichtsequenziellen Schreibvorgang handelt, und wobei das erste festgelegte Attribut die erste Bedingung erfüllt, wenn es sich bei dem ersten Attribut um eine sequenzielle Schreibanforderung handelt und die erste Bedingung nicht erfüllt ist, wenn es sich bei dem ersten Attribut um eine nichtsequenzielle Schreibanforderung handelt, wobei das zweite Attribut eine Anzahl von zu schreibenden Spuren als Teil der empfangenen Schreibanforderung aufweist, wobei das festgelegte zweite Attribut die zweite Bedingung erfüllt, wenn die festgelegte Anzahl an zu schreibenden Spuren weniger als eine Schwellenwertanzahl von Spuren ist, und wobei die zweite Bedingung nicht erfüllt ist, wenn die festgelegte Anzahl von Spuren größer als die Schwellenwertanzahl von Spuren ist.
  9. Computerprogrammprodukt nach Anspruch 1, des Weiteren aufweisend: Umschalten (660) auf Verarbeiten einer ersten vorgegebenen Anzahl an Schreibanforderungen in der Anforderungswarteschlange nach Verarbeiten (658) einer vorgegebenen zweiten Anzahl von Schreibanforderungen in der U mgehungswartesch lange.
  10. Verfahren zum Verwalten von Daten in einer Speichereinheit (4, 10; 100) mit sequenziellem Zugriff, die Leseanforderungen und Schreibanforderungen von einem System (2a, 2b...2n) in Bezug auf Spuren empfängt, die in einem Speichermedium 114) mit sequenziellem Zugriff gespeichert sind, aufweisend: Cachen empfangener modifizierter Spuren in einer nichtflüchtigen Speichereinheit (104), die in der Speichereinheit (100) mit sequenziellem Zugriff integriert ist, in Reaktion auf das Feststellen, dass modifizierte Spuren gecacht werden sollen; Empfangen (500) einer Schreibanforderung mit modifizierten Spuren; Ermitteln (502), ob ein Attribut der empfangenen Schreibanforderung eine Bedingung erfüllt; Cachen (508) der empfangenen modifizierten Spuren für die Schreibanforderung in der nichtflüchtigen Speichereinheit in Reaktion auf das Ermitteln, dass das festgelegte Attribut die Bedingung nicht erfüllt; Hinzufügen (518) einer Ausleseanforderung in eine Anforderungswarteschlange (116) für die empfangene Schreibanforderung mit dem festgelegten Attribut, das die Bedingung nicht erfüllt; Schreiben (656, 606) der empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen mit dem Attribut, das die Bedingung nicht erfüllt; Führen einer Umgehungswarteschlange (122), die Schreibanforderungen für modifizierte Spuren, bei denen das festgelegte Attribut die Bedingung nicht erfüllt, in einer Warteschlange hält; und in Reaktion auf das Abschließen (650) des Verarbeitens einer Schreibanforderung in der Anforderungswarteschlange, Verarbeiten (656) einer Schreibanforderung in der Umgehungswarteschlange in Reaktion darauf, dass die Umgehungswarteschlange wenigstens eine Schreibanforderung aufweist (652), wobei die Schreibanforderungen in der Umgehungswarteschlange mit einer höheren Priorität gegenüber den Schreibanforderungen in der Anforderungswarteschlange verarbeitet werden.
  11. Verfahren nach Anspruch 10, wobei die Speichereinheit mit sequenziellem Zugriff ein Festplattenlaufwerk aufweist, das einen Zwischenspeicher (124) aufweist, wobei die nichtflüchtige Speichereinheit eine Flash-Einheit separat von einer Einheit aufweist, die den Zwischenspeicher aufweist, wobei das Speichermedium (114) mit sequenziellem Zugriff wenigstens eine magnetische Platte aufweist, wobei die empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, in dem Zwischenspeicher solange gespeichert werden, bis sie auf das Speichermedium (114) mit sequenziellem Zugriff geschrieben werden, ohne dass sie in der nichtflüchtigen Speichereinheit (104) gespeichert werden.
  12. Verfahren nach Anspruch 10, des Weiteren aufweisend: Führen eines räumlichen Indexes (112), der die modifizierten Spuren in der nichtflüchtigen Speichereinheit in einer Reihenfolge basierend auf ihrem physischen Ort (184) in dem Speichermedium (114) mit sequenziellem Zugriff anzeigt; und in Reaktion auf das Verarbeiten (600) einer Ausmusterungsanforderung in der Anforderungswarteschlange, Vergleichen (602) einer aktuellen Position eines Schreibkopfes mit physischen Orten der modifizierten Spuren auf dem Speichermedium (114) mit sequenziellem Zugriff, die in dem räumlichen Index angezeigt werden, um eine modifizierte Spur zum Auslesen aus der nichtflüchtigen Speichereinheit auf das Speichermedium (114) mit sequenziellem Zugriff auszuwählen, und wobei die Schreibanforderungen mit dem festgelegten Attribut, das die Bedingung erfüllt, auf das Speichermedium (114) mit sequenziellem Zugriff ohne Verwendung des räumlichen Indexes geschrieben (606) werden.
  13. Verfahren nach Anspruch 10, wobei die Bedingung das Attribut aufweist, dass es sich um eine sequenzielle Schreibanforderung handelt, und wobei das festgelegte Attribut die Bedingung nicht erfüllt (532), wenn die Schreibanforderung eine nichtsequenzielle Schreibanforderung aufweist.
  14. Verfahren nach Anspruch 10, wobei das festgelegte Attribut eine Anzahl an zu schreibenden Spuren als Teil der empfangenen Schreibanforderung aufweist, wobei das festgelegte Attribut die Bedingung erfüllt (536), wenn die festgelegte Anzahl an zu schreibenden Spuren größer ist als eine Schwellenwertanzahl von Spuren, und wobei die Bedingung nicht erfüllt (536) ist, wenn die festgelegte Anzahl an Spuren kleiner ist als die Schwellenwertanzahl von Spuren.
  15. Verfahren nach Anspruch 10, wobei das festgelegte Attribut ein erstes Attribut und die festgelegte Bedingung eine erste Bedingung aufweist, des Weiteren aufweisend: Festlegen eines zweiten Attributes der Schreibanforderung in Reaktion auf das Ermitteln (532), dass das erste Attribut die erste Bedingung erfüllt; Ermitteln (536), ob das zweite Attribut eine zweite Bedingung erfüllt; Cachen (534) der empfangenen modifizierten Spuren in der nichtflüchtigen Speichereinheit in Reaktion auf das Ermitteln, dass das festgelegte zweite Attribut die zweite Bedingung erfüllt; und Hinzufügen (534) einer Ausmusterungsanforderung in die Anforderungswarteschlange für Schreibanforderungen mit dem festgelegten ersten Attribut, das die erste Bedingung erfüllt und dem zweiten Attribut, das die zweite Bedingung erfüllt, wobei die empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten ersten Attribut, das die erste Bedingung erfüllt und dem festgelegten zweiten Attribut, das die zweite Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen geschrieben werden, bei denen das erste Attribut die erste Bedingung nicht erfüllt und für Schreibanforderungen, bei denen das erste Attribut die erste Bedingung erfüllt aber das zweite Attribut die zweite Bedingung nicht erfüllt.
  16. Verfahren nach Anspruch 15, wobei das festgelegte erste Attribut anzeigt, ob es sich bei der Schreibanforderung um einen sequenziellen oder einen nichtsequenziellen Schreibvorgang handelt, und wobei das festgelegte erste Attribut die erste Bedingung erfüllt, wenn es sich bei dem ersten Attribut um eine sequenzielle Schreibanforderung handelt und die erste Bedingung nicht erfüllt wird, wenn es sich bei dem ersten Attribut um eine nichtsequenzielle Schreibanforderung handelt, wobei das zweite Attribut eine Anzahl von zu schreibenden Spuren als Teil der empfangen Schreibanforderungen aufweist, wobei das festgelegte zweite Attribut die zweite Bedingung erfüllt, wenn die vorgegebene Anzahl von zu schreibenden Spuren kleiner als eine Schwellenwertanzahl von Spuren ist, und wobei die zweite Bedingung nicht erfüllt ist, wenn die festgelegte Anzahl von Spuren größer als die Schwellenwertanzahl an Spuren ist.
  17. Speichereinheit (4, 10; 100), die Leseanforderungen und Schreibanforderungen für Spuren von einem System (2a, 2b...2n) empfängt, aufweisend: ein Speichermedium (114) mit sequenziellem Zugriff, das Spuren speichert; eine nichtflüchtige Speichereinheit (104), die in einer Speichereinheit (100) mit sequenziellem Zugriff integriert ist; und ein computerlesbares Speichermedium mit einem darauf ausgebildeten Computerprogrammcode, der ausgeführt wird, um Operationen durchzuführen, wobei die Operationen aufweisen: Cachen empfangener modifizierter Spuren in einer nichtflüchtigen Speichereinheit (104) in Reaktion auf das Feststellen, dass die modifizierten Spuren gecacht werden sollen; Empfangen (500) einer Schreibanforderung mit modifizierten Spuren; Ermitteln (502), ob ein Attribut der empfangenen Schreibanforderung eine Bedingung erfüllt; Cachen (508) der empfangenen modifizierten Spuren für die Schreibanforderung in der nichtflüchtigen Speichereinheit (104) in Reaktion auf das Ermitteln (502), dass das festgelegte Attribut die Bedingung nicht erfüllt; Hinzufügen (518) einer Ausmusterungsanforderung in eine Anforderungswarteschlange (116) für die empfangene Schreibanforderung mit dem festgelegten Attribut, das die Bedingung nicht erfüllt; und Schreiben (656, 606) der empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen mit dem Attribut, das die Bedingung nicht erfüllt; Führen einer Umgehungswarteschlange (122), die Schreibanforderungen für modifizierte Spuren, bei denen das festgelegte Attribut die Bedingung nicht erfüllt, in einer Warteschlange hält; in Reaktion auf das Abschließen (650) des Verarbeitens einer Schreibanforderung in der Anforderungswarteschlange, Verarbeiten (656) einer Schreibanforderung in der Umgehungswarteschlange in Reaktion darauf, dass die Umgehungswarteschlange wenigstens eine Schreibanforderung aufweist (652), wobei die Schreibanforderungen in der Umgehungswarteschlange mit einer höheren Priorität gegenüber den Schreibanforderungen in der Anforderungswarteschlange verarbeitet werden.
  18. Speichereinheit nach Anspruch 17, wobei die Speichereinheit mit sequenziellem Zugriff ein Festplattenlaufwerk aufweist, das einen Zwischenspeicher (124) aufweist, wobei die nichtflüchtige Speichereinheit eine Flash-Einheit separat von einer Einheit aufweist, die den Zwischenspeicher aufweist, wobei das Speichermedium (114) mit sequenziellem Zugriff wenigstens eine magnetische Platte aufweist, wobei die empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten Attribut, das die Bedingung erfüllt, in dem Zwischenspeicher (124) solange gespeichert werden, bis sie auf das Speichermedium (114) mit sequenziellem Zugriff geschrieben werden, ohne dass sie in der nichtflüchtigen Speichereinheit (104) gespeichert werden.
  19. Speichereinheit nach Anspruch 17, wobei die Operationen des Weiteren aufweisen: Führen eines räumlichen Indexes (112), der die modifizierten Spuren in dem nichtflüchtigen Speichereinheit in einer Reihenfolge basierend auf ihrem physischen Ort (184) in dem Speichermedium (114) mit sequenziellem Zugriff anzeigt; und in Reaktion auf das Verarbeiten (600) einer Ausmusterungsanforderung in der Anforderungswarteschlange, Vergleichen (602) einer aktuellen Position eines Schreibkopfes mit physischen Orten der modifizierten Spuren auf dem Speichermedium (114) mit sequenziellem Zugriff, die in dem räumlichen Index angezeigt werden, um eine modifizierte Spur zum Auslesen aus der nichtflüchtigen Speichereinheit auf das Speichermedium (114) mit sequenziellem Zugriff auszuwählen (604), und wobei die Schreibanforderungen mit dem festgelegten Attribut, das die Bedingung erfüllt, auf das Speichermedium (114) mit sequenziellem Zugriff ohne Verwendung des räumlichen Indexes geschrieben (606) werden.
  20. Speichereinheit nach Anspruch 17, wobei die Bedingung das Attribut aufweist, dass es sich um eine sequenzielle Schreibanforderung handelt, und wobei das festgelegte Attribut die Bedingung nicht erfüllt (532), wenn die Schreibanforderung eine nichtsequenzielle Schreibanforderung aufweist.
  21. Speichereinheit nach Anspruch 17, wobei das festgelegte Attribut eine Anzahl an zu schreibenden Spuren als Teil der empfangenen Schreibanforderung aufweist, wobei das festgelegte Attribut die Bedingung erfüllt (536), wenn die festgelegte Anzahl von zu schreibenden Spuren größer als eine Schwellenwertanzahl ist, und wobei die Bedingung nicht erfüllt (536) ist, wenn die festgelegte Anzahl an Spuren kleiner als die Schwellenwertanzahl von Spuren ist.
  22. Speichereinheit nach Anspruch 17, wobei das festgelegte Attribut ein erstes Attribut und die festgelegte Bedingung eine erste Bedingung aufweist, wobei die Operationen des Weiteren aufweisen: Festlegen eines zweiten Attributes der Schreibanforderung in Reaktion auf das Ermitteln (532), dass das erste Attribut die erste Bedingung erfüllt; Ermitteln (536), ob das zweite Attribut eine zweite Bedingung erfüllt; Cachen (534) der empfangenen modifizierten Spuren in der nichtflüchtigen Speichereinheit in Reaktion auf das Ermitteln, dass das festgelegte zweite Attribut die zweite Bedingung erfüllt; und Hinzufügen (534) einer Ausmusterungsanforderung in die Anforderungswarteschlange für Schreibanforderungen mit dem festgelegten ersten Attribut, das die erste Bedingung erfüllt und dem zweiten Attribut, das die zweite Bedingung erfüllt, wobei die empfangenen modifizierten Spuren für die Schreibanforderung mit dem festgelegten ersten Attribut, das die erste Bedingung erfüllt und dem festgelegten zweiten Attribut, das die zweite Bedingung erfüllt, mit einer höheren Priorität als die der modifizierten Spuren für Schreibanforderungen geschrieben werden, bei denen das erste Attribut nicht die erste Bedingung erfüllt und für Schreibanforderungen, bei denen das erste Attribut die erste Bedingung erfüllt aber das zweite Attribut die zweite Bedingung nicht erfüllt.
  23. Speichereinheit nach Anspruch 22, wobei das festgelegte erste Attribut anzeigt, ob es sich bei der Schreibanforderung um einen sequenziellen oder einen nichtsequenziellen Schreibvorgang handelt, und wobei das festgelegte erste Attribut die erste Bedingung erfüllt, wenn es sich bei dem ersten Attribut um eine sequenzielle Schreibanforderung handelt und die erste Bedingung nicht erfüllt ist, wenn es sich bei dem ersten Attribut um eine nichtsequenzielle Schreibanforderung handelt, wobei das zweite Attribut eine Anzahl von zu schreibenden Spuren als Teil der empfangenen Schreibanforderungen aufweist, wobei das festgelegte zweite Attribut die zweite Bedingung erfüllt, wenn die vorgegebene Anzahl von zu schreibenden Spuren kleiner als eine Schwellenwertanzahl von Spuren ist, und wobei die zweite Bedingung nicht erfüllt ist, wenn die festgelegte Anzahl von Spuren größer als die Schwellenwertanzahl an Spuren ist.
DE112012001302.6T 2011-05-23 2012-05-22 Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern Active DE112012001302B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/113,949 2011-05-23
US13/113,949 US8788742B2 (en) 2011-05-23 2011-05-23 Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
USUS-13/113,949 2011-05-23
PCT/IB2012/052564 WO2012160514A1 (en) 2011-05-23 2012-05-22 Caching data in a storage system having multiple caches

Publications (2)

Publication Number Publication Date
DE112012001302T5 DE112012001302T5 (de) 2014-01-30
DE112012001302B4 true DE112012001302B4 (de) 2020-12-17

Family

ID=47216679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012001302.6T Active DE112012001302B4 (de) 2011-05-23 2012-05-22 Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern

Country Status (6)

Country Link
US (2) US8788742B2 (de)
JP (1) JP5943363B2 (de)
CN (1) CN103562843B (de)
DE (1) DE112012001302B4 (de)
GB (1) GB2506042B (de)
WO (1) WO2012160514A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
KR101374065B1 (ko) * 2012-05-23 2014-03-13 아주대학교산학협력단 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US8930619B2 (en) * 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US20140189204A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Information processing apparatus and cache control method
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
US9473561B2 (en) * 2013-03-15 2016-10-18 International Business Machines Corporation Data transmission for transaction processing in a networked environment
WO2014143027A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Hybrid input/output write operations
US10083117B2 (en) * 2014-09-09 2018-09-25 Hua Zhong University of Technology Filtering write request sequences
US9665493B2 (en) * 2014-10-03 2017-05-30 International Business Machines Corporation Increased cache performance with multi-level queues of complete tracks
CN106156065B (zh) * 2015-03-30 2019-09-20 华为技术有限公司 一种文件持久化方法、删除方法以及相关装置
US9600417B2 (en) * 2015-04-29 2017-03-21 Google Inc. Data caching
KR102333220B1 (ko) 2015-09-24 2021-12-01 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
TWI588824B (zh) * 2015-12-11 2017-06-21 捷鼎國際股份有限公司 加快在不連續頁面寫入資料之電腦系統及其方法
CN108292278B (zh) * 2016-01-22 2021-02-26 株式会社日立制作所 计算机系统和计算机
US10037149B2 (en) * 2016-06-17 2018-07-31 Seagate Technology Llc Read cache management
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
US10691566B2 (en) 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
US10409726B2 (en) 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache
KR20190116641A (ko) * 2018-04-05 2019-10-15 성균관대학교산학협력단 가상화 시스템을 위한 저장 장치 및 그 동작 방법
US11151037B2 (en) * 2018-04-12 2021-10-19 International Business Machines Corporation Using track locks and stride group locks to manage cache operations
US11055001B2 (en) 2018-05-30 2021-07-06 Seagate Technology Llc Localized data block destaging
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100274962A1 (en) * 2009-04-26 2010-10-28 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464713A (en) 1981-08-17 1984-08-07 International Business Machines Corporation Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store
JPH04119441A (ja) * 1990-09-11 1992-04-20 Hitachi Ltd ディスク・キャッシュ制御方式
AU661304B2 (en) 1991-03-05 1995-07-20 Zitel Corporation Cache memory system and method of operating the cache memory system
US5325509A (en) 1991-03-05 1994-06-28 Zitel Corporation Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
US5903776A (en) 1997-09-05 1999-05-11 Micron Electronics, Inc. Multiple priority accelerated graphics port (AGP) request queue
US6425050B1 (en) * 1999-09-17 2002-07-23 International Business Machines Corporation Method, system, and program for performing read operations during a destage operation
JP2002023962A (ja) * 2000-07-07 2002-01-25 Fujitsu Ltd ディスク装置及び制御方法
US6785771B2 (en) * 2001-12-04 2004-08-31 International Business Machines Corporation Method, system, and program for destaging data in cache
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US20040205297A1 (en) * 2003-04-14 2004-10-14 Bearden Brian S. Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7885921B2 (en) 2004-11-18 2011-02-08 International Business Machines Corporation Managing atomic updates on metadata tracks in a storage system
US7698501B1 (en) 2005-04-29 2010-04-13 Netapp, Inc. System and method for utilizing sparse data containers in a striped volume set
US8504597B2 (en) 2005-09-09 2013-08-06 William M. Pitts Distributed file system consistency mechanism extension for enabling internet video broadcasting
JP4788528B2 (ja) * 2005-09-22 2011-10-05 富士通株式会社 ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US20070118695A1 (en) 2005-11-18 2007-05-24 International Business Machines Corporation Decoupling storage controller cache read replacement from write retirement
US7650341B1 (en) 2005-12-23 2010-01-19 Hewlett-Packard Development Company, L.P. Data backup/recovery
US7702870B2 (en) 2006-01-19 2010-04-20 Network Appliance Inc. Method and apparatus for defragmentation and for detection of relocated blocks
JP4794370B2 (ja) * 2006-06-20 2011-10-19 株式会社日立製作所 省電力とパフォーマンスを両立したストレージシステム及び記憶制御方法
US7411757B2 (en) * 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation
US7562203B2 (en) 2006-09-27 2009-07-14 Network Appliance, Inc. Storage defragmentation based on modified physical address and unmodified logical address
JP2008108145A (ja) 2006-10-26 2008-05-08 Hitachi Ltd 計算機システム及びこれを用いたデータの管理方法
JP5031341B2 (ja) 2006-11-30 2012-09-19 株式会社日立製作所 記憶システム及びデータ管理方法
US7783839B2 (en) * 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
US7721043B2 (en) 2007-01-08 2010-05-18 International Business Machines Corporation Managing write requests in cache directed to different storage groups
US7680982B2 (en) * 2007-02-20 2010-03-16 International Business Machines Corporation Preservation of cache data following failover
US9088591B2 (en) 2008-04-28 2015-07-21 Vmware, Inc. Computer file system with path lookup tables
TWI476610B (zh) 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8838903B2 (en) * 2010-02-04 2014-09-16 Dataram, Inc. Priority ordered multi-medium solid-state storage system and methods for use

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100274962A1 (en) * 2009-04-26 2010-10-28 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory

Also Published As

Publication number Publication date
GB2506042B (en) 2014-07-30
US20120303877A1 (en) 2012-11-29
CN103562843A (zh) 2014-02-05
CN103562843B (zh) 2016-07-20
US20120303863A1 (en) 2012-11-29
JP5943363B2 (ja) 2016-07-05
US8788742B2 (en) 2014-07-22
JP2014516179A (ja) 2014-07-07
DE112012001302T5 (de) 2014-01-30
US8745325B2 (en) 2014-06-03
GB201321720D0 (en) 2014-01-22
GB2506042A (en) 2014-03-19
WO2012160514A1 (en) 2012-11-29

Similar Documents

Publication Publication Date Title
DE112012001302B4 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112013001284B4 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112012001808B4 (de) Cache-Management von Spuren in einem ersten Cachespeicher und einem zweiten Cachespeicher für einen Speicher
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
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
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
US8677062B2 (en) Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
US8935476B2 (en) Managing caching of extents of tracks in a first cache, second cache and storage
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
US8799578B2 (en) Managing unmodified tracks maintained in both a first cache and a second cache
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
US20140013053A1 (en) Determining a criterion for movement of data from a primary cache to a secondary cache
US20160188217A1 (en) Method for data placement in a memory based file system
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
US8825952B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache
DE112018005768T5 (de) Copy-source-to-target-verwaltung in einem datenspeichersystem
DE112020000183T5 (de) Speicherungsklassenspeicherzugriff
DE112021003441T5 (de) Abrufen von Cacheressourcen für erwartete Schreiboperationen auf Spuren in einem Schreibsatz, nachdem die Cacheressourcen für die Spuren in dem Schreibsatz freigegeben wurden

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE GBR, DE

Representative=s name: RICHARDT PATENTANWAELTE PART GMBB, DE

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final