-
Die vorliegende Erfindung betrifft ein Datenübertragungsverfahren und eine
Datenspeichervorrichtung und insbesondere ein Verfahren und eine
Datenspeichervorrichtung zum Übertragen von Daten von einem Hostcomputer auf ein
Speichermedium.
-
Write-Back-Caching ist ein Beispiel für eine Umgebung zum Übertragen von Daten
von einem Initiatorgerät auf ein Zielgerät. Write-Back-Caching bezieht sich auf ein
Verfahren zum Ausführen von Schreibanforderungen, bei denen ein Initiatorgerät wie z. B.
ein Hostcomputer Schreibanforderungsdaten auf ein Zielgerät wie z. B. eine Cache-
Plattenarray-Steuerung überträgt, die dann die Schreibanforderungsdaten auf ein
Speichermedium überträgt. Je nach der jeweiligen von der Steuerung implementierten
Write-Back-Caching-Strategie können die Schreibanforderungsdaten entweder unmittelbar
auf das Speichermedium geschrieben werden, oder die Schreibanforderungsdaten können
vorübergehend in einem Cache-Speicher als ungeschriebene oder "Dirty-Daten" gespeichert
und dann "geräumt" oder zu einem späteren Zeitpunkt auf das Speichermedium geschrieben
werden. In beiden Fällen sendet die Steuerung Statusinformationen zum Hostcomputer
zurück und gibt so an, dass die Schreibanforderung beendet ist, so dass der Hostcomputer
mit der Ausführung einer Softwareanwendung fortfahren kann. Der hierin verwendete
Begriff "Dirty-Daten" bezieht sich auf Daten, die sich im Cache-Speicher befinden und noch
nicht auf das Speichermedium geschrieben wurden. Um die Bedeutung der nachfolgenden
Begriffe "Räumung", "geräumt" oder "räumen" zu erfassen, ist zu verstehen, dass die
Tätigkeit des "Räumens" von Daten bedeutet, dass "Dirty-Daten" auf ein Speichermedium
geschrieben werden.
-
Die Leistung eines Hostcomputers beim Ausführen einer bestimmten
Softwareanwendung ist wenigstens teilweise von den jeweiligen Caching-Strategien
abhängig, die die Cache-Plattenarray-Steuerung anwendet. Spezifischer ausgedrückt, die
Leistung des Hostcomputers kann durch Implementieren der geeignetsten Caching-
Strategien für die jeweilige in Ausführung befindliche Softwareanwendung optimiert
werden.
-
Was Write-Back-Caching anbetrifft, so sind optimale Leistungen mit dem
Hostcomputer beim Ausführen einer ersten Softwareanforderung mit
Schreibanforderungsdaten möglich, die unmittelbar auf Speichermedien geschrieben
werden, während optimale Leistungen mit dem Hostcomputer beim Ausführen einer zweiten
Softwareanwendung mit Schreibanforderungsdaten erzielt werden können, die so lange wie
möglich im Cache-Speicher gespeichert werden, bevor sie auf Speichermedien geschrieben
werden. Ferner kann der Hostcomputer optimale Leistungen beim Ausführen einer dritten
Softwareanwendung mit Schreibanforderungsdaten erfahren, die für ein bestimmtes
Zeitintervall im Cache-Speicher gespeichert sind oder bis eine bestimmte Menge an
Schreibanforderungsdaten im Cache gespeichert wurden, bevor sie auf Speichermedien
geschrieben werden.
-
Hostcomputer sind derzeit nachteiligerweise im Hinblick auf die angewendete
Caching-Strategie zum Schreiben ihrer Schreibanforderungsdaten auf Speichermedien
während der Ausführung verschiedener Softwareanwendungen beschränkt.
-
Die WO-A-92 15933 offenbart ein Verfahren zum Übertragen von Daten auf ein
Speichermedium, das an einen Hostcomputer angeschlossen ist und ein Hybrid-
Speichermedium beinhaltet, das so angeordnet ist, dass es nahezu
Festkörpergeschwindigkeiten für bestimmte Anwendungen erreichen kann.
-
Die US-A-4530055 offenbart ein hierarchisches Speichersystem, bei dem der
Austausch von Segmenten in einem Cache-Speicher von einem Algorithmus gesteuert wird,
dessen Nutzung die längste Zeit zurückliegt, während das Trickling (Puffern) von
Segmenten aus dem Cache-Speicher durch das Alter seit dem ersten Schreibvorgang
gesteuert wird.
-
Es ist Aufgabe der vorliegenden Erfindung, ein Datenübertragungsverfahren und
eine Datenspeichervorrichtung mit Vorteilen gegenüber bekannten Verfahren und
Vorrichtungen bereitzustellen.
-
Gemäß der vorliegenden Erfindung wird ein Verfahren zum Übertragen von Daten
zu einem Speichermedium (26) bereitgestellt, das mit einem Hostcomputer (10) und einer
Steuerung (18) mit einem Cache-Speicher (33) verbunden ist, gekennzeichnet durch die
folgenden Schritte: Erzeugen eines Cache-Räumparameters im Hostcomputer (10),
Übertragen des Cache-Räumparameters vom Hostcomputer (10) zur Steuerung (18) und
Schreiben einer Menge von Schreibanforderungsdaten vom Cache-Speicher (33) der
Steuerung (18) auf das Speichermedium (39) gemäß dem Cache-Räumparameter,
einschließlich des Schrittes des Einleitens des Schreibschrittes, wenn eine Menge an im
Cache-Speicher (33) befindlichen ungeschriebenen Schreibanforderungsdaten einen
vorbestimmten Schwellenwert überschreitet, der vom Cache-Räumparameter abgeleitet
wurde, und Beenden des Schreibschrittes, wenn die Menge an ungeschriebenen
Schreibanforderungsdaten unter einen zweiten vorbestimmten Schwellenwert abfällt, der
von einem anderen Cache-Räumparameter abgeleitet wurde.
-
Gemäß einem anderen Aspekt der vorliegenden Erfindung wird eine
maschinenlesbare Datenspeichervorrichtung bereitgestellt, die mit einem Hostcomputer (10)
und einer Steuerung mit einem Cache-Speicher verbunden ist, gekennzeichnet durch ein
Mittel zum Erzeugen eines Cache-Räumparameters im Hostcomputer (10), ein Mittel zum
Übertragen des Cache-Räumparameters vom Hostcomputer (10) zur Steuerung (18) und ein
Mittel zum Schreiben einer Menge von Schreibanforderungsdaten von dem Cache-Speicher
der Steuerung auf das Speichermedium (26) gemäß dem Cache-Räumparameter, und die so
gestaltet ist, dass sie den Schreibschritt dann einleitet, wenn eine Menge an im Cache-
Speicher befindlichen ungeschriebenen Schreibanforderungsdaten einen ersten
vorbestimmten Schwellenwert überschreitet, der vom Cache-Räumparameter abgeleitet
wurde, und den Schreibschritt dann beendet, wenn die Menge an ungeschriebenen
Schreibanforderungsdaten unter einen zweiten vorbestimmten Schwellenwert abfällt, der
von einem anderen Cache-Räumparameter abgeleitet wurde.
-
Somit kann ein neues und nützliches Verfahren zum dynamischen Ändern eines
Cache-Räumalgorithmus bereitgestellt werden. Die vorliegende Erfindung kann
vorteilhafterweise ein neues und nützliches Verfahren zum Ändern der Cache-
Räumcharakteristika durch vom Host wählbare Parameter sowie ein neues und nützliches
Verfahren zum Verändern der Art und Weise bereitstellen, in der ein Cache-Speicher jeweils
mit einem vom Host wählbaren Parameter geräumt wird.
-
Die Erfindung kann ferner ein neues und nützliches Verfahren zum Verändern eines
Zeitintervalls zum Schreiben ungeschriebener Schreibanforderungsdaten auf ein
Speichermedium bereitstellen.
-
Die Erfindung wird nachfolgend, jedoch nur beispielhaft, unter Bezugnahme auf die
Begleitzeichnungen näher beschrieben. Dabei zeigt:
-
Fig. 1 ein Blockdiagramm eines Hostcomputers und einer Plattenarray-Vorrichtung
mit mehreren Steuerungen, die auf vom Host wählbare Parameter zum Ändern von Cache-
Räumstrategien gemäß einem die vorliegende Erfindung ausgestaltenden Verfahren reagiert;
-
Fig. 2 ein Speicherpufferformat mit Feldern, die vom Host wählbare Parameter
enthalten;
-
Fig. 3A und 3B Kurven, die beispielhafte Beziehungen zwischen einer Reihe von
vom Host wählbaren Cache-Räummodifikatoren und entsprechenden Zeitintervallen zum
Räumen eines Cache-Speichers illustrieren; und
-
Fig. 4 eine Kurve, die eine "Beginn Räumanforderung" Schwelle, eine "Ende
Räumanforderung" Schwelle und eine Dirty-Maximalschwelle illustriert, die die
Betriebsparameter für einen exemplarischen Cache-Räumvorgang auf Anforderung
definieren.
-
Es ist jedoch zu verstehen, dass die Erfindung nicht auf die besonderen hierin
beschriebenen Ausgestaltungen begrenzt ist.
-
Fig. 1 zeigt ein Computersystem 2, das einen Hostcomputer 10, eine Peripher-
Plattenlaufwerksvorrichtung 12, die mit dem Hostcomputer 10 verbunden ist, und eine
Subsystem-USV (unterbrechungsfreie Stromversorgung) 13 in Verbindung mit der
Plattenlaufwerksvorrichtung 12 umfasst. Der Hostcomputer 10 beinhaltet einen ersten
Hostadapter 14 und einen zweiten Hostadapter 16, die beide als Schnittstelle für den
Hostcomputer 10 mit verschiedenen Peripheriegeräten wie der Plattenlaufwerksvorrichtung
12 dienen. Die Subsystem-USV 13 speist lediglich die Plattenlaufwerksvorrichtung 12 mit
Strom.
-
Die Plattenlaufwerksvorrichtung 12 beinhaltet eine erste Cache-Plattenarray-
Steuerung 18, eine zweite Cache-Plattenarray-Steuerung 20, eine Mehrzahl von Back-End-
Bussen oder -Kanälen 22A-E und wenigstens ein Speichermedium 24 in Verbindung mit
jedem Kanal 22A-22E. In der beschriebenen Ausgestaltung sind die Kanäle 22A-22E SCSI-
Kanäle, die die erste Steuerung 18 mit der zweiten Steuerung 20 verbinden. SCSI ist eine
Abkürzung für Small Computer System Interface, die einen Kommunikationsprotokoll-
Standard für Ein-Ausgabegeräte definiert. Die erste Version des Standards, SCSI-1, ist in
ANSI X3.131-1986 beschrieben. Die Spezifikation SCSI-1 wurde mit einer erweiterten
Schnittstelle aufgerüstet, die als SCSI-2 bezeichnet wird, und die Spezifikation SCSI-2 ist
im ANSI-Dokument Nr. X3.131-1994 beschrieben.
-
In der illustrierten Ausgestaltung von Fig. 1 gibt es fünf Platten 24A-24E, die
zusammen eine einspaltige Plattenarray 26 bilden und die individuell über die jeweiligen
Busse 22A-22E jeweils mit den Steuerungen 18 und 20 verbunden sind. Die Plattenarray 26
beinhaltet ein Design mit der Bezeichnung "Redundant Array of Inexpensive Disks"
(RAID). Es sind in der Technik fünf RAID-Designebenen bekannt, RAID-1 bis RAID-5, die
in der Publikation "A Case for Redundant Arrays of Inexpensive Disks (RAID)" von David
A. Patterson, Garth Gibson und Randy H. Katz, University of California Report No.
UCB/CSD 87/391, Dezember 1987 beschrieben sind. Es ist zu verstehen, dass die
Plattenarray 26 weitere Plattenspalten aufweisen kann, die mit den jeweiligen Bussen 22
verbunden sind. So kann beispielsweise eine Plattenarray von 5 mal 6 mit dreißig (30)
Plattenlaufwerken gebildet werden, indem 5 zusätzliche Platten jeweils mit den Bussen
22A-22E verbunden werden.
-
Der Hostcomputer 10 und insbesondere die Hostadapter 14, 16 sind über separate
Busse oder Kanäle wie z. B. Host-SCSI-Busse 28 und 30 mit den jeweiligen Plattenarray-
Steuerungen 18, 20 verbunden. Die erste Steuerung 18 beinhaltet einen Datenprozessor wie
einen konventionellen Mikroprozessor 31, einen Ein-Ausgabeprozessor oder einen
Sekundärprozessor 32, einen Cache-Speicher 33 und eine Cache-Batterie 35. Der Cache-
Speicher 33 kann in wenigstens zwei separate Bereiche unterteilt werden, einen primären
Cache-Speicherbereich 34 und einen alternativen Cache-Speicherbereich 36. Ebenso
beinhaltet die zweite Steuerung 20 einen Datenprozessor wie z. B. einen konventionellen
Mikroprozessor 37, einen Ein-Ausgabeprozessor oder Sekundärprozessor 38, einen Cache-
Speicher 39 sowie eine Cache-Batterie 41. Der Cache-Speicher 39 ist in wenigstens zwei
separate Bereiche unterteilt, einen primären Cache-Speicherbereich 40 und einen
alternativen Cache-Speicherbereich 42. Die Cache-Batterien 35, 41 speisen exklusiv jeweils
die Cache-Speicher 33, 39 für den Fall eines Stromausfalls oder einer Stromunterbrechung,
um den Verlust von Daten zu verhindern, die in den Cache-Speichern 33, 29 enthalten sind.
-
Die Ein-Ausgabeprozessoren 32, 38 führen ASIC-spezifische (ASIC =
anwendungsspezifische integrierte Schaltung) Anweisungen unabhängig von der Firmware
der Steuerung aus, die von den jeweiligen Mikroprozessoren 31, 27 ausgeführt werden. Ein
Beispiel für einen geeigneten Ein-Ausgabeprozessor ist der SCSI-Ein-Ausgabeprozessor-
Chip (SIOP) 53C825, der von Symbios Logic Inc. aus Fort Collins in Colorado hergestellt
wird. Der Ein-Ausgabeprozessor 53C825 führt SCRIPTS-Anweisungen aus, die sich in
einem ASIC-spezifischen Anweisungssatz befinden, der speziell für die Steuerung der
53C8XX-Familie der Produkte von Symbios Logic Inc. entwickelt wurde.
-
Die Steuerungen 18, 20 können in einer von zwei Betriebsarten arbeiten,
passivaktiv oder dual-aktiv. In der dual-aktiven Betriebsart sind Teile der jeweiligen Cache-
Speicher 33, 39 beider Steuerungen 18, 20 für die exklusive Benutzung durch die andere
Steuerung abgestellt. Somit fungieren in der dual-aktiven Betriebsart beide Steuerungen 18,
20 als primäre Steuerung und als alternative Steuerung. Spezifischer ausgedrückt, ist der
primäre Cache-Speicherbereich 34 der Steuerung 18 zur Verwendung bei Cache-
Lese/Schreib-Anforderungen vom Hostcomputer 10 und der alternative Cache-
Speicherbereich 36 der Steuerung 20 zur Verwendung bei der Spiegelung von
Schreibanforderungsdaten zugewiesen, die im primären Cache-Speicherbereich 40 der
Steuerung 20 gespeichert sind. Die Steuerung 20 ist auch für die Verwaltung der
Schreibanforderungsdaten verantwortlich, die sie im alternativen Cache-Speicherbereich 36
spiegelt oder speichert.
-
Ebenso ist der primäre Cache-Speicherbereich 40 der Steuerung 20 zur Verwendung
bei Cache-Lese/Schreib-Anforderungen vom Hostcomputer 10 und der alternative Cache-
Speicherbereich 42 der Steuerung 18 zur Verwendung beim Spiegeln von
Schreibanforderungsdaten zugewiesen, die im primären Cache-Speicherbereich 34 der
Steuerung 18 gespeichert sind. Die Steuerung 18 ist verantwortlich für die Verwaltung der
Schreibanforderungsdaten, die sie in den alternativen Cache-Speicherbereich 42 spiegelt.
-
Die alternativen Cache-Speicherbereiche 42, 36 werden während der
Systemkonfigurationsphase von Startvorgängen für das Computersystem 2 den jeweiligen
Steuerungen 18, 20 zugewiesen. Es ist zu beachten, dass dem alternativen Cache-
Speicherbereich 42 dieselben entsprechenden Speicheradressen zugewiesen sind wie auch
dem primären Cache-Speicherbereich 34, und dass dem alternativen Cache-Speicherbereich
36 dieselben entsprechenden Speicheradressen zugewiesen sind wie auch dem primären
Cache-Speicherbereich 40, wodurch Spiegelungsvorgänge vereinfacht werden, indem die
Notwendigkeit für virtuelle Speicherabbildungsvorgänge entfällt,
-
In der passiv-aktiven Betriebsart fungiert eine der Steuerungen, z. B. Steuerung 18,
als Primärsteuerung, die Lese/Schreibanforderungen vom Hostcomputer 10 empfängt,
während die andere Steuerung, Steuerung 20, als alternative Steuerung fungiert, die Cache-
Speicherkapazität zum Spiegeln der Schreibanforderungsdaten unter Anweisung der
Primärsteuerung 18 gemäß obiger Beschreibung in Bezug auf die dual-aktive Betriebsart
bereitstellt.
-
Es ist zu verstehen, dass der primäre Cache-Speicherbereich 34 nicht dieselbe Größe
zu haben braucht wie der alternative Cache-Speicherbereich 42 und dass der primäre Cache-
Speicherbereich 40 nicht dieselbe Größe zu haben braucht wie der alternative Cache-
Speicherbereich 36. So braucht z. B. der alternative Cache-Speicherbereich 36 nur so groß zu
sein, dass er alle gespiegelten Schreibanforderungsdaten bewältigen kann, die die Steuerung
20 speichern möchte. Zu jedem beliebigen Zeitpunkt ist dem primären Cache-
Speicherbereich 40 und ebenso dem primären Cache-Speicherbereich 34 X% Lese-Cache,
Y% Schreib-Cache und Z% ungenutzte Speicherkapazität zugewiesen, wobei X + Y + Z =
100% des primären Cache-Speicherbereiches 40 ergibt. Wenn die maximale Menge an
Schreibanforderungsdaten (Y% Schreib-Cache), die im primären Cache-Speicherbereich 40
gespeichert werden können, kleiner als 100% des primären Cache-Speicherbereiches 40 ist,
dann kann der alternative Cache-Speicherbereich 36 kleiner sein als der primäre Cache-
Speicherbereich 40. Das heißt, der alternative Cache-Speicherbereich 36 braucht nur so groß
zu sein wie die Menge an primärem Cache-Speicherbereich 40, die für Schreib-Cache-
Vorgänge zugewiesen ist.
-
Die vorliegende Erfindung sieht die Einstellung der Cache-Speicherungsstrategien
vor, die von den Steuerungen 18, 20 implementiert werden. Zur Vereinfachung der
Beschreibung wird die weitere Bezugnahme auf die Einstellung der Cache-
Speicherungsstrategien beschränkt, die nur von der Steuerung 18 implementiert werden. Es
ist jedoch zu verstehen, dass die Einstellung der von der Steuerung 20 implementierten
Cache-Speicherungsstrategien auf analoge Weise erfolgt.
-
Fig. 2 zeigt einen exemplarischen Speicherpuffer 44 mit einer Mehrzahl von Feldern,
die vom Host wählbare Cache-Speicherungsparameter enthalten, die den Betrieb der
Steuerung 18 gemäß dem Verfahren der vorliegenden Erfindung steuern. Der Speicherpuffer
44 wird in der Steuerung 18 gehalten, um Daten und Anweisungen vom Hostcomputer 10 in
der Form einer Vendor-spezifischen Caching-Seite zu empfangen. Wenn der Hostcomputer
die Art und Weise ändern möchte, in der Cache-Speicherungsvorgänge von der Steuerung
18 implementiert werden, dann aktualisiert der Hostcomputer 10 den Speicherpuffer 44 über
den Modusauswahlseitenbefehl, gefolgt von der Vendor-spezifischen Caching-Seite, die an
den Speicherpuffer 44 gerichtet ist. In dieser Ausgestaltung überträgt der Hostcomputer 10
die 63 Byte lange Vendor-spezifische Caching-Seite in der Form eines Datenstroms, der die
vom Host wählbaren Parameter enthält, zum Speicherpuffer 44. Die Parameter werden dann
von der Steuerung 18 verwendet, um die Cache-Speicherungsstrategie(n) zu variieren oder
zu modifizieren, die in der Steuerung 18 implementiert wird/werden. Man beachte, dass ein
Teil der 63 Byte langen Vendor-spezifischen Caching-Seite, die vom Hostcomputer 10
übertragen wird, für andere Zwecke reserviert werden kann.
-
Die Steuerung 18 führt den Modusauswahlseitenbefehl vom Hostcomputer 10 auf
Beratungsbasis aus. Das heißt, die Steuerung 18 berücksichtigt nicht nur den
Modusauswahlseitenbefehl vom Hostcomputer 10, sondern auch andere Ereignisse, die im
Computersystem 2 auftreten und die möglicherweise verlangen, dass die Steuerung 18 eine
Task anders ausführt, als dies vom Hostcomputer 10 gefordert wird. So muss beispielsweise
die Steuerung 18 den primären Cache-Speicherbereich 34 mit einem anderen Intervall
räumen als dem, das vom Hostcomputer 10 im Speicherpuffer 44 vorgegeben ist. Der
Speicherpuffer 44 kann auch vom Hostcomputer 10 verwendet werden, um
Konfigurationsinformationen von der Steuerung 18 zurückzuspeichern, indem er einen
Moduserfassungsseitenbefehl ausgibt, der bewirkt, dass der Inhalt des Speicherpuffers 44 in
den Hostcomputer 10 gelesen wird.
-
Die Felder im Speicherpuffer 44 sind in drei Gruppen unterteilt, nämlich eine Cache-
Steuerflag-Gruppe, eine Cache-Betriebszustandsflag-Gruppe und eine Cache-Steuerfeld-
Gruppe. Die Cache-Steuerflag-Gruppe enthält die folgenden Einzelbit-Cache-Steuerflags:
Flag "Write-Caching ohne Batterien zulassen (CWOB)" 46, Flag "Weiterschreiben nach
Zwei-Minuten-Warnung zwingen (FWT)" 48 und Flag "Cache-Spiegel-Freigabe (CME)"
50.
-
Wenn der CWOB-Flag 46 (Write-Caching ohne Batterien zulassen) auf eins (1)
gesetzt ist, dann lässt die Steuerung 18 Write-Caching-Vorgänge ohne die Anwesenheit von
Cache-Batterien 35, 41 zu. Der CWOB-Flag lässt Write-Caching mit einem flüchtigen
Cache-Speicher wie dem Cache-Speicher 33 und der unterbrechungsfreien Stromversorgung
(USV) 13 zu. Die USV 13 stellt Batteriereserve für die Plattenlaufwerksvorrichtung 12
einschließlich der Cache-Speicher 33, 39 für den Fall eines Stromausfalls zur Steuerung 18
bereit. Der vom CWOB-Flag 46 vorgegebene Wert wird auf logischer Einheitsbasis
gehalten. Der hierin verwendete Begriff "logische Einheit" bedeutet eine Gruppe von ein
oder mehreren Platten 24, die der Hostcomputer 10 als einzelne Einheit ansieht. Jede
logische Einheit umfasst eine Mehrzahl von 512 Byte Sektoren oder Blöcken. Eine RAID-
Steuerung, wie z. B. die Steuerung 18, kann mehrere logische Einheiten definieren, wobei
jede logische Einheit so konfiguriert werden kann, dass sie eine andere RAID-Ebene
implementiert.
-
Der FWT-Flag 48 (Weiterschreiben nach Zwei-Minuten-Warnung zwingen) bietet
Kontrolle über die von der Steuerung 18 ergriffenen Maßnahmen, wenn eine USV-Zwei-
Minuten-Warnung eingeht, während Write-Back-Caching auf einer logischen Einheit
freigegeben ist. Das heißt, wenn der Batteriestrom in einer systemweiten USV (nicht
dargestellt) zur Neige geht, dann wird eine USV-Zwei-Minuten-Warnung ausgegeben.
Wenn Write-Back-Caching in einer logischen Einheit gesperrt ist, dann hat der FWT-Flag
keine Auswirkungen auf die logische Einheit.
-
Der FWT-Flag 48 ist vorgabemäßig nicht, d. h. auf null (0) gesetzt, was bedeutet,
dass die Steuerung 18 Write-Back-Caching nicht in einen gesperrten Zustand auf der
logischen Einheit zwingt, wenn eine USV-Zwei-Minuten-Warnung eingeht. Somit werden
Write-Back-Cache-Speicherungsvorgänge auf der logischen Einheit so lange fortgesetzt, bis
Schreibanforderungsbefehle vom Hostcomputer 10 eingehen. Die Steuerung 18 ergibt den
höchstmöglichen Schreibdurchsatz vom Hostcomputer 10, wobei der FWT-Flag 48 auf null
(0) gesetzt ist. Diese Aktion ist für einen Hostcomputer wünschenswert, der keine
Batteriereserve für seinen internen Speicher hat und seinen Speicher so schnell wie möglich
räumen muss, bevor die systemweite USV zu Ende geht. So besteht, wenn der Write-Back-
Caching nach Eingang einer USV-Zwei-Minuten-Warnung fortgesetzt wird, eine bessere
Chance zum Räumen des Speichers des Hostcomputers, bevor die Batterieleistung in der
systemweiten USV zu Ende geht.
-
Wenn der FWT-Flag 48 aktiviert, d. h auf eins (1) gesetzt wird, dann sperrt die
Steuerung 18 Write-Back-Caching und räumt eventuelle Dirty-Daten aus dem Cache-
Speicher 33 auf das Speichermedium. Diese Aktion ist für einen Hostcomputer
wünschenswert, der seine eigene USV (nicht dargestellt) oder Speicherbatteriereserve (nicht
dargestellt) hat und somit nicht unbedingt gewährleisten muss, dass alle Daten im Speicher
geschrieben werden, bevor die systemweite USV-Batterie zu Ende geht. Die Steuerung 18
räumt die Dirty-Daten auf das Speichermedium, so dass die Subsystem-USV 13 nicht
erweitert zu werden braucht, um eventuelle Dirty-Daten zu speichern, wenn die systemweite
USV-Batterie zur Neige geht.
-
Der FWT-Flag 48 steuert lediglich die Freigabe oder Sperrung des Cache-Speichers
33 und hat keinen Einfluss auf Read-Cache-Speicherungsvorgänge. Cache-Räumvorgänge
können ebenfalls durch Verwendung eines nachfolgend ausführlicher beschriebenen TMW-
Räummodifikator-Feldes 78 gesteuert werden.
-
Der CME-Flag 50 (Cache-Spiegel-Freigabe-Flag) dient zum Steuern der Nutzung
der Cache-Spiegelungskapazitäten in redundanten Steuerungskonfigurationen. Wenn der
DME-Flag 50 auf eins (1) gesetzt ist, dann ist die Cache-Spiegelung freigegeben, und eine
Kopie der Schreibanforderungsdaten wird in den alternativen Cache-Speicherbereich 42 der
alternativen Steuerung 20 wie oben beschrieben gesetzt. Ist der CME-Flag 50 inaktiv, dann
kann die Steuerung 18 eine Kopie der Schreibanforderungsdaten vom Hostcomputer 10 in
seinem eigenen Cache-Speicher 33 halten, aber die Daten nicht in die alternative Steuerung
kopieren.
-
Der CME-Flag 50 wird für jede logische Einheit verwendet, und so kann die Cache-
Spiegelungsfunktion für jede einzelne logische Einheit freigegeben oder gesperrt werden.
Wenn Write-Back-Caching in einer standardmäßigen SCSI-Caching-Modusseite gesperrt ist,
dann werden der CME-Flag 50 und die anderen Write-Back-Caching-Parameter in der
Vendor-spezifischen Caching-Seite ignoriert. Die standardmäßige SCSI-Caching-
Modusseite setzt ein einzelnes Bit zum Freigeben und Sperren von Write-Back-Caching
zusätzlich zur begrenzten Algorithmussteuerung. Die standardmäßige SCSI-Caching-
Modusseite ermöglicht jedoch nicht dasselbe Niveau an Einstellung oder Abstimmbarkeit,
wie dies in der Vendor-spezifischen Caching-Seite der vorliegenden Erfindung der Fall ist.
-
Die Cache-Betriebsstatusflag-Gruppe enthält die folgenden Einzelbit-Cache-
Betriebsstatusflags: Flag "Write-Cache aktiv" (WCA) 52, Flag "Read-Cache aktiv" (RCA)
54, Flag "Batterien OK" (BOK) 56, Flag "alternative Steuerungsbatterien OK" (ABOK) 58,
Flag "Cache-Spiegelung aktiv" (CMA) 60, Flag "alternative Steuerung Cache-Spiegelung
aktiv" (ACMA) 62, Flag "Batterien vorhanden" (BPR) 64 und Flag "alternative
Steuerungsbatterien vorhanden" (ABPR) 66. Die Cache-Betriebszustandsflags werden von
der Steuerung 18 auf einem Moduserfassungsbefehl zurückgegeben. Der
Moduserfassungsbefehl lässt es zu, dass der Hostcomputer 10 die aktuelle Konfiguration
eines SCSI-Zielbauelementes wie z. B. der Steuerung 18 bestimmt. Die Cache-
Betriebszustandsflags werden ignoriert, wenn sie auf einen Modusauswahlbefehl gesetzt
sind. Der Modusauswahlbefehl lässt es zu, dass der Hostcomputer 10 ein SCSI-
Zielbauelement wie die Steuerung 18 konfiguriert.
-
Wenn der WCA-Flag 52 (Write-Cache aktiv) auf eins (1) gesetzt ist, dann erledigt
die Steuerung 18 Schreibanforderungen vom Hostcomputer 10 mit Hilfe von Write-Back-
Cache-Speicherungsvorgängen. Wenn der WCA-Flag 52 auf null (0) gesetzt ist, dann wurde
Write-Back-Caching entweder vom Hostcomputer 10 gesperrt oder die Steuerung 18 hat die
Funktion vorübergehend deaktiviert. Der WCA-Flag 52 gibt nicht an, ob Write-Back-Daten
im Cache-Speicher 33 vorhanden sind.
-
Wenn der RCA-Flag 54 (Read-Cache aktiv) auf eins (1) gesetzt ist, dann arbeitet die
Steuerung 18 mit Read-Caching. Wenn der RCA-Flag 54 auf null (0) gesetzt ist, dann wurde
die Read-Cache-Funktion entweder vom Hostcomputer 10 gesperrt, oder die Steuerung 18
hat die RCA-Funktion vorübergehend deaktiviert. Der RCA-Flag 54 gibt nicht an, ob sich
im Cache 33 Daten oder Parität befinden.
-
Wenn der BOK-Flag 56 (Batterien OK) auf eins (1) gesetzt ist, dann ist die Cache-
Batterie 35 in der Steuerung 18 funktionsfähig. Wenn der BOK-Flag 56 auf null (0) gesetzt
ist, dann hat die Batterieleistung zum Cache-Speicher 33 entweder versagt oder es ist keine
Batterie 35 vorhanden. Ist die Batterie 35 nicht vorhanden, dann ist der Flag "Batterien
vorhanden" 64 inaktiv, d. h. auf null (0) gesetzt.
-
Wenn der ABOK-Flag 58 (alternative Steuerungsbatterien OK) auf eins (1) gesetzt
ist, dann ist die Cache-Batterie 41 der alternativen Steuerung 20 funktionsfähig. Wenn der
ABOK-Flag 58 auf null (0) gesetzt ist, dann ist der Batteriestrom zum Cache-Speicher 39
entweder ausgefallen oder es ist keine Batterie 41 vorhanden. Wenn keine Batterie 41
vorhanden ist, dann ist der Flag "alternative Steuerungsbatterien vorhanden" 66 inaktiv, d. h.
auf null (0) gesetzt.
-
Wenn der CMA-Flag 60 (Cache-Spiegelung aktiv) auf eins (1) gesetzt ist, dann
spiegelt die Steuerung Schreibanforderungsdaten, die im primären Cache-Speicherbereich
34 gespeichert sind, auf den alternativen Cache-Speicherbereich 42 der Steuerung 20. Wenn
der AMCA-Flag 62 (alternative Steuerung Cache-Spiegelung aktiv) auf eins (1) gesetzt ist,
dann spiegelt die alternative Steuerung 20 Schreibanforderungsdaten, die im primären
Cache-Speicherbereich 40 gespeichert sind, auf den alternativen Cache-Speicherbereich 36
der primären Steuerung 18.
-
Wenn der BPR-Flag 64 (Batterien vorhanden) auf eins (1) gesetzt ist, dann hat die
Steuerung 18 erkannt, dass Cache-Batterie 35 vorhanden ist, um den Cache-Speicher 33 im
Falle einer Stromversorgungsunterbrechung zu speisen. Wenn der ABPR-Flag 66
(alternative Steuerungsbatterien vorhanden) auf eins (1) gesetzt ist, dann hat die alternative
Steuerung 20 erkannt, dass die Batterie 41 zur Verfügung steht, um den Cache-Speicher 39
im Falle einer Stromversorgungsunterbrechung zu speisen.
-
Die Cache-Steuerfeld-Gruppe enthält die folgenden Cache-Steuerfelder: das Read-
Cache-Algorithmus-Feld 68, das Write-Cache-Algorithmus-Feld 70, das Cache-Räum-
Algorithmus-Feld 72, das Cache-Räummodifikator-Feld 74, das Zwei-Minuten-Warnung-
Räumalgorithmus-Feld 76, das Zwei-Minuten-Warnung-Räummodifikator-Feld 78, das
Räumen-anfordern-Schwelle-Feld 80 und das Räumen-anfordern-Menge-Feld 82.
-
Der im Read-Cache-Algorithmus-Feld 68 vorgegebene Parameter dient zum Wählen
eines bestimmten Read-Cache-Algorithmus. Ebenso dient der im Write-Cache-Algorithmus-
Feld 70 vorgegebene Parameter zum Wählen eines bestimmten Write-Cache-Algorithmus.
Ferner wird der im Cache-Räumalgorithmus-Feld 72 vorgegebene Parameter zum Wählen
eines bestimmten Cache-Räumalgorithmus verwendet.
-
Der im Cache-Räummodifikator-Feld 74 vorgegebene Parameter wird zum Variieren
von Cache-Räumcharakteristika wie z. B. ein Räumplan für einen von der Steuerung 18
implementierten Cache-Räum-Algorithmus benutzt. Insbesondere gibt der im Cache-
Räummodifikator-Feld 74 vorgegebene Wert der Steuerung 18 das Zeitintervall an, das zum
Cache-Räumen zu verwenden ist, wenn die "Beginn Räumanforderung" Schwelle
(nachfolgend ausführlicher erörtert) nicht erreicht wird. Der im Cache-Räummodifikator-
Feld 74 vorgegebene Parameter wird vom Hostcomputer 10 gewählt, um die Leistung des
Hostcomputers 10 beim Ausführen einer bestimmten Softwareanwendung zu optimieren.
Der vom Host wählbare Cache-Räummodifikatorparameter gibt indirekt die Menge an Zeit
vor, während der ungeschriebene Schreibanforderungsdaten im Cache-Speicher 33 bleiben
sollen. Der Parameter reicht von null (0) bis fünfzehn (15), wobei null (0) bedeutet, dass die
ungeschriebenen Schreibanforderungsdaten so bald wie möglich geschrieben werden sollen,
und fünfzehn (15) bedeutet, dass die ungeschriebene Schreibanforderungsdaten wenigstens
so lange im Cache-Speicher 33 bleiben können, bis eine andere Host-Schreibanforderung
die Verwendung des Cache-Speichers 33 verlangt.
-
Wenn der Cache-Räummodifikatorparameter auf null (0) eingestellt ist, dann
bedeutet dies sofortiges Cache-Räumen. Somit schreibt die Steuerung 18 die
ungeschriebenen Schreibanforderungsdaten so bald wie möglich, wenn nicht sofort, auf die
Plattenarray 26. Dies kann die beste Reaktionszeit ergeben, da die Menge an im Cache-
Speicher 33 befindlichen Dirty-Daten minimal gehalten wird, so dass Cache-Speicher 33
schnell für neue Schreibanforderungsdaten zugewiesen werden kann. Da jedoch Dirty-Daten
für kürzere Zeit im Cache-Speicher 33 gehalten werden, kommt es zu weniger Cache-
Schreib-Hits (Überschreiben von im Speicher existierenden Schreibanforderungsdaten), und
es gibt weniger Möglichkeiten für eine Verkettung und Gruppierung von E/A-
Anforderungen, so dass mehr E/A-Zugriffe auf die Plattenarray 26 bewirkt werden, was die
Leistung bestimmter RAID-Ebenen herabsetzt. Bei einer Systemabschaltung und
nachfolgenden Abschaltung der Stromversorgung werden alle Dirty-Daten schnell auf das
Speichermedium geschrieben, und die Batterie 35 kann abgeschaltet werden, so dass ihre
Lebensdauer verlängert wird.
-
Wenn der Cache-Räummodifikator-Parameter auf fünfzehn (15) gesetzt ist, dann
schreibt die Steuerung 18 die Dirty-Daten oder ungeschriebenen Schreibanforderungsdaten
nur dann auf das Speichermedium, wenn eine Cache-Anforderung nach neuen
Schreibanforderungsdaten vorliegt. Dies kann die niedrigste Reaktionszeit ergeben, da im
Cache-Speicher 33 befindliche Dirty-Daten maximal gehalten werden, so dass bewirkt wird,
dass neue Schreibanforderungen warten, bis andere Schreibanforderungsdaten auf das
Speichermedium geschrieben wurden. Da Dirty-Daten länger im Cache-Speicher 33 erhalten
bleiben, kommt es zu mehr Cache-Schreib-Hits (Überschreibungen), und es gibt mehr
Gelegenheiten für eine Verkettung und Gruppierung von E/A-Anforderungen, was weniger
E/A-Zugriffe auf das Speichermedium bewirkt, wodurch die Leistung bestimmter RAID-
Ebenen verbessert wird. Bei einer Systemabschaltung und nachfolgenden Abschaltung der
Stromversorgung bleiben die Dirty-Schreibanforderungsdaten im Cache, so dass die Daten
mit Hilfe der Batterie 35 erhalten werden müssen, was die Lebensdauer der Batterie
verkürzt.
-
Wenn der Cache-Räummodifikator-Parameter auf einen Wert zwischen null (0) und
fünfzehn (15) gesetzt ist, dann wird dadurch eine plangesteuerte Cache-Räumung angezeigt.
Das heißt, die Steuerung 18 räumt den Cache-Speicher 33 gemäß einem bestimmten
Zeitintervall, das wie in den Fig. 3A und 3B gezeigt vom gewählten Cache-
Räummodifikator-Parameter abhängig ist. Das Cache-Räumzeitintervall könnte exponentiell
auf den Cache-Räumparameter bezogen werden, wie in Fig. 3A gezeigt ist, oder könnte sich
relativ zum Cache-Räummodifikator-Parameter ausgleichen, wie in Fig. 3B gezeigt ist.
Alternativ könnte das Zeitintervall linear auf den Cache-Räummodifikator-Parameter
bezogen sein. Es ist somit zu verstehen, dass die in den Fig. 3A und 3B gezeigten
Zeitintervallwerte nur beispielhaft sind und demgemäß modifiziert werden können. Es ist
ferner zu verstehen, dass jede Beziehung zwischen Zeitintervall und Modifikator mit einem
anderen Cache-Räumalgorithmus implementiert werden kann, und die anderen Cache-
Räumalgorithmen können im Cache-Räumalgorithmus-Feld 72 gewählt werden. Der Cache-
Räummodifikator-Parameter kann pro logische Einheit gewählt werden, unabhängig davon,
wie die logischen Einheiten konfiguriert sind. Wenn also die Steuerung 18 eine Reihe von
logischen Einheiten definiert, dann kann mit jeder logischen Einheit ein anderer Cache-
Räummodifikator assoziiert sein.
-
Der im Zwei-Minuten-Warnung-Räumalgorithmus-Feld 76 vorgegebene Wert dient
zum Wählen eines Cache-Räumparameters, der verwendet wird, wenn eine USV-Zwei-
Minuten-Warnung eingeht. Mit dem im Zwei-Minuten-Warnung-Räummodifikator-Feld 78
vorgegebenen Wert erhält die Steuerung 18 Cache-Räumparameter, wenn eine USV-Zwei-
Minuten-Warnung eingeht. Der Zwei-Minuten-Warnung-Räummodifikatorwert zeigt der
Steuerung 18 das Zeitintervall an, das für eine Cache-Räumung zu verwenden ist, wenn die
"Beginn Räumanforderung" Schwelle (nachfolgend ausführlicher erörtert) nicht erreicht
wird. Spezifischer ausgedrückt, die Steuerung 18 benutzt den Zwei-Minuten-Warnung-
Räummodifikator-Parameter zum Wählen eines Zeitintervalls, das für die Cache-Räumung
wie oben in Bezug auf den Cache-Räummodifikator-Parameter in Feld 74 beschrieben
verwendet wird.
-
Es werden zwei zusätzliche, vom Host wählbare Felder verwendet, um die Cache-
Räumanforderung zu implementieren, nämlich das Räumanforderung-Schwelle-Feld 80 und
das Räumanforderung-Menge-Feld 82. Die in den Feldern 80 und 82 vorgegebenen
Parameter sind auf globaler Basis wählbar. Genauer ausgedrückt, wenn die Steuerung 18
eine Reihe von logischen Einheiten definiert, dann gelten die in den Feldern 80 und 82
vorgegebenen Cache-Räumanforderung-Parameter für jede der logischen Einheiten.
-
Wie in Fig. 4 gezeigt, definiert das Räumanforderung-Schwelle-Feld 80 eine
wählbare "Beginn Räumanforderung" Schwelle 75, bei der die Steuerung 18 mit der
Räumung des Cache-Speichers 33 beginnt. Die "Beginn Räumanforderung" Schwelle 75
repräsentiert eine bestimmte Menge an Dirty-Daten, die im Cache-Speicher 33 enthalten
sind. Die "Beginn Räumanforderung" Schwelle 75 wird als ein bestimmter Prozentanteil
einer "Dirty Maximum" Schwelle 77 definiert, wobei die "Dirty Maximum" Schwelle 77
eine nicht wählbare, konfigurationsspezifische Schwelle ist, die durch die Menge an Cache-
Speicherkapazität bestimmt wird, die zum Speichern von Dirty-Daten oder ungeschriebenen
Schreibanforderungsdaten zugewiesen ist. Die "Beginn Räumanforderung" Schwelle 75
wird als ein Verhältnis angegeben, bei dem 255 der Nenner und der Wert im Feld 80 der
Zähler ist.
-
Das Räumanforderung-Menge-Feld 82 definiert eine "Ende Räumanforderung"
Schwelle 79, bei der die Steuerung 18 die Räumung des Cache-Speichers 33 beendet. Die
"Ende Räumanforderung" Schwelle 79 repräsentiert eine bestimmte Menge oder ein
bestimmtes Niveau an Dirty-Daten, die im Cache-Speicher 33 erhalten bleiben, nachdem die
Steuerung 18 das Räumen des Cache-Speichers 33 beendet hat. Nach dem Beginn der
Cache-Räumanforderung wird dieser Vorgang so lange fortgesetzt, bis die Menge an im
Cache-Speicher 33 enthaltenen Dirty-Daten unter die "Ende Räumanforderung" Schwelle 79
abfällt. So definiert das Räumanforderung-Menge-Feld 82 tatsächlich die Menge an Dirty-
Daten, die von der Steuerung 18 geräumt werden, wenn eine Anforderung zum Räumen von
Dirty-Daten auftritt. Die "Ende Räumanforderung" Schwelle 79 ist als ein bestimmter
Prozentanteil der "Beginn Räumanforderung" Schwelle 75 definiert und wird als ein
Verhältnis angegeben, bei dem 255 der Nenner und der Wert im Feld 82 der Zähler ist.
-
Aus dem oben Gesagten wird klar, dass der Cache-Speicher 33 unabhängig geräumt
werden kann, und zwar auf der Basis (1) des Alters der im Cache-Speicher 33 gespeicherten
Dirty-Daten, das durch den Cache-Räummodifikator-Parameter im Feld 74 eingestellt wird,
und (2) des Prozentanteils von Dirty-Cache, der im Cache-Speicher 33 enthalten ist und
durch den "Beginn Räumanforderung" Schwellenparameter in Feld 80 und den "Ende
Räumanforderung" Schwellenparameter in Feld 82 vorgegeben wird. Somit ist es möglich,
dass der Cache-Speicher 33 schneller mit Dirty-Daten aufgefüllt wird, als die Dirty-Daten
altern, so dass ein Auf-Anforderung-Cache-Speicherungsvorgang übernehmen und den
Cache-Speicher 33 räumen würde. Ebenso ist es möglich, dass der Cache-Speicher nicht
schneller mit Dirty-Daten aufgefüllt wird als die Dirty-Daten altern, so dass ein
plangesteuerter Cache-Speicherungsvorgang die Räumung des Cache-Speichers 33
übernehmen würde.