-
HINTERGRUND
-
1. Gebiet der Erfindung
-
Die Offenbarung bezieht sich auf ein Verfahren, ein System und ein Produkt für ein anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten.
-
2. Hintergrund
-
Eine Speichersteuereinheit kann eine Vielzahl von Speichereinheiten steuern, zu denen Festplatten, Bänder usw. gehören. Ein Cachespeicher kann auch durch die Speichersteuereinheit geführt werden, wobei der Cachespeicher einen Hochgeschwindigkeitsspeicher aufweisen kann, der im Vergleich zu bestimmten anderen Speichereinheiten wie zum Beispiel Festplatten, Bänder usw. schneller zugänglich ist. Die Gesamtmenge an Speicherkapazität des Cachespeichers kann jedoch relativ kleiner sein im Vergleich zur Speicherkapazität bestimmter anderer Speichereinheiten wie zum Beispiel Festplatten, Bänder usw., die von der Speichersteuereinheit gesteuert werden.
-
Bei bestimmten Speichersteuereinheiten können verschiedene vorausschauende oder anpassungsfähige Zwischenspeichermechanismen verwendet werden, um Daten in dem Cachespeicher zu speichern. Bestimmte Daten, die häufiger verwendet werden, oder Daten, die wahrscheinlich häufiger verwendet werden, können in der Erwartung, dass auf die Daten wahrscheinlich in der näheren Zukunft zugegriffen wird, in den Cachespeicher geschoben werden. Auf diese Arten von Zwischenspeichermechanismen wird als vorausschauendes oder anpassungsfähiges Zwischenspeichern Bezug genommen und sie können durch eine anpassungsfähige Zwischenspeicheranwendung ausgeführt werden, die in einer Speichersteuereinheit geführt wird. Die Speichersteuereinheit kann als Reaktion auf eine Anfrage nach Daten, wenn die angefragten Daten nicht in dem Cachespeicher gefunden werden, die angefragten Daten aus den Speichereinheiten abrufen, die von der Speichersteuereinheit gesteuert werden.
-
Zu einer Halbleiterplatte (solid state disk, SSD) kann eine Speichereinheit gehören, die einen Halbleiterspeicher verwendet, um persistente Digitaldaten zu speichern. Zu den Halbleiterplatten können Flashspeicher oder Speicher anderer Arten gehören. Auf die Halbleiterplatten kann im Vergleich zu elektromechanisch zugänglichen Datenspeichereinheiten wie zum Beispiel Festplatten schneller zugegriffen werden.
-
KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Ein Verfahren, ein System und ein Computerprogrammprodukt werden bereitgestellt, in denen eine Speichersteuereinheit eine Anfrage empfängt, die einem Zugriff auf eine Spur in einem Cachespeicher entspricht. Es wird eine Bestimmung durchgeführt, ob die Spur Daten entspricht, die auf einer Halbleiterplatte gespeichert sind. Als Reaktion darauf, dass die Spur Daten entspricht, die auf der Halbleiterplatte gespeichert sind, wobei jede Spur eine Vielzahl von Datensätzen aufweist, wird ein Bereitstellen eines Datensatzes von der Halbleiterplatte in den Cachespeicher ausgeführt.
-
Bei weiteren Ausführungsformen wird eine Bestimmung getroffen, ob die Spur Daten entspricht, die auf einer Festplatte gespeichert sind. Als Reaktion darauf, dass die Spur Daten entspricht, die auf der Festplatte gespeichert sind, wird auf der Grundlage eines in der Speichersteuereinheit geführten Kriteriums eine Auswahl getroffen zwischen dem Ausführen eines Bereitstellens eines Teils einer Spur, eines Bereitstellens einer vollständigen Spur und eines Bereitstellens eines Datensatzes von der Festplatte in den Cachespeicher. Bei dem Bereitstellen einer vollständigen Spur wird eine ganze Spur bereitgestellt, bei dem Bereitstellen eines Teils einer Spur werden alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt und beim Bereitstellen eines Datensatzes werden nur die angefragten Sektoren bereitgestellt.
-
Bei noch weiteren Ausführungsformen wird das Bereitstellen eines Datensatzes von der Halbleiterplatte ausgeführt, wenn nicht relativ kurze Zeit zuvor auf die Spur zugegriffen wurde, und eine Auswahl wird zumindest aus einem Bereitstellen eines Teils einer Spur und einem Bereitstellen einer vollständigen Spur getroffen, wenn relativ kurze Zeit zuvor auf die Spur zugegriffen wurde.
-
Bei weiteren Ausführungsformen wird eine Liste für selten verwendete Spuren geführt, in der jede Spur in der Liste fortlaufend in einer monoton ansteigenden Reihenfolge so nummeriert wird, wie in dem Cachespeicher auf jede Spur zugegriffen wird und wie sie danach in der Liste selten verwendeter Spuren platziert wird. Auf der Grundlage eines vorbestimmten Kriteriums, das auf den Laufnummern der Spuren in der Liste selten verwendeter Spuren, auf einer Cachespeicherplatzkapazität, die von den in dem Cachespeicher gespeicherten Spuren beansprucht wird, und auf einem Schwellenwert beruht, der eine Speicherkapazität anzeigt, wird eine Bestimmung getroffen, ob eine ausgewählte Spur kurze Zeit zuvor verwendet wurde.
-
Bei noch weiteren Ausführungsformen wird das Bereitstellen eines Datensatzes als ein standardmäßiger Bereitstellungsvorgang für Halbleiterplatten verwendet, die mit der Speichersteuereinheit verbunden sind, und das Bereitstellen eines Teils einer Spur wird als der standardmäßige Bereitstellungsvorgang für Festplatten verwendet, die mit der Speichersteuereinheit verbunden sind, wobei bei dem Bereitstellen eines Teils einer Spur alle Sektoren, beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur, bereitgestellt werden und bei dem Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
In den Zeichnungen stehen gleiche Bezugszeichen durchgehend für die gleichen Elemente:
-
1 stellt ein Blockschaubild einer Computerumgebung dar, zu der gemäß bestimmten Ausführungsformen eine Speichersteuereinheit, die mit einer Vielzahl von Hosts verbunden ist, eine Vielzahl von Festplatten und eine Vielzahl von Halbleiterplatten gehören;
-
2 stellt ein Blockschaubild dar, das die logische Darstellung eines Datenspeichers gemäß bestimmten Ausführungsformen zeigt;
-
3A stellt ein Blockschaubild dar, das beispielhafte Bereitstellungsvorgänge gemäß bestimmten Ausführungsformen zeigt;
-
3B stellt ein Blockschaubild dar, das ein Bereitstellen einer vollständigen Spur, ein Bereitstellen eines Teils einer Spur und ein Bereitstellen eines Datensatzes gemäß bestimmten Ausführungsformen zeigt;
-
4 stellt ein Blockschaubild dar, das Datenstrukturen für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt;
-
5 stellt ein Blockschaubild dar, das Vorgänge für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt;
-
6 stellt ein Blockschaubild dar, das eine beispielhafte Ausführungsform für Halbleiterplatten gemäß bestimmten Ausführungsformen zeigt;
-
7 stellt einen Ablaufplan dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt;
-
8 stellt einen Ablaufplan dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt; und
-
9 stellt ein Blockschaubild eines Computersystems dar, das bestimmte Elemente zeigt, die zu der Speichersteuereinheit in 1 gemäß bestimmten Ausführungsformen gehören können.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung wird auf die begleitenden Zeichnungen Bezug genommen, die einen Teil der Beschreibung bilden und die mehrere Ausführungsformen darstellen. Es ist selbstverständlich, das weitere Ausführungsformen verwendet werden können und das strukturelle und funktionelle Änderungen vorgenommen werden können.
-
Anpassungsfähige Zwischenspeichermechanismen
-
Anpassungsfähige Zwischenspeichermechanismen können für Festplatten ausgelegt werden, die mit einer Speichersteuereinheit verbunden sind. Bei bestimmten Ausführungsformen können auch Halbleitereinheiten mit einer Speichersteuereinheit verbunden sein. Halbleiterplatten weisen jedoch andere Eigenschaften auf als Festplatten. Während auf Halbleiterplatten im Vergleich zu Festplatten schneller zugegriffen werden kann, kann die Leistungsfähigkeit von Halbleiterplatten aufgrund des Übertragens von großen Blöcken anstelle des Übertragens von kleinen Blöcken viel schlechter sein. Die anpassungsfähigen Zwischenspeichermechanismen, die für die Festplatten ausgelegt sind, können jedoch das Übertragen großer Blöcke ausführen. Bei bestimmten Ausführungsformen, in denen die Halbleiterplatten verwendet werden, können diese anpassungsfähigen Zwischenspeichermechanismen verändert werden, um die Leistungsfähigkeit der Halbleiterplatten zu verbessern.
-
Bei bestimmten Ausführungsformen wird für Halbleiterplatten das Bereitstellen eines Datensatzes gegenüber dem Bereitstellen eines Teils einer Spur bevorzugt, das wiederum für Festplatten bevorzugt wird. Das Zwischenspeichern eines Datensatzes (d. h. das Bereitstellen oder das Kopieren von Datensätzen/Sektoren, die in dem Cachespeicher angefragt wurden) verursacht Übertragungen von relativ kleinen Blöcken im Vergleich zum Bereitstellen eines Teils einer Spur und übrigens auch im Vergleich zum Bereitstellen einer vollständigen Spur. Es wird darauf hingewiesen, dass eine Spur eine Vielzahl von Datensätzen aufweist und dass das Übertragen einer ganzen Spur oder des Teils einer Spur im Vergleich zum Übertragen von ausgewählten Datensätzen üblicherweise ein Übertragen von großen Blöcken verursacht.
-
Wenn eine Spur einer Halbleiterplatte nicht vor kurzer Zeit verwendet wurde [d. h. die Spur steht unten in einer Liste selten verwendeter Spuren (Least Recently Used list, LRU-Liste, die für den Cachespeicher geführt wird], wird außerdem bei bestimmten Ausführungsformen ein Zwischenspeichern von Datensätzen verwendet. Bei bestimmten Ausführungsformen können, wenn eine Spur einer Halbleiterplatte vor kurzer Zeit verwendet wurde (d. h. die Spur steht oben in der LRU-Liste, die für den Cachespeicher geführt wird), Bereitstellungsvorgänge von der Halbleiterplatte in den Cachespeicher in einer ähnlichen Weise wie die Bereitstellungsvorgänge von einer Festplatte in den Cachespeicher ausgeführt werden, indem zwischen dem Bereitstellen eines Datensatzes, dem Bereitstellen eines Teils einer Spur oder dem Bereitstellen einer vollständigen Spur gewählt wird.
-
Daher werden bei bestimmten Ausführungsformen anpassungsfähige Zwischenspeicheranwendungen für Festplatten verändert, um eine erweiterte anpassungsfähige Zwischenspeicheranwendung zu erzeugen, die sowohl für Festplatten als auch für Halbleitereinheiten verwendet werden kann.
-
Beispielhafte Ausführungsformen
-
1 stellt ein Blockschaubild einer Computerumgebung 100 dar, zu der gemäß bestimmten Ausführungsformen eine Speichersteuereinheit 102, die mit einer Vielzahl von Hosts 104a, 104b, ... 104n verbunden ist, eine Vielzahl von Festplatten 106 und eine Vielzahl von Halbleiterplatten 108 gehören.
-
Die Speichersteuereinheit 102 und die Hosts 104a...104n können jede geeignete Computereinheit aufweisen einschließlich derjenigen, die im Stand der Technik bekannt sind wie zum Beispiel ein Personal Computer, eine Workstation, ein Server, ein Großrechner, ein tragbarer Computer, ein Palmtop-Computer, eine Telefoneinheit, ein Netzwerkgerät, ein Blade-Computer, ein Server usw. Die Vielzahl der Festplatten 106 kann alle geeigneten im Stand der Technik bekannten physischen Festplatten aufweisen. Die Vielzahl der Halbleiterplatten 108 kann alle geeigneten im Stand der Technik bekannten physischen Halbleiterplatten aufweisen.
-
Die Speichersteuereinheit 102, die Hosts 104a...104n, die Vielzahl von Festplatten 106 und die Vielzahl von Halbleiterplatten 108 können über ein Netzwerk wie zum Beispiel das Internet, ein Speichernetzwerk, ein Weitverkehrsnetzwerk, ein lokales Netzwerk usw. Daten austauschen. Die Vielzahl von Festplatten 106 kann in eine oder mehrere Festplattenlaufwerke konfiguriert werden und die Vielzahl von Halbleiterplatten 108 kann in eine Vielzahl von Halbleiterlaufwerken konfiguriert werden.
-
Die Speichersteuereinheit 102 führt eine erweiterte anpassungsfähige Zwischenspeicheranwendung 110 aus und steuert einen Cachespeicher 112, der innerhalb der Speichersteuereinheit 102 gezeigt wird. Bei alternativen Ausführungsformen kann sich der Cachespeicher 112 außerhalb der Speichersteuereinheit 102 befinden.
-
Die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 erweitert das Bereitstellen von Teilen einer Spur für Festplatten 106 mit einem Bereitstellen eines Datensatzes für Halbleiterplatten 108. Bei bestimmten Ausführungsformen, wenn eine Spur einer Halbleiterplatte nicht kurze Zeit zuvor verwendet wurde, wird nur das Zwischenspeichern von Datensätzen für die Halbleiterplatten verwendet. Auf die Anwendung 110 wird als eine erweiterte anpassungsfähige Zwischenspeicheranwendung 110 Bezug genommen, da die anpassungsfähigen Zwischenspeicheranwendungen, die für Festplatten ausgelegt sind, mit zusätzlichen Vorgängen verändert oder erweitert werden können, um die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 zu erzeugen, sodass sowohl Halbleiterplatten als auch Festplatten wirkungsvoll unter der Steuerung der Speichereinheit 102 betrieben werden können.
-
2 stellt ein Blockschaubild 200 dar, das die logische Darstellung eines Speichers 202 gemäß bestimmten Ausführungsformen zeigt.
-
Die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 kann die für die Daten verwendeten Bereitstellungsvorgänge dynamisch ändern. Die Granularität für die Gestaltung ist ein Zylinderband 204, das eine beliebige Anzahl von aufeinanderfolgenden Zylindern 206a...206n auf einer Einheit ist. Bei bestimmten Ausführungsformen kann die Anzahl der Zylinder in einem Band 126 betragen. Jedes Band von Zylindern kann Datenstrukturen enthalten, um die Statistiken des diesem Band zugehörigen anpassungsfähigen Zwischenspeicherns zu verwalten.
-
Zu jedem Zylinder kann eine Vielzahl von Spuren gehören, wobei zu jeder Spur eine Vielzahl von Sektoren gehören kann. Zum Beispiel wird der Zylinder 206a gezeigt, der eine Vielzahl von Spuren 208a...208p aufweist, wobei die Spur 208a eine Vielzahl von Sektoren 210a...210m aufweist. Ein Sektor ist eine Unterteilung mit einer spezifischen Größe eines Festplattenlaufwerks, einer Halbleiterplatte oder einer anderen Art eines Speichermediums. Ein Betriebssystem kann sich auf Datensätze beziehen, die den Sektoren entsprechen, die auf einem Speichermedium gespeichert sind.
-
3A stellt ein Blockschaubild 300 dar, das beispielhafte Bereitstellungsvorgänge 302 gemäß bestimmten Ausführungsformen zeigt. Ein Bereitstellungsvorgang kann Daten von einer Festplatte oder einem anderen Speichermedium in den Cachespeicher 112 kopieren. Die folgenden drei Bereitstellungsstrategien werden von der erweiterten Anwendung eines anpassungsfähigen Zwischenspeicherns 110 unterstützt:
- (a) Bereitstellen eines Sektors (auch als Bereitstellen eines Datensatzes oder Zwischenspeichern eines Datensatzes bezeichnet) 304: Bei dem Bereitstellen eines Sektors wird nur ein Sektor, der erforderlich ist (werden nur Sektoren, die erforderlich sind), um die aktuelle Anfrage zu erfüllen, in dem Cachespeicher 112 bereitgestellt;
- (b) Bereitstellen eines Teils einer Spur 306: Beim Bereitstellen eines Teils einer Spur wird ein Teil einer Spur von dem Ausgangspunkt des Zugriffs auf die Spur bis zum Ende der Spur bereitgestellt; und
- (c) Bereitstellen einer vollständigen Spur 308: Bei dem Bereitstellen einer vollständigen Spur wird unabhängig von dem Zugriffspunkt auf die Spur, die gesamte Spur in dem Cachespeicher 112 bereitgestellt.
-
3B stellt ein Blockschaubild 310 dar, das ein Bereitstellen einer vollständigen Spur, ein Bereitstellen eines Teils einer Spur und ein Bereitstellen eines Datensatzes gemäß bestimmten Ausführungsformen zeigt. In 3B wird eine vollständige Spur 312 gezeigt, die eine Vielzahl von Sektoren 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336 aufweist. Ein Host wie zum Beispiel der Host 104a fragt bei der Speichersteuereinheit 102 nach den Sektoren an, die als angefragte Sektoren 338 gezeigt werden, wobei der Beginn der angefragten Sektoren durch das Bezugszeichen 340 in 3B angezeigt wird. Für die vollständige Spur 312 werden auch der Beginn der Spur 342 und das Ende der Spur 344 gezeigt. Das Bereitstellen einer vollständigen Spur ist das Bereitstellen der vollständigen Spur 312 in dem Cachespeicher 112. Das Bereitstellen eines Teils einer Spur 346 ist das Bereitstellen der Sektoren von dem Beginn der angefragten Sektoren 340 bis zum Ende der Spur 344 in dem Cachespeicher 112. Das Bereitstellen eines Datensatzes ist das Bereitstellender der angefragten Sektoren 338 in dem Cachespeicher 112.
-
4 stellt ein Blockschaubild 400 dar, das Datenstrukturen 402 für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt. Mit dem Ziel, zu bestimmen, welche Bereitstellungsstrategie für eine bestimmte Anfrage zu verwenden ist, werden bei dem anpassungsfähigen Zwischenspeichern für jedes Zylinderband die folgenden Zähler mithilfe der Datenstrukturen 402 geführt:
- 1) Fehlt 404: Wird erhöht, wenn die Spur nicht in dem Cachespeicher 112 vorhanden ist;
- 2) Vorhanden 406: Wird erhöht, wenn die Spur in dem Cachespeicher 112 vorhanden ist;
- 3) Vorderseitiger Zugriff (Front Access, FA) 408: Wird erhöht, wenn die Spur in dem Cachespeicher vorhanden ist und der erste angefragte Sektor vor dem Sektor liegt, der verursachte, dass die Spur befördert wurde.
- 4) Rückseitiger Zugriff (Back Access, BA) 410: Wird erhöht, wenn die Spur in dem Cachespeicher vorhanden ist und der erste angefragte Sektor hinter dem Sektor liegt, der verursachte, dass die Spur befördert wurde.
- 5) Langzeitfrontendzugriffsverhältnis (Historical front end, HFEAR) 412; und
- 6) Langzeitzugriffsverhältnis für wechselnde Datensätze (Historical alternate record access ratio, HARAR) 414.
-
Diese Zähler werden für jeden Zugriff auf eine Spur aktualisiert. Nach ungefähr jeweils 128 Zugriffen auf ein Zylinderband werden die Langzeitverhältnisse aktualisiert und die aktuelle Bereitstellungsstrategie für das Zylinderband wird aktualisiert.
-
5 stellt ein Blockschaubild dar, das Vorgänge 500 für ein anpassungsfähiges Zwischenspeichern gemäß bestimmten Ausführungsformen zeigt. In 5 werden die folgenden Langzeitverhältnisse wie folgt berechnet (Bezugszeichen 502): neues HFEAR = ((FA/(Vorhanden + Fehlt)) + HFEAR)/2 neues HARAR = (((FA + BA)/(Vorhanden + Fehlt)) + HARAR)/2
-
Die Bereitstellungsstrategie des Zylinderbands ist so einzustellen, dass die angefragten Sektoren 504 nur bereitgestellt werden, wenn HARAR kleiner ist als 0,10 (Bezugszeichen 506), dass ein Teil einer Spur 508 bereitgestellt wird, wenn HARAR größer oder gleich 0,10 und HFEAR kleiner als 0,05 ist (Bezugszeichen 510), und dass eine vollständige Spur bereitgestellt wird (Bezugszeichen 512), wenn HARAR größer oder gleich 0,10 und HFEAR größer oder gleich 0,05 (Bezugszeichen 514) ist.
-
Bei bestimmten Ausführungsformen können die in 5 gezeigten anpassungsfähigen Zwischenspeichervorgänge auf Festplatten angewandt werden. Das Bereitstellen eines Sektors, eines Teils einer Spur oder einer vollständigen Spur kann gemäß den in 5 gezeigten Berechnungen und Bedingungen ausgeführt werden. Bei alternativen Ausführungsformen können andere Berechnungen und Bedingungen verwendet werden, um anpassungsfähige Zwischenspeichervorgänge umzusetzen.
-
6 stellt ein Blockschaubild 600 dar, das eine beispielhafte Ausführungsform 602 für Halbleiterplatten 108 gemäß bestimmten Ausführungsformen zeigt.
-
Jede Spur in dem Cachespeicher 112 hat eine globale Laufnummer, wobei die Laufnummer eine monoton ansteigende Nummer ist. Wenn in dem Cachespeicher 112 auf eine beispielhafte Spur 604 zugegriffen wird, wird der Spur 604 diese globale Laufnummer zugewiesen und wird in einer Liste selten verwendeter Spuren (LRU-Liste) 606 an das Ende der zuletzt verwendeten Spuren hinzugefügt 605. Die globale Laufnummer wird danach erhöht. Daher weisen alle Spuren in der LRU-Liste 606 zugehörige Laufnummern auf, sodass eine Spur 608 an dem Ende der selten verwendeten Spuren die niedrigste Laufnummer hat und eine Spur 610 am zuletzt verwendeten Ende die höchste Laufnummer hat.
-
7 stellt einen Ablaufplan 700 dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt. Die in 7 gezeigten Vorgänge entsprechen Vorgängen, die durch die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 ausgeführt werden, die erzeugt werden kann, indem die anpassungsfähigen Zwischenspeicheranwendungen verändert werden, die für ein anpassungsfähiges Zwischenspeichern auf Festplatten verwendet werden, das in den 3A, 3B, 4 und 5 gezeigt wird.
-
Eine Steuerung beginnt im Block 702, wo eine LRU-Liste 606 für die Spuren geführt wird. Eine Datenstruktur für eine monoton ansteigende globale Laufnummer wird (in Block 704) geführt. Im Cachespeicher wird (in Block 706) auf eine Spur zugegriffen und die globale Laufnummer wird der aufgegriffenen Spur (in Block 708) als die Variable „THISSeq” zugewiesen und danach wird die globale Laufnummer (in Block 710) erhöht. Die aufgegriffene Spur wird (in Block 712) an das Ende der zuletzt verwendeten Spur der LRU-Liste 606 hinzugefügt.
-
Die Steuerung geht weiter zu Block 714, in dem für Spuren einer Halbleiterplatte, wenn die Position der Spur in der LRU-Liste 606 niedrig ist (d. h., dass dieser Zugriff auf die Spur unabhängig von einem früheren Zugriff ist), ein Zwischenspeichern eines Datensatzes ausgeführt wird. In anderen Worten wird für Spuren von Halbleitereinheiten, die sich am unteren Ende der LRU-Liste 606 befinden, ein Zwischenspeichern eines Datensatzes ausgeführt. Als Standardvorgang für Festplatten wird das Bereitstellen/Zwischenspeichern eines Teils einer Spur beibehalten. Die Bestimmung einer niedrigen Position wird wie folgt ausgeführt:
Wenn (((MRUseq – THISseq)·Consumed_Cache_Space/(MRUseq – LRUseq)) > 16 GB) gilt, wird ein Zwischenspeichern eines Datensatzes ausgeführt,
wobei:
MRUSeq = Laufnummer der Spur am MRU-Ende der LRU-Liste;
LRUSeq = Laufnummer der Spur am LRU-Ende der LRU-Liste;
THISSeq = Laufnummer dieser Spur; und
Consumed_Cache_Space = Dies ist die Gesamtmenge des Cachespeicherplatzes, der von den Spuren in diesem Cachespeicher in Anspruch genommen wird.
-
Daher wird in 7 ein Bereitstellen von Datensätzen für Halbleiterplatten verwendet, wenn ein Zugriff unabhängig ist von früheren Zugriffen, d. h., dass auf eine Spur, auf die zugegriffen wird, nicht kurze Zeit zuvor zugegriffen wurde. In diesen Situationen ist es zu bevorzugen, dass Übertragungen kleiner Blöcke ausgeführt werden, indem Sektoren/Datensätze bereitgestellt werden, anstatt dem Cachespeicher eine vollständige Spur oder einen Teil einer Spur bereitzustellen.
-
8 stellt einen Ablaufplan 800 dar, der bestimmte Vorgänge gemäß bestimmten Ausführungsformen zeigt. Bei bestimmten Ausführungsformen können die Vorgänge in 8 durch die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 ausgeführt werde, die in der Speichersteuereinheit 102 umgesetzt wird.
-
Die Steuerung startet im Block 802, in dem eine Speichersteuereinheit 102 eine Anfrage empfängt, die einem Zugriff auf eine Spur in einem Cachespeicher 112 entspricht. Die Speichersteuereinheit 102 kann die Anfrage von einem der Hosts 104a...104n empfangen. Die Anfrage kann für eine oder mehrere Datensätze (die Sektoren entsprechen) sein, die in einer Spur abgelegt sind.
-
Die Steuerung geht weiter zu Block 804, in dem die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 in der Speichersteuereinheit 102 bestimmt, ob die Spur Daten entspricht, die auf einer Halbleiterplatte 108 gespeichert sind. Wenn dies so ist, bestimmt die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 (in Block 806), ob auf die Spur relativ kurze Zeit zuvor zugegriffen wurde. Die Bestimmung, ob auf die Spur relativ kurze Zeit zuvor zugegriffen wurde, kann gemäß den im Block 714 in 7 gezeigten Vorgängen getroffen werden, in denen bestimmt wird, ob die Spur eine niedrige Laufnummer (in diesem Fall wurde auf die Spur nicht relativ kurze Zeit zuvor zugegriffen) oder eine hohe Laufnummer hat (in diesem Fall wurde auf die Spur relativ kurze Zeit zuvor zugegriffen).
-
Wenn im Block 806 bestimmt wird, dass auf die Spur nicht relativ kurze Zeit zuvor zugegriffen wurde, geht die Steuerung weiter zu Block 808, in dem die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 ein Bereitstellen eines Datensatzes von der Halbleiterplatte 108 in den Cachespeicher 112 ausführt. Es kann darauf hingewiesen werden, dass jede Spur eine Vielzahl von Datensätzen aufweist. Bei Halbleiterplatten ist es wirkungsvoller, weniger Datenblöcke gleichzeitig zu übertragen. Infolgedessen ist für Halbleiterplatten ein Bereitstellen eines Datensatzes in dem Cachespeicher 112 zu bevorzugen, ausgenommen, wenn es eine überwältigende Wahrscheinlichkeit gibt, dass benachbarte Datensätze, die nicht angefragt wurden, wahrscheinlich in der näheren Zukunft verwendet werden. Wenn auf eine Spur nicht kurze Zeit zuvor zugegriffen wurde (d. h., dass die Spur sich in der Nähe des Endes der selten verwendeten Spuren in der LRU-Liste 606 befindet), ist es daher zu bevorzugen, dass für Halbleiterplatten nur ein Zwischenspeichern eines Datensatzes (d. h. nur ein Bereitstellen von angefragten Sektoren/Datensätzen) ausgeführt wird.
-
Wenn im Block 806 bestimmt wird, dass auf die Spur relativ kurze Zeit zuvor zugegriffen wurde (d. h., dass die Spur sich in der Nähe des Endes der kurz zuvor verwendeten Spuren in der LRU-Liste 606 befindet), geht die Steuerung weiter zu Block 810, in dem die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 zwischen einem Bereitstellen eines Teils einer Spur, einem Bereitstellen einer vollständigen Spur und einem Bereitstellen eines Datensatzes von der Halbleiterplatte 108 in dem Cachespeicher 112 auf der Grundlage eines Kriteriums auswählt, das von der Speichersteuereinheit 102 geführt wird. Bei bestimmten Ausführungsformen beruht das Kriterium zum Auswählen, ob ein Bereitstellen eines Teils einer Spur, ein Bereitstellen einer vollständigen Spur oder ein Bereitstellen eines Datensatzes auszuführen ist, auf den in 5 in den Blöcken 504, 506, 508, 510, 512, 514 gezeigten Vorgängen, die zeigen, wann angefragte Sektoren/Datensätze bereitgestellt werden 504, wann ein Teil einer Spur bereitgestellt wird 508, und wann eine vollständige Spur 512 bereitgestellt wird. Daher funktioniert die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 in einer ähnlichen Weise sowohl für Halbleiterplatten als auch für Festplatten, wenn sich eine Spur in der Nähe des Endes der kurz zuvor verwendeten Spuren in der LRU-Liste 606 in dem Cachespeicher 112 befindet.
-
Wenn in Block 804 bestimmt wird, dass die Spur nicht Daten entspricht, die auf einer Halbleiterplatte gespeichert sind, geht die Steuerung weiter zu Block 812, wo eine Bestimmung getroffen wird, ob die Spur Daten entspricht, die auf einer Festplatte 106 gespeichert sind. Wenn dies so ist, wählt die erweiterte anpassungsfähige Zwischenspeicheranwendung 110 (in Block 814) aus, ob von der Festplatte 106 auf der Grundlage eines Kriteriums, das von der Speichersteuereinheit 102 geführt wird, ein Bereitstellen eines Teils einer Spur, ein Bereitstellen einer vollständigen Spur und ein Bereitstellen eines Datensatzes in dem Cachespeicher 112 ausgeführt werden. Bei bestimmten Ausführungsformen beruht das Kriterium zum Auswählen, ob ein Bereitstellen eines Teils einer Spur, ein Bereitstellen einer vollständigen Spur oder ein Bereitstellen eines Datensatzes auszuführen ist, auf den in 5 gezeigten Vorgängen, die zeigen, wann angefragte Sektoren/Datensätze bereitgestellt werden 504, wann ein Teil einer Spur bereitgestellt wird 508, und wann eine vollständige Spur 512 bereitgestellt wird.
-
Wenn in Block 812 eine Bestimmung getroffen wird, dass die Spur nicht Daten entspricht, die auf der Festplatte 106 gespeichert sind, endet der Prozess (in Block 816). Die Steuerung geht auch aus den Blöcken 808, 810 und 814 zu Block 816, wo der Prozess endet.
-
Daher zeigen die 1 bis 8 bestimmte Ausführungsformen, in denen ein Bereitstellen eines Teils einer Spur für Festplatten erweitert wird mit dem Bereitstellen eines Datensatzes für Halbleiterplatten, wobei für Halbleiterplatten nur ein Bereitstellen eines Datensatzes verwendet wird, wenn eine Spur einer Halbleiterplatte nicht kurze Zeit zuvor verwendet wurde. Es kann darauf hingewiesen werden, das bei dem Bereitstellen einer vollständigen Spur eine ganze Spur bereitgestellt wird, bei dem Bereitstellen eines Teils einer Spur alle Sektoren beginnend mit dem Anfang des angefragten Sektors bis zum Ende der Spur bereitgestellt werden und beim Bereitstellen eines Datensatzes nur die angefragten Sektoren bereitgestellt werden. Bestimmte Ausführungsformen stellen Bedingungen bereit, unter denen das Bereitstellen eines Teils einer Spur, das Bereitstellen eines Datensatzes und/oder das Bereitstellen einer vollständigen Spur von einer Speichersteuereinheit ausgeführt wird, die sowohl Festplatten als auch Halbleiterplatten steuert.
-
Zusätzliche Einzelheiten der Ausführungsformen
-
Die beschriebenen Vorgänge können als ein Verfahren, eine Vorrichtung oder ein Computerprogrammprodukt umgesetzt werden, das eine Standardprogrammierung und/oder eine Entwicklungstechnik verwendet, um Software, Firmware, Hardware oder eine beliebige Kombination davon herzustellen. Entsprechend können die Aspekte der Ausführungsformen die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, resident Software, Mikrocode, usw.) oder einer Ausführungsform annehmen, die Software und Hardware-Komponenten kombiniert, wobei diese hier als „Schaltkreis”, „Modul” oder „System” bezeichnet werden. Außerdem können die Aspekte der Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien enthalten ist, die einen computerlesbaren Programmcode enthalten.
-
Jede beliebige Kombination eines oder mehrerer computerlesbarer Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Speichermedium kann beispielsweise, ohne auf diese beschränkt zu sein, ein System, eine Vorrichtung oder eine Einheit zur elektronischen, magnetischen, optischen, elektromagnetischen, Infrarot- oder Halbleiterspeicherung sein oder jede geeignete Kombination davon. Zu den konkreten Beispielen computerlesbarer Speichermedien gehören (in einer unvollständigen Liste) folgende: eine elektrische Ein- oder Mehrdrahtverbindung, eine tragbare Computerdiskette, eine Festplatte, ein Arbeitsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium jedes verfügbare Medium sein, auf dem ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten sein oder gespeichert werden kann.
-
Ein computerlesbares Signalmedium kann ein übertragenes Datensignal mit einem darin beispielsweise im Basisband oder als Teil einer Trägerwelle eingebundenen computerlesbaren Programmcode enthalten. Ein solches übertragenes Signal kann eine von einer Vielfalt von Formen annehmen, unter anderem, ohne auf diese beschränkt zu sein, eine elektromagnetische oder optische Form oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und welches Programmdaten für eine Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung austauschen, verbreiten oder übertragen kann.
-
Ein Programmcode, der auf einem computerlesbaren Medium eingebunden ist, kann unter Verwendung eines geeigneten Mediums übertragen werden, unter anderem, ohne auf diese beschränkt zu sein, drahtlos oder leitungsgebunden, über Lichtwellenleiter, HF usw. oder jeder geeigneten Kombination davon.
-
Der Computerprogrammcode zur Durchführung von Operationen für einige Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination von Programmiersprachen geschrieben werden, unter anderem objektorientierte Programmiersprachen wie zum Beispiel Java*, Smalltalk, C++ oder ähnliche Programmiersprachen, und herkömmliche prozedurale Programmiersprachen wie zum Beispiel die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann entweder vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als unabhängiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf einem fernen Computer oder Server ausgeführt werden. Im letzten Szenario kann der ferne Computer mit dem Computer des Benutzers entweder über ein beliebiges Netzwerk verbunden werden, einschließlich eines lokalen Netzwerkes (LAN) oder eines Weitverkehrsnetzwerkes (WAN) oder die Verbindung kann über einen externen Computer (zum Beispiel, über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die Ablaufplandarstellungen und/oder die Blockschaubilder der Verfahren, Vorrichtungen (Systeme) und Computerprogrammprodukte gemäß einigen Ausführungsformen der Erfindung beschrieben. Selbstverständlich kann jeder Block der Ablaufplandarstellungen und/oder der Blockschaubilder und jede Kombination von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden. Diese Computerprogrammbefehle können für einen Prozessor eines Universal-Computers, eines Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt, um eine Maschine herzustellen, in der die vom Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Befehle die Mittel zur Umsetzung der in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktionen/Aktionen erzeugen.
-
Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten beauftragen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Befehle ein Produkt erzeugen, das die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierte Funktion/Aktion umsetzt.
-
Die Computerprogrammbefehle können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Betriebsschritten zu erzeugen, die auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten ausgeführt werden, um einen computergestützten Prozess zu erzeugen, durch den die Befehle, die im Computer oder in den anderen programmierbaren Vorrichtungen ausgeführt werden, die Verfahren für das Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubilds festgelegten Funktionen/Aktionen bereitstellen.
-
9 stellt ein Blockschaubild dar, das bestimmte Elemente zeigt, die zu der Speichersteuereinheit 102 oder den Hosts 104a...104n gemäß bestimmten Ausführungsformen gehören können. Das System 900 kann die Speichersteuereinheit 102 oder die Hosts 104a...104n aufweisen und es kann eine Schaltung 902 enthalten, zu der bei bestimmten Ausführungsformen mindestens ein Prozessor 904 gehört. Zu dem System 900 können auch ein Arbeitsspeicher 906 (z. B. eine flüchtige Speichereinheit) und ein Datenspeicher 908 gehören. Zu dem Datenspeicher 908 können eine nichtflüchtige Speichereinheit (z. B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flashspeicher, Firmware, eine programmierbare Logik usw.), ein magnetisches Laufwerk, ein optisches Laufwerk, ein Bandlaufwerk usw. gehören. Der Datenspeicher 908 kann eine interne Speichereinheit, eine angefügte Speichereinheit und/oder eine über ein Netzwerk zugängliche Speichereinheit aufweisen. Zu dem System 900 kann eine Programmlogik 910 gehören, zu der ein Code 912 gehört, der in den Arbeitsspeicher 906 geladen und von dem Prozessor 904 oder der Schaltung 902 ausgeführt werden kann. Bei bestimmten Ausführungsformen kann die Programmlogik 910, zu welcher der Code 912 gehört, in dem Datenspeicher 908 gespeichert werden. Bei bestimmten weiteren Ausführungsformen kann die Programmlogik 910 in der Schaltung 902 umgesetzt werden. Daher kann die Programmlogik 910 in dem Arbeitsspeicher 906 und/oder in der Schaltung 902 umgesetzt werden, obwohl in 9 die Programmlogik 910 getrennt von den weiteren Elementen gezeigt wird.
-
Bestimmte Ausführungsformen können sich auf ein Verfahren zum Anwenden von Computerbefehlen durch eine Person oder durch eine automatische Verarbeitung beziehen, die einen computerlesbaren Code in ein Computersystem eingibt, wobei es der Code in Kombination mit dem Computersystem ermöglicht, die Vorgänge der beschriebenen Ausführungsformen auszuführen.
-
Die Begriffe „eine Ausführungsform”, „Ausführungsform”, „Ausführungsformen”, „die Ausführungsformen”, „eine oder mehrere Ausführungsformen”, „einige Ausführungsformen” und „eine einzelne Ausführungsform” bedeuten „eine oder mehrere (aber nicht alle) Ausführungsformen der vorliegenden Erfindung(en)”, ausgenommen, wenn dies anders angegeben wird.
-
Die Begriffe „gehören”, „aufweisen”, „enthalten”, „haben” und Variationen davon bedeuten „einschließlich, ohne auf diese beschränkt zu sein”, ausgenommen, wenn dies anders angegeben wird.
-
Die Listen mit aufgezählten Elementen bedeuten nicht, dass sich einige oder mehrere der Elemente gegenseitig ausschließen, ausgenommen, wenn dies anders angegeben wird.
-
Die Begriffe „ein”, „eine”, „einer”, „der”, „die” und „das” bedeuten „ein oder mehrere”, „eine oder mehrere” oder „einer oder mehrere”, ausgenommen, wenn dies anders angegeben wird.
-
Einheiten, die für einen Datenaustausch miteinander verbunden sind, müssen nicht in einem andauernden Datenaustausch miteinander stehen, ausgenommen, wenn dies anders angegeben wird. Außerdem können Einheiten, die in einem Datenaustausch miteinander stehen, die Daten direkt oder indirekt über eine oder mehrere Zwischeneinheiten austauschen.
-
Eine Beschreibung einer Ausführungsform mit mehreren Komponenten, die in einem Datenaustausch miteinander stehen, bedeutet nicht, dass alle diese Komponenten erforderlich sind. Ganz im Gegenteil wird eine Vielfalt von optionalen Komponenten beschrieben, um die große Vielfalt von möglichen Ausführungsformen der vorliegenden Erfindung darzustellen.
-
Obwohl Prozessschritte, Verfahrensschritte, Algorithmen oder Ähnliche in einer geordneten Reihenfolge beschrieben werden können, können diese Prozesse, Verfahren und Algorithmen auch konfiguriert werden, um in einer alternativen Reihenfolge zu arbeiten. In anderen Worten, jede Reihenfolge oder Ordnung von Schritten, die beschrieben werden kann, gibt nicht unbedingt ein Erfordernis an, dass die Schritte in dieser Reihenfolge ausgeführt werden müssen. Die hier beschriebenen Schritte von Prozessen können in jeder beliebigen praktischen Reihenfolge ausgeführt werden. Außerdem können einige Schritte gleichzeitig ausgeführt werden.
-
Wenn hier eine einzige Einheit oder ein einziges Produkt beschrieben wird, ist es auf einfache Weise offensichtlich, dass mehr als eine Einheit oder ein Produkt (unabhängig davon, ob sie zusammenwirken oder nicht) anstelle einer einzigen Einheit oder eines einzigen Produkts verwendet werden kann. Wenn auf ähnliche Weise hier mehr als eine Einheit oder ein Produkt beschrieben wird (unabhängig davon, ob sie zusammenwirken oder nicht), ist es auf einfache Weise offensichtlich, dass eine einzige Einheit oder ein einziges Produkt anstelle von mehr als einer Einheit oder einem Produkt verwendet werden kann oder eine unterschiedliche Anzahl von Einheiten oder Produkten kann verwendet werden anstelle der angezeigten Anzahl von Einheiten oder Produkten. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ von einer oder mehreren weiteren Einheiten verkörpert werden, die nicht ausdrücklich so beschrieben werden, dass sie diese Funktionalität oder Merkmale aufweisen. Auf diese Weise muss die Einheit selbst nicht zu weiteren Ausführungsformen der vorliegenden Erfindung gehören.
-
Zumindest bestimmte Vorgänge, die in den Figuren dargestellt sein können, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. Bei alternativen Ausführungsformen können bestimmte Vorgänge in einer unterschiedlichen Reihenfolge ausgeführt, verändert oder entfernt werden. Des Weiteren können Schritte zu der oben beschriebenen Logik hinzugefügt werden und immer noch die beschriebenen Ausführungsformen erfüllen. Außerdem können hier beschriebene Vorgänge nacheinander erfolgen oder bestimmte Vorgänge können parallel verarbeitet werden. Ferner können Vorgänge von einer einzigen Verarbeitungseinheit oder von dezentralen Verarbeitungseinheiten ausgeführt werden.
-
Die vorangehende Beschreibung von verschiedenen Ausführungsformen der Erfindung wurde zu Veranschaulichungs- und Beschreibungszwecken vorgestellt. Sie ist nicht als erschöpfend oder als einschränkend für die Erfindung in der genau offenbarten Form zu verstehen. Angesichts der obigen Lehren sind viele Veränderungen und Variationen möglich. Diese detaillierte Beschreibung ist nicht so zu verstehen, dass sie den Umfang der Erfindung einschränkt, vielmehr wird dieser durch die hier angefügten Ansprüche definiert. Die obige Beschreibung, die Beispiele und Daten stellen eine vollständige Beschreibung der Herstellung und Verwendung der Zusammensetzung dieser Erfindung bereit. Da viele Ausführungsformen der Erfindung ausgeführt werden können, ohne vom Erfindungsgedanken und dem Umfang der Erfindung abzuweichen, beruht die Erfindung auf den nachfolgend angefügten Ansprüchen.