DE69231204T2 - Gerät und Verfahren zur Steuerung von Hintergrundverarbeitung in einer Speicherplattenanordnung - Google Patents
Gerät und Verfahren zur Steuerung von Hintergrundverarbeitung in einer SpeicherplattenanordnungInfo
- Publication number
- DE69231204T2 DE69231204T2 DE69231204T DE69231204T DE69231204T2 DE 69231204 T2 DE69231204 T2 DE 69231204T2 DE 69231204 T DE69231204 T DE 69231204T DE 69231204 T DE69231204 T DE 69231204T DE 69231204 T2 DE69231204 T2 DE 69231204T2
- Authority
- DE
- Germany
- Prior art keywords
- host device
- access
- data
- amount
- background process
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 226
- 238000012545 processing Methods 0.000 title claims abstract description 84
- 230000008569 process Effects 0.000 claims abstract description 207
- 238000012546 transfer Methods 0.000 claims abstract description 122
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 230000008859 change Effects 0.000 claims abstract description 4
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000000452 restraining effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 18
- 230000004044 response Effects 0.000 description 16
- 238000011084 recovery Methods 0.000 description 9
- 244000050403 Iris x germanica Species 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
- Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Steuern einer Hintergrundverarbeitung in wenigstens einer Plattenarrayvorrichtung, welche Vorrichtung und welches Verfahren dafür ausgelegt sind, einen Hintergrundprozeß wie etwa einen Datenrekonstruktionsprozeß auszuführen, während ein so kleiner Einfluß wie möglich auf eine Hostvorrichtung wie z. B. einen Hostcomputer ausgeübt wird.
- Genauer gesagt, die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Steuern des Datenrekonstruktionsprozesses in der Plattenarrayvorrichtung, die eine Vielzahl von Speicherplattenlaufwerken enthält und dafür ausgelegt ist, bei einem Ausfall von einem Speicherplattenlaufwerk Daten von einem anderen Speicherplattenlaufwerk zu rekonstruieren und die rekonstruierten Daten in einem Reservespeicherplattenlaufwerk unter Verwendung einer Reservezeit einer Hostvorrichtung zu speichern.
- In jüngster Zeit ist die Tendenz zu verzeichnen, in einem Computersystem die Übertragung von großen Mengen von Daten wie etwa von Bilddaten mit hoher Geschwindigkeit zu verlangen, und deshalb ist auch eine Hilfsspeichervorrichtung erforderlich, um große Mengen von Daten mit hoher Geschwindigkeit zu übertragen, um Daten mit einer Hostvorrichtung auszutauschen, wenn ein Befehl für einen Zugriff von der Hostvorrichtung ausgegeben wird.
- Um dieser Forderung gerecht zu werden, ist eine Hilfsspeichervorrichtung, z. B. eine Magnetplattenarrayvorrichtung, entwickelt worden, die hauptsächlich aus wenigstens einer Logikvorrichtung gebildet ist, die eine Vielzahl von physikalischen Vorrichtungen wie etwa mehrere Plattenlaufwerkseinheiten enthält, wodurch viele Bytes von Daten zwischen der Hostvorrichtung und der Logikvorrichtung parallel übertragen werden können.
- Im allgemeinen ist in einer einzelnen Einheit von einem Magnetplattenlaufwerk die Datenübertragungsgeschwindigkeit durch eine Rotationsgeschwindigkeit eines Motors begrenzt, der eine Magnetplatte als Aufzeichnungsmedium rotiert. Falls eine Hochgeschwindigkeitsoperation durch Erhöhen einer Datenübertragungsgeschwindigkeit erreicht werden soll, ist es daher erforderlich, Lese-/Schreiboperationen durch gleichzeitiges Betreiben einer Vielzahl von Plattenlaufwerken, die als Plattenarrayvorrichtung bezeichnet wird, parallel auszuführen. Dabei werden die Spindelmotoren der Magnetplattenlaufwerke, wie etwa einer Plattenarrayvorrichtung, die mit der Hostvorrichtung parallel verbunden sind, gemäß einem Zugriffsbefehl von einer Hostvorrichtung synchron rotiert, so daß es möglich wird, eine parallele Übertragung von Daten auszuführen.
- Zusätzlich zu der Datenübertragung mit hoher Geschwindigkeit ist ferner auch eine Fehlertoleranz des gesamten Systems für jene Plattenarrayvorrichtung erforderlich, so daß eine ausreichende Zuverlässigkeit für die großen Mengen von Daten gewährleistet werden kann, ohne die Datenübertragungsgeschwindigkeit zu verringern.
- Um solch ein Fehlertoleranzsystem zu erhalten, ist es notwendig, daß die Plattenarrayvorrichtung so konstruiert ist, daß selbst dann, wenn ein Fehler wie zum Beispiel das Unvermögen, Daten von einem Plattenlaufwerk von einer Vielzahl von Plattenlaufwerken zu lesen, aufgetreten ist, die Daten des ausgefallenen Plattenlaufwerks sofort rekonstruiert werden können, ohne das gesamte System der Plattenarrayvorrichtung zu stoppen.
- Einige Plattenarrayvorrichtungsarten im praktischen Gebrauch, bei denen der oben erwähnten Datenübertragung mit hoher Geschwindigkeit und gleichzeitig der Fehlertoleranz entsprochen werden kann, sind von verschiedenen Computerherstellern schon als Plattenarrayvorrichtungsprodukte mit der Bezeichnung RAID (Redundant Arrays of Inexpensive Disks) [Redundante Arrays preiswerter Platten] 1 bis RAID 5 angekündigt worden.
- Von diesen RAIDs 1-5 wird das RAID 3, das für den Fall, wenn große Mengen von Daten kontinuierlich mit hoher Geschwindigkeit verarbeitet werden müssen, wie z. B. bei wissenschaftlichen Berechnungen, besonders zweckmäßig ist, eingehender beschrieben.
- Bei dem RAID 3 enthält die Plattenarrayvorrichtung typischerweise eine Vielzahl von Plattenlaufwerken zur Datenübertragung (zum Beispiel acht (8) Plattenlaufwerke) und ein Plattenlaufwerk zur Paritätsprüfung, wobei all diese Plattenlaufwerke gleichzeitig parallel arbeiten. In diesem Fall werden einige gegebene Paritätsdaten, die den parallelen Daten der jeweiligen Plattenlaufwerke zur Datenübertragung entsprechen, in dem Plattenlaufwerk zur Paritätsprüfung (Paritätsplattenlaufwerk) zuvor gespeichert. Auch wenn bei solch einer Konstruktion ein Plattenlaufwerk von einer Vielzahl von Plattenlaufwerken ausfällt, so daß die Daten nicht ausgelesen werden können, können die Daten rekonstruiert werden, indem die Paritätsdaten aus dem Paritätsplattenlaufwerk gelesen werden.
- Ferner ist in dem RAID 3 auch ein Reservespeicherplattenlaufwerk vorgesehen. Alle Daten in dem ausgefallenen Plattenlaufwerk werden automatisch rekonstruiert und zu dem Reservespeicherplattenlaufwerk übertragen. Falls solch ein Datenrekonstruktionsprozeß vollendet ist, kann das Reservespeicherplattenlaufwerk als normales Plattenlaufwerk in Kooperation mit den anderen Plattenlaufwerken zur Datenübertragung genutzt werden.
- Auf diese Weise kann eine Plattenarrayvorrichtung, wie sie durch das RAID 3 verkörpert wird, hergestellt werden, bei der große Mengen von Daten mit relativ hoher Geschwindigkeit (zum Beispiel mit 36 MBytes/sek.) übertragen werden können und die im wesentlichen Fehlertoleranzcharakteristiken hat.
- Solch eine Plattenarrayvorrichtung kann nämlich, wenn eines der Plattenlaufwerke ausfällt, einen Hintergrundprozeß wie etwa den Datenrekonstruktionsprozeß zum Konstruieren von Daten in dem ausgefallenen Plattenlaufwerk aus Daten, die in den verbleibenden Plattenlaufwerken gespeichert sind, und zum Speichern der rekonstruierten Daten in dem Reservespeicherplattenlaufwerk erfordern. Während der Datenrekonstruktionsprozeß ausgeführt wird, kann in diesem Fall kein Zugriffsbefehl von der Hostvorrichtung ausgeführt werden. Daher ergibt sich die Frage, ob ein Zugriff von der Hostvorrichtung oder die Ausführung des Hintergrundprozesses höhere Priorität haben sollte.
- Bezüglich dieser Frage wird unter Bezugnahme auf Fig. 1 die Vorrichtung zum Steuern des Hintergrundprozesses in der Plattenarrayvorrichtung nach Stand der Technik erläutert.
- Fig. 1 ist ein Blockdiagramm, das solch eine Steuervorrichtung nach einem Stand der Technik zeigt.
- Eine Plattenarrayvorrichtung ist, wie in Fig. 1 gezeigt, mit einer Magnetplattenarraysteuereinheit 2 versehen, die mit einer Hostvorrichtung (CPU) 1 wie etwa einem Hostcomputer verbunden ist, und mit einer Vielzahl von Logikvorrichtungen 3a bis 3n, die mit der Magnetplattenarraysteuereinheit 2 parallel verbunden sind.
- Jede der Logikvorrichtungen 3a bis 3n enthält acht physikalische Vorrichtungen für Daten (Magnetplattenlaufwerk) 30 bis 37, eine physikalische Vorrichtung für Paritätsdaten (Magnetplattenlaufwerk) 38 und eine physikalische Reservevorrichtung (Magnetplattenlaufwerk) 39.
- Daten werden in acht Sektionen geteilt, die ihrerseits auf den Magnetplattenlaufwerken für Daten 30 bis 37 gespeichert werden. Paritätsdaten für die Daten werden auf dem Magnetplattenlaufwerk für Paritätsdaten (auch als Paritätsplattenlaufwerk bezeichnet) 38 gespeichert.
- Falls zum Beispiel angenommen wird, daß 4096 Bytes eine zu übertragende Dateneinheit bilden, wird ein Achtel von jener Einheit, nämlich 512 Bytes (1 Block), auf jedem der Magnetplattenlaufwerke für Daten 30 bis 37 gespeichert, und die Paritätsdaten für jene Dateneinheit werden in dem Magnetplattenlaufwerk für Paritätsdaten 38 gespeichert.
- Andererseits enthält die Magnetplattenarraysteuereinheit 2 einen Kanalschnittstellencontroller 4 zum steuerbaren Verbinden von Kanälen der Hostvorrichtung 1 mit der Einheit 2, einen Vorrichtungsschnittstellencontroller 5 zum steuerbaren Verbinden der Einheit 2 mit einer Vorrichtung, z. B. mit Vorrichtungscontrollern 60 bis 69, die durch den Vorrichtungsschnittstellencontroller 5 gesteuert werden und die die Magnetplattenlaufwerke 30 bis 39 steuern, eine Datenübertragungssteuereinheit 8 zum steuerbaren Übertragen von Daten zwischen dem Kanalschnittstellencontroller 4 und dem Vorrichtungsschnittstellencontroller 5 und einen Prozessor (Hauptcontroller) 7 zum Steuern der Controller 4, 5 und 8.
- In dieser Plattenarrayvorrichtung wird ein Lesezugriff von der Hostvorrichtung 1 durch den Kanalschnittstellencontroller 4 dem Prozessor 7 gemeldet, der seinerseits den Vorrichtungsschnittstellencontroller 5 mit dem Lesezugriff beauftragt. Der Controller 5 bewirkt durch Steuern der Vorrichtungscontroller 60 bis 68, daß die jeweiligen Magnetplattenlaufwerke 30 bis 38 jeweils eine Suchoperation ausführen. Bei Vollendung der Suchoperation aktiviert der Prozessor 7 die Datenübertragungssteuereinheit 8 und den Kanalschnittstellencontroller 4.
- Die Daten von den jeweiligen Magnetplattenlaufwerken 30 bis 38 werden dem Vorrichtungsschnittstellencontroller 5 durch die Vorrichtungscontroller 60 bis 68 parallel eingegeben. Eine Paritätsprüfung wird mit 8 Bytes von Daten und 1 Byte von Paritätsdaten ausgeführt, und 8 Bytes von geprüften Daten werden von der Datenübertragungssteuereinheit 8 zu der Hostvorrichtung 1 durch den Kanalschnittstellencontroller 4 übertragen.
- Andererseits wird ein Schreibzugriff von der Hostvorrichtung 1 durch den Kanalschnittstellencontroller 4 dem Prozessor 7 gemeldet, der seinerseits den Vorrichtungs schnittstellencontroller 5 mit dem Schreibzugriff beauftragt. Der Controller 5 bewirkt durch Steuern der Vorrichtungscontroller 60 bis 68, daß die jeweiligen Magnetplattenlaufwerke 30 bis 38 eine Suchoperation ausführen. Bei Vollendung der Suchoperation aktiviert der Prozessor 7 die Datenübertragungssteuereinheit 8 und den Kanalschnittstellencontroller 4.
- Die Daten von der Hostvorrichtung 1 werden durch die Datenübertragungssteuereinheit 8 zu dem Vorrichtungsschnittstellencontroller 5 durch den Kanalschnittstellencontroller 4 übertragen. In dem Controller 5 wird 1 Byte von Paritätsdaten für 8 Bytes von Daten erzeugt. Dann werden für jedes Byte 8 Bytes von Daten auf die Magnetplattenlaufwerke für Daten 30 bis 37 durch die Vorrichtungscontroller 60 bis 67 geschrieben, und 1 Byte von Paritätsdaten wird auf das Magnetplattenlaufwerk für Paritätsdaten 38 geschrieben.
- Übrigens kann, wenn Abnormitäten wie etwa ein Lesefehler oder ein anderer Ausfall öfter als eine festgelegte Anzahl von Malen in einem der Magnetplattenlaufwerke 30 bis 38 auftritt, dieses Magnetplattenlaufwerk nicht verwendet werden.
- In dem Fall können die Daten, die auf dem ausgefallenen Magnetplattenlaufwerk gespeichert waren, aus den Daten rekonstruiert werden, die auf den Magnetplattenlaufwerken 30 bis 38, außer dem ausgefallenen Plattenlaufwerk, gespeichert sind, wie es in dem untersten Abschnitt von Fig. 1 gezeigt ist. Daher rekonstruiert der Vorrichtungsschnittstellencontroller 5 die Daten, die auf dem ausgefallenen Plattenlaufwerk gespeichert waren, und liest die rekonstruierten Daten.
- Gemäß der obigen Verarbeitung ist eine längere Datenlesezeit erforderlich, da eine relativ lange Zeit zum Rekonstruieren der Daten notwendig sein kann. Demzufolge wird eine Lesezugriffszeit wahrscheinlich verlängert. Ferner finden die Plattenarrayvorrichtungen wahrscheinlich kein Speicherplattenlaufwerk, auf das Daten bei einer Schreib operation zu schreiben sind. Angesichts dessen wird ein Reservespeicherplattenlaufwerk (das auch als Reserveplattenlaufwerk bezeichnet wird) 39 vorgesehen, auf das die Daten geschrieben werden. Die Daten, die in dem ausgefallenen Plattenlaufwerk gespeichert waren, werden aus den Daten, die in anderen Plattenlaufwerken gespeichert sind, während einer Reservezeit rekonstruiert, wenn durch die Hostvorrichtung 1 kein Zugriff erfolgt, und die rekonstruierten Daten werden in dem Reservespeicherplattenlaufwerk 39 gespeichert. Bei Vollendung der Rekonstruktion der Daten in dem ausgefallenen Plattenlaufwerk wird das Reserveplattenlaufwerk 39 anstelle des ausgefallenen Plattenlaufwerks verwendet.
- Der Hintergrundprozeß, der den Datenrekonstruktionsprozeß, einen Ersetzungsprozeß zum Ersetzen eines ausgefallenen Teils des Magnetplattenlaufwerks und einen Initialisierungsprozeß zum Initialisieren von Aufzeichnungsmedien, d. h., von Magnetplatten des Magnetplattenlaufwerks enthält, wird angesichts des Einflusses auf die Hostvorrichtung unter Verwendung von Reservezeit der Plattenarraysteuereinheit ausgeführt, d. h., von einer Zeit für die Steuereinheit, während der keine Daten zu oder von der Hostvorrichtung übertragen werden.
- Nach dem Stand der Technik, wie er unter Bezugnahme auf Fig. 1 beschrieben wurde, sind jedoch die folgenden Probleme aufgetreten.
- (1) Falls das Plattenarraylaufwerk mit einem Supercomputer oder dergleichen verbunden ist, um die Verarbeitungskapazität eines Hostcomputers zu erhöhen, der als Hostvorrichtung dient, wird während einer Datenübertragung eine enorme Menge an Daten übertragen, und eine Zugriffsfrequenz ist hoch. Deshalb ist es schwierig, die Zeit zum Ausführen eines Hintergrundprozesses zu erhalten.
- (2) Wenn die Plattenarrayvorrichtung von einer Vielzahl von Hostcomputern gemeinsam genutzt wird, wird ähnlich die Zugriffsfrequenz höher, und es wird schwieriger, die Zeit zum Ausführen des Hintergrundprozesses zu erhalten.
- Ferner wird die obige Datenrekonstruktionsverarbeitung, wie oben beschrieben, unter Verwendung von Reservezeit der Plattenarrayvorrichtung ausgeführt, und demzufolge muß sie durch Teilen der Daten in Spureinheiten oder Zylinder von jeder Platte ausgeführt werden. Herkömmlicherweise wird eine Menge von zu rekonstruierenden Daten (Datenrekonstruktionsmenge) während eines Rekonstruktionsprozesses festgelegt (z. B. eine Einheit von einer Spur), wenn die Plattenarrayvorrichtung eingeschaltet wird.
- Somit sind bei dem Stand der Technik die folgenden anderen Probleme aufgetreten.
- (3) In dem Fall, wenn eine Datenrekonstruktionsmenge während eines Rekonstruktionsprozesses auf einen kleinen Wert gesetzt wird, ist Zeit erforderlich, um die Daten vollständig zu rekonstruieren, falls auf Grund der Zugriffe, die durch die Hostvorrichtung 1 häufig erfolgen, nicht viel Reservezeit zur Verfügung steht. Falls die Datenwiederherstellungsmenge zum Beispiel auf 1 Block (512 Bytes) festgelegt wird, sind zum vollständigen Rekonstruieren der Daten 30 Minuten erforderlich. Da die Daten in diesem Fall während der Datenlesezeit wiederhergestellt werden, führt dies zu einer Verschlechterung der Leseleistung.
- (4) In dem Fall, wenn die Datenrekonstruktionsmenge während eines Rekonstruktionsprozesses auf einen großen Wert gesetzt wird, ist Zeit zum Rekonstruieren der Daten während solch eines Prozesses erforderlich. Dies bewirkt, daß die Hostvorrichtung immer eine lange Zeit warten muß, um Zugriff zu erlangen, und deshalb wird auch die Leistung der Plattenarrayvorrichtung verschlechtert.
- EP-A-0 519 670 von der IBM Corporation stellt den Stand der Technik nach Artikel 54(3) EPÜ dar. Sie offenbart eine Vorrichtung zum Beibehalten der Fehlertoleranz in einem Plattenlaufwerksarray, in dem durch Fehler in Mitleiden schaft gezogene Daten durch irgendeine von einer Vielzahl von Techniken wiederhergestellt werden können, die eine Wiederherstellung mit variabler Rate enthalten, wobei eine Rate zu der Plattenlaufwerksverwendung umgekehrt proportional ist und die Wiederherstellung während jeglicher Ruhezustandszeit des Arrays fortgesetzt wird, falls kein vereinigender Zugriff (engl. uniting acess) erfolgt, eine Wiederherstellung während vorbestimmter Arrayruhezustandszeiten oder eine "opportunistische" Wiederherstellung während eines regulären Zugriffs auf das Array, falls der reguläre Zugriff Daten von dem ausgefallenen Laufwerk erfordert.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Steuern eines Hintergrundprozesses in einer Plattenarrayvorrichtung vorgesehen, die eine Vielzahl von Speicherplattenlaufwerken enthält, mit:
- einer Plattenarraysteuereinheit, die dafür ausgelegt ist, auf die Vielzahl von Speicherplattenlaufwerken parallel zuzugreifen, wenn ein Befehl für einen Zugriff von einer Hostvorrichtung ausgegeben wird, und die auch dafür ausgelegt ist, einen Hintergrundprozeß für die Vielzahl von Speicherplattenlaufwerken auszuführen, der mit dem Zugriff von der Hostvorrichtung nicht unbedingt verbunden ist;
- einem Mittel zum Überwachen eines gegenwärtigen Status des Zugriffs von der Hostvorrichtung; und
- einem Mittel zum Einstellen eines Operationsverhältnisses von genanntem Hintergrundprozeß zu genanntem Zugriff gemäß dem gegenwärtigen Status des Zugriffs;
- bei der die Plattenarraysteuereinheit umfaßt:
- ein Zählmittel zum Zählen einer Datenübertragungsmenge zu oder von der Hostvorrichtung, die eine Belegungszeit der Hostvorrichtung darstellt, und/oder zum Zählen einer Zugriffsfrequenz der Hostvorrichtung;
- ein Mittel zum temporären Zurückhalten einer Zugriffsanforderung von der Hostvorrichtung in Abhängigkeit davon, ob irgendeine Hintergrundverarbeitungsanforderung vorhanden ist oder nicht, wenn die Belegungszeit eine vorbestimmte Größe erreicht oder die Zugriffsfrequenz einen vorbestimmten Wert erreicht; und
- ein Mittel zum Ausführen des Hintergrundprozesses vor der Zugriffsanforderung von der Hostvorrichtung, wenn die Hintergrundverarbeitungsanforderung mit der Zugriffsanforderung in Konflikt steht und der vorbestimmte Wert oder die vorbestimmte Größe erreicht worden ist.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Steuern eines Hintergrundprozesses in einer Plattenarrayvorrichtung vorgesehen, die eine Vielzahl von Speicherplattenlaufwerken enthält, bei dem eine Plattenarraysteuereinheit dafür ausgelegt ist, auf die Vielzahl von Speicherplattenlaufwerken parallel zuzugreifen, wenn ein Befehl für einen Zugriff von einer Hostvorrichtung ausgegeben wird, und auch dafür ausgelegt ist, einen Hintergrundprozeß für die Vielzahl von Speicherplattenlaufwerken auszuführen, der mit dem Zugriff von der Hostvorrichtung nicht unbedingt verbunden ist, welches Verfahren die folgenden Schritte enthält:
- Überwachen des gegenwärtigen Status des Zugriffs von der Hostvorrichtung;
- Einstellen eines Operationsverhältnisses von genanntem Hintergrundprozeß zu genanntem Zugriff gemäß dem gegenwärtigen Status des Zugriffs;
- Zählen einer Datenübertragungsmenge zu oder von der Hostvorrichtung, die eine Belegungszeit der Hostvorrichtung darstellt, oder Zählen einer Zugriffsfrequenz der Hostvorrichtung;
- temporäres Zurückhalten einer Zugriffsanforderung von der Hostvorrichtung in Abhängigkeit davon, ob irgendeine Hintergrundverarbeitungsanforderung vorhanden ist oder nicht, wenn die Belegungszeit eine vorbestimmte Größe erreicht oder die Zugriffsfrequenz einen vorbestimmten Wert erreicht; und
- Ausführen des Hintergrundprozesses vor der Zugriffsanforderung von der Hostvorrichtung, wenn die Hintergrundverarbeitungsanforderung mit der Zugriffsanforderung in Konflikt steht und der vorbestimmte Wert oder die vorbestimmte Größe erreicht worden ist.
- Vorzugsweise enthält die Plattenarraysteuereinheit einen Hostcontroller zum steuerbaren Verbinden der Plattenarraysteuereinheit mit der Hostvorrichtung; Gastcontroller zum parallelen Steuern der Speicherplattenlaufwerke; einen Datenübertragungscontroller zum Übertragen von Daten zwischen dem Hostcontroller und den Gastcontrollern; und einen Hauptcontroller (der das oben erwähnte Zählmittel enthält) zum Steuern dieser Controller. Ferner ist der Hauptcontroller in diesem Fall dafür ausgelegt, den Zugriff von der Hostvorrichtung zu überwachen, eine Hintergrundverarbeitungsanforderung von dem Gastcontroller zu akzeptieren, eine Datenübertragungsmenge zu oder von der Hostvorrichtung zu zählen, eine Zugriffsanforderung von der Hostvorrichtung temporär zurückzuhalten, wenn die Datenübertragungsmenge eine vorbestimmte Menge erreicht, und die Gastcontroller den akzeptierten Hintergrundprozeß ausführen zu lassen.
- Der Hauptcontroller kann einen Ruhezustandszähler zum Zählen der Anzahl der Male enthalten, wenn ein Verarbeitungsprogramm ausgeführt wird, und einen Übertragungsblockzähler zum Zählen der Datenübertragungsmenge zu oder von der Hostvorrichtung. Ferner ist der Hauptcontroller operativ, um die Hintergrundverarbeitungsanforderung zu akzeptieren, wenn der Inhalt des Ruhezustandszählers einen vorbestimmten Wert erreicht, um die Zugriffsanforderung von der Hostvorrichtung temporär zurückzuhalten, wenn die Datenübertragungsmenge eine vorbestimmte Menge erreicht, und um den akzeptierten Hintergrundprozeß auszuführen.
- Alternativ hat die Plattenarraysteuereinheit ein Mittel zum Zählen einer Zugriffsfrequenz der Hostvorrichtung; ein Mittel zum temporären Zurückhalten einer Zugriffsanforderung von der Hostvorrichtung in Abhängigkeit davon, ob irgendeine Hintergrundverarbeitungsanforderung vorhanden ist oder nicht, wenn die Zugriffsfrequenz eine vorbestimmte Größe erreicht; und ein Mittel zum Ausführen des Hintergrundprozesses.
- Der Hauptcontroller kann einen Ruhezustandszähler zum Zählen der Anzahl der Male enthalten, wenn ein Verarbeitungsprogramm ausgeführt wird, und einen Zugriffszähler zum Zählen der Zugriffsfrequenz der Hostvorrichtung. Ferner ist der Hauptcontroller operativ, um die Hintergrundverarbeitungsanforderung zu akzeptieren, wenn der Inhalt des Ruhezustandszählers einen vorbestimmten Wert erreicht, um die Zugriffsanforderung von der Hostvorrichtung temporär zurückzuhalten, wenn die Zugriffsfrequenz einen vorbestimmten Betrag erreicht, und um den akzeptierten Hintergrundprozeß auszuführen.
- In einer bevorzugten Ausführungsform enthält der Hintergrundprozeß einen Datenrekonstruktionsprozeß, einen Ersetzungsprozeß zum Ersetzen eines ausgefallenen Teils der Speicherplattenlaufwerke und einen Medieninitialisierungsprozeß.
- Ferner hat in der Vorrichtung gemäß der vorliegenden Erfindung die Plattenarraysteuereinheit vorzugsweise ein Mittel zum Überwachen einer Zugriffsfrequenz der Hostvorrichtung, und solch eine Plattenarraysteuereinheit ist operativ, wenn eines der Arbeitsspeicherplattenlaufwerke ausfällt, um Daten, die in dem ausgefallenen Arbeitsspeicherplattenlaufwerk gespeichert waren, aus Daten zu rekonstruieren, die in anderen Arbeitsspeicherplattenlaufwerken gespeichert sind, wobei eine Reservezeit verwendet wird, während der kein Zugriff von der Hostvorrichtung erfolgt, um die rekonstruierten Daten in dem Reservespeicherplattenlaufwerk zu speichern und eine Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz zu verändern, bis Reservezeit verfügbar wird.
- Ferner enthält die Plattenarraysteuereinheit vorzugsweise einen Hostcontroller zum steuerbaren Verbinden der Plattenarraysteuereinheit mit der Hostvorrichtung; Gastcontroller zum parallelen Steuern der Speicherplattenlaufwerke; einen Datenübertragungscontroller zum Übertragen von Daten zwischen dem Hostcontroller und dem Gastcontroller; und einen Hauptcontroller zum Steuern dieser Controller. Ferner ist der Hauptcontroller in diesem Fall dafür ausgelegt, um eine Zugriffsfrequenz der Hostvorrichtung zu überwachen und für den Gastcontroller eine Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz festzulegen, bis die Reservezeit verfügbar wird, und der Gastcontroller ist dafür ausgelegt, den Datenrekonstruktionsprozeß für die Datenrekonstruktionsmenge auszuführen.
- Der Hauptcontroller kann einen Ruhezustandszähler zum Zählen der Zeitmenge enthalten, während der dem Zugriff nach ein Nichtvorhandensein der Hostvorrichtung zu verzeichnen ist. Ferner ist der Hauptcontroller operativ, um das Vorhandensein oder Nichtvorhandensein von Zugriffsanforderungen von der Hostvorrichtung zu unterscheiden, zu bestimmen, daß die Reservezeit verfügbar ist, wenn ein Wert des Ruhezustandszählers einen vorbestimmten Wert überschreitet, und die Zugriffsfrequenz auf der Basis einer Periode zu bestimmen, die abgelaufen ist, bis der Wert des Ruhezustandszählers den vorbestimmten Wert überschreitet.
- Der Hauptcontroller kann operativ sein, um eine Datenrekonstruktionsmenge auf eine kleine Menge zu setzen, wenn eine lange Periode abgelaufen ist, bevor der Wert des Ruhezustandszählers den vorbestimmten Wert überschreitet, während die Datenrekonstruktionsmenge auf eine große Menge gesetzt wird, wenn eine kurze Periode abgelaufen ist, bevor der Wert des Ruhezustandszählers den vorbestimmten Wert überschreitet.
- Weiterhin können verschiedene Verfahren zum Steuern eines Hintergrundprozesses in einer Plattenarrayvorrichtung realisiert werden, wobei dieselben Prinzipien der Vorrichtung gemäß Aspekten der vorliegenden Erfindung genutzt werden, wie sie oben beschrieben sind.
- Ausführungsformen der vorliegenden Erfindung können eine Vorrichtung und ein Verfahren zum Steuern eines Hintergrundprozesses in wenigstens einer Plattenarrayvorrichtung vorsehen, durch die ein Einfluß auf eine Hostvorrichtung auf ein Mindestmaß reduziert werden kann, um eine Zeit zu sichern, die zum Ausführen eines Hintergrundprozesses erforderlich ist.
- Ausführungsformen der vorliegenden Erfindung können eine Vorrichtung und ein Verfahren zum Ausführen eines Hintergrundprozesses in einer Plattenarrayvorrichtung vorsehen, wodurch die Ausführung sowohl des Zugriffs durch die Hostvorrichtung als auch der Hintergrundverarbeitung verbessert werden kann.
- Ausführungsformen der vorliegenden Erfindung können eine Vorrichtung und ein Verfahren zum Steuern eines Hintergrundprozesses in der Plattenarrayvorrichtung vorsehen, bei denen die Zeit zum Ausführen eines Hintergrundprozesses gesichert werden kann, selbst wenn eine Menge von übertragenen Daten beträchtlich erhöht wird und eine Zugriffsfrequenz von einer Hostvorrichtung höher wird.
- Ausführungsformen der vorliegenden Erfindung können eine Vorrichtung und ein Verfahren zum Steuern eines Hintergrundprozesses in einer Plattenarrayvorrichtung vorsehen, durch die ein Hintergrundprozeß effektiv ausgeführt werden kann, der wenigstens einen Datenrekonstruktionsprozeß enthält.
- Ausführungsformen der vorliegenden Erfindung können auch eine Vorrichtung und ein Verfahren zum Steuern eines Hintergrundprozesses in einer Plattenarrayvorrichtung vorsehen, durch die eine Datenrekonstruktionsmenge gemäß einer Zugriffsfrequenz durch eine Hostvorrichtung verändert werden kann.
- Zum besseren Verstehen der Erfindung und um zu zeigen, wie dieselbe verwirklicht werden kann, wird als Beispiel nun Bezug auf die beiliegenden Zeichnungen genommen, in denen:
- Fig. 1 ein Blockdiagramm ist, das eine Vorrichtung zum Steuern eines Hintergrundprozesses nach einem Stand der Technik zeigt;
- Fig. 2(A) und 2(B) ein Blockdiagramm bzw. ein Flußdiagramm sind, die jeweils eine Ausführungsform auf der Basis des ersten Prinzips der vorliegenden Erfindung zeigen;
- Fig. 3 ein Blockdiagramm einer ersten typischen Ausführungsform gemäß der vorliegenden Erfindung ist;
- Fig. 4 ein Blockdiagramm ist, das einen Gastschnittstellencontroller von Fig. 3 detaillierter zeigt;
- Fig. 5 ein Flußdiagramm zum Erläutern einer Verarbeitung von einer ersten Ausführungsform gemäß der vorliegenden Erfindung ist;
- Fig. 6(A), 6(B) und 6(C) Flußdiagramme sind, die einen Anforderungsprozeß, einen Hintergrundprozeß bzw. einen Flagsetzprozeß von Fig. 5 zeigen;
- Fig. 7(A) und 7(B) Zeitdiagramme zum Erläutern einer Operation einer ersten Ausführungsform gemäß der vorliegenden Erfindung sind;
- Fig. 8 ein Blockdiagramm ist, das eine Abwandlung einer ersten Ausführungsform von Fig. 3 zeigt;
- Fig. 9(A) und 9(B) Flußdiagramme zum Erläutern eines Prozesses von Fig. 8 sind;
- Fig. 10(A) und 10(B) ein Blockdiagramm und ein Flußdiagramm sind, die jeweils eine Ausführungsform auf der Basis des zweiten Prinzips der vorliegenden Erfindung zeigen;
- Fig. 11 ein Blockdiagramm einer zweiten typischen Ausführungsform gemäß der vorliegenden Erfindung ist;
- Fig. 12 ein detaillierteres Blockdiagramm eines Gastschnittstellencontrollers von Fig. 11 ist;
- Fig. 13 ein Flußdiagramm zum Erläutern einer ersten Hälfte eines Prozesses einer zweiten Ausführungsform gemäß der vorliegenden Erfindung ist;
- Fig. 14 ein Flußdiagramm zum Erläutern einer zweiten Hälfte einer Verarbeitung einer zweiten Ausführungsform gemäß der vorliegenden Erfindung ist;
- Fig. 15(A) und 15(B) Zeitdiagramme zum Erläutern einer Operation einer zweiten Ausführungsform gemäß der vorliegenden Erfindung sind;
- Fig. 16 eine perspektivische, teilweise weggeschnittene Ansicht ist, die einen Mechanismus eines Magnetplattenlaufwerks zeigt;
- Fig. 17 eine perspektivische Gesamtansicht ist, die eine Magnetplattenarrayvorrichtung zeigt;
- Fig. 18 eine perspektivische Ansicht ist, die das Äußere von einer Vielzahl von Plattenarrayvorrichtungen zeigt, auf die die vorliegende Erfindung angewendet ist; und
- Fig. 19(A) und 19(B) Blockdiagramme von einer Magnetplattenarraysteuereinheit und von allen Plattenarrayvorrichtungen sind.
- Fig. 2(A) und 2(B) sind ein Blockdiagramm und ein Flußdiagramm, die jeweils eine Ausführungsform auf der Basis der ersten vorliegenden Erfindung zeigen, wobei dieselben Elemente wie in Fig. 1 mit denselben Bezugszeichen versehen sind.
- Fig. 2(A) und 2(B) betreffen einen Hintergrundprozeß für eine Plattenarrayvorrichtung, die eine Vielzahl von Speicherplattenlaufwerken (physikalische Vorrichtungen 30 bis 39) und eine Plattenarraysteuereinheit 2 enthält, die mit der Vielzahl von Speicherplattenlaufwerken 30 bis 39 parallel verbunden ist und dafür ausgelegt ist, um auf die Vielzahl von Speicherplattenlaufwerken 30 bis 39 parallel zuzugreifen, wenn ein Zugriff durch eine Hostvorrichtung 1 erfolgt, welche Plattenarraysteuereinheit 2 einen Hinter grundprozeß für die Vielzahl von Speicherplattenlaufwerken 30 bis 39, der nicht mit einer Datenübertragung mit der Hostvorrichtung 1 verbunden ist, als Reaktion auf eine Hintergrundprozeßanforderung ausführt. In diesem Fall zählt die Plattenarraysteuereinheit 2 eine Datenübertragungsmenge zu oder von der Hostvorrichtung 1, hält temporär eine Zugriffsanforderung von der Hostvorrichtung 1 in Abhängigkeit davon zurück, ob irgendeine Hintergrundverarbeitungsanforderung vorhanden ist oder nicht, wenn die Datenübertragungsmenge eine vorbestimmte Menge erreicht, und führt den Hintergrundprozeß aus.
- Ferner inkrementiert die Plattenarraysteuereinheit 2 einen Ruhezustandszähler 91 bei jedem Durchlauf eines Verarbeitungsprogramms, akzeptiert die Hintergrundverarbeitungsanforderung, wenn der Inhalt des Ruhezustandszählers 91 einen vorbestimmten Wert erreicht, hält temporär die Zugriffsanforderung von der Hostvorrichtung 1 zurück, wenn die Datenübertragungsmenge die vorbestimmte Menge erreicht, und führt den akzeptierten Hintergrundprozeß aus.
- Des weiteren führt die Plattenarraysteuereinheit 2 den akzeptierten Hintergrundprozeß bei Bestimmung dessen aus, daß durch die Hostvorrichtung 1 kein Zugriff erfolgt.
- Weiterhin löscht die Plattenarraysteuereinheit 2 die Datenübertragungsmenge bei Vollendung des Hintergrundprozesses.
- Ferner enthält die Arrayplattensteuereinheit 2 einen Hostcontroller 4 zum steuerbaren Verbinden der Plattenarraysteuereinheit 2 mit der Hostvorrichtung 1, Gastcontroller 5, 6 zum parallelen Steuern der Speicherplattenlaufwerke 30 bis 39, einen Datenübertragungscontroller 8 zum Übertragen von Daten zwischen dem Hostcontroller 4 und den Gastcontrollern 5, 6 und einen Hauptcontroller 7 zum Steuern dieser Controller. In diesem Fall ist der Hauptcontroller 7 dafür ausgelegt, den Zugriff von der Hostvorrichtung 1 zu überwachen, die Hintergrundverarbeitungsanforderung von den Gastcontrol lern 5, 6 zu akzeptieren, die Datenübertragungsmenge zu oder von der Hostvorrichtung 1 zu zählen, die Zugriffsanforderung von der Hostvorrichtung 1 temporär zurückzuhalten, wenn die Datenübertragungsmenge die vorbestimmte Menge erreicht, und die Gastcontroller 5, 6 den akzeptierten Hintergrundprozeß ausführen zu lassen.
- Ferner enthält der Hauptcontroller 7 einen Ruhezustandszähler 91 zum Zählen der Anzahl der Male, wenn ein Verarbeitungsprogramm ausgeführt wird, und einen Übertragungszähler 92 zum Zählen der Datenübertragungsmenge zu oder von der Hostvorrichtung 1, akzeptiert die Hintergrundverarbeitungsanforderung, wenn der Inhalt des Ruhezustandszählers 91 einen vorbestimmten Wert erreicht, hält temporär die Zugriffsanforderung von der Hostvorrichtung 1 zurück, wenn die Datenübertragungsmenge eine vorbestimmte Menge erreicht, und führt den akzeptierten Hintergrundprozeß aus.
- Weiterhin führt der Hauptcontroller 7 die akzeptierte Hintergrundverarbeitung bei Bestimmung dessen aus, daß durch die Hostvorrichtung 1 kein Zugriff erfolgt.
- Ferner enthalten die Speicherplattenlaufwerke 30 bis 39 eine Vielzahl von Arbeitsspeicherplattenlaufwerken 30 bis 38 und ein Reservespeicherplattenlaufwerk 39. In diesem Fall ist der Hintergrundprozeß ein Datenrekonstruktionsprozeß, der ausgeführt wird, wenn eine der Arbeitsspeicherplattenvorrichtungen 30 bis 38 ausfällt, zum Rekonstruieren von Daten, die dem ausgefallenen Speicherplattenlaufwerk gespeichert waren, aus Daten, die in anderen Arbeitsspeicherplattenlaufwerken gespeichert sind, und Schreiben der rekonstruierten Daten in das Reservespeicherplattenlaufwerk 39.
- Außerdem ist der Hintergrundprozeß ein Ersetzungsprozeß zum Ersetzen eines ausgefallenen Teils der Speicherplattenlaufwerke 30 bis 39.
- Ferner ist der Hintergrundprozeß ein Medieninitialisierungsprozeß für die Speicherplattenlaufwerke 30 bis 39.
- Fig. 2(A) und 2(B) betreffen die Prioritätsübertragung auf die Ausführung eines Hintergrundprozesses und die Reduzierung des Einflusses auf den Zugriff durch die Hostvorrichtung 1 auf ein Mindestmaß, wenn die akkumulierte Datenübertragungsmenge zu oder von der Hostvorrichtung 1 eine spezifizierte Menge erreicht, da die Datenübertragungsmenge zu oder von der Hostvorrichtung 1 zu einer Belegungszeit der Hostvorrichtung 1 proportional ist und angenommen wird, daß die Hostvorrichtung 1 zu dieser Zeit ausreichenden Zugriff gehabt hat. Somit zählt die Plattenarraysteuereinheit 2 die Datenübertragungsmenge zu oder von der Hostvorrichtung 1, hält temporär die Zugriffsanforderung von der Hostvorrichtung 1 zurück, falls eine Hintergrundverarbeitungsanforderung vorhanden ist, wenn die Datenübertragungsmenge die vorbestimmte Menge erreicht, und führt den Hintergrundprozeß aus.
- Ein Prozeß zum Überwachen einer Zugriffsfrequenz der Hostvorrichtung 1 kann für diesen Zweck betrachtet werden. Jedoch kann die Belegungszeit nicht aus der Zugriffsfrequenz bestimmt werden, da ein Unterschied in der Datenübertragungsmenge pro Zugriff vorhanden ist. Demzufolge wird die Datenübertragungsmenge überwacht.
- Ferner inkrementiert die Plattenarraysteuereinheit 2 den Inhalt des Ruhezustandszählers bei jedem Durchlauf des Verarbeitungsprogramms, akzeptiert die Hintergrundverarbeitungsanforderung, wenn der Inhalt des Ruhezustandszählers den vorbestimmten Wert erreicht, hält temporär die Zugriffsanforderung von der Hostvorrichtung 1 zurück, wenn die Datenübertragungsmenge die vorbestimmte Menge erreicht, und führt den akzeptierten Hintergrundprozeß aus. Somit wird die Hintergrundverarbeitung immer bei einer vorbestimmten Anzahl von Durchläufen des Verarbeitungsprogramms akzeptiert, und dem Hintergrundprozeß wird in Abhängigkeit von der Datenübertragungsmenge Priorität verliehen, während der Zugriff der Hostvorrichtung 1 gerade Priorität besitzt.
- Weiterhin führt die Plattenarraysteuereinheit 2 den akzeptierten Hintergrundprozeß bei Bestimmung dessen aus, daß durch die Hostvorrichtung 1 gerade kein Zugriff erfolgt. Somit kann der Hintergrundprozeß in der Reservezeit der Hostvorrichtung 1 auf herkömmliche Weise ausgeführt werden, während dem Hintergrundprozeß in Abhängigkeit von der Datenübertragungsmenge Priorität verliehen wird.
- Des weiteren löscht die Arrayplattensteuereinheit 2 die Datenübertragungsmenge bei Vollendung des Hintergrundprozesses, wodurch es möglich wird, eine neue Datenübertragungsmenge zu überwachen.
- Ferner enthält die Arrayplattensteuereinheit 2 einen Hostcontroller 4 zum steuerbaren Verbinden der Arrayplattensteuereinheit 2 mit der Hostvorrichtung 1, Gastcontroller 5, 6 zum parallelen Steuern der Speicherplattenlaufwerke 30 bis 39, einen Datenübertragungscontroller 8 zum Übertragen von Daten zwischen dem Hostcontroller 4 und den Gastcontrollern 5, 6 und einen Hauptcontroller 7 zum Steuern dieser Controller, welcher Hauptcontroller 7 dafür ausgelegt ist, den Zugriff durch die Hostvorrichtung 1 zu überwachen, die Hintergrundverarbeitungsanforderung von den Gastcontrollern 5, 6 zu akzeptieren, die Datenübertragungsmenge zu oder von der Hostvorrichtung 1 zu zählen, die Zugriffsanforderung von der Hostvorrichtung 1 temporär zurückzuhalten, wenn die Datenübertragungsmenge die vorbestimmte Menge erreicht, und die Gastcontroller 5, 6 den akzeptierten Hintergrundprozeß ausführen zu lassen. Daher kann ohne weiteres unterschieden werden, ob der Zugriff durch die Hostvorrichtung 1 oder der Hintergrundprozeß ausführbar ist. Zusätzlich kann der Hauptcontroller 7 andere Prozesse ausführen, während der Hintergrundprozeß ausgeführt wird.
- Wenn der Hintergrundprozeß ein Datenrekonstruktionsprozeß ist, kann der Datenrekonstruktionsprozeß, der eine lange Zeit erfordert, ausgeführt werden, während der Zugriff der Hostvorrichtung temporär zurückgehalten wird. Somit wird eine Plattenarrayoperation in kurzer Zeit wiederhergestellt, wodurch ein Hochgeschwindigkeitszugriff ermöglicht wird.
- Wenn der Hintergrundprozeß ferner ein Ersetzungsprozeß für einen ausgefallenen Teil ist, kann der Ersetzungsprozeß, der in kurzer Zeit ausgeführt werden muß, ausgeführt werden, während der Zugriff der Hostvorrichtung temporär zurückgehalten wird. Somit wird die Plattenarrayoperation in kurzer Zeit wiederhergestellt, wodurch ein Hochgeschwindigkeitszugriff ermöglicht wird.
- Wenn die Hintergrundverarbeitung weiterhin ein Medieninitialisierungsprozeß ist, kann ein Fehlersuchprozeß oder dergleichen ohne weiteres ausgeführt werden, während das System (Plattenarrayvorrichtung) betrieben wird.
- Fig. 3 ist ein Blockdiagramm einer ersten typischen Ausführungsform der vorliegenden Erfindung, und Fig. 4 ist ein Blockdiagramm, das eine Schnittstellensteuereinheit von Fig. 3 detaillierter zeigt. Fig. 3 und 4 zeigen ein Magnetplattensystem des Arraytyps.
- In Fig. 3 ist eine Magnetplattenarraysteuereinheit 2 zusätzlich zu einem Kanalschnittstellencontroller 4, einem Vorrichtungsschnittstellencontroller 5, Vorrichtungscontrollern 60 bis 69 und einem Prozessor 7 mit einem Steuerspeicher (Speicher) 9a und einem TOD-Zeitgeber 9b versehen, der als Takt dient.
- Zusätzlich zu einem Programmbereich zum Speichern eines Programms enthält der Steuerspeicher 9a eine Vorrichtungsinformationstabelle 90 zum Speichern eines Hostflags, das die Ausführung einer Hostverarbeitung angibt, und eines B.G.-Flags, das die Ausführung eines Hintergrundprozesses angibt, einen Ruhezustandszähler 91 zum Zählen einer Ruhezustandszeit, einen Übertragungsblockzähler (der auch als Übertragungszähler bezeichnet wird) 92 zum Zählen der Anzahl von Blöcken von Daten, die zu und von der Hostvorrichtung 1 zu übertragen sind, ein B.G.-REQ-Flag 93, das angibt, ob ein Hintergrundprozeß vorhanden ist, der durch den Vorrichtungs schnittstellencontroller 5 angefordert wurde, und ein B.G.- END-Flag 94, das angibt, daß die Vollendung des Hintergrundprozesses durch den Vorrichtungsschnittstellencontroller 5 gemeldet worden ist.
- In der gezeigten ersten Ausführungsform ist eine Logikvorrichtung 3a, die Magnetplattenlaufwerke 30 bis 39 enthält, mit den Vorrichtungscontrollern 60 bis 69 verbunden. Jedoch sind in Wirklichkeit eine Vielzahl von Logikvorrichtungen mit den Vorrichtungscontrollern 60 bis 69 verbunden, wie bei einem Beispiel, das in Fig. 1 gezeigt ist.
- Der Gastvorrichtungsschnittstellencontroller 5 enthält, wie in Fig. 4 gezeigt, einen Arraycontroller 5a und einen Prozeßcontroller 5b zum Steuern der jeweiligen Vorrichtungscontroller 60 bis 69, zum Bestimmen von Zuständen der Controller 60 bis 69 durch das Empfangen von Antworten und zum Erteilen einer Antwort.
- Der Arraycontroller 5a enthält eine Befehlssteuerungs- und Antworteinheit 50, um einen Datenübertragungscontroller 51 und den Prozeßcontroller 5b bei Empfang eines Befehls von dem Prozessor 7 zu steuern und dem Prozessor 7 zu antworten. Ferner enthält der Arraycontroller 5a den Datenübertragungscontroller 51 zum Hinzufügen von Paritätsdaten zu den Daten, die von der Hostvorrichtung 1 übertragen werden, zum Verteilen der Daten mit den hinzugefügten Paritätsdaten an die jeweiligen Vorrichtungscontroller 60 bis 69, zum Durchführen von Paritätsprüfungen für die Daten von den Vorrichtungscontrollern 60 bis 69 unter Verwendung von deren Paritätsdaten, zum Übertragen der geprüften Daten zu der Hostvorrichtung 1 und zum Rekonstruieren der Daten bei Empfang einer Instruktion, die die Rekonstruktion der Daten anfordert.
- Jeder der Vorrichtungscontroller 60 bis 69 enthält einen Befehls- und Antwortcontroller 600 zum Steuern der Magnetplattenlaufwerke 30 bis 39 gemäß einem Befehl von dem Verarbeitungscontroller 5b und zum Erteilen einer Antwort an den Prozeßcontroller 5b, einen Datenpuffer 601 zum Speichern von Daten für die und von den Magnetplattenvorrichtungen 30 bis 39, eine CRC-Erzeugungs- und -Prüfschaltung 602 zum Erzeugen von CRC-Daten für jeden Block (512 Bytes) von Daten, die zu schreiben sind (Schreibdaten), und zum Prüfen der CRC-Daten für jeden Block von Daten, die zu lesen sind (Lesedaten), und eine ECC-Erzeugungs- und -Prüfschaltung 603 zum Erzeugen eines ECC (error correcting code) [Fehlerkorrekturcode] für jeden Block von Schreibdaten (die die CRC-Daten enthalten) und zum Prüfen des ECC für jeden Block von Lesedaten (die die CRC-Daten enthalten).
- Fig. 5, 6(A), 6(B) und 6(C) sind Flußdiagramme (Nr. 1), (Nr. 2), die einen Prozeß einer ersten Ausführungsform der vorliegenden Erfindung zeigen, und Fig. 7(A) und 7(B) sind Zeitdiagramme, die eine Operation der ersten Ausführungsform zeigen.
- Zuerst wird eine normale Zugriffsoperation der Hostvorrichtung 1 beschrieben.
- Zum Beispiel sendet der Prozessor 7 zu der Zeit eines Lesezugriffs durch die Hostvorrichtung 1 einen Lesebefehl zu dem Befehls- und Antwortcontroller 50 des Arraycontrollers 5a des Gastvorrichtungsschnittstellencontrollers 5 und instruiert den Prozeßcontroller 5b zu bewirken, daß die jeweiligen Magnetplattenlaufwerke 30 bis 38 durch Steuern der Vorrichtungscontroller 60 bis 69 eine Suchoperation ausführen, um Zylinderpositionen zu lesen. Bei Vollendung der Suchoperation wird das Ende der Suchoperation dem Prozessor 7 gemeldet, und dadurch beginnt der Prozessor 7 eine Übertragungssteuerung.
- Der Prozessor 7 aktiviert die Datenübertragungssteuereinheit 8 und den Kanalschnittstellencontroller 4. Ferner aktiviert der Befehls- und Antwortcontroller 50 den Datenübertragungscontroller 51. Danach werden die gewünschten Datenblöcke, die auf den Magnetplattenlaufwerken 30 bis 38 gespeichert sind, durch die Vorrichtungscontroller 60 bis 68 gelesen; wird die Paritätsprüfung auf die gelesenen Daten angewendet; und werden die Daten von den acht Magnetplattenlaufwerken umorganisiert, um durch die Datenübertragungssteuereinheit 8 und den Kanalschnittstellencontroller zu der Hostvorrichtung 1 übertragen zu werden.
- Falls sich zum Beispiel eine Übertragungseinheit (Übertragungsblock) von Daten auf 4096 Bytes beläuft, wird die eine Übertragungseinheit in acht Blöcke (512 Bytes pro Block) geteilt, die in den Magnetplattenlaufwerken für Daten 30 bis 37 gespeichert werden. Eine Spur wird aus 93 Blöcken gebildet.
- Ein Bit von Paritätsdaten wird jeweils für 8 Bits von Daten an derselben Bitposition für 512 Bytes Daten erzeugt, die in jedem der acht Magnetplattenlaufwerke für Daten 30 bis 37 gespeichert sind. Daher werden für 4096 Bytes von Daten 512 Bytes von Paritätsdaten in einem Block des Magnetplattenlaufwerks für Paritätsdaten 38 gespeichert.
- Andererseits werden in den Vorrichtungscontrollern 60 bis 68 für die Magnetplattenlaufwerke 30 bis 38 die CRC- Daten zu jedem Block (512 Bytes) von Daten hinzugefügt, und der ECC wird zu einem Block von Daten (der die CRC-Daten enthält) hinzugefügt. Wenn die Daten gelesen werden, prüft die CRC-Erzeugungs- und -Prüfschaltung 602 die CRC-Daten für jeden Block von Daten, und die ECC-Erzeugungs- und -Prüfschaltung 603 prüft den ECC für jeden Block von Daten (der die CRC-Daten enthält).
- In den Magnetplattenlaufwerken 30 bis 38 werden eine CRC-Prüfung und eine ECC-Prüfung auf jeden Block von Daten angewendet, wie oben beschrieben, und in dem Datenübertragungscontroller 51 wird die Paritätsprüfung auf die Daten von den Magnetplattenlaufwerken 30 bis 37 unter Verwendung der Paritätsdaten von dem Magnetplattenlaufwerk 38 angewendet.
- Als nächstes wird ein Prozeß der Ausführungsform unter Bezugnahme auf Fig. 5, 6(A), 6(B) und 6(C) beschrieben.
- (1) Der Prozessor 7 unterscheidet, ob durch die Hostvorrichtung 1 durch den Kanalschnittstellencontroller 4 irgendeine Zugriffsanforderung (Befehl) erfolgt oder nicht. Falls ja, führt der Prozessor 7 eine Anforderungsverarbeitungsroutine aus, die in Fig. 6(A) gezeigt ist, und geht zu Schritt (4) über.
- Bei der Anforderungsverarbeitungsroutine von Fig. 6(A) prüft der Prozessor 7 die B.G.-Flag-Spalte in der Vorrichtungsinformationstabelle 90. Falls irgendeine der Vorrichtungen (Plattenlaufwerke) gerade einen Hintergrundprozeß ausführt, informiert der Prozessor 7 die Hostvorrichtung 1, daß die Vorrichtung besetzt ist, und verläßt diese Routine. Falls im Gegensatz dazu gerade keine der Vorrichtungen einen Hintergrundprozeß ausführt, führt der Prozessor 7 die Datenübertragung mit der Hostvorrichtung bei Empfang eines Befehls durch, der eine Datenübertragung anfordert, wie etwa Lese- und Schreibbefehle, inkrementiert den Inhalt des Übertragungszählers 92 um eins (ein Übertragungsblock = 4096 Bytes) und verläßt diese Routine.
- Es ist offensichtlich, daß der Inhalt des Übertragungszählers 92 bei einem Übertragungsbefehl zum Lesen der Daten, die in der Magnetplattenarraysteuereinheit 2 gespeichert sind, nicht inkrementiert wird, da die Gastvorrichtung nicht verwendet wird.
- (2) Falls andererseits keine Zugriffsanforderung von der Hostvorrichtung 1 vorliegt, unterscheidet der Prozessor 7 den Empfang der Hintergrundanforderung durch Prüfen des B.G.-REQ-Flags 93. Falls die Hintergrundanforderung empfangen worden ist, führt der Prozessor 7 den in Fig. 6(B) gezeigten Hintergrundprozeß aus und geht zu Schritt (3) über.
- Bei einer Hintergrundverarbeitungsroutine, die in Fig. 6(B) gezeigt ist, prüft der Prozessor 7 die B.G.-Flag- Spalte in der Vorrichtungsinformationstabelle 90. Falls irgendeine der Vorrichtungen gerade einen Hintergrundprozeß ausführt, verläßt der Prozessor 7 sofort diese Routine. Falls gerade keine der Vorrichtungen einen Hintergrundprozeß ausführt, setzt der Prozessor 7 ein Flag für jene Vorrichtungen in der B.G.-Flag-Spalte der Vorrichtungsinformationstabelle 90 und führt den Hintergrundprozeß aus.
- Falls der Hintergrundprozeß zum Beispiel ein Datenrekonstruktionsprozeß ist, versetzt der Prozessor 7 den Kanalschnittstellencontroller 4 in den CU-BUSY-Zustand und meldet der Hostvorrichtung 1 bei Empfang einer Zugriffsanforderung von der Hostvorrichtung 1, daß die Vorrichtung besetzt ist. Der Prozessor 7 instruiert ferner den Vorrichtungsschnittstellencontroller 5, einen Datenrekonstruktionsprozeß auszuführen, trennt den Gastschnittstellencontroller 5 von ihm ab und geht zu Schritt (3) über.
- Der so abgetrennte Vorrichtungsschnittstellencontroller 5 rekonstruiert, wie oben beschrieben, die Daten, die auf dem ausgefallenen Magnetplattenlaufwerk gespeichert waren, aus den Daten, die in den Magnetplattenlaufwerken 30 bis 38, außer dem ausgefallenen, gespeichert sind, und speichert die rekonstruierten Daten auf dem Reservemagnetplattenlaufwerk 39. Der Controller 5 rekonstruiert nur eine (durch die Spur oder durch den Zylinder) bezeichnete Menge von Daten und informiert bei Vollendung von einem Datenrekonstruktionsprozeß den Prozessor 7 von der Vollendung der Unterbrechungsroutine.
- (3) Der Prozessor 7 unterscheidet, ob der Ruhezustandszähler 91 übergelaufen ist oder nicht (ob der Inhalt des Ruhezustandszählers 91 gleich einem vorbestimmten Wert n oder größer als dieser ist), falls bei Schritt (2) keine Hintergrundanforderung empfangen wird oder nachdem der Gastvorrichtungsschnittstellencontroller 5 mit der Ausführung eines Datenrekonstruktionsprozesses beauftragt wurde. Falls der Ruhezustandszähler übergelaufen ist, führt der Prozessor 7 eine Flagsetzverarbeitungsroutine aus, die in Fig. 6(C) gezeigt ist, und geht zu Schritt (4) über.
- Bei der Flagsetzverarbeitungsroutine, die in Fig. 6(C) gezeigt ist, scant der Prozessor 7 die Vorrichtungscontroller 60 bis 69 durch den Gastvorrichtungsschnittstellencontroller 5, um zu prüfen, ob eine Hintergrundverarbeitungsanforderung von den Gastvorrichtungen vorliegt oder nicht. Falls eine vorhanden ist, setzt der Prozessor 7 ein Flag bei dem B.G.-REQ-Flag 93, setzt den Ruhezustandszähler 91 zurück, da er die Anforderung empfangen hat, und verläßt diese Routine. Der Prozessor 7 setzt den Ruhezustandszähler 91 auch zurück, falls keine solche Anforderung vorhanden ist, und verläßt diese Routine.
- (4) Anschließend prüft der Prozessor 7 bei Schritt (3), ob der Übertragungszähler 92 übergelaufen ist oder nicht (ob der Inhalt des Zählers 92 gleich einer spezifizierten Menge, wie z. B. mehrere zehntausend Zylinder, oder größer als diese ist), falls der Ruhezustandszähler 91 nicht übergelaufen ist, nachdem die Flagsetzverarbeitungsroutine ausgeführt ist oder nachdem die Anforderungsverarbeitungsroutine bei Schritt (1) ausgeführt ist. Falls der Zähler 92 übergelaufen ist, verleiht der Prozessor 7 dem Hintergrundprozeß bei Bestimmung dessen, daß die Hostvorrichtung 1 ausreichenden Zugriff gehabt hat, Priorität und prüft, ob das Flag bei dem B.G.-REQ-Flag 93 gesetzt ist oder nicht.
- Falls das Anforderungsflag gesetzt ist, führt der Prozessor 7 die Hintergrundverarbeitungsroutine aus, die in Fig. 6(B) gezeigt ist, und setzt den Übertragungszähler 92 zurück. Falls das Anforderungsflag nicht gesetzt ist, setzt der Prozessor 7 den Zähler 92 zurück. Dann geht der Prozessor 7 zu Schritt (5) über.
- (5) Der Prozessor 7 inkrementiert den Inhalt des Ruhezustandszählers 91 um "1", da bei dem Verarbeitungsprogramm ein Durchlauf erfolgte, und kehrt zu Schritt (1) zurück.
- Der Prozessor 7, dem die Vollendung einer Hintergrundverarbeitung von dem Vorrichtungsschnittstellencontroller 5 gemeldet worden ist, setzt aktive Flags der B.G.-Flags für entsprechende Vorrichtungen in der Vorrichtungsinformationstabelle 90 zurück; setzt das Flag des B.G.-REQ-Flags 93 zurück; setzt das Flag des B.G.-END-Flags 94; und holt den Kanalschnittstellencontroller 4 aus dem CU-BUSY-Zustand heraus, wodurch der Zugriff von der Hostvorrichtung 1 ermöglicht wird.
- Dies wird unter Bezugnahme auf Fig. 7(B) beschrieben. Bei einem Durchlauf des Verarbeitungsprogramms inkrementiert der Prozessor 7 den Inhalt des Ruhezustandszählers 91 und verleiht dem Zugriff der Hostvorrichtung 1 Priorität, ohne die Hintergrundverarbeitungsanforderung von dem Vorrichtungsschnittstellencontroller 5 zu akzeptieren, bis der Ruhezustandszähler 91 überläuft.
- Wenn der Ruhezustandszähler 91 überläuft, akzeptiert der Prozessor 7 die Hintergrundverarbeitungsanforderung von dem Vorrichtungsschnittstellencontroller 5, wodurch das Anforderungsflag gesetzt wird.
- Diese Anforderung wird bei Schritt (2) ausgeführt, wenn bestimmt wird, daß durch die Hostvorrichtung 1 kein Zugriff erfolgt, und daher ist Reservezeit verfügbar. Diese Anforderung wird jedoch nicht ausgeführt, solange der Zugriff durch die Hostvorrichtung 1 andauert.
- Angesichts dessen wird die Datenmenge, die zu oder von der Hostvorrichtung übertragen wird, unter Verwendung des Übertragungszählers 92 gezählt. Wenn dieser Zähler 92 überläuft, wird bestimmt, daß die Hostvorrichtung 1 für eine wesentliche Zeitdauer Zugriff gehabt hat und eine Zeit für den Hintergrundprozeß nicht erhalten werden konnte. Daraufhin erhält der Hintergrundprozeß Priorität gegenüber dem Zugriff durch die Hostvorrichtung und wird ausgeführt, während der Hostvorrichtung 1 bei Empfang einer Zugriffsanforderung von der Hostvorrichtung 1 mitgeteilt wird, daß die Gastvorrichtungen besetzt sind.
- Bei Vollendung des Hintergrundprozesses wird der Übertragungszähler 92 gelöscht, und die Hostvorrichtung 1 erlangt wieder Priorität.
- Der Grund dafür, daß der Übertragungszähler 92 bei Schritt (2) nicht gelöscht wird, ist der, daß der Hintergrundprozeß ausgeführt wird, da die Reservezeit in der Hostvorrichtung 1 verfügbar ist. Die Hostvorrichtung 1 hat dennoch Priorität gegenüber dem Hintergrundprozeß, aber die Hintergrundverarbeitung wird ausgeführt, da durch die Hostvorrichtung 1 gerade kein Zugriff erfolgt.
- Genauer gesagt, in diesem Fall ist es erforderlich zu bewirken, daß der Hintergrundprozeß das Recht innehat, um die Prioritätsfolge auf der Basis der Datenübertragungsmenge zu verändern.
- Auf diese Weise hat normalerweise die Hostvorrichtung 1 Priorität, und die Prioritätsfolge wird verändert, wenn die Datenübertragungsmenge zu oder von der Hostvorrichtung eine vorbestimmte Menge erreicht, um dem Hintergrundprozeß gegenüber der Hostvorrichtung 1 Priorität zu verleihen. Auf diese Weise wird der Hintergrundprozeß ausgeführt, während der Einfluß auf den Zugriff der Hostvorrichtung auf ein Mindestmaß reduziert wird.
- Dadurch wird das Auftreten von einer Situation verhindert, bei der die Hintergrundverarbeitung nicht ausgeführt werden kann, wenn eine enorme Datenmenge zu oder von der Hostvorrichtung 1 übertragen wird, und dies trägt zu dem Reduzieren des Einflusses auf den Zugriff der Hostvorrichtung 1 auf das Mindestmaß bei.
- Zusätzlich zu der obigen ersten Ausführungsform kann die Erfindung auf folgende Weise abgewandelt werden.
- (1) Obwohl die obige Beschreibung in der obigen Ausführungsform ein Plattenarraylaufwerk betrifft, das mit Magnetplattenlaufwerken versehen ist, ist die Erfindung auf eine Plattenarrayvorrichtung anwendbar, die mit optischen Plattenlaufwerken oder ähnlichen Plattenlaufwerken versehen ist, die mechanisch arbeiten.
- (2) Ein Durchlauf des Verarbeitungsprogramms wird in der obigen Ausführungsform als Ruhezustandsanzahl gezählt. Es kann jedoch zweckmäßig sein, die Anzahl des Nichtvorhandenseins von Zugriffen von der Hostvorrichtung als Ruhezustandsanzahl zu zählen.
- (3) Obwohl die Erfindung in der obigen Ausführungsform hinsichtlich eines Datenwiederherstellungsprozesses beschrieben worden ist, kann der Hintergrundprozeß ein Ersetzungsprozeß zum Ersetzen eines ausgefallenen Teils eines Speicherplattenlaufwerks oder ein Medieninitialisierungsprozeß für die Speicherplattenvorrichtung sein.
- (4) Obwohl in der obigen Ausführungsform ein Reserveplattenlaufwerk vorgesehen ist, können zwei oder mehr Reserveplattenlaufwerke vorgesehen sein.
- Eine erste Ausführungsform hat, wie oben beschrieben, die folgenden Effekte.
- (1) Eine Plattenarraysteuereinheit 2 überwacht eine Datenübertragungsmenge zu oder von einer Hostvorrichtung 1. Der Hintergrundprozeß hat gegenüber dem Zugriff durch die Hostvorrichtung 1 Priorität, wenn die Datenübertragungsmenge eine vorbestimmte Menge erreicht. Daher kann der Hintergrundprozeß ausgeführt werden, während der Einfluß auf den Zugriff der Hostvorrichtung auf ein Mindestmaß reduziert wird, selbst wenn eine enorme Datenmenge zu oder von der Hostvorrichtung 1 zu übertragen ist oder ein Zustand mit hoher Zugriffsfrequenz fortzusetzen ist.
- (2) Da die Datenübertragungsmenge überwacht wird, wird dem Hintergrundprozeß gemäß einer Belegungszeit der Hostvorrichtung 1 Priorität verliehen. Selbst wenn ein Unterschied in der Datenübertragungsmenge pro Zugriff der Hostvorrichtung 1 vorhanden ist, wird die Priorität der Hintergrundverarbeitung genau gemäß der Belegungszeit verliehen. Deshalb kann ein Hintergrundprozeß ausgeführt werden, ohne die Leistung eines gesamten Systems zu reduzieren.
- Ferner ist Fig. 8 ein Blockdiagramm, das eine Abwandlung einer ersten Ausführungsform von Fig. 3 zeigt. Fig. 8 zeigt auch ein Magnetplattensystem des Arraytyps. In Fig. 8 ist eine Magnetplattenarraysteuereinheit 2 ähnlich wie in Fig. 3 zusätzlich zu einem Kanalschnittstellencontroller 4, einem Vorrichtungsschnittstellencontroller 5, Vorrichtungscontrollern 60 bis 69 und einem Prozessor 7 mit einem Steuerspeicher (Speicher) 9a und einem TOD-Zeitgeber 9b versehen, der als Takt dient.
- Die gesamte Konstruktion von Fig. 8 ist, wie in Fig. 8 gezeigt, im wesentlichen dieselbe wie jene von Fig. 3. Jedoch unterscheidet sich die Konstruktion der Abwandlung wie in Fig. 8 von jener einer ersten Ausführungsform wie in Fig. 3 darin, daß erstere einen Zugriffszähler 95 zum Zählen einer Zugriffsfrequenz einer Hostvorrichtung 1 in dem Steuerspeicher 9a enthält.
- Genauer gesagt, zusätzlich zu einem Programmbereich zum Speichern eines Programms enthält der Steuerspeicher 9a eine Vorrichtungsinformationstabelle 90 zum Speichern eines Hostflags, das die Ausführung eines Hostprozesses angibt, und eines B.G.-Flags, das die Ausführung eines Hintergrundprozesses angibt, einen Ruhezustandszähler 91 zum Zählen einer Ruhezustandsanzahl, einen Übertragungsblockzähler 92 zum Zählen der Anzahl von Datenblöcken, die zu und von der Hostvorrichtung 1 zu übertragen sind, den obigen Zugriffszähler 95, ein B.G.-REQ-Flag 93, das angibt, ob ein Hintergrundprozeß vorhanden ist oder nicht, der durch den Vorrichtungsschnittstellencontroller 5 angefordert wurde, und ein B.G.-END-Flag 94, das angibt, daß die Vollendung des Hintergrundprozesses von dem Vorrichtungsschnittstellencontroller 5 gemeldet wird.
- Nun folgt eine konkretere Erläuterung bezüglich des Zugriffszählers 95.
- In Fig. 8 zählt die Plattenarraysteuereinheit 2 eine Datenübertragungsmenge zu und von der Hostvorrichtung 1 durch den Übertragungsblockzähler 92, hält temporär die Zugriffsanforderung von der Hostvorrichtung 1 zurück, wenn die Datenübertragungsmenge eine vorbestimmte Menge erreicht, und läßt die Gastcontroller 5, 6 den Hintergrundprozeß ausführen. Alternativ zählt die Plattenarraysteuereinheit 2 eine Zugriffsfrequenz der Hostvorrichtung 1 durch den Zugriffszähler 95, hält temporär die Zugriffsanforderung von der Hostvorrichtung zurück, wenn die Zugriffsfrequenz den vorbestimmten Betrag erreicht, und läßt die Gastcontroller 5, 6 den Hintergrundprozeß ausführen.
- Ferner akzeptiert in Fig. 8 ein Prozessor (Hauptcontroller) 7 eine Hintergrundverarbeitungsanforderung, wenn der Inhalt des Ruhezustandszählers 91 einen vorbestimmten Wert erreicht, und hält temporär die Zugriffsanforderung von der Hostvorrichtung 1 zurück, wenn die Datenübertragung eine vorbestimmte Menge erreicht oder wenn die Zugriffsfrequenz einen vorbestimmten Betrag erreicht, und führt dann den akzeptierten Hintergrundprozeß aus.
- In diesem Fall gibt die Zugriffsfrequenz der Hostvorrichtung 1 die Zeit per se an, die durch die Plattenarraysteuereinheit 2 belegt wird, die mit der Hostvorrichtung 1 verbunden ist. Da der Zugriffszähler 95 den Besetztzustand des Zugriffs von der Hostvorrichtung 1 detektieren kann, indem er anzeigt, daß die Zugriffsfrequenz der Hostvorrichtung 1 den vorbestimmten Wert erreicht, kann der Einfluß auf den Zugriff der Hostvorrichtung 1 auf Grund des Hintergrundprozesses sicherer als bei der ersten Ausführungsform, wie sie in Fig. 3 gezeigt ist, auf ein Mindestmaß reduziert werden.
- Fig. 9(A) und 9(B) sind Flußdiagramme zum Erläutern eines Prozesses, der in Fig. 8 gezeigt ist.
- Diese Flußdiagramme von Fig. 9(A) und 9(B) sind denen einer ersten Ausführungsform ähnlich, die in Fig. 5 und 6(A) gezeigt sind.
- Jedoch unterscheiden sich die ersteren Flußdiagramme von den letzteren Flußdiagrammen darin, daß die ersteren Flußdiagramme ferner einen Schritt zum Prüfen dessen enthalten, ob der Zugriffszähler 95 übergelaufen ist oder nicht, und ähnliche Schritte.
- Um ferner das Verstehen eines Prozesses gemäß einer Abwandlung der ersten Ausführungsform zu erleichtern, folgt unter Bezugnahme auf Fig. 9(A) und 9(B) eine Beschreibung der Flußdiagramme.
- (1) Der Prozessor 7 inkrementiert den Inhalt des Zugriffszählers 95 um eins und unterscheidet, ob durch die Hostvorrichtung 1 durch den Kanalschnittstellencontroller 4 irgendeine Zugriffsanforderung (Befehl) erfolgt oder nicht. Falls ja, führt der Prozessor 7 eine Anforderungsverarbeitungsroutine aus, die in Fig. 9(B) gezeigt ist, geht zu Schritt (4) über.
- Bei der Anforderungsverarbeitungsroutine von Fig. 9(B) prüft der Prozessor 7 die B.G.-Flag-Spalte in der Vorrichtungsinformationstabelle 90. Falls irgendeine der Vorrichtungen gerade einen Hintergrundprozeß ausführt, informiert der Prozessor 7 die Hostvorrichtung 1, daß die Vorrichtung besetzt ist, und verläßt diese Routine. Falls im Gegensatz dazu keine der Vorrichtungen einen Hintergrundprozeß ausführt, führt der Prozessor 7 die Datenübertragung mit der Hostvorrichtung bei Empfang eines Befehls aus, der eine Datenübertragung anfordert, wie etwa Lese- und Schreibbefehle, inkrementiert den Inhalt des Übertragungszählers 92 um eins (ein Übertragungsblock = 4096 Bytes) und verläßt diese Routine.
- Es ist offensichtlich, daß der Inhalt des Übertragungszählers 92 bei einem Übertragungsbefehl zum Lesen der Daten, die in der Magnetplattenarraysteuereinheit 2 gespei chert sind, nicht inkrementiert wird, da die Gastvorrichtung nicht verwendet wird.
- (2) Falls andererseits keine Zugriffsanforderung von der Hostvorrichtung 1 vorhanden ist, unterscheidet der Prozessor 7 den Empfang der Hintergrundanforderung durch Prüfen des B.G.-REQ-Flags 93. Falls die Hintergrundanforderung empfangen worden ist, führt der Prozessor 7 den in Fig. 6(B) gezeigten und zuvor beschriebenen Hintergrundprozeß aus und geht zu Schritt (3) über. Nun werden unter erneuter Bezugnahme auf Fig. 6(B) und 6(C) noch einmal der Hintergrundprozeß und der Flagsetzprozeß beschrieben.
- Bei der Hintergrundverarbeitungsroutine, die in Fig. 6(B) gezeigt ist, prüft der Prozessor 7 die B.G.-Flag- Spalte in der Vorrichtungsinformationstabelle 90. Falls irgendeine der Vorrichtungen gerade einen Hintergrundprozeß ausführt, verläßt der Prozessor 7 sofort diese Routine. Falls keine der Vorrichtungen einen Hintergrundprozeß ausführt, setzt der Prozessor 7 ein Flag für jene Vorrichtungen in der B.G.-Flag-Spalte der Vorrichtungsinformationstabelle 90 und führt die Hintergrundverarbeitung aus.
- Falls der Hintergrundprozeß zum Beispiel ein Wiederherstellungsprozeß ist, versetzt der Prozessor 7 den Kanalschnittstellencontroller 4 in den CU-BUSY-Zustand und meldet der Hostvorrichtung 1 bei Empfang einer Zugriffsanforderung von der Hostvorrichtung 1, daß die Vorrichtung besetzt ist. Der Prozessor 7 instruiert ferner den Vorrichtungsschnittstellencontroller 5, einen Datenwiederherstellungsprozeß auszuführen, trennt den Schnittstellencontroller 5 von ihm ab und geht zu Schritt (3) über.
- Der so abgetrennte Vorrichtungsschnittstellencontroller 5 rekonstruiert, wie oben beschrieben, die Daten, die auf dem ausgefallenen Magnetplattenlaufwerk gespeichert waren, aus den Daten, die in den Magnetplattenlaufwerken 30 bis 38, außer dem ausgefallenen, gespeichert sind, und speichert die rekonstruierten Daten auf dem Reservemagnet plattenlaufwerk 39. Der Controller 5 rekonstruiert nur eine (durch die Spur oder durch den Zylinder) festgelegte Menge von Daten und informiert bei Vollendung von einem Datenrekonstruktionsprozeß den Prozessor 7 von der Vollendung der Unterbrechungsroutine.
- (3) Der Prozessor 7 unterscheidet, ob der Ruhezustandszähler 91 übergelaufen ist oder nicht (ob der Inhalt des Ruhezustandszählers 91 gleich einem vorbestimmten Wert n oder größer als dieser ist), falls bei Schritt (2) keine Hintergrundanforderung empfangen wird oder nachdem der Vorrichtungsschnittstellencontroller 5 mit der Ausführung eines Datenrekonstruktionsprozesses beauftragt wurde. Falls der Ruhezustandszähler übergelaufen ist, führt der Prozessor 7 eine Flagsetzverarbeitungsroutine aus, die in Fig. 6(C) gezeigt ist, und geht zu Schritt (4) über.
- Bei der Flagsetzverarbeitungsroutine, die in Fig. 6(C) gezeigt ist, scant der Prozessor die Vorrichtungscontroller 60 bis 69 durch den Vorrichtungsschnittstellencontroller 5, um zu prüfen, ob eine Hintergrundverarbeitungsanforderung von den Gastvorrichtungen vorliegt oder nicht. Falls eine vorhanden ist, setzt der Prozessor 7 ein Flag bei dem B.G.-REQ-Flag 93, setzt den Ruhezustandszähler 91 zurück, da er die Anforderung empfangen hat, und verläßt diese Routine. Der Prozessor 7 setzt den Ruhezustandszähler 91 auch zurück, falls keine solche Anforderung vorhanden ist, und verläßt diese Routine.
- (4) Anschließend prüft der Prozessor 7 bei Schritt (3), ob der Übertragungszähler 92 übergelaufen ist oder nicht (ob der Inhalt des Übertragungszählers 92 gleich einer spezifizierten Menge, wie z. B. mehrere zehntausend Zylinder, oder größer als diese ist) und ob der Zugriffszähler 95 übergelaufen ist oder nicht, falls der Ruhezustandszähler 91 nicht übergelaufen ist, nachdem die Flagsetzverarbeitungsroutine ausgeführt ist oder nachdem die Anforderungsverarbeitungsroutine bei Schritt (1) ausgeführt ist. Falls der Übertragungszähler 92 oder der Zugriffszähler 95 übergelaufen ist, verleiht der Prozessor 7 der Hintergrundverarbeitung bei Bestimmung dessen, daß die Hostvorrichtung 1 ausreichenden Zugriff gehabt hat, Priorität und prüft, ob das Flag bei dem B.G.-REQ-Flag 93 gesetzt ist oder nicht.
- Falls das Anforderungsflag gesetzt ist, führt der Prozessor 7 die Hintergrundverarbeitungsroutine aus, die in Fig. 6(B) gezeigt ist, und setzt den Übertragungszähler 92 und den Zugriffszähler 95 zurück. Falls das Anforderungsflag nicht gesetzt ist, setzt der Prozessor 7 den Zähler 92 und den Zugriffszähler 95 zurück. Dann geht der Prozessor 7 zu Schritt (5) über.
- (5) Der Prozessor 7 inkrementiert den Inhalt des Ruhezustandszählers 91 um "1", da bei dem Verarbeitungsprogramm ein Durchlauf erfolgte, und kehrt zu Schritt (1) zurück.
- Der Prozessor 7, dem die Vollendung eines Hintergrundprozesses von dem Gastvorrichtungsschnittstellencontroller 5 gemeldet worden ist, setzt aktive Flags der B.G.- Flags für entsprechende Vorrichtungen in der Vorrichtungsinformationstabelle 90 zurück; setzt das Flag des B.G.-REQ- Flags 93 zurück; setzt das Flag des B.G.-END-Flags 94; und holt den Kanalschnittstellencontroller 4 aus dem CU-BUSY- Zustand heraus, wodurch der Zugriff von der Hostvorrichtung 1 ermöglicht wird.
- In diesem Fall wird die Datenmenge, die zu oder von der Hostvorrichtung übertragen wird, durch den Übertragungszähler 92 gezählt. Ferner wird die Zugriffsfrequenz der Hostvorrichtung durch den Zugriffszähler 95 gezählt. Wenn diese Zähler 92 und 95 überzulaufen beginnen, wird bestimmt, daß die Hostvorrichtung 1 für eine wesentliche Zeitdauer Zugriff gehabt hat und keine Zeit für den Hintergrundprozeß erhalten werden konnte. Daraufhin wird dem Hintergrundprozeß gegenüber dem Zugriff von der Hostvorrichtung Priorität verliehen, und er wird ausgeführt, während der Hostvorrichtung 1 bei Empfang einer Zugriffsanforderung von der Hostvorrich tung 1 gemeldet wird, daß die Gastvorrichtungen besetzt sind.
- Bei Vollendung des Hintergrundprozesses werden der Übertragungszähler 92 und der Zugriffszähler 95 gelöscht, und die Hostvorrichtung 1 erlangt wieder Priorität.
- Der Grund dafür, daß der Übertragungszähler 92 bei Schritt (2) nicht gelöscht wird, ist der, daß der Hintergrundprozeß ausgeführt wird, da die Reservezeit in der Hostvorrichtung 1 verfügbar ist. Die Hostvorrichtung 1 hat dennoch Priorität gegenüber dem Hintergrundprozeß, aber der Hintergrundprozeß wird ausgeführt, da durch die Hostvorrichtung 1 gerade kein Zugriff erfolgt.
- Genauer gesagt, in diesem Fall ist es erforderlich zu bewirken, daß der Hintergrundprozeß das Recht innehat, um die Prioritätsfolge auf der Basis der Datenübertragungsmenge zu verändern.
- Auf diese Weise hat normalerweise die Hostvorrichtung 1 Priorität, und die Prioritätsfolge wird verändert, wenn die Datenübertragungsmenge zu oder von der Hostvorrichtung eine vorbestimmte Menge erreicht, um dem Hintergrundprozeß gegenüber der Hostvorrichtung 1 Priorität zu verleihen. Auf diese Weise wird der Hintergrundprozeß ausgeführt, während der Einfluß auf den Zugriff der Hostvorrichtung auf ein Mindestmaß reduziert wird.
- Dadurch wird das Auftreten von einer Situation verhindert, bei der der Hintergrundprozeß nicht ausgeführt werden kann, wenn eine enorme Datenmenge zu oder von der Hostvorrichtung 1 übertragen wird oder wenn die Zugriffsfrequenz der Hostvorrichtung relativ hoch ist, und dies trägt zu dem Reduzieren des Einflusses auf den Zugriff der Hostvorrichtung 1 auf das Mindestmaß bei.
- Fig. 10(A) und 10(B) sind Blockdiagramme und ein Flußdiagramm, die ein zweites Prinzip gemäß der vorliegenden Erfindung zeigen.
- Fig. 10(A) und 10(B) betreffen einen Datenrekonstruktionsmengensteuerprozeß für eine Plattenarrayvorrichtung, die eine Vielzahl von Arbeitsspeicherplattenlaufwerken 30 bis 38 enthält, ein Reservespeicherplattenlaufwerk 39 und eine Plattenarraysteuereinheit 2, die mit der Vielzahl von Arbeitsspeicherplattenlaufwerken 30 bis 38 und dem Bereitschaftsspeicherplattenlaufwerk 39 parallel verbunden ist und dafür ausgelegt ist, auf die Vielzahl von Arbeitsspeicherplattenlaufwerken 30 bis 38 parallel zuzugreifen, wenn durch eine Hostvorrichtung 1 ein Zugriff erfolgt. Ferner rekonstruiert die Plattenarraysteuereinheit 2, wenn ein Ausfall in einem der Arbeitsspeicherplattenlaufwerke auftritt, Daten, die in den ausgefallenen Arbeitsspeicherplattenlaufwerken gespeichert waren, aus dem Speicher in anderen Arbeitsspeicherplattenlaufwerken, wobei Reservezeit verwendet wird, während der durch die Hostvorrichtung 1 kein Zugriff erfolgt, und speichert die rekonstruierten Daten in dem Reservespeicherplattenlaufwerk 39. In diesem Fall überwacht die Plattenarraysteuereinheit 2 eine Zugriffsfrequenz der Hostvorrichtung 1, und eine Datenrekonstruktionsmenge wird gemäß der Zugriffsfrequenz verändert, bis die Reservezeit zur Verfügung steht.
- Ferner legt die Plattenarraysteuereinheit 2 eine kleine Datenrekonstruktionsmenge fest, wenn die Zugriffsfrequenz der Hostvorrichtung 1 hoch ist, während eine große Datenrekonstruktionsmenge festgelegt wird, wenn die Zugriffsfrequenz niedrig ist.
- Weiterhin legt die Plattenarraysteuereinheit 2 eine große Datenwiederherstellungsmenge fest, wenn ein Zustand mit hoher Zugriffsfrequenz länger als eine vorbestimmte Periode angedauert hat, auch wenn die Zugriffsfrequenz der Hostvorrichtung 1 hoch ist.
- Des weiteren unterscheidet die Plattenarraysteuereinheit 2 das Vorhandensein oder Nichtvorhandensein einer Zugriffsanforderung von der Hostvorrichtung 1, bestimmt, daß die Reservezeit verfügbar ist, wenn das Nichtvorhandensein der Zugriffsanforderung öfter als eine spezifizierte Anzahl von Malen unterschieden worden ist, und bestimmt die Zugriffsfrequenz auf der Basis einer Periode, die abgelaufen ist, bevor das Nichtvorhandensein der Zugriffsanforderung öfter als die spezifizierte Anzahl von Malen unterschieden worden ist.
- Außerdem enthält die Plattenarraysteuereinheit 2 einen Hostcontroller 4 zum steuerbaren Verbinden der Plattenarraysteuereinheit 2 mit der Hostvorrichtung 1, einen Gastcontroller 5, 6 zum Steuern der Speicherplattenlaufwerke 30 bis 39 auf parallele Weise, einen Datenübertragungscontroller 8 zum Übertragen von Daten zwischen dem Hostcontroller 4 und den Gastcontrollern 5, 6 und einen Hauptcontroller 7 zum Steuern dieser Controller. In diesem Fall ist der Hauptcontroller 7 dafür ausgelegt, die Zugriffsfrequenz der Hostvorrichtung 1 zu überwachen und für die Gastcontroller 5, 6 eine Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz festzulegen, bis die Reservezeit verfügbar ist, und die Gastcontroller 5, 6 sind dafür ausgelegt, einen Datenrekonstruktionsprozeß für die Datenrekonstruktionsmenge auszuführen.
- Ferner enthält der Hauptcontroller 7 einen Ruhezustandszähler 91 zum Zählen des Auftretens des Nichtvorhandenseins eines Zugriffs der Hostvorrichtung 1, zum Unterscheiden des Vorhandenseins oder Nichtvorhandenseins von Zugriffsanforderungen von der Hostvorrichtung 1, zum Bestimmen, daß die Reservezeit verfügbar ist, wenn ein Wert des Ruhezustandszählers 91 einen vorbestimmten Wert überschreitet, und bestimmt die Zugriffsfrequenz auf der Basis einer Periode, die abgelaufen ist, bis der Wert des Ruhezustandszählers 91 den vorbestimmten Wert überschreitet.
- Ferner legt der Hauptcontroller 7 eine kleine Datenrekonstruktionsmenge fest, wenn eine lange Periode abgelaufen ist, bevor der Wert des Ruhezustandszählers 91 den vorbestimmten Wert überschreitet, und legt eine große Datenrekonstruktionsmenge fest, wenn eine kurze Periode abgelaufen ist, bevor der Wert des Ruhezustandszählers 91 den vorbestimmten Wert überschreitet.
- Weiterhin enthält der Hauptcontroller 7 einen Zähler des hohen Zugriffs 92 zum Zählen der Anzahl der Male, wenn die Zugriffsfrequenz der Hostvorrichtung 1 hoch ist, und zum Festlegen einer großen Datenrekonstruktionsmenge, wenn ein Wert des Zählers des hohen Zugriffs 92 einen vorbestimmten Wert überschreitet.
- Die Plattenarraysteuereinheit 2 überwacht, wie in Fig. 10(A) und 10(B) gezeigt, die Zugriffsfrequenz der Hostvorrichtung 1 und verändert die Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz, bis die Reservezeit verfügbar ist. Daher kann sowohl der Zugriff der Hostvorrichtung 1 als auch der Datenrekonstruktionsprozeß effektiv ausgeführt werden, indem die Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz der Hostvorrichtung 1 verändert wird.
- Ferner legt die Plattenarraysteuereinheit 2 eine kleine Datenrekonstruktionsmenge fest, wenn die Zugriffsfrequenz der Hostvorrichtung 1 hoch ist, und legt eine große Datenrekonstruktionsmenge fest, wenn die Zugriffsfrequenz niedrig ist. Daher kann die Datenrekonstruktionsmenge gemäß dem Niveau der Zugriffsfrequenz verändert werden, wodurch sie leicht gesteuert wird.
- Des weiteren legt die Plattenarraysteuereinheit 2 eine große Datenrekonstruktionsmenge fest, wenn der Zustand mit hoher Zugriffsfrequenz länger als die vorbestimmte Periode angedauert hat, auch wenn die Zugriffsfrequenz der Hostvorrichtung 1 hoch ist. Falls der Zustand mit hoher Zugriffsfrequenz andauert, wird die Datenwiederherstellungsmenge weiterhin klein gehalten, wodurch eine längere Datenrekonstruktionszeit verursacht wird. Somit wird in diesem Fall zwingend eine große Datenrekonstruktionsmenge festgelegt, wodurch bewirkt wird, daß die Hostvorrichtung temporär wartet, um die Hostvorrichtung 1 mit der Datenrekonstruktion kompatibel zu machen.
- Ferner unterscheidet die Plattenarraysteuereinheit 2 das Vorhandensein oder Nichtvorhandensein einer Zugriffsanforderung von der Hostvorrichtung 1, bestimmt, daß die Reservezeit verfügbar ist, wenn das Nichtvorhandensein der Zugriffsanforderung öfter als eine spezifizierte Anzahl von Malen unterschieden worden ist, und bestimmt die Zugriffsfrequenz auf der Basis einer Periode, die abgelaufen ist, bevor das Nichtvorhandensein der Zugriffsanforderung öfter als die spezifizierte Anzahl von Malen unterschieden worden ist. Somit kann die Plattenarraysteuereinheit 2 die Zugriffsfrequenz leicht bestimmen.
- Außerdem enthält die Plattenarraysteuereinheit 2 einen Hostcontroller 4 zum steuerbaren Verbinden der Plattenarraysteuereinheit 2 mit der Hostvorrichtung 1, Gastcontroller 5, 6 zum parallelen Steuern der Speicherplattenvorrichtungen 30 bis 39, einen Datenübertragungscontroller 8 zum Übertragen von Daten zwischen dem Hostcontroller 4 und den Gastcontrollern 5, 6 und einen Hauptcontroller 7 zum Steuern dieser Controller. In diesem Fall ist der Hauptcontroller 7 dafür ausgelegt, die Zugriffsfrequenz der Hostvorrichtung 1 zu überwachen und für die Gastcontroller 5, 6 eine Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz festzulegen, bis die Reservezeit verfügbar ist, und die Gastcontroller 5, 6 sind dafür ausgelegt, einen Datenrekonstruktionsprozeß der Datenrekonstruktionsmenge auszuführen. Somit kann die Plattenarraysteuereinheit 2 die Datenrekonstruktionsmenge steuern, ohne durch den Zugriff der Hostvorrichtung 1 beeinflußt zu werden.
- Ferner enthält der Hauptcontroller 7 einen Ruhezustandszähler 91 zum Zählen des Auftretens des Nichtvorhandenseins eines Zugriffs der Hostvorrichtung 1, zum Unterscheiden des Vorhandenseins oder Nichtvorhandenseins einer Zugriffsanforderung von der Hostvorrichtung 1, zum Bestim men, daß die Reservezeit verfügbar ist, wenn ein Wert des Ruhezustandszählers 91 einen vorbestimmten Wert überschreitet, und zum Bestimmen der Zugriffsfrequenz auf der Basis einer Periode, die abgelaufen ist, bis der Wert des Ruhezustandszählers 91 den vorbestimmten Wer überschreitet. Die Zugriffsfrequenz kann auf der Basis einer Zähloperation des Ruhezustandszählers 91 bestimmt werden, und daher kann die Bestimmung mit einer einfachen Konstruktion erfolgen.
- Weiterhin legt der Hauptcontroller 7 eine kleine Datenrekonstruktionsmenge fest, wenn eine lange Periode abgelaufen ist, bevor der Wert des Ruhezustandszählers 91 den vorbestimmten Wert überschreitet, und legt eine große Datenrekonstruktionsmenge fest, wenn eine kurze Periode abgelaufen ist, bevor der Wert des Ruhezustandszählers 91 den vorbestimmten Wert überschreitet. Somit kann die Datenrekonstruktionsmenge leicht gesteuert werden.
- Ferner enthält der Hauptcontroller 7 einen Zähler des hohen Zugriffs 92 zum Zählen der Anzahl der Male, wenn die Zugriffsfrequenz der Hostvorrichtung 1 hoch ist, und zum Festlegen einer großen Datenrekonstruktionsmenge, wenn ein Wert des Zählers des hohen Zugriffs 92 einen vorbestimmten Wert überschreitet. Falls der Zustand der hohen Zugriffsfrequenz andauert, wird die Datenrekonstruktionsmenge weiterhin klein gehalten, woraus eine längere Zeit zum Rekonstruieren von Daten resultiert. Jedoch wird mit dem Zähler des hohen Zugriffs 92 die große Datenrekonstruktionsmenge in diesem Fall zwingend festgelegt, wodurch bewirkt wird, daß die Hostvorrichtung 1 temporär wartet, um die Hostvorrichtung 1 mit der Datenrekonstruktion kompatibel zu machen.
- Fig. 11 ist ein Blockdiagramm einer zweiten typischen Ausführungsform der vorliegenden Erfindung, und Fig. 12 ist ein Blockdiagramm einer Gastschnittstellensteuereinheit in der Ausführungsform von Fig. 11. Fig. 11 und 12 zeigen ein Magnetplattensystem des Arraytyps.
- In Fig. 11 ist eine Magnetplattenarraysteuereinheit 2 zusätzlich zu einem Kanalschnittstellencontroller 4, einem Vorrichtungsschnittstellencontroller 5, Vorrichtungscontrollern 60 bis 69 und einem Prozessor 7 mit einem Steuerspeicher (Speicher) 9a und einem TOD-Zeitgeber 9b, der als Takt dient, versehen.
- Der Steuerspeicher 9a enthält einen Programmbereich 90' zum Speichern eines Programms, einen Ruhezustandszähler 91 zum Zählen einer Ruhezustandsanzahl, und einen Zähler des hohen Zugriffs 96 zum Zählen der Anzahl der Zeiten des hohen Zugriffs einer Hostvorrichtung.
- In der gezeigten Ausführungsform ist eine Logikvorrichtung 3a, die Magnetplattenlaufwerke 30 bis 39 enthält, mit den Vorrichtungscontrollern 60 bis 69 verbunden. Jedoch ist tatsächlich eine Vielzahl von Logikvorrichtungen mit den Vorrichtungscontrollern 60 bis 69 verbunden, wie bei einem Beispiel, das in Fig. 1 gezeigt ist.
- Der Gastvorrichtungsschnittstellencontroller 5 enthält, wie in Fig. 12 gezeigt, einen Arraycontroller 5a und einen Prozeßcontroller 5b zum Steuern der jeweiligen Vorrichtungscontroller 60 bis 69, zum Erfassen von Zuständen von Controllern 60 bis 69 durch Empfangen von Antworten und zum Erteilen einer Antwort.
- Der Arraycontroller 5a enthält eine Befehlssteuer- und Antworteinheit 50 zum Steuern eines Datenübertragungscontrollers 51 und des Prozeßcontrollers 5b bei Empfang eines Befehls von dem Prozessor 7 und zum Erteilen einer Antwort an den Prozessor 7. Ferner enthält der Arraycontroller 5a den Datenübertragungscontroller 51 zum Hinzufügen von Paritätsdaten zu den Daten, die von der Hostvorrichtung 1 übertragen werden, zum Verteilen der Daten mit den hinzugefügten Paritätsdaten an die jeweiligen Vorrichtungscontroller 60 bis 69, zum Durchführen von Paritätsprüfungen für die Daten von den Vorrichtungscontrollern 60 bis 69 unter Verwendung von deren Paritätsdaten, zum Übertragen der geprüften Daten zu der Hostvorrichtung 1 und zum Rekonstruieren der Daten bei Empfang einer Instruktion, die die Rekonstruktion der Daten anfordert.
- Jeder der Vorrichtungscontroller 60 bis 69 enthält einen Befehls- und Antwortcontroller 600 zum Steuern der Magnetplattenlaufwerke 30 bis 39 gemäß einem Befehl von dem Verarbeitungscontroller 5b und zum Erteilen einer Antwort an den Prozeßcontroller 5b, einen Datenpuffer 601 zum Speichern von Daten für die und von den Magnetplattenlaufwerken 30 bis 39, eine CRC-Erzeugungs- und -Prüfschaltung 602 zum Erzeugen von CRC-Daten für jeden Block (512 Bytes) von Daten, die zu schreiben sind (Schreibdaten), und zum Prüfen der CRC-Daten für jeden Block von Daten, die zu lesen sind (Lesedaten), und eine ECC-Erzeugungs- und -Prüfschaltung 603 zum Erzeugen eines ECC (error correcting code) [Fehlerkorrekturcode] für jeden Block von Schreibdaten (die die CRC-Daten enthalten) und zum Prüfen des ECC für jeden Block von Lesedaten (die die CRC-Daten enthalten).
- Fig. 13 und 14 sind Flußdiagramme, die einen Prozeß einer zweiten Ausführungsform der vorliegenden Erfindung zeigen, und Fig. 15(A) und 15(B) sind Zeitdiagramme zum Erläutern einer Operation der zweiten Ausführungsform.
- Zuerst wird eine normale Zugriffsoperation der Hostvorrichtung 1 beschrieben.
- Zum Beispiel sendet der Prozessor 7 zu der Zeit eines Lesezugriffs von der Hostvorrichtung 1 einen Lesebefehl zu dem Befehls- und Antwortcontroller 50 des Arraycontrollers 5a des Vorrichtungsschnittstellencontrollers 5 und instruiert den Prozeßcontroller 5b zu bewirken, daß die jeweiligen Magnetplattenlaufwerke 30 bis 38 durch Steuern der Vorrichtungscontroller 60 bis 69 eine Suchoperation ausführen, um Zylinderpositionen zu lesen. Bei Vollendung der Suchoperation wird das Ende der Vorrichtungsoperation dem Prozessor 7 gemeldet, und dadurch tritt der Prozessor 7 in eine Übertragungssteuerung ein.
- Der Prozessor 7 aktiviert die Datenübertragungssteuereinheit 8 und den Kanalschnittstellencontroller 4. Ferner aktiviert der Befehls- und Antwortcontroller 50 den Datenübertragungscontroller 51. Danach werden die gewünschten Datenblöcke, die auf den Magnetplattenlaufwerken 30 bis 38 gespeichert sind, durch die Vorrichtungscontroller 60 bis 68 gelesen; wird die Paritätsprüfung auf die gelesenen Daten angewendet; und werden die Daten von den acht Magnetplattenvorrichtungen umorganisiert, um durch die Datenübertragungssteuereinheit 8 und den Kanalschnittstellencontroller 4 zu der Hostvorrichtung 1 übertragen zu werden.
- Falls sich zum Beispiel eine Dateneinheit, die gleichzeitig zu übertragen ist, auf 4096 Bytes beläuft, wird ein Block (512 Bytes) von Daten in jedem der Magnetplattenlaufwerke für Daten 30 bis 37 gespeichert. Eine Spur wird in Fig. 15(A) aus 93 Blöcken gebildet.
- Ein Bit von Paritätsdaten wird jeweils für 8 Bits von Daten an derselben Bitposition für 512 Bytes Daten erzeugt, die in jedem der acht Magnetplattenvorrichtungen für Daten 30 bis 37 gespeichert sind. Daher werden für 4096 Bytes von Daten 512 Bytes von Paritätsdaten in einem Block des Magnetplattenlaufwerks für Paritätsdaten 38 gespeichert.
- Andererseits werden in den Vorrichtungscontrollern 60 bis 68 für die Magnetplattenlaufwerke 30 bis 38 die CRC- Daten zu jedem Block (512 Bytes) von Daten hinzugefügt, und der ECC wird zu einem Block von Daten (der die CRC-Daten enthält) hinzugefügt. Wenn die Daten gelesen werden, prüft die CRC-Erzeugungs- und -Prüfschaltung 602 die CRC-Daten für jeden Block von Daten, und die ECC-Erzeugungs- und -Prüfschaltung 603 prüft den ECC für jeden Block von Daten (der die CRC-Daten enthält).
- In den Magnetplattenlaufwerken 30 bis 38 werden eine CRC-Prüfung und eine ECC-Prüfung auf jeden Block von Daten angewendet, wie oben beschrieben, und in dem Datenübertragungscontroller 51 wird die Paritätsprüfung auf die Daten von den Magnetplattenlaufwerken 30 bis 37 unter Verwendung der Paritätsdaten von dem Magnetplattenlaufwerk 38 angewendet.
- Als nächstes wird unter Bezugnahme auf Fig. 13 und 14 ein Prozeß der Ausführungsform beschrieben.
- (1) Wenn die Plattenarrayvorrichtung eingeschaltet wird, wird ein Energie-Ein-Rücksetzprozeß ausgeführt, der das Initialisieren des Ruhezustandszählers 91 und des Zählers des hohen Zugriffs 96 enthält.
- (2) Der Prozessor 7 unterscheidet, ob von der Hostvorrichtung 1 durch den Kanalschnittstellencontroller 4 irgendeine Zugriffsanforderung (Befehl) erfolgt oder nicht. Falls eine Zugriffsanforderung (Befehl) vorhanden ist, führt der Prozessor 7 den Befehl von der Hostvorrichtung 1 aus und kehrt zu dem vorhergehenden Schritt zurück, um zu unterscheiden, ob eine Zugriffsanforderung (Befehl) von der Hostvorrichtung 1 vorhanden ist oder nicht.
- Falls keine Zugriffsanforderung von der Hostvorrichtung 1 vorliegt, unterscheidet der Prozessor 7, ob eine Vorrichtungsend-(DV END)-Unterbrechung von dem Vorrichtungsschnittstellencontroller 5 oder eine Steuereinheitsend-(CU END)-Unterbrechung von dem Kanalschnittstellencontroller 4 vorliegt oder nicht. Falls solch eine Unterbrechung vorliegt, führt der Prozessor 7 die Unterbrechungsverarbeitungsroutine aus und kehrt zu dem vorhergehenden Schritt zurück, um zu unterscheiden, ob irgendeine Zugriffsanforderung (Befehl) von der Hostvorrichtung 1 vorhanden ist oder nicht.
- (3) Falls weder die Vorrichtungsend-(DV END)-Unterbrechung noch die Steuereinheitsend-(CU END)-Unterbrechung vorhanden ist, bestimmt der Prozessor 7, daß die Verarbeitungsreservezeit verfügbar ist. Dann inkrementiert der Prozessor 7 den Inhalt des Ruhezustandszählers 91 des Speichers 9a um eins und vergleicht den Inhalt des Ruhezustandszählers 91 (Reserveverarbeitungszeit) mit einem vorbestimm ten Wert S. Falls der Inhalt des Ruhezustandszählers 91 den vorbestimmten Wert S nicht überschreitet, kehrt der Prozessor zu Schritt (2) zurück.
- (4) Wenn der Inhalt des Ruhezustandszählers 91 den vorbestimmten Wert S überschreitet, bedeutet das, daß die Reserveverarbeitungszeit den vorbestimmten Wert S überschreitet. Daher unterscheidet der Prozessor 7, ob ein Rekonstruktionsprozeß erforderlich ist oder nicht.
- Der Gastvorrichtungsschnittstellencontroller 5 gibt an den Prozessor 7 eine Rekonstruktionsverarbeitungsanforderung aus, wenn ein Lesefehler oder dergleichen in einem der Magnetplattenlaufwerke öfter als eine spezifizierte Anzahl von Malen auftritt, wie oben beschrieben. Der Prozessor 7 unterscheidet, ob eine Rekonstruktionsverarbeitungsanforderung von dem Vorrichtungsschnittstellencontroller 5 vorhanden ist oder nicht, und kehrt zu Schritt (2) zurück, falls keine solche Anforderung vorliegt. Beim Bestimmen, daß eine Rekonstruktionsverarbeitungsanforderung von dem Vorrichtungsschnittstellencontroller 5 vorliegt, versetzt der Prozessor 7 andererseits den Kanalschnittstellencontroller 4 in einen CU-BUSY-Zustand, wodurch der Zugriffsempfang von der Hostvorrichtung 1 verhindert wird. Zusätzlich liest der Prozessor 7 eine Zeit (TOD) des TOD-Zeitgebers 9b, die in dem vorhergehenden Zyklus gelesen wurde, aus dem Programmbereich 90' des Speichers 9a; liest eine gegenwärtige Zeit (TOD) des TOD-Zeitgebers 9b; speichert die gegenwärtige Zeit (TOD) in dem Programmbereich 90' des Speichers 9a; und vergleicht den TOD-Zeitgeberwert in dem vorhergehenden Zyklus mit dem in dem gegenwärtigen Zyklus.
- (5) Der Prozessor 7 berechnet eine Differenz zwischen dem vorherigen TOD-Zeitgeberwert und dem gegenwärtigen TOD- Zeitgeberwert und vergleicht den berechneten Wert mit einem vorbestimmten Wert (Zeitintervall) TS.
- Diese Operation wird unter Bezugnahme auf Fig. 15(B) beschrieben. Falls der vorherige TOD-Zeitgeberwert (Zeit) auf t1 eingestellt ist und der gegenwärtige TOD- Zeitgeberwert (Zeit) auf t2 eingestellt ist, gibt die Differenz T1 ein Zeitintervall an, während dem der Inhalt des Ruhezustandszählers 91, d. h., die Reserveverarbeitungszeit, den vorbestimmten Wert S erreicht.
- Daher bezeichnet ein langes Zeitintervall T1 häufige Zugriffe und eine geringe Wahrscheinlichkeit des Vorsehens der Reserveverarbeitungszeit, und deshalb wird bestimmt, daß die Hostvorrichtung 1 eine hohe Zugriffsfrequenz hat. Umgekehrt deutet ein kurzes Zeitintervall T2 auf weniger Zugriffe und eine hohe Wahrscheinlichkeit des periodischen Vorsehens der Reserveverarbeitungszeit, und deshalb wird bestimmt, daß die Hostvorrichtung 1 eine niedrige Zugriffsfrequenz hat.
- Falls das Zeitintervall, welches die Differenz zwischen den vorhergehenden und den gegenwärtigen TOD-Zeitgeberwerten darstellt, größer als der vorbestimmte Wert TS ist, wird somit bestimmt, daß die Hostvorrichtung eine hohe Zugriffsfrequenz hat. Falls das Zeitintervall, welches die Differenz zwischen den vorhergehenden und den gegenwärtigen TOD-Zeitgeberwerten darstellt, andererseits nicht größer als die vorbestimmten Werte TS ist, wird bestimmt, daß die Hostvorrichtung eine niedrige Zugriffsfrequenz hat.
- Beim Bestimmen, daß die Hostvorrichtung eine hohe Zugriffsfrequenz hat, inkrementiert der Prozessor 7 den Inhalt des Zählers des hohen Zugriffs 96 des Speicher 9a um eins.
- (6) Anschließend vergleicht der Prozessor 7 den Inhalt des Zählers des hohen Zugriffs 96 mit einem vorbestimmten Wert A und unterscheidet, ob der Inhalt des Zählers des hohen Zugriffs 96 den vorbestimmten Wert A überschreitet.
- Falls der Inhalt des Zählers des hohen Zugriffs 92 den vorbestimmten Wert A überschreitet, geht der Prozessor 7 zu Schritt (7) über, da die hohe Zugriffsfrequenz fortgesetzt worden ist. Falls der Inhalt des Zählers des hohen Zugriffs 96 im Gegensatz dazu den vorbestimmten Wert A nicht überschreitet, legt der Prozessor 7 die Datenrekonstruktionsmenge während eines Rekonstruktionsprozesses auf einen kleinen Wert (z. B. eine Spur) fest, um einen Rekonstruktionsprozeß auszuführen, ohne daß die Hostvorrichtung 1 warten muß, da die hohe Zugriffsfrequenz fortgesetzt wird, und geht dann zu Schritt (8) über.
- (7) Falls andererseits bei Schritt (5) bestimmt wird, daß die Hostvorrichtung eine niedrige Zugriffsfrequenz hat, oder falls bei Schritt (6) bestimmt wird, daß die hohe Zugriffsfrequenz fortgesetzt worden ist, initialisiert der Prozessor 7 den Inhalt des Zählers des hohen Zugriffs 96 (d. h., er setzt ihn auf 0 zurück); legt die Datenrekonstruktionsmenge während eines Rekonstruktionsprozesses auf einen großen Wert (z. B. auf einen Zylinder) fest, um die Rekonstruktionsverarbeitung hinreichend auszuführen; und geht zu Schritt (8) über.
- (8) Der Prozessor 7 legt die Datenrekonstruktionsmenge in dem Vorrichtungsschnittstellencontroller 5 fest und instruiert den Vorrichtungsschnittstellencontroller 5, eine Datenrekonstruktion auszuführen.
- Bei Empfang der Instruktion rekonstruiert der Vorrichtungsschnittstellencontroller 5 die Daten in dem ausgefallenen Magnetplattenlaufwerk auf der Basis der Daten, die in den Magnetplattenlaufwerken 30 bis 38, außer dem ausgefallenen, wie oben beschrieben, gespeichert sind, und setzt die rekonstruierten Daten in das Reservemagnetplattenlaufwerk 39. Der Controller 5 rekonstruiert die Daten der festgelegten Menge und vollendet die eine Datenrekonstruktionsverarbeitung für einen Zyklus.
- Der Prozessor 7 wartet, bis ein Datenrekonstruktionsprozeß vollendet ist. Bei Vollendung des einen Datenwiederherstellungsprozesses holt der Prozessor 7 den Kanal schnittstellencontroller 4 aus dem CU-BUSY-Zustand heraus, gestattet den Empfang eines Zugriffs von der Hostvorrichtung 1 und kehrt zu Schritt (2) zurück.
- Auf diese Weise wird die Zugriffsfrequenz der Hostvorrichtung 1 beim Ausführen der Datenrekonstruktionsverarbeitung während der Reserveverarbeitungszeit der Plattenarraysteuereinheit 2 überwacht, und die Datenrekonstruktionsmenge wird gemäß der Zugriffsfrequenz gesteuert, wodurch die Effektivität des Zugriffs der Hostvorrichtung 1 und des Rekonstruktionsprozesses verbessert wird.
- Falls die Zugriffsfrequenz ferner hoch ist, wird die Datenrekonstruktionsmenge auf einen kleinen Wert gesetzt, damit die Hostvorrichtung 1 nicht eine lange Zeit warten muß. Falls die Zugriffsfrequenz im Gegenteil niedrig ist, wird dem Datenrekonstruktionsprozeß Priorität verliehen, und die Datenrekonstruktionsmenge wird auf einen großen Wert gesetzt, da von der Hostvorrichtung 1 weniger Zugriff e vorhanden sind. Daher kann der vollständige Datenrekonstruktionsprozeß in kurzer Zeit ausgeführt werden, ohne daß die Hostvorrichtung 1 warten muß.
- Falls weiterhin die hohe Zugriffsfrequenz fortgesetzt worden ist, ist die Datenrekonstruktion verzögert, woraus eine verzögerte Zugriffszeit der Hostvorrichtung 1 resultiert. Deshalb wird die Datenrekonstruktionsmenge in diesem Fall auf einen großen Wert gesetzt, wodurch bewirkt wird, daß die Hostvorrichtung 1 temporär wartet, so daß die Datenrekonstruktion schnell vollendet werden kann.
- Da des weiteren die Ruhezustandsanzahl gezählt wird, um die Reserveverarbeitungszeit und die Zugriffsfrequenz zu detektieren, können diese Detektionen durch einen einfachen Prozeß erfolgen.
- Zusätzlich zu der obigen zweiten Ausführungsform kann das System auf folgende Weise abgewandelt werden.
- (1) Obwohl die obige Beschreibung in der obigen Ausführungsform eine Plattenarrayvorrichtung betrifft, die mit den Magnetplattenvorrichtungen versehen ist, sind Ausführungsformen der Erfindung auf eine Plattenarrayvorrichtung anwendbar, die mit optischen Plattenlaufwerken oder ähnlichen Plattenlaufwerken versehen ist, die mechanisch arbeiten.
- (2) In der obigen Ausführungsform wird die Ruhezustandsanzahl gezählt, um die Zugriffsfrequenz zu detektieren. Es kann jedoch zweckmäßig sein, eine Zugriffsanzahl der Hostvorrichtung zu zählen und die Zugriffsfrequenz in der Reserveverarbeitungszeit auf der Basis der gezählten Zugriffsanzahl zu bestimmen. Ferner wird bei der obigen Ausführungsform die Zugriffsfrequenz auf der Basis des Zeitintervalls bestimmt, das bestimmt wird, wenn die Ruhezustandsanzahl einen vorbestimmten Wert erreicht. Die Zugriffsfrequenz kann jedoch aus der Ruhezustandsanzahl in jedem spezifizierten Zyklus bestimmt werden.
- (3) Obwohl in der obigen Ausführungsform ein Reserveplattenlaufwerk vorgesehen ist, können zwei oder mehr Reserveplattenlaufwerke vorgesehen sein.
- Während die obige Beschreibung die ersten und zweiten Ausführungsformen betrifft, können verschiedene Veränderungen und Abwandlungen vorgenommen werden.
- Die zweite Ausführungsform hat, wie oben beschrieben, die folgenden Effekte.
- (1) Eine Plattenarraysteuereinheit 2 überwacht eine Zugriffsfrequenz einer Hostvorrichtung 1 und verändert eine Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz, bis eine Reservezeit verfügbar wird. Daher kann die Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz der Hostvorrichtung 1 verändert werden, wodurch eine effektive Ausführung des Zugriffs der Hostvorrichtung 1 und des Datenrekonstruktionsprozesses ermöglicht wird.
- (2) Da der Rekonstruktionsprozeß in kurzer Zeit ausgeführt werden kann, ohne daß die Hostvorrichtung eine lange Zeit warten muß, kann der Rekonstruktionsprozeß vollendet werden, ohne die Verarbeitung der Hostvorrichtung groß zu beeinträchtigen, und die Plattenarrayvorrichtung kann sich wieder ihrer Hauptarbeit zuwenden. Deshalb wird eine Verarbeitungsgeschwindigkeit eines gesamten Systems bei einem Ausfall eines Speicherplattenlaufwerks nur während einer kurzen Periode reduziert.
- Um hierbei das Verstehen der Ausführungsformen gemäß der vorliegenden Erfindung zu erleichtern, ist in Fig. 16 eine perspektivische, teilweise weggeschnittene Ansicht gezeigt, die einen Mechanismus von einem Magnetplattenlaufwerk darstellt. Eine Vielzahl von Platten (z. B. elf Platten) 105 wird, wie aus der Figur hervorgeht, gleichzeitig rotiert. Die Spuren auf einer Aufzeichnungsoberfläche von jeder Platte 105 werden mit einem vorbestimmten Datenmuster beschrieben. Die Spuren an den beiden Enden der inneren Zone und der äußeren Zone der Platte 105 sind jedoch als Schutzbänder 150 gebildet, in die anstelle eines Datenmusters ein besonderes Muster geschrieben wird, welches besondere Muster zum Stoppen einer Suchoperation von zwei Arten von Köpfen 130 und 131 verwendet wird. Die Köpfe 130, 131 sind auf den oberen und unteren Oberflächen von jeder Platte 105 vorgesehen. Ferner ist auf den inneren und äußeren Seiten des Schutzbandes 150 eine Löschzone 155 zum mechanischen Stoppen der Köpfe 130 und 131 gebildet.
- Vorzugsweise sind Ausführungsformen der vorliegenden Erfindung für eine Plattenarrayvorrichtung 140 bestimmt, wie sie in Fig. 17 gezeigt ist, wobei Bezugszeichen 104 ein Magnetplattenlaufwerk bezeichnet, das die Platten 105 enthält, und 141 ein Gehäuse bezeichnet, das eine Vielzahl von Magnetplattenlaufwerken aufnehmen kann. In diesem Fall umfaßt die Plattenarrayvorrichtung acht Plattenlaufwerke zur Datenübertragung, ein Paritätsplattenlaufwerk und ein Reservespeicherplattenlaufwerk.
- Die Magnetplattenlaufwerke 104, die jede Einheit einer Plattenarrayvorrichtung bilden, umfassen ein Plattengehäuse 108. Das Plattengehäuse 108 dient dazu, die Platten 105 und das periphere Schaltungsmodul 107 innerhalb des Plattengehäuses per se aufzunehmen.
- Jedes Magnetplattenlaufwerk 104 ist gebildet, um leicht in das Gehäuse 141 eingesetzt und auch leicht aus ihm entfernt werden zu können, so daß eine Wartungsoperation schnell ausgeführt werden kann, wenn ein Ausfall, etc., aufgetreten ist.
- Um ferner die gesamte Konstruktion eines Plattenarraysystems zu verdeutlichen, auf das Ausführungsformen der vorliegenden Erfindung angewendet werden, ist in Fig. 18 das Äußere einer Vielzahl von Plattenarrayvorrichtungen einschließlich des Bedienfeldes 226 gezeigt.
- In Fig. 18 ist ein Plattenarraysystem aus einer Vielzahl von Plattenarrayvorrichtungen wie z. B. aus zwei Plattenarrayvorrichtungen 140 und einer Plattenarraysteuereinheit 120 zum Steuern dieser Plattenarrayvorrichtungen 140 gebildet. Die zwei Plattenarraylaufwerke 140 und der Plattencontroller sind angeordnet, um in einem Gehäuse 141 enthalten zu sein. In diesem Fall ist die Vorderseite des Gehäuses 141 an jeder Plattenarrayvorrichtung 140 zusätzlich zu einer Vielzahl von Ventilationsfenstern 143 zum Abstrahlen von Wärme, die von einer Vielzahl von Plattenlaufwerken (in Fig. 18 nicht gezeigt) erzeugt wird, mit dem Bedienfeld 226 versehen. Ferner ist die Vorderseite des Gehäuses 141 an dem Plattencontroller 120 auch mit dem Bedienfeld 226 versehen.
- Schließlich sind in Fig. 19(A) und 19(B) Blockdiagramme einer Plattenarraysteuereinheit 120 bzw. einer Vielzahl von Plattenarrayvorrichtungen 140 gezeigt, die durch die Plattenarraysteuereinheit 120 gesteuert werden. In diesem Fall können maximal acht Plattenlaufwerke durch den Plattencontroller 120 gesteuert werden, der eine Vielzahl von Direktoren hat.
- In Fig. 19(A) sind optische Hochgeschwindigkeitskanäle A, B, C und D und Kanalschnittstellencontroller, z. B. optische Hochgeschwindigkeitssteuermodule, die jeweils als optisch/elektrische Schnittstelle (O/E-Schnittstelle) fungieren, vorgesehen, um Daten mit hoher Geschwindigkeit zwischen dem Kanal und den Plattenarrayvorrichtungen 140 übertragen zu können. Die Plattenarraysteuereinheit 120 ist aus zwei Direktoren gebildet. Jeder Direktor umfaßt zwei Module: das optische Steuermodul, wie oben beschrieben; und ein Arraysteuermodul, um die Plattenarrayvorrichtungen 140 zu steuern.
- Das letztere Modul ist geteilt in zehn Vorrichtungscontroller, um die jeweilig entsprechenden Plattenlaufwerke (Laufwerk 0 - 7, Laufwerk P und Laufwerk S, wie in Fig. 19(B) gezeigt) zu steuern, und in einen Arraydatencontroller, um die Daten zu und von jedem der Vorrichtungscontroller zu übertragen.
- Die zwei Direktoren in der Plattenarraysteuereinheit sind voneinander unabhängig. Diese Direktoren können zwei Gruppen von Plattenarrayvorrichtungen gleichzeitig steuern.
- In diesem Fall kann das Bedienfeld 226 (Fig. 18) die Statusinformationen von jeder der zwei Plattenarrayvorrichtungen anzeigen.
Claims (21)
1. Vorrichtung zum Steuern eines Hintergrundprozesses
in einer Plattenarrayvorrichtung, die eine Vielzahl von
Speicherplattenlaufwerken (30-39) enthält, mit:
einer Plattenarraysteuereinheit (2), die dafür
ausgelegt ist, auf die Vielzahl von Speicherplattenlaufwerken
(30-39) parallel zuzugreifen, wenn ein Befehl für einen
Zugriff von einer Hostvorrichtung (1) ausgegeben wird, und
die auch dafür ausgelegt ist, einen Hintergrundprozeß für
die Vielzahl von Speicherplattenlaufwerken (30-39)
auszuführen, der mit dem Zugriff von der Hostvorrichtung nicht
unbedingt verbunden ist;
einem Mittel zum Überwachen eines gegenwärtigen Status
des Zugriffs von der Hostvorrichtung (1); und
einem Mittel zum Einstellen eines
Operationsverhältnisses von genanntem Hintergrundprozeß zu genanntem Zugriff
gemäß dem gegenwärtigen Status des Zugriffs;
bei der die Plattenarraysteuereinheit (2) umfaßt:
ein Zählmittel zum Zählen einer Datenübertragungsmenge
zu oder von der Hostvorrichtung (1), die eine Belegungszeit
der Hostvorrichtung darstellt, und/oder zum Zählen einer
Zugriffsfrequenz der Hostvorrichtung;
ein Mittel zum temporären Zurückhalten einer
Zugriffsanforderung von der Hostvorrichtung (1) in Abhängigkeit
davon, ob irgendeine Hintergrundverarbeitungsanforderung
vorhanden ist oder nicht, wenn die Belegungszeit eine
vorbestimmte Größe erreicht oder die Zugriffsfrequenz einen
vorbestimmten Wert erreicht; und
ein Mittel zum Ausführen des Hintergrundprozesses vor
der Zugriffsanforderung von der Hostvorrichtung (1), wenn
die Hintergrundverarbeitungsanforderung mit der
Zugriffsanforderung in Konflikt steht und der vorbestimmte Wert oder
die vorbestimmte Größe erreicht worden ist.
2. Vorrichtung nach Anspruch 1, bei der das
Zählmittel einen Ruhezustandszähler (91) enthält und bei der die
Plattenarraysteuereinheit (2) operativ ist, um den Inhalt
des Ruhezustandszählers (91) bei jedem Durchlauf eines
Verarbeitungsprogramms zu inkrementieren, um die
Hintergrundverarbeitungsanforderung zu akzeptieren, wenn der
Inhalt des Ruhezustandszählers (91) eine vorbestimmte Anzahl
erreicht, um die Zugriffsanforderung von der Hostvorrichtung
(1) temporär zurückzuhalten, wenn die Datenübertragungsmenge
die vorbestimmte Menge erreicht, und um den akzeptierten
Hintergrundprozeß auszuführen.
3. Vorrichtung nach Anspruch 1 oder 2, bei der die
Plattenarraysteuereinheit (2) operativ ist, um den
akzeptierten Hintergrundprozeß bei Bestimmung dessen auszuführen,
daß von der Hostvorrichtung (1) kein Zugriff erfolgt.
4. Vorrichtung nach Anspruch 1, 2 oder 3, bei der die
Plattenarraysteuereinheit (2) operativ ist, um die
Datenübertragungsmenge bei Vollendung des Hintergrundprozesses zu
löschen.
5. Vorrichtung nach Anspruch 1, bei der die
Plattenarraysteuereinheit (2) enthält:
einen Hostcontroller (4) zum steuerbaren Verbinden der
Plattenarraysteuereinheit (2) mit der Hostvorrichtung (1);
Gastcontroller (5, 6) zum parallelen Steuern der
Speicherplattenlaufwerke (30-39);
einen Datenübertragungscontroller (8) zum Übertragen
von Daten zwischen dem Hostcontroller (4) und den
Gastcontrollern (5, 6); und
einen Hauptcontroller (7) zum Steuern dieser
Controller, welcher Hauptcontroller (7) dafür ausgelegt ist, den
Zugriff von der Hostvorrichtung (1) zu überwachen, eine
Hintergrundverarbeitungsanforderung von den Gastcontrollern
(5, 6) zu akzeptieren, das Zählmittel zu überwachen, eine
Zugriffsanforderung von der Hostvorrichtung (1) temporär
zurückzuhalten, wenn die Datenübertragungsmenge die
vorbestimmte Menge erreicht oder die Zugriffsfrequenz den
vorbestimmten Wert erreicht, und die Gastcontroller (5, 6) den
akzeptierten Hintergrundprozeß ausführen zu lassen.
6. Vorrichtung nach Anspruch 5, bei der das
Zählmittel einen Ruhezustandszähler (91) enthält, zum Zählen der
Anzahl der Male, wie oft ein Verarbeitungsprogramm
ausgeführt wird, und einen Übertragungsblockzähler (92) zum
Zählen der Datenübertragungsmenge zu oder von der
Hostvorrichtung (1), und bei der der Hauptcontroller (7) operativ
ist, um die Hintergrundverarbeitungsanforderung zu
akzeptieren, wenn der Inhalt des Ruhezustandszählers (91) eine
vorbestimmte Anzahl erreicht, um die Zugriffsanforderung von
der Hostvorrichtung (1) temporär zurückzuhalten, wenn die
Datenübertragungsmenge die vorbestimmte Menge erreicht, und
den akzeptierten Hintergrundprozeß auszuführen.
7. Vorrichtung nach Anspruch 6, bei der der
Hauptcontroller (7) operativ ist, um den akzeptierten
Hintergrundprozeß bei Bestimmung dessen auszuführen, daß von der
Rostvorrichtung (1) kein Zugriff erfolgt.
8. Vorrichtung nach irgendeinem vorhergehenden
Anspruch, bei der die Speicherplattenlaufwerke (30-39) eine
Vielzahl von Arbeitsspeicherplattenlaufwerken (30-38) und
ein Reservespeicherplattenlaufwerk (39) enthalten, und bei
der der Hintergrundprozeß ein Datenrekonstruktionsprozeß
ist, der ausgeführt wird, wenn eines der
Arbeitsspeicherplattenlaufwerke (30-38) ausfällt, zum Rekonstruieren von
Daten, die auf dem ausgefallenen Speicherplattenlaufwerk
gespeichert waren, aus Daten, die in anderen
Arbeitsspeicherplattenlaufwerken gespeichert sind, und Schreiben der
rekonstruierten Daten auf das Reservespeicherplattenlaufwerk
(39).
9. Vorrichtung nach irgendeinem der Ansprüche 1 bis
8, bei der der Hintergrundprozeß ein Ersetzungsprozeß zum
Ersetzen eines ausgefallenen Teils der
Speicherplattenlaufwerke (30-39) ist.
10. Vorrichtung nach irgendeinem der Ansprüche 1 bis
8, bei der der Hintergrundprozeß ein
Medieninitialisierungsprozeß für die Speicherplattenlaufwerke (30-39) ist.
11. Vorrichtung nach Anspruch 5, bei der das
Zählmittel einen Ruhezustandszähler (91) enthält, zum Zählen der
Anzahl der Male, wenn ein Verarbeitungsprogramm ausgeführt
wird, und einen Zugriffszähler (95), zum Zählen der
Zugriffsfrequenz der Hostvorrichtung (1), und bei der der
Hauptcontroller (7) operativ ist, um die
Hintergrundverarbeitungsanforderung zu akzeptieren, wenn der Inhalt des
Ruhezustandszählers (91) eine vorbestimmte Anzahl erreicht,
um die Zugriffsanforderung von der Hostvorrichtung (1)
temporär zurückzuhalten, wenn die Zugriffsfrequenz einen
vorbestimmten Wert erreicht, und um den akzeptierten
Hintergrundprozeß auszuführen.
12. Vorrichtung nach Anspruch 5, bei der das
Zählmittel einen Ruhezustandszähler (91) enthält, zum Zählen der
Anzahl der Male, wenn ein Verarbeitungsprogramm ausgeführt
wird, einen Übertragungszähler (92), zum Zählen der
Datenübertragungsmenge zu oder von der Hostvorrichtung (1), und
einen Zugriffszähler (95), zum Zählen der Zugriffsfrequenz
der Hostvorrichtung (1), und bei der der Hauptcontroller (7)
operativ ist, um die Hintergrundverarbeitungsanforderung zu
akzeptieren, wenn der Inhalt des Ruhezustandszählers (91)
eine vorbestimmte Anzahl erreicht, um die
Zugriffsanforde
rung von der Hostvorrichtung (1) temporär zurückzuhalten,
wenn die Datenübertragung eine vorbestimmte Menge erreicht
oder wenn die Zugriffsfrequenz einen vorbestimmten Wert
erreicht, und um den akzeptierten Hintergrundprozeß
auszuführen.
13. Vorrichtung nach Anspruch 1, bei der die Vielzahl
von Speicherplattenlaufwerken (30-39) ein
Reservespeicherplattenlaufwerk (39) enthält und die Hintergrundverarbeitung
eine Datenrekonstruktionsverarbeitung ist, bei der das
Zählmittel ein Mittel zum Zählen der Zugriffsfrequenz der
Hostvorrichtung (1) enthält und bei der die
Plattenarraysteuereinheit (2) operativ ist, wenn eines von
Arbeitsspeicherplattenlaufwerken ausfällt, um Daten, die in dem
ausgefallenen Arbeitsspeicherplattenlaufwerk gespeichert waren,
aus Daten zu rekonstruieren, die in anderen
Arbeitsspeicherplattenlaufwerken gespeichert sind, wobei Reservezeit
verwendet wird, während der von der Hostvorrichtung (1) kein
Zugriff erfolgt, um die rekonstruierten Daten in dem
Reservespeicherplattenlaufwerk (39) zu speichern und eine
Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz zu
verändern, bis die Reservezeit verfügbar wird.
14. Vorrichtung nach Anspruch 13, bei der die
Plattenarraysteuereinheit (2) operativ ist, um eine
Datenrekonstruktionsmenge auf eine kleine Menge zu setzen, wenn die
Zugriffsfrequenz der Hostvorrichtung (1) hoch ist, und die
Datenrekonstruktionsmenge auf eine große Menge zu setzen,
wenn die Zugriffsfrequenz von ihr niedrig ist.
15. Vorrichtung nach Anspruch 13 oder 14, bei der die
Plattenarraysteuereinheit (2) operativ ist, um eine
Datenrekonstruktionsmenge auf eine große Menge zu setzen, wenn
ein Zustand mit hoher Zugriffsfrequenz für mehr als eine
vorbestimmte Periode fortgesetzt worden ist, auch wenn die
Zugriffsfrequenz der Hostvorrichtung (1) hoch ist.
16. Vorrichtung nach Anspruch 13, 14 oder 15, bei der
die Plattenarraysteuereinheit (2) operativ ist, um das
Vorhandensein oder Nichtvorhandensein einer
Zugriffsanforderung von der Hostvorrichtung (1) zu unterscheiden, zu
bestimmen, daß die Reservezeit verfügbar ist, wenn das
Nichtvorhandensein der Zugriffsanforderung öfter als eine
spezifizierte Anzahl von Malen unterschieden worden ist, und die
Zugriffsfrequenz auf der Basis einer Periode zu bestimmen,
die abgelaufen ist, seitdem das Nichtvorhandensein der
Zugriffsanforderung öfter als die spezifizierte Anzahl von
Malen unterschieden worden ist.
17. Vorrichtung nach Anspruch 16, bei der das
Zählmittel einen Ruhezustandszähler (91) enthält, zum Zählen des
Auftretens des Nichtvorhandenseins des Zugriffs der
Hostvorrichtung (1), und bei der der Hauptcontroller (7) bestimmt,
daß die Reservezeit verfügbar ist, wenn ein Wert des
Ruhezustandszählers (91) eine vorbestimmte Anzahl überschreitet,
und die Zugriffsfrequenz auf der Basis einer Periode
bestimmt, die abgelaufen ist, bevor der Wert des
Ruhezustandszählers (91) die vorbestimmte Anzahl überschreitet.
18. Vorrichtung nach Anspruch 17, bei der der
Hauptcontroller (7) operativ ist, um eine
Datenrekonstruktionsmenge auf eine kleine Menge zu setzen, wenn eine lange
Periode abgelaufen ist, bis der Wert des Ruhezustandszählers
(91) die vorbestimmte Anzahl überschreitet, und die
Datenrekonstruktionsmenge auf eine große Menge setzt, wenn eine
kurze Periode abgelaufen ist, bevor der Wert des
Ruhezustandszählers (91) die vorbestimmte Anzahl überschreitet.
19. Vorrichtung nach Anspruch 17, bei der das
Zählmittel einen Zähler des hohen Zugriffs (96) enthält, zum Zählen
der Anzahl der Male, wenn die Zugriffsfrequenz der
Hostvorrichtung (1) hoch ist, und bei der der Hauptcontroller (7)
operativ ist, um die Datenrekonstruktionsmenge auf eine
große Menge zu setzen, wenn ein Wert des Zählers des hohen
Zugriffs (92) eine vorbestimmte Anzahl überschreitet.
20. Verfahren zum Steuern eines Hintergrundprozesses
in einer Plattenarrayvorrichtung, die eine Vielzahl von
Speicherplattenlaufwerken (30-39) enthält, bei dem eine
Plattenarraysteuereinheit (2) dafür ausgelegt ist, um auf
die Vielzahl von Speicherplattenlaufwerken (30-39) parallel
zuzugreifen, wenn ein Befehl für einen Zugriff von einer
Hostvorrichtung (1) ausgegeben wird, und auch dafür
ausgelegt ist, um einen Hintergrundprozeß für die Vielzahl von
Speicherplattenlaufwerken (30-39) auszuführen, der mit dem
Zugriff von der Hostvorrichtung nicht unbedingt verbunden
ist, welches Verfahren die folgenden Schritte enthält:
Überwachen des gegenwärtigen Status des Zugriffs von
der Hostvorrichtung (1);
Einstellen eines Operationsverhältnisses von genanntem
Hintergrundprozeß zu genanntem Zugriff gemäß dem
gegenwärtigen Status des Zugriffs;
Zählen einer Datenübertragungsmenge zu oder von der
Hostvorrichtung (1), die eine Belegungszeit der
Hostvorrichtung darstellt, oder Zählen einer Zugriffsfrequenz der
Hostvorrichtung;
temporäres Zurückhalten einer Zugriffsanforderung von
der Hostvorrichtung (1) in Abhängigkeit davon, ob irgendeine
Hintergrundverarbeitungsanforderung vorhanden ist oder
nicht, wenn die Belegungszeit eine vorbestimmte Größe
erreicht oder die Zugriffsfrequenz einen vorbestimmten Wert
erreicht; und
Ausführen des Hintergrundprozesses vor der
Zugriffsanforderung von der Hostvorrichtung (1), wenn die
Hintergrundverarbeitungsanforderung mit der Zugriffsanforderung in
Konflikt steht und der vorbestimmte Wert oder die
vorbestimmte Größe erreicht worden ist.
21. Verfahren nach Anspruch 20, bei dem die Vielzahl
von Speicherplattenlaufwerken (30-39) ein
Reservespeicherplattenlaufwerk (39) enthält und der Hintergrundprozeß ein
Datenrekonstruktionsprozeß ist, bei dem die
Plattenarraysteuereinheit (2), wenn eines von
Arbeitsspeicherplattenlaufwerken ausfällt, Daten, die in dem ausgefallenen
Arbeitsspeicherplattenlaufwerk gespeichert waren, aus Daten
rekonstruiert, die in anderen
Arbeitsspeicherplattenlaufwerken gespeichert sind, wobei Reservezeit verwendet wird,
während der kein Zugriff von der Hostvorrichtung (1)
erfolgt, und die rekonstruierten Daten in dem
Reservespeicherplattenlaufwerk (39) speichert, und welches Verfahren
enthält:
einen Schritt zum Überwachen einer Zugriffsfrequenz der
Hostvorrichtung (1); und
einen Schritt zum Verändern einer
Datenrekonstruktionsmenge gemäß der Zugriffsfrequenz, bis die Reservezeit
verfügbar wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3333282A JP2549222B2 (ja) | 1991-12-17 | 1991-12-17 | アレイディスク装置のバックグラウンド処理実行方法 |
JP3333281A JP2548475B2 (ja) | 1991-12-17 | 1991-12-17 | アレイディスク装置のデータ復元量制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69231204D1 DE69231204D1 (de) | 2000-08-03 |
DE69231204T2 true DE69231204T2 (de) | 2000-10-26 |
Family
ID=26574451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69231204T Expired - Fee Related DE69231204T2 (de) | 1991-12-17 | 1992-12-10 | Gerät und Verfahren zur Steuerung von Hintergrundverarbeitung in einer Speicherplattenanordnung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5537566A (de) |
EP (1) | EP0547844B1 (de) |
DE (1) | DE69231204T2 (de) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586250A (en) * | 1993-11-12 | 1996-12-17 | Conner Peripherals, Inc. | SCSI-coupled module for monitoring and controlling SCSI-coupled raid bank and bank environment |
JP3254081B2 (ja) * | 1994-06-23 | 2002-02-04 | 富士通株式会社 | 計算機システム及びその制御方法 |
US5991835A (en) * | 1994-11-22 | 1999-11-23 | Teac Corporation | Peripheral data storage device in which time interval used for data transfer from relatively fast buffer memory to relatively slower main memory is selected in view of average of time intervals during which data blocks were recently received from host |
US5826046A (en) * | 1994-12-30 | 1998-10-20 | International Business Machines Corporation | Method and apparatus for polling and selecting any paired device in any drawer |
US5680539A (en) * | 1995-07-11 | 1997-10-21 | Dell Usa, L.P. | Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation |
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
JP3617879B2 (ja) * | 1995-09-12 | 2005-02-09 | 株式会社東芝 | 実時間ストリームサーバのディスク修復方法及びディスク修復装置 |
US5822584A (en) * | 1995-10-13 | 1998-10-13 | Compaq Computer Corporation | User selectable priority for disk array background operations |
US6148326A (en) * | 1996-09-30 | 2000-11-14 | Lsi Logic Corporation | Method and structure for independent disk and host transfer in a storage subsystem target device |
US6247040B1 (en) | 1996-09-30 | 2001-06-12 | Lsi Logic Corporation | Method and structure for automated switching between multiple contexts in a storage subsystem target device |
US6081849A (en) * | 1996-10-01 | 2000-06-27 | Lsi Logic Corporation | Method and structure for switching multiple contexts in storage subsystem target device |
JPH10232849A (ja) * | 1997-02-19 | 1998-09-02 | Fujitsu Ltd | ディスク制御装置 |
US5958066A (en) * | 1997-06-03 | 1999-09-28 | Emc Corporation | On-line scanning and maintenance of a disk drive array |
US6453334B1 (en) | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
JP2000132902A (ja) * | 1998-10-23 | 2000-05-12 | Hitachi Electronics Eng Co Ltd | 記録媒体raidライブラリ装置 |
JP2000148408A (ja) * | 1998-11-17 | 2000-05-30 | Nec Corp | 磁気ディスク装置のデータチェック回路,同方式,および同方法 |
US6799283B1 (en) * | 1998-12-04 | 2004-09-28 | Matsushita Electric Industrial Co., Ltd. | Disk array device |
US6834386B1 (en) * | 1999-07-16 | 2004-12-21 | Microsoft Corporation | Method and system for regulating background tasks using performance measurements |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US8831995B2 (en) | 2000-11-06 | 2014-09-09 | Numecent Holdings, Inc. | Optimized server for streamed applications |
US7017107B2 (en) | 2001-04-30 | 2006-03-21 | Sun Microsystems, Inc. | Storage array employing scrubbing operations at the disk-controller level |
US6934904B2 (en) * | 2001-04-30 | 2005-08-23 | Sun Microsystems, Inc. | Data integrity error handling in a redundant storage array |
JP4083404B2 (ja) * | 2001-09-21 | 2008-04-30 | 株式会社日立製作所 | データ処理システム及びこれに用いる記憶制御装置 |
JP3811127B2 (ja) * | 2003-01-30 | 2006-08-16 | 株式会社東芝 | 情報記録装置及び情報記録方法 |
JP4404353B2 (ja) * | 2004-05-25 | 2010-01-27 | 株式会社日立製作所 | ディスク故障を抑止するディスクアレイ |
JP2006221451A (ja) * | 2005-02-10 | 2006-08-24 | Hitachi Ltd | ディスクアレイ装置 |
US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
JP4817783B2 (ja) * | 2005-09-30 | 2011-11-16 | 富士通株式会社 | Raidシステム及びそのリビルド/コピーバック処理方法 |
US8261345B2 (en) | 2006-10-23 | 2012-09-04 | Endeavors Technologies, Inc. | Rule-based application access management |
US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
US10534683B2 (en) | 2013-08-29 | 2020-01-14 | International Business Machines Corporation | Communicating outstanding maintenance tasks to improve disk data integrity |
JP2017027301A (ja) * | 2015-07-21 | 2017-02-02 | 富士通株式会社 | ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法 |
US10007432B2 (en) * | 2015-10-13 | 2018-06-26 | Dell Products, L.P. | System and method for replacing storage devices |
US11307805B2 (en) | 2020-05-29 | 2022-04-19 | Seagate Technology Llc | Disk drive controller incorporating task manager for reducing performance spikes |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
FR2561428B1 (fr) * | 1984-03-16 | 1986-09-12 | Bull Sa | Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques |
US4775978A (en) * | 1987-01-12 | 1988-10-04 | Magnetic Peripherals Inc. | Data error correction system |
GB2205667B (en) * | 1987-06-12 | 1991-11-06 | Ncr Co | Method of controlling the operation of security modules |
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US5249279A (en) * | 1989-11-03 | 1993-09-28 | Compaq Computer Corporation | Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands |
CA2034904C (en) * | 1990-03-30 | 1995-07-18 | John Stuart Best | High speed, small diameter disk storage system |
US5124987A (en) * | 1990-04-16 | 1992-06-23 | Storage Technology Corporation | Logical track write scheduling system for a parallel disk drive array data storage subsystem |
US5274799A (en) * | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
US5303244A (en) * | 1991-03-01 | 1994-04-12 | Teradata | Fault tolerant disk drive matrix |
US5258984A (en) * | 1991-06-13 | 1993-11-02 | International Business Machines Corporation | Method and means for distributed sparing in DASD arrays |
US5278838A (en) * | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
-
1992
- 1992-12-09 US US07/988,215 patent/US5537566A/en not_active Expired - Fee Related
- 1992-12-10 DE DE69231204T patent/DE69231204T2/de not_active Expired - Fee Related
- 1992-12-10 EP EP92311315A patent/EP0547844B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0547844A3 (en) | 1994-08-10 |
US5537566A (en) | 1996-07-16 |
EP0547844A2 (de) | 1993-06-23 |
DE69231204D1 (de) | 2000-08-03 |
EP0547844B1 (de) | 2000-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69231204T2 (de) | Gerät und Verfahren zur Steuerung von Hintergrundverarbeitung in einer Speicherplattenanordnung | |
DE69323225T2 (de) | Datenbehandlung in einem System mit Prozessor zur Steuerung des Zugangs zu einer Mehrzahl von Datenspeicherplatten | |
DE69221279T2 (de) | Plattenlaufwerkmatrix mit redundanten Kanälen | |
DE69131551T2 (de) | Logische Aufteilung eines Speichersystems mit redundanter Matrix | |
DE69225296T2 (de) | Datenrekonstruktion in einem Speichergerätanordnungssystem | |
DE69117371T2 (de) | Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt | |
DE69132227T2 (de) | Eingang-/Ausgangsteuerungseinrichtung | |
DE69626947T2 (de) | Reservekopie-Generierung in einem RAID-Untersystem | |
DE69131728T2 (de) | Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur | |
DE3280428T2 (de) | Datenspeichersystem fuer einen arbeitsrechner. | |
DE69412775T2 (de) | System zur Kontrolle der Befehlswarteschlange der Paritätsplatte in einer Speicherplattenanordnung | |
DE2921387C2 (de) | Verfahren zum Austauschen von Informationen zwischen einer Datenverarbeitungsanlage und einem Magnetplattenspeicher | |
DE69224589T2 (de) | Speicherplattenanordnung und Verfahren zur Bestimmung des Vorhandenseins korrekter Speichervorrichtungen | |
DE2907333C2 (de) | ||
DE3789929T2 (de) | Verfahren und Gerät zur Fehlerkorrektur in einem aus parallelem Prozessor bestehenden Datenverarbeitungssystem. | |
DE69127229T2 (de) | Verfahren und Vorrichtung zur Datenformatierung auf DASD-Anordnungen | |
DE69330924T2 (de) | Plattennetzwerk programmierbares Steuerungsgerät | |
DE3128740C2 (de) | ||
DE69710274T2 (de) | Mehrplattenantriebsnetzwerk mit mehreren paritätsgruppen | |
DE19723909A1 (de) | Verfahren zum Erzielen einer geteilten Paritätsersatzplatte in einem RAID-Untersystem | |
DE69635713T2 (de) | Diskarray-Teilsystem | |
DE69224885T2 (de) | Prozessteuersystem zum Betreiben einer Speichereinrichtung | |
DE69016978T2 (de) | Sicheres Datenschnellschreibverfahren für Massenspeichereinrichtung und ein dieses Verfahren ausführendes Computersystem. | |
DE4335061C2 (de) | Mehrspeichervorrichtung | |
DE69222743T2 (de) | Speichereinrichtung und Verfahren zur Verwendung in einer Datenverarbeitungsanordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |