-
GEBIET
-
Die Offenbarung betrifft ein Verfahren, ein System und einen Herstellungsartikel für periodische Auslagerungen von Innenseiten und Außendurchmessern von Platten zum Verbessern von Lesereaktionszeiten.
-
HINTERGRUND
-
Eine Speichersteuereinheit kann eine Vielzahl von Speichereinheiten steuern, zu denen Festplatten, Bänder usw. zählen können. Durch die Speichersteuereinheit kann zudem ein Cachespeicher unterhalten werden, wobei der Cachespeicher einen Hochgeschwindigkeitsspeicher aufweisen kann, auf den im Vergleich mit bestimmten anderen Speichereinheiten, wie beispielsweise Festplatten, Bänder usw., schneller zugegriffen werden kann. Die Gesamtmenge an Speicherkapazität des Cachespeichers kann jedoch im Vergleich mit der Speicherkapazität bestimmter anderer Speichereinheiten wie beispielsweise Festplatten usw. relativ kleiner sein. Der Cachespeicher kann aus einem oder mehreren Speichern mit wahlfreiem Zugriff (random access memory (RAM)), nichtflüchtigen Speichereinheiten (non-volatile storage device (NVS)), Lesecachespeicher, Schreibcachespeicher usw. gebildet sein, die miteinander auf unterschiedliche Weise zusammenarbeiten können. Der NVS kann einen akku- oder batteriegesicherten Speicher mit wahlfreiem Zugriff aufweisen und ein Durchführen von Schreibvorgängen mit einer hohen Geschwindigkeit erlauben. Die Speichersteuereinheit kann Eingabe/Ausgabe(E/A)-Anfragen von Netzwerk-Hosts an die Vielzahl von Speichersteuereinheiten verwalten.
-
Durch die Speichersteuereinheit realisierte Cachetechniken tragen dazu bei, die E/A-Latenzzeiten zu verbergen. Der Cachespeicher kann einen Hochgeschwindigkeitsarbeitsspeicher oder eine Hochgeschwindigkeitsspeichereinheit aufweisen, die zum Verringern der effektiven Zeit verwendet wird, die zum Lesen von Daten von oder Schreiben von Daten auf einen Speicher oder eine Einheit mit niedrigerer Geschwindigkeit erforderlich ist. Der Cachespeicher wird für einen schnellen Zugriff auf Daten verwendet, die von einem externen Speicher bereitgestellt werden, um Anfragen nach Lesedatenzugriff zu bedienen und ein Puffern von modifizierten Daten bereitzustellen. Schreibanfragen werden in den Cachespeicher geschrieben und anschließend auf die externen Speichereinheiten geschrieben (ausgelagert).
-
Der NVS wurde eingeführt, um schnelle Schreibvorgänge zu ermöglichen. Allgemein müssen bei Abwesenheit eines NVS Datenschreibvorgänge synchron direkt auf die Speichereinheit geschrieben (d.h. ausgelagert) werden, um Konsistenz, Korrektheit und Persistenz sicherzustellen. Andernfalls kann ein Ausfall des Servers dazu führen, dass im Cachespeicher gespeicherte Daten verloren gehen. Allgemein überschreitet die Datenübertragungsrate von Host-Schreibvorgängen die Geschwindigkeit der Speichereinheiten, so dass ohne einen NVS die Datenübertragungsrate zu Speichereinheiten niedrig sein kann. Der NVS ermöglicht schnelle Schreibvorgänge auf Cachespeicher, wobei die Schreibvorgänge auf dem NVS gespiegelt und dort sicher gespeichert werden, bis die Schreibvorgänge auf die externe Speichereinheit übertragen werden können. Die Daten werden später auf eine asynchrone Weise vom Cachespeicher ausgelagert (und im NVS verworfen), wodurch die Schreiblatenzzeiten der Speichereinheit verborgen werden. Im Cachespeicher und im NVS werden üblicherweise Aktualisierungen gespeichert, die für mehrere Speichereinheiten vorgesehen sind. Um kontinuierlich niedrige Latenzzeiten für Schreibvorgänge zu garantieren, müssen die Daten im NVS unter Umständen abgeleitet werden, um sicherzustellen, dass immer leerer Speicherplatz für eingehende Schreibvorgänge vorhanden ist; andernfalls können Nachfolgeschreibvorgänge tatsächlich synchron werden, was die Reaktionszeiten für Host-Schreibvorgänge nachteilig beeinträchtigen kann. Andererseits werden die Vorteile von Schreib-Caching unter Umständen nicht voll ausgeschöpft, wenn die Schreibvorgänge zu aggressiv abgeleitet werden, da die durchschnittliche Menge an genutztem NVS-Cachespeicher gering sein kann.
-
Ein Verlagern vom sekundären Speicher in den Cachespeicher und ein Auslagern vom Cachespeicher in den sekundären Speicher kann über eine Vielzahl von Cachespeicher-Verwaltungsmechanismen durchgeführt werden. Zum Beispiel können temporäre Mechanismen, wie beispielsweise ein Mechanismus auf der Grundlage des am längsten nicht erfolgten Verwendens (least recently used (LRU)) Spuren auslagern, darauf beruhend, welche Spuren am längsten nicht verwendet wurden (LRU). Die räumliche Ordnung von Spuren kann durch bestimmte Cachespeicher-Verwaltungsmechanismen durchgeführt werden, wobei Lese- und Schreibvorgänge in aufsteigender oder absteigender Reihenfolge logischer Adressen in einer geordneten Liste gespeichert werden und die geordnete Liste auf Auslagerungen durchgegangen wird. Ein solches räumliches Auslagern kann ein Auslagern von Datensegmenten begünstigen, die auf den Platten am dichtesten beieinander angeordnet sind.
-
Aus der US 2009 / 0 216 944 A1 ist ein Cache-Speicher für Schreibvorgänge bekannt, bei dem Daten für eine Bearbeitung zwischengespeichert werden („staging“) und ein Controller die Reihenfolge beim Bearbeiten und Erledigen festlegt.
-
Ausgehend von dem Stand der Technik stellt sich die Erfindung die Aufgabe, derartige Techniken auch für Cache-Speicher für Lesevorgänge zu schaffen.
-
Die Aufgabe wird erfindungsgemäß gelöst durch das Verfahren nach Anspruch 1, das System nach Anspruch 6, das Computerprogrammprodukt nach Anspruch 11 und die Speichersteuereinheit nach Anspruch 16. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
-
KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Bei dem erfindungsgemäßen Verfahren, System und Computerprogrammprodukt wird eine Auslagerungsanwendung ausgeführt, die Spuren auf der Grundlage einer jüngsten Verwendung und eines räumlichen Ortes der Spuren auslagert, wobei eine räumliche Ordnung der Spuren in einer Datenstruktur beibehalten wird und die Auslagerungsanwendung die räumliche Ordnung der Spuren durchgeht. Spuren werden von zumindest Innen- oder Außendurchmessern von Platten in periodischen Intervallen ausgelagert, wobei die räumliche Ordnung der Spuren durchgegangen wird, wobei der Satz von Kriterien, die den Lesereaktionszeiten zum Ausführen des Befehls entsprechen, erfüllt wird.
-
Figurenliste
-
Nachfolgend wird eine bevorzugte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die angehängten Zeichnungen beschrieben, in denen:
- 1 ein Blockschaubild einer Datenverarbeitungsumgebung veranschaulicht, die gemäß gewissen Ausführungsformen eine mit einer Vielzahl von Hosts und einer Vielzahl von Speichereinheiten verbundene Speichersteuereinheit enthält;
- 2 ein Blockschaubild veranschaulicht, das beispielhafte Anforderungen an Lesereaktionszeiten gemäß gewissen Ausführungsformen zeigt;
- 3 einen Ablaufplan veranschaulicht, der gemäß gewissen Ausführungsformen erste Operationen zum Durchführen periodischer Auslagerungen von Innen- und Außendurchmessern von Platten zeigt, während eine Datenstruktur durchgegangen wird, in der Spuren in einer sortierten räumlichen Ordnung gespeichert sind;
- 4 einen Ablaufplan zeigt, der gemäß gewissen Ausführungsformen zweite Operationen zum Durchführen periodischer Auslagerungen von Innen- und/oder Außendurchmessern von Platten zeigt, während eine Datenstruktur durchgegangen wird, in der Spuren in einer sortierten räumlichen Ordnung gespeichert sind; und
- 5 ein Blockschaubild eines Rechensystems veranschaulicht, das gemäß gewissen Ausführungsformen gewisse Elemente zeigt, die in der Speichersteuereinheit von 1 enthalten sein können.
-
DETAILLIERTE BESCHREIBUNG
-
Auf räumlicher Lage beruhendes Auslagern und Anforderungen an die Lesereaktionszeit
-
Bei intelligentem Cacheschreiben (Intelligent cache writing (IWC)) handelt es sich um ein Hybrid zweier anderer Cachespeicher-Verwaltungsmechanismen, die als CLOCK und CSCAN bezeichnet werden. Bei CLOCK handelt es sich einen Mechanismus auf der Grundlage des am längsten nicht erfolgten Verwendens (LRU), bei dem Spuren darauf beruhend ausgelagert werden, welche Spuren LRU sind bzw. am längsten nicht verwendet wurden. Um CLOCK-Eigenschaften zu emulieren, unterhält das IWC ein Zeitbit für jede Spur. Das Zeitbit wird gesetzt, wenn der Host eine Spur schreibt. Das Zeitbit wird zurückgesetzt, wenn eine Auslagerungsabtastung auf eine Spur mit dem gesetzten Zeitbit stößt. Wenn diese Auslagerungsabtastung Bereiche ohne Spuren mit gesetztem Zeitbit findet, kann das Auslagerungsabtasten diese Bereiche für ein Auslagern auswählen. CSCAN stuft Spuren auf der Grundlage eines räumlichen Ortes zurück. Um CSCAN-Eigenschaften zu emulieren, unterhält das IWC eine sortierte Liste von Spuren mithilfe eines ausgeglichenen Baumes. Auslagerungsabtastungen, die nach auszulagernden Spuren suchen, können den ausgeglichenen Baum in der Reihenfolge des Spurortes vom niedrigsten zum höchsten durchgehen.
-
Manche Anwendungen, wie beispielsweise geschäftskritische Anwendungen, Echtzeitanwendungen oder bestimmte Anwendungen im medizinischen Bereich, können strenge Anforderungen an die Lesereaktionszeiten besitzen. Solche Anwendungen können als Anwendungen mit stringenten Leseanforderungen bezeichnet werden. Zum Beispiel muss bei bestimmten Anwendungen die durchschnittliche Lesereaktionszeit weniger als 15 Millisekunden betragen, 99,99 % der Lesevorgänge müssen in weniger als 600 Millisekunden abgeschlossen sein, 99,9 % der Lesevorgänge müssen in weniger als 200 Millisekunden abgeschlossen sein, und 99 % der Lesevorgänge müssen in weniger als 60 Millisekunden abgeschlossen sein. Zum Beispiel muss von 10000 Lesevorgängen jeder von mindestens 9900 Lesevorgängen in weniger als 60 Millisekunden abgeschlossen sein, jeder von mindestens 9990 Lesevorgängen in weniger als 200 Millisekunden abgeschlossen sein, und jeder von mindestens 9999 Lesevorgängen in weniger als 600 Millisekunden abgeschlossen sein, wobei die durchschnittliche Zeit jedes Lesevorgangs weniger als 15 Millisekunden betragen sollte. In anderen Worten: nicht mehr als ein Lesevorgang von 10000 Lesevorgängen darf eine Zeit von 600 Millisekunden oder mehr benötigen, nicht mehr als 10 Lesevorgänge von 10000 Lesevorgängen dürfen eine Zeit von 200 Millisekunden oder mehr benötigen, und nicht mehr als 100 Lesevorgänge von 10000 Lesevorgängen dürfen eine Zeit von 60 Millisekunden oder mehr benötigen
-
In bestimmten Situationen werden bei Verwenden von IWC Auslagerungen in einer räumlichen Ordnung durchgeführt und die Leseleistung kann darunter leiden. Wenn das IWC eine Auslagerung in einer sortierten Reihenfolge des Datenortes durchführt, kann es auf den Einheiten Lesevorgänge geben, die über die Einheiten verteilt sind. Plattenlaufwerke können die Lesevorgänge ignorieren, um eine lange Suche zum Bearbeiten von Lesevorgängen zu vermeiden, die weit vom Kopf entfernt sind. Es kann ein CAL(command aging limit, Befehlsaltersgrenze)-Zeitgeber mit einem beispielhaften Standardwert von 500 Millisekunden vorhanden sein. Wenn der CAL-Zeitgeber abläuft, werden die Plattenlaufwerke gezwungen, die Leseanfragen zu bedienen, die für eine Dauer ausstehen, die größer als der Standardwert des CAL-Zeitgebers ist. Bei Anwendungen mit stringenten Leseanforderungen können Lesebedienzeiten von 500 Millisekunden als zu hoch für sie angesehen werden.
-
In gewissen Ausführungsformen wird ein erweiterter IWC-Cachespeicher-Verwaltungsmechanismus angewandt. Beim erweiterten IWC-Cachespeicher-Verwaltungsmechanismus werden Auslagerungen durchgeführt, indem eine sortierte räumlich geordnete Liste von Spuren durchgegangen wird. Beim Durchführen von Auslagerungen aus der sortierten räumlich geordneten Liste von Spuren führt der erweiterte IWC-Cachespeicher-Verwaltungsmechanismus jedoch gelegentlich eine einzelne Auslagerung am ID (Innendurchmesser) und/oder eine einzelne Auslagerung am AD (Außendurchmesser) durch. Dies zwingt die Plattenlaufwerke, Befehle zu bedienen, die weit vom derzeitigen Standort des Kopfes entfernt sind. Als ein Ergebnis können Lesevorgänge, die weit vom Auslagerungsort entfernt sind, so bedient werden, dass die Leseanforderungen der Anwendung mit stringenten Leseanforderungen eingehalten werden.
-
1 veranschaulicht ein Blockschaubild einer Datenverarbeitungsumgebung 100, die gemäß gewissen Ausführungsformen eine mit einer Vielzahl von Hosts 104a, 104b,... 104n und einer Vielzahl von Speichereinheiten 106 verbundene Speichersteuereinheit 102 enthält. Die Vielzahl von Speichereinheiten 106 kann im Gegensatz zu einem in der Speichersteuereinheit 102 enthaltenen Cachespeicher 108 als sekundäre Speichereinheiten bezeichnet werden,
-
Die Speichersteuereinheit 102 und die Hosts 104a... 104n können jede geeignete Datenverarbeitungseinheit einschließlich der derzeit im Stand der Technik bekannten aufweisen, wie beispielsweise einen PC, eine Workstation, einen Server, einen Großrechner, einen Handheld-Computer, einen Palmtop-Computer, eine Telefoneinheit, eine Netzwerkeinheit, einen Blade-Computer, einen Server usw. Die Speichersteuereinheit 102, die Hosts 104a...104n und die Vielzahl von Speichereinheiten 106 können über ein Netzwerk, wie beispielsweise das Internet, ein Speicherbereichsnetzwerk, ein Weitverkehrsnetzwerk, ein lokales Netzwerk usw., Daten austauschen.
-
Die Vielzahl von Speichereinheiten 106 kann beliebige geeignete Speichereinheiten aufweisen, wie beispielsweise physische Festplatten, Halbleiterplatten usw., die als Stand der Technik bekannt sind. Die Speichereinheiten 106 können in Datenträgern konfiguriert sein. In gewissen Ausführungsformen kann es sich bei den Speichereinheiten 106 um Platten handeln, die als Datenebenen eines redundanten Arrays unabhängiger Platten (Redundant Array of Independent Disk (RAID)) konfiguriert sind. In 1 ist eine Vielzahl von RAID-Datenebenen 110a...110m gezeigt.
-
Der Cachespeicher 108 kann einen oder mehrere unterschiedliche Speichertypen, wie beispielsweise RAMs, Schreibcachespeicher, Lesecachespeicher, NVS usw. enthalten. Die unterschiedlichen Speichertypen, die den Cachespeicher aufweisen, können miteinander zusammenarbeiten. Schreibvorgänge von den Hosts 104a...104n können anfänglich in den Cachespeicher 108 geschrieben und dann später auf die Speichereinheiten 106 ausgelagert werden. Leseanfragen von den Hosts 104a... 104n können vom Cachespeicher 108 erfüllt werden, wenn die entsprechenden Daten im Cachespeicher 108 verfügbar sind, andernfalls werden die Daten von den Speichereinheiten 106 zum Cachespeicher 108 ausgelagert und dann den Hosts 104a...104n bereitgestellt.
-
Die Speichersteuereinheit 102 führt eine Auslagerungsanwendung 114 aus, die auch als eine erweiterte intelligente Schreibcachinganwendung bezeichnet wird. Die erweiterte intelligente Schreibcachinganwendung 114 unterhält einen sortierten binären Baum von Spuren 116, die in einer räumlichen Ordnung des Vorhandenseins der Spuren auf Platten angeordnet sind. Die erweiterte intelligente Schreibcachinganwendung 114 unterhält zudem einen Cursor 118 zum sortierten binären Baum 116, wobei der Cursor 118 die Position der auszulagernden Spur anzeigt, während der sortierte binäre Baum 116 durchgegangen wird.
-
Die Auslagerungsanwendung 114 unterhält weiterhin einen Innendurchmesser- (ID-) Außendurchmesser- (AD-) Zeitgeber 120, der auch als ein Zeitgeber oder ein IDAD-Zeitgeber (IDOD timer) bezeichnet wird. Der Zeitgeber 120 kann anfänglich auf eine vorgegebene Zeitdauer wie beispielsweise 10 Millisekunden eingestellt werden. Die Auslagerungsanwendung 114 unterhält zudem einen Zähler 122, der als ein Auslagerungszähler oder ein IDAD-Auslagerungszähler (IDOD destage counter) bezeichnet wird.
-
In gewissen Ausführungsformen geht die erweiterte intelligente Schreibcachinganwendung 114 den sortierten binären Baum 116 von Spuren durch, um Auslagerungen so durchzuführen, dass ein Satz von Leseanforderungskriterien 124 für gewisse beispielhafte Anwendungen (z.B. eine im beispielhaften Host 104a gezeigte Anwendung mit stringenten Leseanforderungen 126) erfüllt ist.
-
In gewissen Ausführungsformen kann die Anwendung mit stringenten Leseanforderungen 126 mit den Anforderungen an die Lesereaktionszeit 124 einen Befehl vom Host 104a an die Speichersteuereinheit 102 senden. Der Befehl kann eine Lese- oder eine Schreibanfrage oder irgendeinen anderen Befehl aufweisen. Die erweiterte intelligente Schreibcachinganwendung 114 verarbeitet den Befehl, um zumindest die durch den Satz von Leseanforderungskriterien 124 angegebenen Kriterien zu erfüllen, indem der sortierte binäre Baum 116 von Spuren durchgegangen wird.
-
2 veranschaulicht ein Blockschaubild 200, das gemäß gewissen Ausführungsformen beispielhafte Anforderungen an Lesereaktionszeiten 202 für beispielhafte Anwendungen mit stringenten Leseanforderungen 126 zeigt.
-
In gewissen Ausführungsformen können die beispielhaften Anforderungen von Lesereaktionszeiten wie folgt lauten:
- 1) Die durchschnittliche Lesereaktionszeit hat weniger als 15,0 Millisekunden zu betragen (durch Bezugszeichen 204 gezeigt);
- 2) Vier-Neuner-Anforderung: 99,99 % der Lesevorgänge haben in einer Zeit abgeschlossen zu sein, die innerhalb von 600 Millisekunden liegt (durch Bezugszeichen 206 gezeigt);
- 3) Drei-Neuner-Anforderung: 99,9% der Lesevorgänge haben in einer Zeit abgeschlossen zu sein, die innerhalb von 200 Millisekunden liegt (durch Bezugszeichen 208 gezeigt); und
- 4) Zwei-Neuner-Anforderung: 99% der Lesevorgänge haben in einer Zeit abgeschlossen zu sein, die innerhalb von 60 Millisekunden liegt (durch Bezugszeichen 210 gezeigt).
-
Wenn die Wartezeit für einen Lesevorgang mehr als 500 Millisekunden beträgt, wird in gewissen Ausführungsformen der Lesevorgang auch dann durchgeführt, wenn anstehende Schreibvorgänge vorhanden sind. Bei der Zeit von 500 Millisekunden handelt es sich um die Zeit der Befehlsaltersgrenze (CAL). In solchen Ausführungsformen kann die Vier-Neuner-Anforderung leicht zu erfüllen, die Drei-Neuner-Anforderungen und die zwei-Neuner-Anforderungen jedoch schwierig zu erfüllen sein, es sei denn, anstehenden Lesevorgängen, die vom Standort des Kopfes eines Plattenlaufwerks entfernt sind, wird eine zusätzliche Präferenz gegenüber anstehenden Auslagerungen (d.h. Schreibvorgänge vom Cachespeicher auf Platte) eingeräumt, während im sortierten binären Baum 116 angegebene Spuren ausgelagert werden.
-
3 veranschaulicht einen Ablaufplan 300, der gemäß gewissen Ausführungsformen erste Operationen zum Durchführen periodischer Auslagerungen von Innen- und Außendurchmessern von Platten zeigt, während eine Datenstruktur 116 durchgegangen wird, in der Spuren in einer sortierten räumlichen Ordnung gespeichert sind. Die in 3 gezeigten Operationen können durch die erweiterte intelligente Schreibcachinganwendung 114 durchgeführt werden, die innerhalb der Speichersteuereinheit 102 realisiert ist.
-
Die Steuerung startet in Block 302, in dem ein Zeitgeber 120 (z.B. der IDAD-Zeitgeber) auf ein vorgegebenes Zeitintervall eingestellt wird (z.B. 10 Millisekunden), und dann fährt die Steuerung mit Block 304 fort, in dem ein Auslagerungszähler 122 (z.B. der IDAD-Auslagerungszähler) auf null gesetzt wird.
-
Die Steuerung fährt dann mit Block 306 fort, in dem die erweiterte intelligente Schreibcachinganwendung 114 beginnt, den sortierten binären Baum 116 von Spuren durchzugehen (d.h. abzutasten). Die erweiterte intelligente Schreibcachinganwendung 114 ermittelt (in Block 308), ob eine Spur bei einer Cursorposition während des Durchgehens des sortierten binären Baums 116 zum Auslagern ausgewählt wurde. Falls ja, erfolgt (in Block 310) ein Ermitteln, ob der Zeitgeber 120 abgelaufen ist (d.h. das vorgegebene Zeitintervall überschritten wurde). Falls der Zeitgeber 120 abgelaufen ist, erfolgt (in Block 312) ein Ermitteln, ob der Auslagerungszähler 122 null beträgt.
-
Wenn in Block 312 eine Feststellung erfolgt, dass der Auslagerungszähler 122 null beträgt („Ja“-Zweig von Block 312), wird (in Block 314) anstelle einer Spur an der Cursorposition die erste Spur am Beginn des sortierten binären Baumes gefunden und (in Block 316) ausgelagert, ohne die Cursorposition zu verändern. Als ein Ergebnis wird der nächste Satz von Auslagerungen erneut von der Cursorposition aus starten. Der Auslagerungszähler 122 wird (in Block 318) auf eins gesetzt. Die Steuerung kehrt zu Block 306 zurück und die erweiterte intelligente Schreibcachinganwendung 114 fährt fort, Spuren auszuwählen, um Auslagerungen vom Cursor aus durchzuführen.
-
Wenn in Block 312 eine Feststellung erfolgt, dass der Auslagerungszähler 122 nicht null beträgt („Nein“-Zweig von Block 312), wird (in Block 320) anstelle einer Spur an der Cursorposition die letzte Spur am Ende des sortierten binären Baumes gefunden und (in Block 322) ausgelagert, ohne die Cursorposition zu verändern. Als ein Ergebnis wird der nächste Satz von Auslagerungen erneut von der Cursorposition aus starten. Der Auslagerungszähler 122 wird (in Block 324) auf null gesetzt und der Zeitgeber 120 (in Block 326) auf das vorgegebene Zeitintervall eingestellt. Die Steuerung kehrt zu Block 306 zurück und die erweiterte intelligente Schreibcachinganwendung 114 fährt fort, Spuren auszuwählen, um Auslagerungen vom Cursor aus durchzuführen. Die Steuerung kehrt zudem von den Blöcken 308 und 310 zu Block 306 zurück, wenn den „Nein“-Zweigen gefolgt wird.
-
Daher veranschaulicht 4 gewisse Ausführungsformen, in denen die erweiterte intelligente Schreibcachinganwendung 114 durch Verwenden eines Zeitgebers 120 und eines Auslagerungszählers 122 die Reaktionszeiten auf Lesevorgänge verbessert, indem der Kopf zum Auslagern vom Innen- und/oder Außendurchmesser von Platten periodisch bewegt wird, während ein sortierter binäre Baum 116 von räumlich geordneten Spuren durchgegangen wird. Die Erhöhung der Lesereaktionszeit ist zumindest geeignet, um den Satz von Leseanforderungskriterien 124 zu erfüllen. Wenn die Lesereaktionszeit nicht geeignet ist, den Satz von Leseanforderungskriterien 124 zu erfüllen, kann der Zeitgeber 120 auf einen niedrigeren vorgegebenen Wert eingestellt und die Auslagerungen von den Innen- und Außendurchmessern in kürzeren Zeitintervallen durchgeführt werden. In gewissen Ausführungsformen können Arbeitslastsimulationen durchgeführt werden, um zu ermitteln, welcher vorgegebene Wert des Zeitgebers 120 geeignet ist, die durch die Leseanforderungskriterien 124 bereitgestellten Lesereaktionszeiten einzuhalten.
-
Es ist festzuhalten, dass in gewissen Ausführungsformen die erste Spur am Beginn des sortierten binären Baums einer Spur am Innendurchmesser einer Platte oder irgendeiner Spur, die nahe beim Innendurchmesser der Platte ist, entsprechen kann, und die letzte Spur am Ende des sortierten binären Baums einer Spur am Außendurchmesser der Platte oder irgendeiner Spur, die nahe beim Außendurchmesser der Platte ist, entsprechen kann. In alternativen Ausführungsformen kann die erste Spur am Beginn des sortierten binären Baums einer Spur am Außendurchmesser einer Platte oder irgendeiner Spur, die nahe beim Außendurchmesser der Platte ist, entsprechen, und die letzte Spur am Ende des sortierten binären Baums einer Spur am Innendurchmesser der Platte oder irgendeiner Spur, die nahe beim Innendurchmesser der Platte ist, entsprechen. Im sortierten binären Baum sind die innerhalb der Innen- und Außendurchmesser der Platte vorhandenen Spuren räumlich geordnet. In alternativen Ausführungsformen können andere Datenstrukturen neben dem sortierten binären Baum die Ordnung von Spuren wiedergeben.
-
4 veranschaulicht einen Ablaufplan 400, der gemäß gewissen Ausführungsformen zweite Operationen zum Durchführen periodischer Auslagerungen von Innen- und/oder Außendurchmessern von Platten zeigt, während eine Datenstruktur durchgegangen wird, in der Spuren in einer sortierten räumlichen Ordnung gespeichert sind. Die in 4 gezeigten Operationen können durch die erweiterte intelligente Schreibcachinganwendung 114 durchgeführt werden, die innerhalb der Speichersteuereinheit 102 realisiert ist.
-
Die Steuerung startet in Block 402, in dem eine Speichersteuereinheit 102, die einen Cachespeicher 108 enthält, einen Befehl von einem Host 104a empfängt, wobei ein Satz von Kriterien 124, die Lesereaktionszeiten zum Ausführen des Befehls entsprechen, erfüllt sein müssen. Eine Auslagerungsanwendung 114, die Spuren auf der Grundlage einer jüngsten Verwendung und eines räumlichen Ortes der Spuren auslagert, wird (in Block 404) ausgeführt, wobei eine räumliche Ordnung der Spuren in einer Datenstruktur 116 beibehalten wird und die Auslagerungsanwendung 114 die räumliche Ordnung der Spuren durchgeht. In gewissen Ausführungsformen handelt es sich bei der Auslagerungsanwendung 114 um eine erweiterte intelligente Schreibcachinganwendung
-
Die Steuerung fährt mit Block 406 fort, in dem Spuren von zumindest Innen- und/oder Außendurchmessern von Platten in periodischen Intervallen ausgelagert werden, wobei die räumliche Ordnung der Spuren durchgegangen wird, wobei der Satz von Kriterien 124 erfüllt wird, die den Lesereaktionszeiten zum Ausführen des Befehls entsprechen. In gewissen Ausführungsformen werden durch Auslagern von Spuren von den Innen- und/oder Außendurchmessern von Platten in den periodischen Intervallen Lesespuren, die relativ von einem derzeitigen Ort eines Kopfes entfernt sind, durch Übergehen der räumlichen Ordnung bedient.
-
Somit veranschaulichen 1 bis 4 gewisse Ausführungsformen, in denen eine erweiterte intelligente Schreibcachinganwendung 114 eine intelligente Schreibcachinganwendung erweitert, bei der es sich um ein Hybrid aus CLOCK- und CSCAN-Auslagerungsmechanismus handelt. Die erweiterte intelligente Schreibcachinganwendung lagert periodisch Spuren von Innen- und/oder Außendurchmessern von Platten aus, während eine räumlich sortierte Liste von Spuren für Auslagerungen durchgegangen wird, indem die derzeitige auszulagernde Spur aus der räumlich sortierten Liste übergangen wird. Als ein Ergebnis können Lesevorgänge im Vergleich zu Situationen, in denen periodische Auslagerungen in vorgegebenen Zeitintervallen nicht vom Innen- und/oder Außendurchmesser von Platten durchgeführt werden, mit einer schnelleren Reaktionszeit durchgeführt werden.
-
5 veranschaulicht ein Blockschaubild, das gemäß gewissen Ausführungsformen gewisse Elemente zeigt, die in der Speichersteuereinheit 102 oder den Hosts 104a...104n enthalten sein können. Das System 500 kann die Speichersteuereinheit 102 oder die Hosts 104a... 104n aufweisen und eine Schaltung 502 enthalten, die in gewissen Ausführungsformen mindestens einen Prozessor 504 enthalten kann. Das System 500 kann auch einen Arbeitsspeicher 506 (z.B. eine flüchtige Speichereinheit) und einen Datenspeicher 508 enthalten. Der Datenspeicher 508 kann eine nichtflüchtige Speichereinheit (z.B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flash, Firmware, programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. enthalten. Der Datenspeicher 508 kann eine interne Speichereinheit, eine verbundene Speichereinheit und/oder eine über ein Netzwerk zugängliche Speichereinheit aufweisen. Das System 500 kann eine Programmlogik 510 einschließlich Code 512 enthalten, der in den Arbeitsspeicher 506 geladen und durch den Prozessor 504 oder die Schaltung 502 ausgeführt werden kann. In gewissen Ausführungsformen kann die den Code 512 enthaltende Programmlogik 510 im Datenspeicher 508 gespeichert sein. In gewissen anderen Ausführungsformen kann die Programmlogik 510 in der Schaltung 502 realisiert sein. Obwohl daher 5 die Programmlogik 510 von den anderen Elementen getrennt zeigt, kann die Programmlogik 510 im Arbeitsspeicher 506 und/oder der Schaltung 502 realisiert sein.