DE69616148T2 - Verfahren und Vorrichtung zur Datenübertragung - Google Patents

Verfahren und Vorrichtung zur Datenübertragung

Info

Publication number
DE69616148T2
DE69616148T2 DE69616148T DE69616148T DE69616148T2 DE 69616148 T2 DE69616148 T2 DE 69616148T2 DE 69616148 T DE69616148 T DE 69616148T DE 69616148 T DE69616148 T DE 69616148T DE 69616148 T2 DE69616148 T2 DE 69616148T2
Authority
DE
Germany
Prior art keywords
cache
controller
host computer
write request
request data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69616148T
Other languages
English (en)
Other versions
DE69616148D1 (de
Inventor
Rodney A. Dekoning
Donald R. Humlicek
Max L. Johnson
Curtis W. Rink
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/445,828 external-priority patent/US5917723A/en
Priority claimed from US08/447,594 external-priority patent/US6412045B1/en
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of DE69616148D1 publication Critical patent/DE69616148D1/de
Application granted granted Critical
Publication of DE69616148T2 publication Critical patent/DE69616148T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

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

Claims (4)

1. Verfahren zum Übertragen von Daten zu einem Speichermedium (26), 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.
2. Verfahren nach Anspruch 1, bei dem der Schreibschritt den Schritt des Schreibens der Schreibanforderungsdaten auf das Speichermedium (39) nach dem Verstreichen eines vom Cache-Räumparameter abgeleiteten Zeitintervalls beinhaltet.
3. Verfahren nach Anspruch 1, bei dem der Schreibschritt den Schritt des Bestimmens eines Zeitintervallwertes anhand des Cache-Räumparameters und des Schreibens der Schreibanforderungsdaten auf das Speichermedium (39) nach dem Verstreichen des genannten Zeitintervalls beinhaltet.
4. Maschinenlesbare Datenspeichervorrichtung, 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 (33) 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.
DE69616148T 1995-05-22 1996-05-21 Verfahren und Vorrichtung zur Datenübertragung Expired - Lifetime DE69616148T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/445,828 US5917723A (en) 1995-05-22 1995-05-22 Method and apparatus for transferring data between two devices with reduced microprocessor overhead
US08/447,594 US6412045B1 (en) 1995-05-23 1995-05-23 Method for transferring data from a host computer to a storage media using selectable caching strategies

Publications (2)

Publication Number Publication Date
DE69616148D1 DE69616148D1 (de) 2001-11-29
DE69616148T2 true DE69616148T2 (de) 2002-03-07

Family

ID=27034418

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69616148T Expired - Lifetime DE69616148T2 (de) 1995-05-22 1996-05-21 Verfahren und Vorrichtung zur Datenübertragung

Country Status (2)

Country Link
EP (1) EP0744696B1 (de)
DE (1) DE69616148T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112011104314B4 (de) 2010-12-10 2022-02-24 International Business Machines Corporation Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2785693B1 (fr) 1998-11-06 2000-12-15 Bull Sa Dispositif et procede de cache disque securise en ecriture pour disques durs de sous-systeme a memoire de masse
US7194568B2 (en) * 2003-03-21 2007-03-20 Cisco Technology, Inc. System and method for dynamic mirror-bank addressing
US8453147B2 (en) 2006-06-05 2013-05-28 Cisco Technology, Inc. Techniques for reducing thread overhead for systems with multiple multi-threaded processors
US8041929B2 (en) 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US8010966B2 (en) 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
WO1992015933A1 (en) * 1991-03-05 1992-09-17 Zitel Corporation Cache memory system and method of operating the cache memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112011104314B4 (de) 2010-12-10 2022-02-24 International Business Machines Corporation Verwalten von Cachespeicher-Auslagerungsüberprüfungszeiten

Also Published As

Publication number Publication date
EP0744696B1 (de) 2001-10-24
DE69616148D1 (de) 2001-11-29
EP0744696A1 (de) 1996-11-27

Similar Documents

Publication Publication Date Title
DE69533058T2 (de) Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung
DE3280428T2 (de) Datenspeichersystem fuer einen arbeitsrechner.
DE102008022831B4 (de) Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens
DE68929229T2 (de) Steuergerät mit einem Cache-Speicher und Verfahren zur Steuerung des Cache-Speichers
DE69534057T2 (de) Verfahren zur Vermeidung der Über-Zuteilung virtueller Kapazität in einem redundanten hierarchischen Datenspeichersystem
DE69430599T2 (de) Dynamisch ausbaubares Speichereinheitsmatrixsystem
DE69127895T4 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE102004025922B4 (de) Mit einem Computer verbundenes Speichersystem, Computersystem und Computerprogrammerzeugnis dafür
DE69714498T2 (de) Steuervorrichtung und Verfahren für ein RAID-Untersystem
DE69626947T2 (de) Reservekopie-Generierung in einem RAID-Untersystem
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE69323225T2 (de) Datenbehandlung in einem System mit Prozessor zur Steuerung des Zugangs zu einer Mehrzahl von Datenspeicherplatten
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
US6412045B1 (en) Method for transferring data from a host computer to a storage media using selectable caching strategies
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE112010003788B4 (de) Datenspeicherung
DE69618998T2 (de) Einführung von massenspeichervorrichtungsfunktionen unter verwendung von wirtverarbeitergedächtnis
DE69532030T2 (de) Speicherplattenanordnung mit Ersatzbetriebsmitteln in Betrieb und Verfahren zur Verwendung von Ersatzbetriebsmitteln zum Speichern von Benutzerdaten
DE69738091T2 (de) Speicherplattenanordnung und Verfahren zu deren Steuerung
DE602004011181T2 (de) Speicherplattenanordnungsgerät
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE69527634T2 (de) Rechner-Cachespeichersystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: FIENER, J., PAT.-ANW., 87719 MINDELHEIM