DE3856443T2 - Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen Speichersystem - Google Patents
Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen SpeichersystemInfo
- Publication number
- DE3856443T2 DE3856443T2 DE3856443T DE3856443T DE3856443T2 DE 3856443 T2 DE3856443 T2 DE 3856443T2 DE 3856443 T DE3856443 T DE 3856443T DE 3856443 T DE3856443 T DE 3856443T DE 3856443 T2 DE3856443 T2 DE 3856443T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- storage device
- interface
- storage devices
- disk drive
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims description 18
- 238000011084 recovery Methods 0.000 claims abstract description 63
- 239000000872 buffer Substances 0.000 claims abstract description 53
- 238000012546 transfer Methods 0.000 claims description 17
- 230000001965 increasing effect Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 239000000696 magnetic material Substances 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001052 transient effect Effects 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
-
- 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
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Hardware Redundancy (AREA)
- Control By Computers (AREA)
Description
- Die vorliegende Erfindung betrifft Massenspeichervorrichtungen zur Verwendung in Computern, wie beispielsweise Plattenlaufwerke und Ähnliches. Die vorliegende Erfindung kommt insbesondere bei für die Massenspeicherung in Computern verwendeten Plattenlaufwerken zur Anwendung und wird in Verbindung mit solch einer Verwendung beschrieben. Ihre Vorteile können jedoch auch vorteilhaft bei anderen Massenspeichervorrichtungen (wie beispielsweise Bildplatten, RAM-Feldern hoher Dichte, Blasenspeichern und Ähnlichem) genutzt werden.
- Beim gegenwärtigen Stand der Computertechnologie sind Plattenlaufwerke der sogenannten "Winchester"-Varietät und Ähnliches, die hauptsächlich für die Massenspeicherung von Programmen und Daten verwendeten Vorrichtungen. Aufgrund ihrer niedrigen Kosten werden sie möglicherweise auch in Zukunft selbst dann breite Anwendung finden, wenn exotischere Vorrichtungen im Handel erhältlich sind.
- Plattenlaufwerke nach dem Stand der Technik funktionieren im allgemeinen in der in Fig. 1-4 dargestellten Art und Weise. Wie in Fig. 1 dargestellt, ist die Anwender-CPU 10 typischerweise mit einem Bus 12 verbunden, der seinerseits unter anderem mit einem nicht programmierbaren Systemplattencontroller 14 verbunden ist, um Daten in ein gleicherweise nicht programmierbares, Plattenlaufwerk einzugeben und von diesem auszugeben, das im allgemeinen mit 16 angegeben ist. Der Controller 14 und das Plattenlaufwerk 16 werden in der Weise als nicht programmierbar bezeichnet, daß sie im allgemeinen nur das tun, was ihnen von der Anwender- CPU 10 aufgetragen wird. Das Plattenlaufwerk 16 ist durch ein E/A-Kabel 18 mit dem Controller 14 verbunden. Innerhalb des Plattenlaufwerks 16 ist eine mechanisch-elektronische Antriebseinheit 20 vorgesehen, die die Köpfe des Plattenlaufwerks positioniert, Analog- Digitalwandlung durchführt, Digital-Analogwandlung usw. durchführt, je nachdem, ob es notwendig ist, von der Speicherplatte 22 selbst zu lesen und auf sie zu schreiben. Dieser Vorgang ist in Fig. 2 und 3 detaillierter dargestellt.
- Die Speicherplatte 22 weist eine oder mehrere physikalische Platten 24 auf, die sich um eine zentrale Nabe 26 drehen, wie durch Pfeil 28 angegeben. Typischerweise sind die Platten 24 zwecks Adressierung in konzentrische Spuren 30 unterteilt, die ihrerseits wiederum in Sektoren 32 unterteilt sind. Eine beliebige Anzahl vertikal ausgerichteter Spuren 30 bildet einen "Zylinder", wobei es sich um den Maximalbetrag an Daten handelt, der ohne Neupositionierung der Köpfe 34 gelesen werden kann. Die Platten 24 weisen einen sensiblen Peripherieindikator (nicht dargestellt) auf, durch den die innerhalb der Antriebsbaugruppe 20 enthaltene Adressierungslogik die Drehposition der Platten 24 bestimmen kann, Lese-Schreibköpfe 34 sind an dem Ende von Armen 36 positioniert, die ihrerseits mit Kopfpositionierungsmechanismen 38 verbunden sind, durch die die Köpfe 34 unter der Steuerung der Antriebsbaugruppe 20 ein- und ausgefahren werden können, wie durch die Pfeile 39 angezeigt ist. Um von einer spezifischen Stelle auf den Platten 24 zu lesen oder auf eine bestimmte Stelle zu schreiben, wird der richtige Kopf 34 elektronisch ausgewählt und die Arme 36 unisono bewegt, um alle Köpfe 24 radial am richtigen Zylinder 30 zu positionieren. Die Drehposition der Platten 24 wird dann so lange überwacht, bis sich der zum Lesen oder zum Schreiben gewünschte Sektor 32 unter dem ausgewählten Kopf 34 befindet. Zu diesem Zeitpunkt erfolgt das Lesen-Schreiben in einer durch die Umdrehungsgeschwindigkeit der Platten 24 bestimmten Geschwindigkeit.
- Solche Plattenlaufwerke weisen zahlreiche Probleme auf, die aus Mangel an verfügbaren Verbesserungen bis jetzt toleriert wurden. Beispielsweise hat sich die Technologie der Oberflächenbeschichtung mit magnetischen Materialien dahingehend entwickelt, daß höhere Zeichendichten auf der Platte 24 möglich sind. Dadurch konnten immer mehr Sektoren pro Zylinder und mehr Zylinder pro Platte eingerichtet werden. Dies hat höhere Kapazitäten und höhere Geschwindigkeiten (relativ ausgedrückt) ermöglicht. In Hinblick auf den letzteren Punkt blieben die physikalischen Drehaspekte festgelegt, wodurch in bezug auf irgendeine bedeutende Erhöhung der Übertragungsrate ein Engpaß erzeugt wird, während die Elektronik und andere Bereiche der Plattenantriebstechnologie so gewachsen sind, daß sie sehr viel höhere Übertragungsraten ermöglichten. Bei den ersten Computern wurden Drehtrommelspeicher als Hauptspeicher für Computer verwendet. Die Außenfläche der Trommel war mit magnetischem Material überzogen, und die Lese-Schreibköpfe waren dauerhaft an der magnetischen Oberfläche angrenzend befestigt. Jeder Kopf stellte eine Spur der Trommel dar, die in Sektoren aufgeteilt wurde. Die Adressierung erfolgte durch die Auswahl eines Kopfes (d. h. Spur) und der Drehposition. Diese ersten Trommelspeicher drehten sich mit 3600 U/min. Die heutigen "Hochtechnologie"-Platten drehen sich aufgrund von physikalischen Begrenzungen, die für eine Abhandlung in diesem Dokument nicht von Bedeutung sind, immer noch mit 3600 U/min. Da durch die Umdrehungsgeschwindigkeit bestimmt wird, wie schnell die Daten in die Lese-Schreibköpfe 34 hinein oder aus ihnen heraus übertragen werden können, ist erkennbar, daß nicht viel Potential für die Erhöhung der Übertragungsraten von Plattenlaufwerken vorhanden ist, wenn die Umdrehungsgeschwindigkeit nicht über 3600 U/min. erhöht werden kann und die Bitdichten im wesentlichen auf ihrem gegenwärtigen Niveau maximiert werden.
- Eine weitere Begrenzung in bezug auf Plattenlaufwerke des Standes der Technik, wie durch die vereinfachten Zeichnungen von Fig. 1-3 dargestellt, ist die mit dem physikalischen Ein- und Ausfahren der Arme 36 und der Kopfe 34 zwischen den ausgewählten Zylindern in Zusammenhang stehende "Positionierungszeit". Insbesondere bei Bewegungen zwischen radialen Extremen (d. h. zwischen Stellen, die sich nahe am Drehmittelpunkt und der Peripherie der Platte befinden) kann die Positionierungszeit bei einer Bewegung beträchtlich sein, wobei diese Zeit verloren ist, wenn sich die Platten 24 unterhalb des Kopfes 34 drehen, jedoch kein Lesen oder Schreiben stattfinden kann. Bei wiederholten Lese- und Schreibanforderungen zwischen radialen Extremen besteht auch das Problem des "Flatterns", was bedeutet, daß die Arme und Köpfe in einer radialen Richtung bewegt, und dann abgebremst werden müssen, nur um wieder in der Gegenrichtung beschleunigt, und dann erneut abgebremst zu werden. Bei großen radialen Entfernungen erzeugt das wiederholte Anfahren und Anhalten große schädliche Kräfte, die auf die Komponenten einwirken, die die Bewegungen ausführen. Dies kann natürlich zu einer verkürzten Lebensdauer und/oder zum Ausfall der Platte und ihrer Komponenten führen. Für die Systemsteuerung für Platte 14, Bus 12 und CPU 10 erscheint die "Positionierungszeit" wie ein Wartezustand, währenddessen keine andere nützliche Arbeit ausgeführt werden kann, bis die Plattenanforderung ausgeführt ist. Die Positionierungszeit verdurchschnittlicht die Mehrheit der gesamten Plattenanforderungszykluszeit und verschlechtert so direkt die Leistung der CPU 10. Je größer die Anzahl der E/A-(Eingabe-Ausgabe) Plattenanforderungen, um so größer die Verschlechterung der Systemleistung, bis ein "E/A"- oder "plattengebundener" Zustand erreicht ist, wobei an diesem Punkt keine größere Systemleistung erreicht werden kann.
- Ein weiterer schädlicher Aspekt der Plattenantriebstechnologie nach dem Stand der Technik, der am besten in Hinblick auf Fig. 4 erkennbar ist, ist Zuverlässigkeit mit der logischen Folge der Berücksichtigung der Wiederherstellbarkeit, d. h. wie schützen wir uns gegen Datenverlust, können wir verlorene Daten wiederherstellen? In Hinblick auf den Stand der Technik lauten die Antworten "Schlecht" und "Nein". Fig. 4 stellt vier aufeinander folgende, aus acht Bit bestehende Bytegruppen bei der Speicherung auf einer typischen Platte 24 nach dem Stand der Technik dar. Die Bytes wurden aufeinanderfolgend in Form von Sektoren (d. h. Datenblöcke, die häufig eine Länge von 256, 512, 1024 oder 2048 Bit aufweisen) von oben nach unten in Richtung des Pfeils in Betrachtungsrichtung der Figur geschrieben und gelesen. Daher ist das erste Byte die Binärzahl 10101010, während das letzte dargestellte Byte 11111111 lautet. Um gegen Fehler durch während dem Lesen oder Schreiben verlorene oder hinzugefügte Bits zu "schützen", wurde im Stand der Technik ein sogenanntes "Paritäts"-Bit (in der Figur als Bitposition "P" bezeichnet) entwickelt und weiterverwendet, und zwar für jedes gespeicherte Datenobjekt, d. h. Byte, Halbbyte. Paritätsanordnungen können entweder "geradzahlig" oder "ungeradzahlig" sein. Bei der dargestellten Anordnung handelt es sich um ein geradzahliges Paritätssystem, bei dem die Summe der Bits, aus denen das Byte besteht, plus Paritätsbit, immer geradzahlig sein muß. Im ersten Byte (10101010) beträgt die Anzahl der "1" jeweils vier, d. h. eine gerade Zahl. Daher ist das Paritätsbit "0". Wenn das erste Byte gelesen wird, addiert die Hardware die Bits (einschließlich des Paritätsbits) und wenn die Summe geradzahlig ist, dann ist kein Fehler vorhanden. Wenn ein "1"-Bit verloren geht oder hinzugefügt wird, dann ist die Summe ungeradzahlig und es tritt ein "Paritätsfehler"-Zustand ein. Da die Bitposition des fehlerhaften Bits unbekannt ist, liegen jedoch nicht genügend Informationen zur Ausführung einer Korrekturmaßnahme vor. Außerdem ist bei der Übertragung von Daten jedem seriell übertragenen Datensektor ein zyklischer Redundanzcode (CRC) zugeordnet. Der CRC für jeden Datensektor wird überprüft, und es tritt ein Sektorintegritätsfehlerzustand ein, wenn der CRC-Test fehlerhaft ausfällt. In solchen Fällen besteht die typischerweise einzige vorgenommene "korrigierende" Maßnahme in der Wiederholung von "n" Mal Lesen oder Schreiben (ein im System zuvor festgelegter Wert) um zu sehen, ob der CRC-Fehler nur vorübergehender Art war. Wenn der CRC-Fehler weiterhin bestehen bleibt, besteht die einzige Maßnahme im Ausdrucken einer Fehlermeldung für den menschlichen Bediener, um ihn um Anweisungen zu bitten, wie weiter vorgegangen werden soll, wie beispielsweise (PLATTEN- LESEFEHLER, WIEDERAUFNAHME-FORTSETZEN-ABBRECHEN?). Wo es erwünscht ist, und/oder notwendig ist in der Lage zu sein, verlorene Daten wiederherzustellen, hat der Stand der Technik auf kostspielige und zeitaufwendige Ansätze wie beispielsweise redundante Platten und die Durchführung von "Datensicherungen" oder das Kopieren der auf der Platte befindlichen Daten und Programme auf eine andere Platte, Band oder Ähnliches aufgebaut. Bei einem redundanten Plattensystem wird alles dynamisch mit der Absicht dupliziert, daß wenn bei einer Platte ein Fehler auftritt, die Daten immer noch auf der duplizierten Platte verfügbar sind. Wenn man den Kostenfaktor nicht berücksichtigt, ist diese Philosophie sehr gut, bis eine vorübergehende Spannungsspitze (eine häufige Quelle von Plattenfehlern) veranlaßt, daß dieselben fehlerhaften Daten gleichzeitig auf beide Platten geschrieben wird. Datensicherungssysteme wurden seit den ersten Anfängen der Verwendung von Computern verwendet. Bei den ersten Systemen erfolgten Datensicherungen durch das Stanzen von im Speicher befindlichen Daten auf gelochtes Papier in einem Fernschreiber (ein sehr zeitaufwendiges Projekt). Bei neueren Datensicherungssystemen wird typischerweise eine Art von Magnetband- oder Plattentechnologie für die Speicherung von Datensicherungen verwendet. Selbst damit ist der Vorgang immer noch kostspielig und zeitaufwendig, und es gehen alle die Daten verloren, die zwischen der Zeit der letzten Datensicherung und der Zeit des Ausfalls verlorengingen.
- In Hinblick auf den Stand der Technik von Controllern und Speichervorrichtungen sollte auch bemerkt werden, daß alle Controller mit einer zugeordneten Speichervorrichtung fest verdrahtet sind. Wenn die Größe der Speichervorrichtung festgelegt ist, dann ist bei dem ihr zugeordneten Controller die Größe in dessen interner Logik festgelegt. Wenn sich die Größe der Speichervorrichtung innerhalb festgelegter Grenzwerte und Größenzunahmen verändern kann, ist der Controller bestenfalls dazu in der Lage, die Speichervorrichtung abzufragen, um welches Modell es sich bei ihr handelt und in seiner internen Logik eine Auswahl aus den zuvor für die verschiedenen Modelle festgelegten Größen zu treffen. Es ist keine Fähigkeit zur automatischen Anpassung an eine andere Größe oder Art von Speichervorrichtung vorhanden als an diejenige, für die der Controller konstruiert und gebaut wurde. Wenn der Anwender eine neue Art und/oder Größe einer Vorrichtung nutzen möchte, muß er auch einen neuen Controller erwerben. Auf ähnliche Art und Weise muß der Controller, wenn auf der Seite der Anwenderschnittstelle eine neue Schnittstellenkonvention angenommen wird, durch einen ersetzt werden, der die richtige Schnittstelle aufweist. Dasselbe geschieht auf der Seite der Speichervorrichtung, d. h. eine neue Schnittstellenkonvention erfordert einen ganz neuen Controller.
- In bezug auf das Problem mit der Positionierungszeit wurde diese in kleinem Umfang als herabsetzender Faktor der Systemleistung erkannt, und es gab sogar noch weniger Versuche, irgendeine Art von Korrektur für das Problem zu bieten. Dies ist deshalb der Fall, weil die Versuche innerhalb der oben beschriebenen Art und Konstruktion des Controllers/der Speichervorrichtung nach dem Stand der Technik vorgenommen wurden. Daher bestand der einzige wirtschaftlich lebensfähige Versuch zur Verringerung der Positionierungszeit in der Zwischenschaltung von "Round Robin"-Optimierungshardware zwischen der Anwender-CPU und einer Mehrzahl von Controllern, die mit einzelnen Plattenlaufwerken verbunden waren. Nach dem Stellen von Lese- und Schreibanforderungen an die verschiedenen Controller fragt die Optimierungshardware danach aufeinanderfolgend die Controller ab, um festzustellen, ob diese bereits ausgeführt sind. Wenn nicht, dann fährt die Hardware mit dem nächsten und dann wieder mit dem nächsten fort, bis sie einen findet, der fertig ist und diese Anforderung bearbeitet. Das ist besser als die Bearbeitung der Anforderungen auf einer First in-First out-Grundlage (FIFO), so wie dies größtenteils bei dem Stand der Technik erfolgt, aber weit entfernt vom Optimum. Innerhalb der Grenzen des Betriebsmodus von Controllern und Speichervorrichtungen nach dem Stand der Technik ist das jedoch möglicherweise das Beste, was man erhoffen kann.
- In den letzten paar Jahren wurde ausschließlich aus der Erkenntnis des Engpasses bei der Übertragungsrate serieller Plattenlaufwerke heraus (d. h. wobei in der Tat die Nachteile der Positionierungszeit für die Leistung nicht berücksichtigt wurden ein wenig Anfangsarbeit in Form von Parallelübertragungslaufwerken (PTDs) geleistet. Diese Arbeit geht im Gegensatz zu den von dem Anmelder in diesem Dokument beschriebenen Ergebnissen davon aus, daß die Positionierungszeit für das Problem der Datenübertragungsrate unerheblich ist. Über den gegenwärtigen Stand der Entwicklung von PTDs wird in einem Artikel mit dem Titel "The bottleneck in many applications created by serial channel disk drives is overcome with PTDs, but the price/Mbyte is high and the technology is still being refined" (Die in vielen Anwendungen durch die seriellen Kanalplattenlaufwerke erzeugten Engpässe werden durch PTDs beseitigt, doch der Preis pro MB ist hoch, und die Technologie immer noch in der Verfeinerung befindlich) von Michael Gamerl von Fujitsu America, Inc., der auf Seite 41 der Ausgabe des HARDCOPY-Magazins vom Februar 1987 erscheint. Gemäß diesem Artikel besteht der Ansatz, der bei PTDs verwendet wird, wie sie bis jetzt entwickelt wurden, im allgemeinen in der Verwendung von Mehrfach-Lese-Schreibköpfen, die unisono auf Armen bewegt werden, wobei die Daten parallel auf Mehrfachmagnetplatten geschrieben werden, die mechanisch oder elektronisch so verbunden sind, daß sie sich tatsächlich oder praktisch unisono miteinander drehen. Wie bei sogenannten "unintelligenten Datenstationen", die nur eine geringe oder gar keine Entscheidungsfähigkeit aufweisen, könnten PTDs nach dem Stand der Technik dahingehend als "unintelligente Platten" bezeichnet werden, daß die einzige dort vorhandene Logik im allgemeinen in Form eines FIFO-Puffers mit zugeordneter Logik geboten wird (d. h. "Bitversatz-Ausgleichsschaltung"), der auf dem Datenübertragungsweg für den Ausgleich leichter Unterschiede bei der Ausrichtung von Teilen und daher von Latenzzeiten der Datenübertragungsbitpositionen im Zeitbereich, verwendet wird. Während sich einige PTD-Entwickler dafür engagieren, "Intelligenz" zu bieten, scheint es so, daß was sie als Intelligenz betrachten, nur Teil der Anwenderschnittstelle ist, und in der Tat das Leistungspotential verschlechtert. Wie in dem Artikel ausgesagt wird, "To support each PTD arm separately, drive hardware is duplicated for each. Otherwise, the structure of a PTD is similar to high performance serial drives" (Um jeden PTD-Arm separat zu unterstützen, wird die Hardware für jeden dupliziert. Ansonsten ist die Struktur eines PTDs derjenigen von seriellen Hochleistungslaufwerken ähnlich). Nichts wird über die Bereitstellung eines Selbsttests und einer Korrektur übertragener Daten oder Ähnliches ausgesagt. Nichts wird über die Bereitstellung von Schnittstellenunabhängigkeit entweder auf der Anwender- oder auf der Geräteseite ausgesagt. Die Optimierung der Positionierungszeit wird nicht nur nicht erwähnt, sondern in der Tat nicht berücksichtigt.
- Schließlich sollte das Konzept der "Fehlertoleranz" und die Unfähigkeit von Speichervorrichtungssystemen nach dem Stand der Technik angesprochen werden, dieses Ziel zu erreichen. Ein kürzlich erschienener Artikel über fehlertolerante Computersysteme beschrieb ein fehlertolerantes System "als ein System, in dem für den Anwender kein einziger Fehler offensichtlich ist. Mit anderen Worten bedeutet Fehlertoleranz, daß ein System selbst dann mit der Verarbeitung fortfährt, wenn eine Komponente versagt hat." Fünf Merkmale sind für die Fehlertoleranz erforderlich: Redundanz, Erkennung, Isolierung, Neukonfiguration und Reparatur. Zunächst muß jedes Element des Systems über eine Sicherung verfügen, damit bei Versagen einer Komponente eine andere vorhanden ist, die deren Aufgaben übernimmt.
- Zweitens muß ein Fehler durch das System erkennbar sein, damit der Fehler identifiziert, und dann repariert werden kann. Drittens muß die ausgefallene Komponente vom Rest des Systems isoliert werden, damit der Ausfall einer Komponente nicht eine andere Komponente nachteilig beeinflußt. Viertens muß das System dazu in der Lage sein, sich selbst neu zu konfigurieren, um die Auswirkungen durch die ausgefallene Komponente zu beseitigen und trotz des Ausfalls mit dem Betrieb fortzufahren. Schließlich muß die ausgefallene Komponente nach der Reparatur wieder zum Einsatz integriert werden, ohne irgendeine Unterbrechung der Verarbeitung zu verursachen. In bezug auf gegenwärtige Speichersysteme ist das Konzept der Fehlertoleranz einfach nicht vorhanden. Es wird keines der oben aufgezählten fünf Merkmale erfüllt. Wie oben beschrieben, ist die Folge eines CRC-Fehlers, der nicht vorübergehend und daher nicht bei Lesevorgangsgeschwindigkeit korrigierbar ist, bei einer typischen Plattenspeichervorrichtung nach dem Stand der Technik eine sehr offensichtliche Unfähigkeit des Systems, mit dem Betrieb fortzufahren.
- Daher besteht ein Hauptgegenstand der vorliegenden Erfindung darin, einen neuen Ansatz für Controller und zugeordnete Speichervorrichtungen wie beispielsweise Plattenlaufwerke und Ähnliches zu bieten, der die Vorteile des parallelen Betriebs einer Mehrzahl einzelner, in einer intelligenten Umgebung arbeitender Vorrichtungen bietet und dabei ihre Fähigkeiten durch die Verringerung der Positionierungszeit und Ähnlichem optimal nutzt.
- Ein weiterer Gegenstand der vorliegenden Erfindung besteht darin, eine hohe Kapazität ohne die Notwendigkeit der Anwendung exotischerer und teurer Speichertechnologien zu bieten.
- Ein weiterer Gegenstand der vorliegenden Erfindung besteht darin, Fehlertoleranz, hohe Zuverlässigkeit und die Fähigkeit zur einfachen und leichten Rückgewinnung verlorener Daten zu bieten.
- Ein weiterer Gegenstand der vorliegenden Erfindung besteht darin, einen neuen Ansatz für die Speichersystemtechnologie zu bieten, der die Notwendigkeit der Sicherung des Datenmassenspeichersystems dramatisch verringert und in manchen Fällen beseitigt.
- Ein weiterer Gegenstand der vorliegenden Erfindung besteht darin, gewaltige Erhöhungen bei den Übertragungsraten von Daten zu und von einer Speichervorrichtung zu bieten, die über den normalerweise durch die Umdrehungsgeschwindigkeiten und Positionierungszeiten auferlegten Grenzen liegen.
- Ein weiterer Gegenstand der vorliegenden Erfindung besteht darin, eine bis jetzt nicht vorhandene Vorrichtung zu bieten, die zwischen herkömmliche Computerspeichervorrichtungscontroller und herkömmliche Speichervorrichtungen geschaltet wird, und die auf beiden Seiten Schnittstellentransparenz, sowie eine Kommunikations- und Funktionsintelligenz zwischen den herkömmlichen Vorrichtungen bietet.
- Wir würdigen die Offenbarung eines Speichervorrichtungssystems in Form eines fehlertoleranten Winchester-Plattensystems in der EP-A-0156724 und der US-A- 4849929, das die Merkmale des Oberbegriffs des unten aufgeführten Anspruchs 1 aufweist.
- Wir würdigen ebenfalls die Offenbarung in Computer Technology Review, VI (1986) Summer, No. 3, Los Angeles, California, U. S. A., Seiten 133-139, W. D. Moren: "Intelligent Controller for Disk Drive Boosts Performance of Micros" über die Vetwendung eines zwischen einem Computerbus und einem Plattenlaufwerk angeordneten Cache-Speichers. Der FIFO-Cache ermöglicht eine zeitliche Überschneidung von Vorgängen, so daß ein durch die Plattenspeichervorrichtung ausgeführter Vorgang vor Beginn des nächsten Vorgangs nicht vollständig ausgeführt sein muß. Darüber hinaus würdigen wir die Offenbarung im "Conference record for Electro/87 and Mini/Micro Northeast -87", die vom 7. bis 9. April 1997 in New York, U. S. A., stattfand, Seiten 1 bis 8, B. Moren: Massenspeichercontroller und Multibus (r) 11 beschreibt einen Meldungen weitergebenden Coprozessor und eine Busschnittstelleneinheit zur Verbindung einer Plattenlaufwerkseinheit oder Bandeinheit mit einer spezifischen Art von Systembus nach Industrienorm, der als Multibus 11 bezeichnet wird. Das Plattenlaufwerk oder die Bandeinheit wird mit einem Lokalbus verbunden, der seinerseits mit dem Multibus 11 verbunden ist. Von der Platten- oder Bandlaufwerkseinheit gelesene oder dorthin geschriebene Daten werden in einem dem Lokalbus zugeordneten Speicher gepuffert.
- Wir würdigen weiterhin die Offenbarung eines Cache- Mechanismus in der US-A-4425615, der zwischen einem oder mehreren Hauptrechnern und einer oder mehreren Speichersteuereinheiten, wie beispielsweise Plattenvorrichtungen, angeschlossen ist. Der Cache-Mechanismus weist einen Cache-Speicher zum Speichern von Daten auf, die von den Speichereinheiten gelesen, oder in diese geschrieben werden sollen, sowie eine Befehlspufferung zur Speicherung von auf die Ausführung durch die Plattenvorrichtungen wartender Befehle. Der Cache- Mechanismus führt von den Hauptrechnern empfangene Befehle in einer erstens durch die Priorität des den Befehl ausgebenden Hauptrechners und zweitens durch die Folge, in der der Befehl empfangen wurde, festgelegten Reihenfolge aus.
- Die vorliegende Erfindung bietet eine Speichervorrichtung wie in Anspruch 1 definiert, sowie ein Verfahren gemäß Anspruch 2 zur Verwendung einer solchen Vorrichtung. Die vorangegangenen Gegenstände und andere Gegenstände können durch die Speichervorrichtung und das Steuersystem der vorliegenden Erfindung erzielt werden, die die folgenden Fähigkeiten aufweisen: Wiederherstellung verlorener Daten durch die Verwendung einer zusätzlichen, Fehler-Rückgewinnungscodebits enthaltenden Speichervorrichtung;
- - daß sie einen einzelnen Controller aufweisen, der von Mehrfachspeichervorrichtungen liest und in diese schreibt;
- - daß Schnittstellen zum Anwender und/oder die verwendeten Speichervorrichtungen einfach ausgetauscht werden können;
- - daß sie gleichzeitig mehrere Schnittstellenkonventionen mit dem Anwender und/oder den verwendeten Speichervorrichtungen verwenden;
- - daß sie sich schnell und leicht an verschiedene Speichervorrichtungen anpassen, einschließlich gleichzeitiger paralleler Verwendung verschiedener Arten von Speichervorrichtungen;
- - daß sie eine weitere Speichervorrichtung zwecks Transparenz und Komfort für den Anwender emulieren; und
- - sich an Vorrichtungen unterschiedlicher Größen anpassen.
- Die Erfindung wird noch verständlicher anhand der nachfolgenden Beschreibung der bevorzugten Ausführungen ausschließlich anhand eines Beispiels unter Bezugnahme auf die Zeichnungen, wobei:
- Fig. 1 eine vereinfachte Zeichnung eines Plattenlaufwerkssystems nach dem Stand der Technik, sowie seiner Art und Weise der Kommunikation mit einer Anwender-CPU darstellt.
- Fig. 2 eine vereinfachte Grundrißzeichnung des in dem Plattenlaufwerkssystem von Fig. 1 verwendeten Platten- und Kopfpositionierungssystems nach dem Stand der Technik darstellt.
- Fig. 3 eine vereinfachte Seitenansichtszeichnung des in dem Plattenlaufwerkssystem von Fig. 1 verwendeten Platten- und Kopfpositionierungssystems nach dem Stand der Technik darstellt.
- Fig. 4 eine Zeichnung ist, die das Verfahren nach dem Stand der Technik zur Paritätsprüfung darstellt, das in solchen Vorrichtungen wie in Fig. 1-3 verwendet wird.
- Fig. 5 ein vereinfachtes Blockdiagramm eines die vorliegende Erfindung darstellenden intelligenten Plattenlaufwerkssystems darstellt.
- Fig. 6 eine vereinfachte Zeichnung ist, die die Grundstruktur des in einer Ausführung der vorliegenden Erfindung verwendeten Plattencontrollers darstellt.
- Fig. 7 eine vereinfachte Zeichnung ist, die die Datenspeicherung über eine Mehrzahl von Plattenlaufwerkseinheiten gemäß einer Ausführung der vorliegenden Erfindung darstellt und zu Vergleichszwecken der Datenspeicherung in Fig. 4 entspricht.
- Fig. 8 eine vereinfachte Zeichnung ist, die darstellt, wie die einzelnen Plattenlaufwerke die Daten von Fig. 7 als aufeinanderfolgende Bytes, die aus zusammenhängenden Bits bestehen, zwecks nachfolgendem Zugriff durch den Anwender in einen Puffer übertragen.
- Fig. 9 eine vereinfachte Zeichnung ist, die darstellt, wie die einzelnen Plattenlaufwerke die Daten von Fig. 10 zwecks nachfolgendem Zugriff durch den Anwender asynchron in separate Puffer übertragen.
- Fig. 10 eine vereinfachte Zeichnung ist, die die Datenspeicherung über eine Mehrzahl von Plattenlaufwerkseinheiten gemäß einer zweiten Ausführung der vorliegenden Erfindung darstellt und zu Vergleichszwecken der Datenspeicherung in Fig. 4 entspricht.
- Fig. 11 ein detaillierteres Blockdiagramm eines virtuellen Plattenlaufwerkssystems gemäß der vorliegenden Erfindung darstellt.
- Fig. 12 eine vereinfachte Zeichnung ist, die die Wirkung einer Befehlsfolge beim Stand der Technik darstellt, die die Bewegung zu verschiedenen Zylindern auf einer einzigen Platte erfordert.
- Fig. 13 eine vereinfachte Zeichnung ist, die die vorliegende Erfindung, wie sie in einer Ausführung verwendet wird, wobei die Platten, aus denen die virtuelle Platte besteht, zylinderorientiert sind, und die dadurch für den Anwender vorteilhafte erzielte Wirkung darstellt.
- Fig. 14 ein Blockdiagramm ist, das darstellt, wie der batteriegepufferten asynchronen Pufferspeicher der vorliegenden Erfindung, durch den Daten zu den eigentlichen Plattenlaufwerken übertragen werden, als ein Cache-Speicher fungiert, um die Arbeitsgeschwindigkeit in vielen Anwendungen zu verbessern.
- Die vorliegende Erfindung basiert auf dem Ersatz eines einzelnen Plattenlaufwerks nach dem Stand der Technik durch ein aus einer Mehrzahl von einzelnen und separaten herkömmlichen Plattenlaufwerken nach dem Stand der Technik bestehendes virtuelles Plattenlaufwerk für die Daten, und eine zusätzliche Platte, die zur Speicherung von den Daten zugeordneten Fehlerrückgewinnungscodes (ERC) bestimmt ist, wobei die Mehrzahl der Plattenlaufwerke gleichzeitig und intelligent parallel zueinander arbeitet. Wie nachstehend detailliert ausgeführt wird, bietet solch ein bisher unversuchter Ansatz die Grundlage für alle oben aufgezählten Gegenstände der vorliegenden Erfindung. Die Kapazität der virtuellen Platten ist "n" Mal diejenige ihrer einzelnen Platten, und erzielt somit den Gegenstand erhöhter Kapazität. Selbst bei Verwendung derselben Umdrehungsgeschwindigkeiten innerhalb der einzelnen Plattenlaufwerke mit ihren festgelegten Übertragungsraten sollte die virtuelle Platte, die parallel anstatt seriell arbeitet, dazu in der Lage sein, Übertragungsraten zu erreichen, die mindestens sieben- oder achtfach höher liegen als diejenige, die von den einzelnen seriellen und in bezug auf ihre Umdrehung begrenzten Plattenlaufwerken erzielbar ist. Hinsichtlich der Fehlertoleranz, Zuverlässigkeit und Wiederherstellbarkeit, so wie dies nachstehend in der Beschreibung gewürdigt wird, maximiert der Ansatz der intelligenten virtuellen Platte der vorliegenden Erfindung die Zuverlässigkeit und bietet eine solche Wiederherstellbarkeit, daß eine oftmalige Datensicherung wirklich als eine redundante Nichtnotwendigkeit unterlassen werden kann. Darüber hinaus erfüllt sie alle fünf der für eine grundlegende Fehlertoleranz erforderlichen Merkmale.
- Das intelligente virtuelle Plattenlaufwerk der vorliegenden Erfindung wird in Fig. 5 im allgemeinen mit 40 bezeichnet. Für die Anwender-CPU 10 von Fig. 1 ist das virtuelle Plattenlaufwerk 40 der vorliegenden Erfindung transparent, d. h. es erscheint der CPU 10 wie jedes andere beliebige Plattenlaufwerk, wie beispielsweise das Plattenlaufwerk 20 nach dem Stand der Technik. Die Verbindung ist eine einfache Angelegenheit. Das E/A-Kabel 18 wird einfach von dem Plattenlaufwerk 16 nach dem Stand der Technik von Fig. 1 abgezogen und in das virtuelle Plattenlaufwerk 40 der vorliegenden Erfindung eingesteckt. Das ist schon alles. Dies ist ein wichtiger Gedanke, da eine Vorrichtung, wenn sie wirklich nutzbringend sein soll, mit vorhandener Hardware und Software "steckerkompatibel" sein muß, wenn sie wirtschaftlich annehmbar sein soll. Daher schickt die CPU 10 bei der vorliegenden Erfindung ihre Lese- Schreibanforderungen immer noch an den ihr zugeordneten Plattencontroller 14, um mit dem "Plattenlaufwerk" 40 über das E/A-Kabel 18 auf ihre ganz normale und erwartete Art und Weise kommunikationsfähig zu sein. Innerhalb des virtuellen Plattenlaufwerks 40 ist das Kabel tatsächlich mit einer auf der CPU aufbauenden intelligenten Schnittstelle und Steuerabschnitt 43 kommunikationsfähig, der mit dem das Herzstück der vorliegenden Erfindung bildenden virtuellen Plattencontroller 42 verbunden ist. Der virtuelle Plattencontroller 42 ist seinerseits so angeschlossen, daß er eine Mehrzahl einzelner herkömmlicher Plattenlaufwerke 16, 16' nach dem Stand der Technik, wie beispielsweise in Fig. 1, verwendet. Die Ausgaben von und die Eingaben in den virtuellen Plattencontroller 42 zu und von den Plattenlaufwerken 16, 16' müssen dem gerade verwendeten Format entsprechen, das sie aufweisen, was in Kürze beschrieben werden wird. Da die Plattenlaufwerke 16 herkömmlicher Art sind, und ebenso deren Schnittstellen herkömmlicher Art sind, könnten die Plattenlaufwerke 16, 16' leicht durch Blasenspeicher oder Ähnliches ersetzt werden, um die nicht auf der Umdrehungsgeschwindigkeit aufbauenden Vorteile der vorliegenden Erfindung wie beispielsweise die damit in Zusammenhang stehende erhöhte Geschwindigkeit, Kapazität und Fehlerschutz und Wiederherstellbarkeit zu erzielen. Darüber hinaus ist, wie in Kürze beschrieben wird, die Schnittstellendefinition separat austauschbar, so daß die Neukonfiguration aufgrund von Änderungen bei der "herkömmlichen" Schnittstelle auf einer beliebigen der zwei Seiten einfach durch Änderung der Schnittstellendefinition erfolgen kann. Durch diese intern neukonfigurierbare Schnittstelle können zu jeder Zeit neue Speichervorrichtungen verwendet werden, wobei die Anwenderschnittstelle konstant und unverändert bleiben kann. Daher kann es sich bei dem vom Anwender adressierten Plattenlaufwerk in der Tat um einen Blasenspeicher oder eine beliebige andere Speichervorrichtung handeln. Daher stellt die vorliegende Erfindung eine zuvor nicht vorhandene, zwischen den Anwender und die Speichervorrichtung geschaltete Vorrichtung dar, die Transparenz in beide Richtungen bietet.
- Unter kurzer Bezugnahme auf Fig. 6 wird die physikalische Struktur der vorliegenden Erfindung, wie von deren Anmelder zwecks maximaler Flexibilität und Neukonfigurierbarkeit gebaut, in vereinfachter Form dargestellt. In getesteten Ausführungen wird die zur Bereitstellung der "Intelligenz" verwendete CPU 44, durch die sich die vorliegende Erfindung vom Stand der Technik unterscheidet, mit Computerbus 46 verbunden. Eine Mehrzahl in den Computerbus 46 gesteckter Karten 48 enthält die mit der CPU 44 kommunikationsfähige Logik und die Plattenlaufwerke 16. Die Karte 48' überwacht und erkennt Ausfälle der Fehler-Rückgewinnungsplatte 16'. Diese enthalten gemeinsam die Logik und Daten, um Ausfälle der Laufwerke 16, 16' zu korrigieren. Die Systemplattensteuerschnittstelle ist auf einer separaten Karte 62 vorhanden, so daß in dem Fall, daß sich mit den verwendeten Vorrichtungen in Zusammenhang stehende Konventionen ändern, die virtuelle Plattensteuerung und Schnittstelle schnell und leicht an die neue Konvention angepaßt werden können. Die Karten 48, 48' sind ebenfalls separat durch einen privaten Bus 50 miteinander verbunden, um von dem Computerbus 46 unabhängig zu sein.
- Gemäß der vorliegenden Erfindung können Daten (wobei der Begriff "Daten" Computerprogramme mit einschließt, die für das Plattenlaufwerk auch nichts anderes sind als Binärzahlen) den parallelen Plattenlaufwerken 16, 16' zugewiesen werden, die das virtuelle Plattenlaufwerk 40 auf verschiedene Arten umfassen. So wie dies bei den meisten Aspekten der Computertechnologie der Fall ist, gibt es bei der vorliegenden Erfindung Kompromisse in bezug auf Zeit, Raum und Kosten. Bei jeder Art der Zuweisung handelt es sich um eine separate Ausführung der vorliegenden Erfindung, die in dieser Hinsicht bestimmte Vorteile und Nachteile in bezug auf die anderen Punkte bietet. Bestimmte Anwendungen werden am besten durch eine Ausführung bedient, während andere am besten mit einer anderen Ausführung funktionieren. Die Auswahl muß danach entschieden werden, welche am besten für die Endanwendung ist. Es werden nun mehrere mögliche Ausführungen und die Merkmale einer jeden beschrieben. Fachleute werden erkennen, daß über die zu beschreibenden Konfigurationen hinaus, im Rahmen und im Geist der Erfindung hinaus noch weitere Konfigurationen für die Daten möglich sind, und daß daher die zu beschreibenden spezifischen Beispiele in ihrer Wirkung nicht als begrenzend beabsichtigt sind.
- Es ist typisch für eine tatsächliche Platte nach dem Stand der Technik, daß jeder der Zylinder in eine Mehrzahl von Spuren einer festen Anzahl von Sektoren aufgeteilt ist. Betrachten wir die folgenden Daten von zwei im Handel erhältlichen Platten mit einer Kapazitätsbezeichnung von jeweils 75 und 300 MB:
- Wie erkennbar ist, sind die zwei Platten mit Ausnahme der Spuren pro Zylinder praktisch identisch. Dies hat jedoch wichtige weiterreichende Auswirkungen auf die Leistung. Während man denken könnte, daß beide Platten gleich arbeiten und der Unterschied nur in der Gesamtkapazität der größeren Platte besteht, ist die größere Platte tatsächlich leistungsfähiger als die kleine. Der Grund dafür ist einfach: um die Zylinder zu wechseln, muß eine Bewegung der Arme und Lese-Schreibköpfe erfolgen, wie zuvor beschrieben. Dadurch geht Zeit verloren, und verlorene Zeit verringert die Leistung. Bei der kleineren Platte sind 45 aufeinanderfolgende Sektoren (5 Spuren · 9 Sektoren/Spur) ohne Bewegung des Zugriffsarms erreichbar. Im Gegensatz dazu sind es bei der größeren Platte 171 aufeinanderfolgende Sektoren. Daher handelt es sich um einen wichtigen Maßstab für die Leistung, wenn aufeinanderfolgende Sektoren ohne Bewegung des Zugriffsarms adressierbar sind (d. h. dazugehörige Positionierungszeit).
- Die erste Ausführung der vorliegenden Erfindung in bezug auf die Datenspeicherung ist in Fig. 7 und 8 dargestellt. Entsprechend diesem Ansatz sind die acht einzelnen Bits, aus denen jedes Byte besteht, über acht einzelne Platten verteilt. Zur Erleichterung des Vergleichs und des Verständnisses entsprechen die in Fig. 7 und Fig. 8 dargestellten Daten den für das Beispiel in Fig. 4 verwendeten. Wie in Fig. 7 dargestellt, sind beispielsweise neun Platten für die acht Datenbits und ein einzelnes Fehler-Rückgewinnungsbit vorhanden. Wie bei dem Beispiel von Fig. 4 sind die Daten von Fig. 7 und 8 in Betrachtungsrichtung der Figuren von oben nach unten geschrieben und werden auch so gelesen. Daher ist es ersichtlich, daß das Fehler- Rückgewinnungsbit (in diesem Fall gleich dem Paritätsbit für dieselben Daten) und Daten des ersten Bytes (010101010) in Fig. 4 in dieser Ausführung der vorliegenden Erfindung dieselben sind, nur daß sie über eine bestimmte identifizierbare Bitposition auf die neun Plattenlaufwerke 16, 16' des virtuellen Plattenlaufwerks 40 als 0-1-0-1-0-1-0-1-0 verteilt sind. Wie durch die Zeichnung von Fig. 8 dargestellt, werden die Daten von jedem der Plattenlaufwerke 16, 16' bei dieser Ausführung asynchron in einen Puffer 52 hineingeschrieben und ausgelesen, und zwar als einzelne Bitströme in und aus den Bitpositionen der aufeinanderfolgenden Bytes. Der Anwender 54 kommuniziert mit dem Puffer 52 und ist sich der asynchronen Art der Datenübertragung überhaupt nicht bewußt, die in bezug auf den Puffer 52 und die Plattenlaufwerke 16, 16' stattfindet, die das virtuelle Plattenlaufwerk 40 enthalten. Bei dieser Ausführung wird maximale Geschwindigkeit der Einfachheit der Steuerlogik und niedrigeren Kosten geopfert. Diese Ausführung bietet auch die Fähigkeit der "fliegenden" Wiederherstellung fehlerhafter Daten, d. h. daß ein während einer Datenübertragung verlorenes oder hinzugefügtes Bit gefunden und korrigiert werden kann. Und nicht nur das, sondern diese dynamische Fehlerkorrektur kann auch in ihrer Art von Byte zu nachfolgendem Byte fortlaufend sein. Das heißt, daß ein Plattenlaufwerk 16, 16' vollständig ausfallen kann (oder zu Wartungszwecken entfernt werden kann), und das virtuelle Plattensystem der vorliegenden Erfindung den Betrieb unterbrechungsfrei und praktisch ohne Leistungsverlust weiterführt. Sobald das entfernte Plattenlaufwerk 16 wieder in das System integriert wird, werden die auf ihm enthaltenen Daten nach demselben Verfahren während des Gebrauchs automatisch und dynamisch wiederhergestellt. Die Art und Weise, in der dies unter Verwendung von Plattenlaufwerken nach dem Stand der Technik funktioniert, die dasselbe einzeln nicht ausführen könnten, wird durch den Vergleich von Fig. 3 und 4 mit Fig. 5 verständlich. Wenn das Plattenlaufwerk 16 nach dem Stand der Technik, das die Daten von Fig. 4 enthält, ein Bit verliert und nun beispielsweise 010101000 enthält, stellen die drei "1"-Bits eine ungerade Zahl dar, und ein Paritätsfehler innerhalb des ersten Bits verursacht einen CRC-Fehler bei der Sektorintegrität. Die Logik weiß jedoch nicht, um welche Bitposition es sich handelt und kann keine Korrekturmaßnahme einleiten. Nehmen wir an, derselbe Fehler passiert beim virtuellen Plattenlaufwerk 40, wie in Fig. 7 dargestellt. Die Daten auf "Platte 2", die den Bitstrom von Bit 2 darstellen, werden immer noch in aus acht Bit bestehenden Bytes mit einem zugeordneten Paritätsbit aufrechterhalten, da es sich um ein "Standard"-Plattenlaufwerk nach dem Stand der Technik handelt. Somit wird die Wiederherstellungslogik der vorliegenden Erfindung über zwei Tatsachen informiert. Erstens darüber, daß bei Platte 2 ein CRC-Fehler beim Lesen des Sektors auftrat, der Bit 2 des ersten Bytes enthielt, d. h. daß die Bitposition auf Platte 2 (d. h. Bit 2) fehlerhaft ist. Zweitens darüber, daß der Fehler-Rückgewinnungsbit-Test über das erste Byte (010101010) fehlerhaft ist (da 010101000) gelesen wurde). Da Bit 2 des ersten Bytes als eine "0" gelesen wird und fehlerhaft ist, kann es in einem binären System nur dann richtig sein, wenn es eine "1" ist. Durch die Ausführung dieser Korrektur wird das erste Byte dynamisch von 010101000 in 010101010 korrigiert. In der tatsächlichen Praxis wird dies durch einen einfachen logischen XOR-Vergleich der Inhalte der Bitposition und ihres entsprechenden Fehler-Rückgewinnungsbits auf eine Art und Weise bewerkstelligt, die auf diesem Fachgebiet gut bekannt ist. Es sei darauf hingewiesen, daß die Korrektur auf dieselbe Art und Weise erfolgt, wenn die Fehler-Rückgewinnungsbit-Platte, d. h. Fehler-Rückgewinnungsplatte, ausfällt.
- Die zweite zu beschreibende Ausführung der Erfindung ist auf dem Prinzip der Leistungsmaximierung aufgebaut, d. h. Verringerung der Positionierungszeit usw. Hierfür wird die Einfachheit der Steuerlogik geopfert. Dieser Kompromiß ist jedoch unschwer zu rechtfertigen. Die Komplexität der Logik innerhalb des virtuellen Plattencontrollers 42 der vorliegenden Erfindung stellt nur einen geringen Preis ohne Bedeutung für den Endanwender dar, und hat eine beherrschbare Auswirkung auf die Gesamtkosten für die Herstellung eines marktfähigen Systems. Andererseits ist die Alltagsleistungsfähigkeit eine Sache der Beständigkeit, die für den Endanwender direkt von Bedeutung ist.
- Die zweite Ausführung sowie ihre Funktionsweise wird in Fig. 9 und 10 dargestellt. Wie in Fig. 10 dargestellt, werden die Daten bei dieser Ausführung auf einen bestimmten Sektor eines jeden Plattenlaufwerks verteilt. Zu Beispielszwecken wird das erste Byte der Inhalte der drei Sektoren 2, 6 und 8 in Fig. 10 so dargestellt, daß es auf den Platten 2, 6 und 8 enthalten ist. Um Verwechslungen zu vermeiden, sind die Dateninhalte der verbleibenden Platten nicht bezeichnet. In Betrachtungsrichtung der Figur ist das erste Byte von Sektor 2 11111111, das erste Byte von Sektor 6 ist 00000010, und das erste Byte von Sektor 8 ist 10101010. Wie in Fig. 9 dargestellt, besteht der Vorteil dieser Ausführung darin, daß die neun Plattenlaufwerke 16, 16', die den Sektoren 1-8 plus Fehler- Rückgewinnungsbit über die Laufwerke 16, 16' entsprechen, asynchron und gleichzeitig Daten in und aus separaten Puffern 52 übertragen können.
- Wie erkennbar ist, sind die Inhalte und die Bedienung der Fehler-Rückgewinnungsplatte (Fehler-Rückgewinnungsplatte) 16' bei dieser Ausführung etwas komplexer, insbesondere dann, wenn ein Fehler entdeckt wird. Die Fehler-Rückgewinnung über die Plattenlaufwerke 16, 16', die das virtuelle Plattenlaufwerk 40 enthalten, erfolgt bei dieser Ausführung Sektor für Sektor. Das einzige Mal, daß die Fehler-Rückgewinnungsplatte 16' aktualisiert werden muß, ist möglicherweise dann, wenn ein Schreibvorgang auf eine der Platten stattfindet. Aus diesem Grund, wie in Kürze detaillierter beschrieben wird, überprüft die Logik der vorliegenden Erfindung, die die Datenübertragung zu einem einzelnen Plattenlaufwerk 16 ausführt, den Status der Bits und hält Ausschau nach geänderten Bits (d. h. von "1" auf "0" und umgekehrt). Nur wenn sich eine Bitposition geändert hat, muß das entsprechende Bit auf der Fehler- Rückgewinnungsplatte 16' geändert werden. Diese Änderung erfolgt als ein separater Schreibvorgang auf die Fehler-Rückgewinnungsplatte 16', der eintritt, bevor andere Änderungen auf den Datenplatten 16 eintreten, die die Fehler-Rückgewinnungsplatte 16' in diesem Bereich beeinflussen würden.
- Zur Wiederherstellung verlorener Daten bei dieser Ausführung müssen natürlich die Daten für die Sektoren und die entsprechenden Fehler-Rückgewinnungsdaten von der Fehler-Rückgewinnungsplatte, die die "verlorenen" Daten mit einschließen, in einen gemeinsamen Pufferbereich gebracht werden, damit der oben beschriebene Fehler-Rückgewinnungskorrekturvorgang hinsichtlich der vorangegangenen Ausführung über die Laufwerke hinweg ausgeführt werden kann. Offensichtlich handelt es sich hierbei um einen komplexeren und zeitaufwendigeren Vorgang, der jedoch statistisch gesehen nur sehr selten eintritt. Bei einer vollständigen Entfernung oder vollständigem Ausfall des Plattenlaufwerks würde bei dieser Ausführung während der fortlaufenden Wiederherstellung und Korrektur auf die oben beschriebene Art und Weise eine bedeutende Leistungsverringerung eintreten. Wie bei der vorangegangenen Ausführung würde jedoch kein eigentlicher "Crash" des virtuellen Plattenlaufwerks 40 eintreten und Rechenvorgänge, wenn auch in einem Modus mit etwas verringerter Leistung, fortgesetzt werden, was sicherlich besser ist als beim Stand der Technik, wo ein Crash einen totalen Leistungsausfall zur Folge hat.
- Eine dritte mögliche Ausführung für die Zuweisung und die Speicherung von Daten wird in vereinfachter Form unter Bezugnahme auf Fig. 12 und 13 dargestellt. In diesem Fall wird angenommen, daß die Anwendung stark zylinderorientiert ist. Zur Maximierung der Leistung und zur Verringerung der Positionierungszeit werden die Platten 16, die die virtuelle Platte 40 enthalten, und die Daten "zylindermäßig" zugewiesen. Um die Wirkung dieser Daten- und Adressenstrukturierung innerhalb der Gesamtumgebung der vorliegenden Erfindung zu sehen, sollte zuerst eine Betrachtung von Fig. 12 erfolgen, worin eine einzelne Platte nach dem Stand der Technik mit der Wirkung einer einfachen typischen Folge von Befehlen von einer Mehrzahl von Anwendern dargestellt ist. Wie ersichtlich ist, sind die verschiedenen Zylinder (d. h. C1, C2... Cn) radial auf der Platte 16 angeordnet. Aus Gründen der Einfachheit wird für jede der Platten 16 nur eine Platte und eine Kopfbaugruppe dargestellt, wobei dies so zu verstehen ist, daß die Platten 16 in Fig. 12 und 13 tatsächlich Mehrfachplatten wie in Fig. 3 enthalten. Wenn jeder Anwender einen Lese- oder Schreibvorgang auf seine unterschiedlichen Zylinder ausführt (erinnern wir uns daran, daß die Anwender zylinderorientiert sind), müssen die Köpfe ein- und ausfahren, um vertikal an dem gewünschten Zylinder positioniert zu werden. Dementsprechend muß jeder Anwender so lange warten, bis der vorangegangene Befehl ausgeführt wurde, d. h. First In, First Out. Bei der Ausführung der vorliegenden Erfindung von Fig. 13 wird jede Platte 16 durch einen individuellen Zylinder identifiziert. Daher sind die Anwender dazu in der Lage, gleichzeitig auf ihre individuellen "Zylinder" zuzugreifen. Darüber hinaus hat ein Anwender, wie in der Figur dargestellt, der aufeinanderfolgende Leseanforderungen für zuvor gelesene Daten ausgibt, bei der vorliegenden Erfindung keine Positionierungszeit, da die zuvor gelesenen Daten im Cache- Speicher zurückgehalten, und deshalb ohne erneutes Lesen von der Platte auf einer Art und Weise sofort verfügbar gemacht werden, die in Kürze detaillierter beschrieben wird. Hierbei handelt es sich um einen wichtigen Unterschied der vorliegenden Erfindung gegenüber dem Stand der Technik. Wie sicherlich noch aus der Abhandlung der zuvor beschriebenen "Round Robin-Optimierung" bekannt ist, ist eine aufeinanderfolgende Abfrage des Status von mehreren Plattenlaufwerken das Beste, was der Stand der Technik mit seinen "unintelligenten" Platten bieten kann. Dies ist bei dem intelligenten Speichersystem der vorliegenden Erfindung nicht der Fall. Die Logik weiß, wo bei jeder Platte 16, 16' deren Köpfe als Folge der letzten, an sie gerichteten Lese- oder Schreibanforderung positioniert sind. Genau zu diesem Zweck ändern sie dynamisch die von der Logik der CPU aufrechterhaltenen Werte. Daher kann bei der vorliegenden Erfindung die Positionierungszeit minimiert werden, da die Logik die Laufwerke 16, 16' auf optimale Art und Weise arbeiten lassen kann, beispielsweise indem sie den Anforderungen Priorität verleiht, die eine minimale Bewegung bei jeder Platte erfordern.
- Da nun mehrere Ausführungen der vorliegenden Erfindung beschrieben wurden, wie sie mit der Art und Weise und dem Modus der Datenspeicherung über eine Mehrzahl herkömmlicher, eine virtuelle Platte enthaltende Plattenlaufwerke in Zusammenhang stehen, wird nun der Aufbau des virtuellen Plattenlaufwerkscontrollers der vorliegenden Erfindung sowie dessen bevorzugte Arbeitsweise beschrieben, um außer den oben aufgezählten Vorteilen noch weitere zu erzielen.
- Wenn wir uns nun zuerst Fig. 11 zuwenden, sehen wir, daß der virtuelle Plattenlaufwerkscontroller 42 der vorliegenden Erfindung so konfiguriert ist, daß er die zweite Ausführung in die realisiert (d. h. einem Sektor zugewiesene Platten) und so dargestellt ist, daß er einen über den Computerbus 46 mit einer Mehrzahl von mit Plattenlaufwerken kommunikationsfähigen Abschnitten 48 verbundenen Schnittstellen- und Steuerabschnitt 56 aufweist. Die gestrichelte Linie in der Figur stellt den Vorschlag dar, daß bei der getesteten Ausführung des Anmelders zwei kommunikationsfähige Abschnitte 48 auf einer einzelnen Karte enthalten sind. Die gegenwärtig bei Plattenlaufwerken und Plattenlaufwerkscontrollern verwendete Standardschnittstelle ist die "SCSI"-Schnittstelle. Wie ersichtlich ist, weist die Schnittstelle und der Steuerabschnitt eine Systemplattencontrollerschnittstelle 62 auf, der die richtige Schnittstelle zum Systemplattencontroller 60 darstellt, um einerseits mit dem Anwender 54 und seinem Systemplattencontroller 60, und andererseits mit den im virtuellen Plattenlaufwerk 40 verwendeten Standardplattenlaufwerken 16 kompatibel zu sein, wobei die mit dem Plattenlaufwerk kommunikationsfähigen Abschnitte jeweils mit einem Vorrichtungscontroller 60' abschließen, der die richtige Vorrichtungsschnittstelle zu den damit verbundenen Plattenlaufwerken 16 darstellt. Die Art der verwendeten Schnittstelle wird nicht als Merkmal der vorliegenden Erfindung betrachtet. Die Fähigkeit zur Verwendung jeder beliebigen Art von Schnittstelle und die Fähigkeit zur leichten Neukonfigurierbarkeit auf eine neue Schnittstelle werden jedoch als wichtige Merkmale und Neuheitspunkte der vorliegenden Erfindung gegenüber dem Stand der Technik angesehen. Die Steuerung des virtuellen Festplattencontrollers 42 erfolgt durch die innerhalb der CPU 44 enthaltenen Programmierlogik. Vorzugsweise handelt es sich bei der von der CPU ausgeführten Programmierlogik um eine Art von Festprogramm, das in dem Nur-Lese-Speicher (ROM- Speicher) resident ist, wobei auch andere Verfahren zur Ausführung verwendet werden können, wenn gewünscht. Der Schnittstellen- und Steuerabschnitt 56 umfaßt auch das, was aufgrund seiner in Kürze zu beschreibenden besonderen Verwendung als "Cache-Speicher" 64 bezeichnet wird.
- Jeder der mit Plattenlaufwerken kommunikationsfähigen Abschnitte 48 weist einen mit dem Computerbus 46 verbundenen Statuscontroller 66 auf. Der zuvor erwähnte Vorrichtungscontroller 60' ist zwischen seinem zugeordneten Plattenlaufwerk 16 und dem Computerbus 46 verbunden. In jedem Fall ist auch ein durch ein DMA- Element 70 gesteuerter Datenpuffer 68 mit dem Computerbus 46 verbunden. Diese Elemente arbeiten auf eine Art und Weise, die in diesem Fachgebiet gut bekannt ist, und daher werden diese der Einfachheit halber nicht beschrieben. Es ist auch jedem mit Plattenlaufwerken kommunikationsfähigem Abschnitt 48 eine Fehler- Rückgewinnungslogik 72 zugeordnet. Es ist diese Logik, die, wie zuvor erwähnt, die die aufgrund von Änderungen auf die Platte geschriebenen Datenbits prüft, indem sie mit diesen, und den vorherigen Daten einen XOR-Vergleich durchführt. Wenn Änderungen gefunden werden, dann wird diese Information an die Master-Fehler-Rückgewinnungslogik 74 weitergeleitet.
- Die Fehler-Rückgewinnungsbitgenerierung über die gesamten einzelnen, mit Plattenlaufwerken kommunikationsfähigen Abschnitte 48 hinweg gemäß einem verwendeten Algorithmus, ist in der Master-Fehler-Rückgewinnungslogik 74 enthalten, die rückwärts mit jedem der Fehler-Rückgewinnungslogikblöcke 72 über einen privaten Bus 50 sowie mit dem Controller 60' und den zugeordneten Komponenten für das Fehler-Rückgewinnungslaufwerk 16' kommunikationsfähig ist, um deren Aktualisierung zu veranlassen, wenn dies aufgrund einer Änderung bei den Inhalten einer Bitposition notwendig sein sollte, bei der die Änderung des entsprechenden Fehler-Rückgewinnungsbits auf dem Fehler-Rückgewinnungslaufwerk 16' erforderlich ist. Die Wiederherstellungslogik 76 ist mit dem Computerbus 46 verbunden und kann daher mit der Master-Fehler-Rückgewinnungslogik 74 sowie sowie mit den anderen Fehler-Rückgewinnungsblöcken 72 und den anderen Systemkomponenten kommunizieren. Ohne daß eine weitere detaillierte Beschreibung notwendig ist, wird es für Fachleute erkennbar sein, daß die Wiederherstellungslogik 76 über einen Zugriff auf alle für die Ausführung der Wiederherstellung verlorener Daten notwendigen Informationen verfügt. Wie zuvor erwähnt, wird dies auf die Art und Weise bewerkstelligt, die auf die Ausführung für die implementierte Datenspeicherung angepaßt ist. Wenn beispielsweise im Fall der Ausrichtung auf Sektordaten über die Plattenlaufwerke 16, 16' verlorene Daten entdeckt werden, müßte die Wiederherstellungslogik die Sektoren einschließlich der verlorenen Daten von den verschiedenen Laufwerken 16, 16' lesen, das Laufwerksfehlersignal von den auf dem Computerbus 46 erscheinenden Statuscontrollern 66 abtasten um festzustellen, welches Laufwerk 16, 16' die fehlerhaften Daten enthält, und dann mit den Daten von dem fehlerhaften Laufwerk und den Fehler-Rückgewinnungsbits einen XOR- Vergleich durchführt, um eine ordnungsgemäße Wiederherstellung verlorener Daten sicherzustellen und dann der CPU 44 die Daten zur Verwendung zur Verfügung stellen. Es sei darauf hingewiesen, daß, wie zuvor erwähnt, dafür gesorgt ist, daß Fehler beim Fehler- Rückgewinnungslaufwerk 16' erkannt werden, genau wie bei allen anderen Laufwerken 16. Es wird erkennbar sein, daß gleichzeitige Mehrfachfehlererkennung und -korrektur in zusätzlichen Fehlerkorrekturlaufwerken aufgenommen werden kann.
- Während wir uns nun Fig. 14 zuwenden, wird ein abschließender, jedoch sehr bedeutender Aspekt der vorliegenden Erfindung abgehandelt. Das tatsächliche Schreiben auf und Lesen von den einzelnen Plattenlaufwerken 16, 16' erfolgt durch die einzelnen Datenpuffer 68. Bei dem Cache-Speicher 64 (d. h. 3,6 MB bei einer getesteten Ausführung) handelt es sich um einen großen, zur Speicherung von Daten verwendeten Speicher, die zur Anwender-CPU 54 gehen und von ihr kommen. Es ist der Cache-Speicher 64, in den asynchron gelesene Daten hineinverschoben werden, wenn das virtuelle Plattenlaufwerk 40 so arbeitet, wie in bezug auf Fig. 9 und 10 beschrieben. In dieser Hinsicht handelt es sich beim Speicher 64 um eine asynchrone Warteschlange für die Verlagerung von Daten zu und von den Plattenlaufwerken 16. Um die durch die vorliegende Erfindung möglichen Leistungszuwächse zu maximieren, werden die Daten, wenn die Anwender-CPU 54 einen auf die "Platte" zu schreibenden Datenblock präsentiert (d. h. das für sie transparente virtuelle Plattenlaufwerk 40), in einen verfügbaren Bereich des Speichers 64 verlagert, und eine sofortige Bestätigung an die Anwender-CPU 54 geschickt. Daher denkt die Anwender-CPU, daß der angeforderte Plattenschreibvorgang ausgeführt wurde. Das eigentliche Schreiben auf das passende Plattenlaufwerk 16 für den beteiligten Sektor findet danach statt, wann immer es möglich ist. Die Logik der CPU 44 in dem Schnittstellen- und Steuerabschnitt 56 schreibt asynchron von dem Speicher 64 in den passenden Datenpuffer 68, wenn er das nächste Mal für einen Schreibvorgang auf die Platte verfügbar ist. In dieser Hinsicht maximiert die Logik die Übertragungen aus dem Speicher 64 heraus ohne Berücksichtigung traditioneller FIFO- oder LIFO-Verfahren. Sie versucht eher, die Plattenübertragungen maximiert aufrecht zu erhalten, indem sie die besten Daten herausschreibt, um die Positionierungszeiten zu minimieren und indem sie Plattenlaufwerke benutzt, die andernfalls ungenutzt wären.
- Bei vielen Datenbankvorgängen ist es beispielsweise nicht ungewöhnlich, daß auf die Platte geschrieben, und fast augenblicklich erneuter Zugang zu denselben Daten benötigt wird. In solchen Fällen funktioniert der Speicher 64 der vorliegenden Erfindung als ein Cache-Speicher, wie in Fig. 14 dargestellt, d. h. wenn eine Anforderung von Daten erfolgt, die bereits innerhalb des Speichers 64 in der Warteschlange befindlich sind, weil sie auf die Platte geschrieben werden sollen, dann wird die eigentliche Leseanforderung abgebrochen und die Daten werden dem die Anforderung Stellenden erneut präsentiert, als wären sie gerade als Antwort auf die Anforderung von der Platte gelesen worden. Wie für Fachleute leicht ersichtlich sein sollte, wäre die Verwendung des großen asynchronen Warteschlangenspeichers 64 ohne weitere Vorkehrungen nicht mit den Zuverlässigkeitsaspekten der vorliegenden Erfindung vereinbar. Daher betrifft ein Kostenfaktor, der in Kauf zu nehmen ist, um die Vorteile der vorliegenden Erfindung vollständig in die Praxis umzusetzen, die Verwendung einer batteriegesicherten Stromversorgung 78 in Verbindung mit dem Speicher 64, damit bei einem Stromausfall die darin enthaltenen Daten nicht verloren gehen. Der Cache-Speicher an sich ist nicht neu. Wir sind jedoch davon überzeugt, daß der Cache-Speicher in seiner Konfiguration wie in der vorliegenden Erfindung, und seine in diesem Dokument beschriebene Art und Weise der Funktion gegenüber dem Stand der Technik neu ist.
- Da nun verschiedene mögliche Datenausrichtungen beschrieben wurden, die durch die vorliegende Erfindung und deren physikalische Struktur ermöglicht werden, wird nun deren Funktionsweise insgesamt insbesondere angesprochen, um die Leistung durch die Verwendung von Intelligenz bei der Arbeitszuweisung zu maximieren. Dies ist für ein vollständiges Verständnis und für das Erkennen des Unterschiedes zwischen Plattenlaufwerken nach dem Stand der Technik (einschließlich der PTD- Varietät) und den hochintelligenten, parallenen virtuellen Plattenlaufwerkssystemen der vorliegenden Erfindung wichtig. In dieser Hinsicht besteht der wichtigste Faktor der vorliegenden Erfindung zusätzlich zu der Tatsache, daß eine Mehrzahl einzelner Plattenlaufwerke verwendet wird, und der Tatsache, daß die Erkennung und Neukonfiguration verlorener Daten möglich ist, in der Tatsache, daß ein Mikrocomputer integriert ist, um alle mechanischen Bewegungen der einzelnen Platten intelligent und effizient zu optimieren. Wie erkennbar ist, ist dies ein zweischneidiges Schwert, d. h. es müssen einzelne Plattenlaufwerke mit ihren separat positionierbaren mechanischen Mechanismen vorhanden sein, und es muß eine Intelligenz in der Art und Weise vorhanden sein, in der die Laufwerke positioniert sind. Bei der vorliegenden Erfindung ist die CPU 44 dazu in der Lage, den verschiedenen Platten 16, 16' auf die optimalste Art und Weise gleichzeitig Lese-Schreibvorgänge zuzuweisen, wobei sie auf Vorgänge achtet, die die Effizienz maximieren. Bei einem herkömmlichen Plattenlaufwerk werden Vorgänge beispielsweise aufeinanderfolgend ausgeführt. Im Gegensatz dazu ist bei der vorliegenden Erfindung die Intelligenz der innerhalb der CPU 44 enthaltenen Logik so konzipiert, daß sie gleichzeitig und asynchron die verschiedenen Platten 16, 16' (und den Cache-Speicher 64) zur Maximierung der Effizienz nutzt. Wenn sich beispielsweise Laufwerk "n" bei Zylinder 13 befindet und in der Warteschlange eine Anforderung für dasselbe Laufwerk an einem Zylinder in der Nähe vorhanden ist, kann die CPU 44 so programmiert werden, daß sie diese Anforderung vor einer Anforderung ausführt, bei der die Bewegung der Arm- und Kopfbaugruppe in einer entferntere Position erforderlich ist. Auch hier sind die verschiedenen Möglichkeiten für die "Intelligenz" der CPU 44, die durch die einzigartige Struktur des virtuellen Plattenlaufwerks der vorliegenden Erfindung ermöglicht werden, die einen echten gleichzeitigen Betrieb bietet, weitgehend eine Funktion der Anwendung, bei der sie benutzt wird. Bei einigen Anwendungen ist beispielsweise eine sequentielle Arbeitsweise notwendig, und das oben beschriebene Beispiel der Herausnahme von Anforderungen aus der Reihenfolge, um Zylinderpositionen auszunutzen, nicht wünschenswert.
Claims (20)
1. Speichervorrichtungssystem fix Computer, das in der Lage ist, verlorene Daten
dynamisch und transparent wiederherzustellen, mit:
(a) einer Vielzahl von ersten einzelnen Speichervorrichtungen (16) zum
Speichern von digitaler Information;
(b) einer zweiten einzelnen Speichervorrichtung (16') zum Speichern von
Fehler/Rückgewinnungscodebits;
(c) einer Eirichtung zur Erzeugung und Speicherung von
Fehler/Rückgewinnungscodebits in der zweiten einzelnen Speichervorrichtung (16') nach
einem vorher definierten Fehler/Rückgewinnungscodeprüfalgorithmus für die digitale
Information an entsprechenden jeweiligen Bitpositionen quer durch die Vielzahl von
ersten einzelnen Speichervorrichtungen (16); und
(d) einer Einrichtung zur Verwendung der Fehler/Rückgewinnungscodebits in
Kombination mit dem Inhalt der entsprechenden jeweiligen Bitpositionen quer durch die
Vielzahl von ersten einzelnen Speichervorrichtungen (16), um ein irrtümlich geändertes
Bit in der digitalen Information nach dem Fehler/Rückgewinnungscodeprüfalgorithmus
wiederherzustellen, wenn entweder die erste oder zweite einzelne Speichervorrichtung
(16, 16') während der Übertragung der digitalen Information einen Fehler ermittelt;
(e) eine Schnittstelleneinrichtung (46, 56), die zum Empfangen von Lese- und
Schreibanforderungen von einer Anwender-CPU (10) eingerichtet ist und
(f) einer Vielzahl von Speichervorrichtungscontrollereinrichtungen (60'), die
zwischen die Schnittstelleneinrichtung und entsprechende aus der Vielzahl von
Speichervorzichtungen (16) geschaltet sind, zum Kommunizieren mit der Vielzahl von
Speichervorrichtungen (16) und zum gleichzeitigen Betreiben derselben;
dadurch gekennzeichnet, daß die Schnittstelleneinrichtung (56) einen
Pufferspeicher (64) zum Speichern von Schreibanforderungsdaten von der Anwender-
CPU (10) und zum Schreiben der Daten aus dem Pufferspeicher (64) in die
Vorrichtungscontrollereinrichtung (60') und die Speichervorrichtungen (16) asynchron in
Zeit und Ablauf in bezug auf die Schreibauforderungen umfaßt, wobei die CPU-
Einrichtung (44) und der Pufferspeicher (64) geeignet sind, Lese/Schreiboperationen
gleichzeitig und asynchron verschiedenen einzelnen Speichervorrichtuagen (16)
zuzuweisen, die Operationen erwarten, die die Effizienz maximieren; und wobei die
Schnittstelleneinrichtung (46, 56) eine CPU-Einrichtung (44) umfaßt, wobei die CPU-
Einrichtung (44) aufweist: eine Logik (48) zum Prüfen von Daten in dem Pufferspeicher
(64) und zum Anzeigen dieser Daten als solche, die aus der einen der einzelnen
Speichervorrichtungen (16) gelesen worden sind, oder als solche, die bereits in die
Warteschlange eingeordnet worden sind, um in eine der einzelnen Speiehervorrichtungen
(16) geschrieben zu werden, wobei die Daten aus dem Pufferspeicher (64) gelesen werden
ohne tatsächliches Lesen aus der einzelnen Speichervorrichtung, wenn eine
Leseanforderung dafür von der Anwender-CPU (10) kommend empfangen wird, wodurch
der Pufferspeicher (64) in solchen Fällen als Cache-Speicher wirkt; wobei die CPU-
Einrichtung (44) aufweist: eine Logik zum sofortigen Bestätigen eines Schreibens in eine
der einzelnen Speichervorrichtungen (16), nachdem die zu schreibenden Daten in den
Puffer (64) gelegt worden sind, wobei die Anwender-CPU (10) glaubt, daß die
Plattenschreiboperation ausgeführt worden ist.
2. Verfahren zum Speichern von digitaler Information in einem
Massenspeichervorrichtungsystem für Computer mit der Fähigkeit, verlorene Daten
dynamisch und transparent wiederherzustellen, und mit:
(a) einer Vielzahl von ersten einzelnen Speichervorrichtungen (16) zum
Speichern der digitalen Information; und
(b) einer zweiten einzelnen Speichervorrichtung (16') zum Speichern von
Fehler/Rückgewinnungscodebits; mit den Schritten:
(c) während des Schreibens der digitalen Information in die einzelnen
Speichervorrichtungen (16) Erzeugen und Speichern von
Fehler/Rückgewinnungscodebits in der zweiten einzelnen Speichervorrichtung (16') nach einem vorher definierten
Fehler/Rückgewinnungscodeprüfalgorithmus für die digitale Information an
entsprechenden jeweiligen Bitpositionen quer durch die Vielzahl von ersten einzelnen
Speichervorrichtungen (16);
(d) Verwenden der Fehler/Rückgewinnungscodebits in Kombination mit dem
Inhalt der entsprechenden jeweiligen Bitpositionen quer durch die Vielzahl von ersten
einzelnen Speichervorrichtungen (16), um ein irrtümlich geändertes Bit in der digitalen
Information nach dem Fehler/Rückgewinnungscodeprüfalgorithmus wiederherzustellen,
wenn entweder die erste oder zweite einzelne Speichervorrichtung (16, 16') während der
Übertragung der digitalen Information einen Fehler ermittelt;
(e) eine Schnittstelleneinrichtung (46, 56), um Lese- und
Schreibanforderungen von einer Anwender-CPU (10, 54) zu empfangen; und
(f) eine Vielzahl von Speichervorrichtungscontrollern (60'), die zwischen die
Schnittstelle und jeweilige aus der Vielzahl von Speichervorrichtungen (16) geschaltet
sind, um mit der Vielzahl von Speichervorrichtungen (16) zu kommunizieren;
wobei das Verfahren das gleichzeitige Betreiben dieser Speichervorrichtungen
(16) umfaßt;
und gekennzeichnet durch die Verwendung eines Pufferspeichers (64) in der
Schnittstelleneinrichtung (56) zum Speichern von Schreibanforderungsdaten von der
Anwender-CPU (10) und zum Schreiben der Daten aus dem Pufferspeicher (64) in die
Vorrichtungscontrollereinrichtung (60') und die Speichervorrichtungen (16) asynchron in
Zeit und Ablauf in bezug auf die Schreibanforderungen, wobei die CPU-Einrichtung (44)
und der Pufferspeicher (64) geeignet sind, Lese/Schreiboperationen gleichzeitig und
asynchron verschiedenen einzelnen Speichervorrichtungen (16) zuzuweisen, die
Operationen erwarten, die die Effizienz maximieren; und die Verwendung einer CPU-
Einrichtung (44) als Teil der Schnittstelleneinrichtungen (46, 56), wobei die CPU-
Einrichtung aufweist: eine Logik (48) zum Prüfen von Daten in dem Pufferspeicher (64)
und zum Anzeigen der Daten als solche, die aus einem der einzelnen
Speichervorrichtungen (16) gelesen worden sind, oder als solche, die bereits in die
Warteschlange eingeordnet worden sind, um in eine der einzelnen Speichervorrichtungen
(16) geschrieben zu werden, wobei die Daten aus dem Pufferspeicher (64) gelesen werden
ohne tatsächliches Lesen aus der einzelnen Speichervorrichtung, wenn eine
Leseanforderung dafür von der Anwender-CPU (10), kommend empfangen wird, wodurch
der Pufferspeicher (64) in solchen Fällen als Cache-Speicher wirkt; wobei die CPU-
Einrichtung (44) aufweist: eine Logik zum sofortigen Bestätigen eines Schreibens in eine
der einzelnen Speichervorrichtungen (16), nachdem die zu schreibenden Daten in den
Puffer (64) gelegt worden sind, wobei die Anwender-CPU (10) glaubt, daß die
Plattenschreiboperation ausgeführt worden ist.
3. Speichervorrichtungsystem nach Anspruch 1, wobei die
Massenspeichervorrichtungen (16) asynchron betriebsfähig und geeignet sind, an ihren
Eingangsscbnittstellen mit jeweiligen Vorrichtungscontrollern (60') zu kommunizieren,
wobei die Vorrichtungscontroller (60') aufweisen: eine Controllerschnittstelleneinrichtung
zum Darstellen einer Systemvorrichtungscontrollerschnittstelle für die
Eingangsschnittstelle jedes der Massenspeichervorrichtungen (16); und
Datenpuffereinrichtungen (68) zum Übertragen von Daten zu und von der
Massenspeichervorrichtung (16) umfassen.
4. Virtuelle Massenspeichervorriehtung nach Anspruch 1 oder 3, wobei die
Schnittstelleneinrichtung einen einzelnen kommunikationsfähigen Logikabschnitt zum
Kommunizieren mit einer Anwender-CPU (10, 54) umfaßt, wobei der
kommunikationstähige Logikabschnitt eine
Systemvorrichtungscontrollerschnittstelleneinrichtung (43, 62) zum Kommunizieren mit einem
Standardsystemvorrichtungscontroller (14, 60) aufweist, über den die Anwender-CPU (10, 54) mit dem
Speichervorrichtungssystem (40) verbunden ist; wobei jede der
Speichervorrichtungscontrollereinrichtungen (60') eine Controllerschnittstelleneinrichtung
zum Darstellen einer Standardsystemvorrichtungscontrollerschnittstelle für die
Eingangsschnittstelle ihrer jeweiligen Speichervorrichtung (16) und einen Datenpuffer
(68) zum Übertragen von Daten zu und von seiner jeweiligen Speichervorrichtung (16)
aufweist;
wobei der kommunikationsfähige Logikabschnitt einen Steuerabschnitt mit einer
CPU-Einrichtung (44) aufweist, der mit der Vielzahl von
Speichervorrichtungscontrollereinrichtungen (60') betriebsfähig verbunden ist, zum Steuern eines
gleichzeitigen Betriebsablaufs der Speichervorrichtungscontrollereinrichtung (60') beim
Schreiben von Daten in' die und Lesen von Daten aus den Speiehervorrichtungen (16);
und eine Wiederherstellungseinrichtung (76) aufweist: eine Einrichtung zum Erfassen
eines Fehlerzustands aus einer der Massenspeichervorrichtungen (16, 16') bei der
Übertragung von Daten und zur Verwendung der Kenntnis davon, welche der Daten der
Speichervorrichtungen irrtümlich sind, als Hinweis darauf, welche Bitposition irrtümlich
ist, in Kombination mit dem Fehler/Ruckgewinnungsbit, das den Daten irrtümlich
zugeordnet ist, die das fehlerhafte Bit enthalten, um das fehlerhafte Bit logisch
wiederherzustellen.
5. Speichervorrichtungssystem nach Anspruch 1, 3 oder 4, in dem der
Fehler/Rückgewinnungscodeprüfalgorithmus ein vorher definierter
Paritätsprüfalgorithmus ist und
die Schnittstelleneinrichtung (14, 18, 46, 56, 62) eine
Schnittstellendefinitionseinrichtung zum Annehmen von Anforderungen von der Anwender-CPU (10,
54) nach einer ersten Schnittstellenkonvention und zum Übersetzen der Anforderungen in
eine zweite Schnittstellenkonvention aufweist, die von der
Speichervorrichtungscontrollereinrichtung (60') zum Kommunizieren mit der Vielzahl von
Speichervorrichtungen (16) verwendet wird.
6. Speichervorrichtungssystem nach einem der Ansprüche 1, 3, 4 oder 5, wobei:
(a) die Schnittstelleneinrichtung (14, 18, 46, 56, 62) einen Steuerabschnitt (43)
mit einer CPU-Einrichtung (44) aufweist, die betriebsfähig mit der Vielzahl von
Speichervorrichtungscontrollereinrichtungen (60') verbunden ist, zum Steuern des
Betriebsablaufs der Speichervorrichtungscontrollereinrichtungen (60') beim Schreiben
von Daten in und Lesen von Daten aus den Speichervorrichtungen (16);
(b) eine Vielzahl von Datenpuffen (68) mit jeweiligen aus der Vielzahl der
Speichervorrichtungen (16) verbunden sind, aus denen Daten geschrieben werden und in
die Daten gelesen werden in bezug auf die zugeordneten Speichervorrichtungen.
7. Speichervorrichtungssystem nach einem der Ansprüche 1, 3, 4, 5 oder 6 mit einer
batteriegesicherten Stromversorgungseinrichtung (78), die mit dem Pufferspeicher (64)
betriebsfähig verbunden ist, zum Erhalten der Daten in diesem im Falle eines
Stromausfalls im Speichervorrichtungssystem.
8. Verfahren nach Anspruch 2 zum Speichern von digitaler Information in einem
Massenspeichersystem mit den Schritten:
Annehmen von Anforderungen von einer Anwender-CPU (10, 54) nach einer
ersten Schnittstellenkonvention und Übersetzen der Anforderungen in eine zweite
Schnittstellenkonvention, die von den Speichervorrichtungscontrollern (60') zum
Kommunizieren mit der Vielzahl von Speichervorrichtungen (16) verwendet wird; und
bei Bedarf
Bereitstellen eines Steuerabschnitts (43) als Teil der Schnittstelle, einschließlich
der CPU (44), der mit der Vielzahl von Speichervorrichtungscontrollern (60')
betriebsfähig verbunden ist, um den Betriebsablauf der Speichervorrichtungscontroller
(60') beim Schreiben von Daten in und Lesen von Daten aus den Speichervorrichtungen
(16) zu steuern; und bei weiterem Bedarf
Verbinden einer Vielzahl von Datenpuffern (68) mit jeweiligen aus der Vielzahl
der Speichervorrichtungen (16), aus denen Daten geschrieben und in die Daten gelesen
werden in bezug auf die zugeordnete Speichervorrichtung (16).
9. Verfahren nach Anspruch 8 zur gleichzeitigen Betrieb von mehreren
Speichervorrichtungen für Computer von einem einzelnen
Anwendervorrichtungscontroller, wobei die Schnittstellendefinitionslogik in der Schnittelle Anforderungen
von dem Anwendervorrichtungscontroller nach der ersten Schnittstellenkonvention
annimmt und die Anforderungen in die zweite Schnittstellenkonvention übersetzt, die von
den Speichervorrichtungscontrollern (60') verwendet wird.
10. Verfahren nach Anspruch 2, wobei das Speichervorrichtungssystem umfaßt:
einen Steuerabschnitt in der Schnittstelleneinrichtung mit der CPU (44), der
betriebsfähig verbunden ist mit der Vielzahl von Speichervorrichtungscontrollern (60'),
um den Betriebsablauf der Speichervorrichtungscontroller (60') beim Schreiben von
Daten in und Lesen von Daten aus den Speichervorrichtungen (16) zu steuern; und bei
weiterem Bedarf
eine Vielzahl von Datenpuffern (68), die mit jeweiligen aus der Vielzahl von
Speichervorrichtungen (16) verbunden sind, aus denen Daten geschrieben und in die
Daten gelesen werden, und zwar in bezug auf die zugeordnete Speichervorrichtung (16).
11. Speichervorrichtungssystem nach Anspruch 1, wobei die Schnittstelleneinrichtung
einen einzelnen kommunikationsfähigen Logikabschnitt zum Kommunizieren mit einer
Anwender-CPU (10, 54) aufweist, wobei der kommunikationsfähige Logikabschnitt eine
Systemvorrichtungscontrollerschnittstelleneinrichtung zum Kommunizieren mit dem
Vorrichtungscontroller (60') aufweist, über den die Anwender-CPU (10, 54) mit der
Massenspeichervorrichtung (40) verbunden ist;
wobei die Speichervorrichtungen (16) asynchron betriebsfähig und geeignet sind,
mit dem Vorrichtungscontroller (60') an ihren Eingangsscbnittstellen zu kommunizieren;
wobei die Speichervorrichtungscontrollereinrichtung (60') zum Kommunizieren
zwischen dem kommunikationsfähigen Logikabschnitt und der Vielzahl von
Speichervorrichtungen (16) dient, wobei die Vorrichtungscontrollereinrichtung (60') eine
Controllerschnittstelleneinrichtung (62) zum Darstellen einer
Systemvorrichtungscontrollerschnittstelle für die Eingangsschnittstelle der Massenspeichervorrichtungen (16)
aufweist; und umfaßt:
einer Datenpuffereinrichtung (68) zum Übertragen von Daten zu und von den
Massenspeichervorrichtungen;
wobei der kommunikationsfähige Logikabschnitt einen Steuerabschnitt mit einer
CPU-Einrichtung (44) aufweist, der mit der Vielzahl von Vorrichtungscontrollern (60')
betriebsfähig verbunden ist, zum Steuern des Betriebsablaufs der Vorrichtungscontroller
(60') beim Schreiben von Daten in und Lesen von Daten aus den
Massenspeichervorrichtungen (16).
12. Speichervorrichtungssystem nach Anspruch 11, wobei:
(a) die Datenpuffereinrichtung (68) eine Vielzahl von Datenpuffern (68)
aufweist, die mit jeweiligen aus der Vielzahl von Speichervorrichtungen (16) verbunden
sind aus denen Daten geschrieben und in die Daten gelesen werden in bezug auf die
zugeordnete Speichervorrichtung (16); und/oder:
(b) die Schnittstelleneinrichtung eine Schnittstellendefinitionseinrichtung zum
Annehmen von Anforderungen von der Anwender-CPU (10, 54) nach einer ersten
Schnittstellenkonvention und zum Übersetzen der Anforderungen in eine zweite
Schnittstellenkovention aufweist, die von der Speichervorrichtungscontrollereinrichtung
(60') zum Kommunizieren mit der Vielzahl von Speichervorrichtungen (16) verwendet
wird; und/oder:
(c) die Vielzahl von Vorrichtungscontrollern (60'), die
Controllerschnittstelleneinrichtung (62), die Datenpuffer (68) und der
kommunikationsfähige Logikabschnitt miteinander verbunden sind, um über einen ersten
Computerbus (46) miteinander zu kommunizieren, und die
Fehler/Rückgewinnungsgeneratorbiteinrichtung (72, 74) und die Wiederherstellungslogikeinrichtung (76)
miteinander verbunden sind, um über den zweiten Computerbus (50) miteinander zu
kommunizieren.
13. Speichervorrichtungssystem nach Anspruch 1, das umfaßt:
einen einzelnen kommunikationsfähigen Logikabschnitt zum Kommunizieren mit
einer Anwender-CPU (10, 54), wobei der kommunikationsfähige Logikabschnitt eine
Systemvorrichtungscontrollerschnittstelleneinrichtung (62) zum Kommunizieren mit
einem Standardsystemvorrichtungscontroller (60) aufweist, durch L den die Anwender-
CPU (10, 54) mit der virtuellen Massenspeichervorriehtung (40) verbunden ist;
wobei jeder der Speichervorrichtungscontroller (60') eine
Controllerschnittstelleneinrichtung zum Darstellen einer
Standardsystemvorrichtungscontrollerschnittstelle für die Eingangsschnittstelle seiner jeweiligen
Massenspeichervorrichtung (16) und einen Datenpuffer (68) zum Übertragen von Daten zu und von
seiner jeweiligen Massenspeichervorrichtung (16) aufweist;
wobei der kommunikationstähige Logikabschnitt einen Steuerabschnitt mit einer
CPU-Einrichtung (44) aufweist, der betriebsfähig mit der Vielzahl von
Vorrichtungscontrollern (60') verbunden ist, zum Steuern eines gleichzeitigen
Betriebsablaufs der Vorrichtungscontroller (60') beim Schreiben von Daten in und Lesen
von Daten aus den Massenspeichervorrichtungen (16);
wobei die Wiederherstellungslogikeinrichtung (76) aufweist: eine Einrichtung
zum Erfassen eines Fehlerzustands von einer der Massenspeichervorrichtungen (16) bei
der Übertragung von Daten und zur Verwendung der Kenntnis davon, welche der Daten
der Massenspeichervorrichtungen irrtümlich sind, als Hinweis darauf, welche Bitposition
irrtümlich ist, in Kombination mit dem Fehler/Rückgewinnungsbit, das den Daten
irrtümlich zugeordnet ist, die das fehlerhafte Bit enthalten, um das fehlerhafte Bit logisch
wiederherzustellen.
14. Speichervorrichtungssystem nach Anspruch 1, das eine Fehler korrigierende
virtuelle Plattenlaufwerksspeichervorrichtung mit hoher Kapazität für einen Computer ist,
wobei die Schnittstelleneinrichtung umfaßt:
einen einzelnen kommunikationsfähigen Logikabschnitt zum Kommunizieren mit
einer Anwender-CPU (10, 54), wobei der kommunikationsfähige Logikabschnitt eine
Plattenlaufwerkscontrollerschnittstelleneinrichtung zum Kommunizieren mit einem
Standardplattenaufwerkscontroller aufweist, durch den die Anwender-CPU mit der
virtuellen Pattenlaufwerksspeichervorrichtung verbunden ist;
wobei die Speichervorrichtungen eine Vielzahl von Standardplattenlaufwerken
sind, die geeignet sind, mit einem Standardplattenlaufwerkscontroller an ihren
Eingangsschnittstelle zu kommunizieren,
wobei die Vielzahl von Speichervorrichtungscontrollereinrichtungen (60')
Plattenlaufwerkscontroller sind, wobei jeder der Plattenlaufwerkscontroller aufweist: eine
Controllerschnittsteheneinrichtung zum Darstellen einer
Standardsystemplattenlaufwerkscontrollerschnittstelle für die Eingangsschnittstelle seines jeweiligen Plattenlaufwerks,
einen Datenpuffer (68) zum Obertragen von Daten zu und von seinem jeweiligen
Plattenlaufwerk und eine Paritätsgeneratoreinrichtung zum Erzeugen eines Paritätsbits für
Gruppen von Bits einer Standardlänge, die an ihr jeweiliges Plattenlaufwerk übertragen
werden;
wobei die Erzeugungs- und Speichereinrichtung eine virtuelle
Plattenlaufwerksparitätserzeugungseinrichtung zum Erzeugen von Paritätsbits aufweist,
die als Teil von Datengruppierungen von Bits zugeordnet sind, die an die
Plattentaufwerke übertragen werden; und
wobei die Wiederherstellungseinrichtung eine Wiederherstellungslogikeinrichtung
zum Erfassen eines Paritätsfehlerzustands von einem der Plattenlaufwerke in
Kombination mit einem Paritätsfehler in einer der Datengruppierungen von Bits, wie
angezeigt durch ein Paritätsbit, das von der virtuellen
Plattenlaufwerksparitätserzeugungseinrichtung erzeugt wird, und zur Verwendung der Kenntnis davon ist, welche
der Daten der Plattenlaufwerke irrtümlich sind, in Kombination mit dem Paritätsbit, das
von der virtuellen Plattenlaufwerksparitätserzeugungseitirichtung erzeugt wird, um ein
fehlerhaftes Bit logisch wiederherzustellen, wobei der gemeinsame Paritätsfehlerzustand
erzeugt wird,
wobei:
die Datenpuffer in Kombination eine FIFO-Puffereinrichtung zum Halten einer
Vielzahl von sequentiellen Datengruppierungen umfassen; und
die Plattenlaufwerkscontroller jeweils eine Datenübertragungslogik zum
asynchronen Übertragen jeweiliger aus einer Folge der Datengruppierungen von den
jeweiligen Plattenlaufwerken zu den FIFO-Datenpuffereinrichtungen und zum
Informieren des Standardplattenlaufwerkscontrollers aufweisen, durch den die Anwender-
CPU mit der virtuellen Plattenlaufwerksspeichervorrichtung verbunden ist, daß eine
angeforderte Leseoperation nur dann beendet ist, wenn ausreichende der Folgen von
Datengruppierungen von allen Plattenlaufwerken gelesen werden, um sicherzustellen, daß
die Anwender-CPU die Folge der Datengruppierungen, die von allen Plattenlaufwerken
gelesen werden, aus den FIFO-Datenpuffereinrichtungen nicht schneller entfernen kann,
als die verbleibenden der Folge der Datengruppierungen, die von allen Plattenlaufwerken
gelesen werden, asynchron in die FIFO-Datenpuffereirichtungen gelesen werden.
15. Speichervorrichtungssystem nach Anspruch 14, wobei:
der Schnittstellenlogikabschnitt einen Steuerabschnitt mit der CPU-Einrichtung
(44) aufweist, der betriebsfähig verbunden ist mit der Vielzahl von
Plattenlaufwerkscontrollern zum Steuern des Betriebsablaufs der
Plattenlaufwerkscontroller beim Schreiben von Daten und Lesen von Daten aus den Plattenlaufwerken;
und zusätzlich
die CPU-Einrichtung aufweist: die Logik zum sofortigen Bestätigen eines
Schreibens an das zugeordnete Plattenlaufwerk, wenn Daten zu schreiben sind, die in den
Datenpuffer (64) gelesen werden, wodurch der Lesedurchsatz der virtuellen
Plattenlaufwerksspeichervorrichtung erhöht wird.
16. Speichervorrichtungssystem nach Anspruch 13, wobei:
(a) die Vielzahl von Plattenlaufwerkscontrollern und der
kommunikationsfähige Logikabschnitt miteinander verbunden sind, um über einen ersten
Computerbus miteinander zu kommunizieren; und
(b) die Controllerschnittstelleneinrichtung, die Datenpuffer, die
Paritätsgeneratoreinrichtung der Plattenlaufwerkscontroller miteinander verbunden sind,
um über einen zweiten Computerbus miteinander zu kommunizieren.
17, Speichervorrichtungssystem nach Anspruch 14, wobei der kommunikationsfähige
Logikabschnitt einen Steuerabschnitt mit der CPU-Einrichtung aufweist, der mit der
Vielzahl von Plattenlaufwerkscontrollern betriebsfähig verbunden ist, zum Steuern des
Betriebsablaufs des Plattenlaufwerkscontrollers beim Schreiben von Daten in und Lesen
von Daten aus den Plattenlaufwerken;
und wobei die CPU-Einrichtung aufweist: die Logik zum sofortigen Bestätigen
eines Schreibens in das zugeordnete Plattenlaufwerk, nachdem zu schreibende Daten in
den Pufferspeicher gelegt worden sind, wodurch der Lesedurchsatz der virtuellen
Plattenlaufwerksspeichervorrichtung erhöht wird.
18. Speichervorrichtungsystem nach Anspruch 17, wobei:
die Vielzahl von Plattenlaufwerkscontrollern und der kommunikationsfähige
Logikabschnitt miteinander verbunden sind, um über einen ersten Computerbus
miteinander zu kommunizieren; und
die Controllerschnittsteheneinrichtung, die Datenpuffer und die
Paritätsgeneratoreinrichtung der Plattenlaufwerkscontroller miteinander verbunden sind,
um über einen zweiten Computerbus miteinander zu kommunizieren.
19. Speichervorrichtungssystem nach Anspruch 17, wobei die CPU-Einrichtung
aufweist: die Logik zum Prüfen von Daten in dem Pufferspeicher (64) und zum Anzeigen
derselben als solche, die aus einem zugeordneten Plattenlaufwerk gelesen worden sind
ohne ein tatsächliches Lesen derselben, wenn eine Leseanforderung dafür von einem
Anwender kommend empfangen wird, wodurch der Lesedurchsatz der virtuellen
Plattenlaufwerksspeichervorrichtung erhöht wird.
20. Speichervorrichtungssystem nach Anspruch 19, wobei:
die Vielzahl von Plattenlaufwerkscontrollern und der kommunikationsfähige
Logikabschnitt miteinander verbunden sind, um über einen ersten Computerbus
miteinander zu kommunizieren; und
die Controllerschnittstelleneinrichtung, die Datenpuffer und die
Paritätsgeneratoreinrichtung der Plattenlaufwerkscontroller miteinander verbunden sind,
um über einen zweiten Computerbus miteinander zu kommunizieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5734787A | 1987-06-02 | 1987-06-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3856443D1 DE3856443D1 (de) | 2001-01-04 |
DE3856443T2 true DE3856443T2 (de) | 2001-06-28 |
Family
ID=22010025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3856443T Expired - Fee Related DE3856443T2 (de) | 1987-06-02 | 1988-06-01 | Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen Speichersystem |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP0294287B1 (de) |
JP (1) | JP3180130B2 (de) |
KR (1) | KR0128343B1 (de) |
CN (1) | CN1014840B (de) |
AT (1) | ATE197853T1 (de) |
CA (1) | CA1296103C (de) |
DE (1) | DE3856443T2 (de) |
WO (1) | WO1988009968A1 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US5283791A (en) * | 1988-08-02 | 1994-02-01 | Cray Research Systems, Inc. | Error recovery method and apparatus for high performance disk drives |
US5218689A (en) * | 1988-08-16 | 1993-06-08 | Cray Research, Inc. | Single disk emulation interface for an array of asynchronously operating disk drives |
WO1990006550A1 (en) * | 1988-12-08 | 1990-06-14 | Cray Research, Inc. | Single disk emulation for asynchronous disk array |
US5022030A (en) * | 1989-03-17 | 1991-06-04 | Digital Equipment Corporation | Skewed XOR data storage process |
WO1991001524A1 (en) * | 1989-07-19 | 1991-02-07 | Cray Research, Inc. | An error recovery method and apparatus for high performance disk drives |
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 |
US5206943A (en) * | 1989-11-03 | 1993-04-27 | Compaq Computer Corporation | Disk array controller with parity capabilities |
US5072378A (en) * | 1989-12-18 | 1991-12-10 | Storage Technology Corporation | Direct access storage device with independently stored parity |
JPH0786810B2 (ja) * | 1990-02-16 | 1995-09-20 | 富士通株式会社 | アレイディスク装置 |
US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
US5195100A (en) * | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
US5166939A (en) * | 1990-03-02 | 1992-11-24 | Micro Technology, Inc. | Data storage apparatus and method |
US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
US5325497A (en) * | 1990-03-29 | 1994-06-28 | Micro Technology, Inc. | Method and apparatus for assigning signatures to identify members of a set of mass of storage devices |
CA2034904C (en) * | 1990-03-30 | 1995-07-18 | John Stuart Best | High speed, small diameter disk storage system |
US5130992A (en) * | 1990-04-16 | 1992-07-14 | International Business Machines Corporaiton | File-based redundant parity protection in a parallel computing system |
US5263145A (en) * | 1990-05-24 | 1993-11-16 | International Business Machines Corporation | Method and means for accessing DASD arrays with tuned data transfer rate and concurrency |
US5247638A (en) * | 1990-06-18 | 1993-09-21 | Storage Technology Corporation | Apparatus for compressing data in a dynamically mapped virtual data storage subsystem |
US5239640A (en) * | 1991-02-01 | 1993-08-24 | International Business Machines Corporation | Data storage system and method including data and checksum write staging storage |
US5289478A (en) * | 1991-03-11 | 1994-02-22 | Fujitsu Limited | Method and means for verification of write data |
US5345565A (en) * | 1991-03-13 | 1994-09-06 | Ncr Corporation | Multiple configuration data path architecture for a disk array controller |
JP2743606B2 (ja) * | 1991-04-11 | 1998-04-22 | 三菱電機株式会社 | アレイ型記録装置 |
US5278838A (en) * | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
US5301297A (en) * | 1991-07-03 | 1994-04-05 | Ibm Corp. (International Business Machines Corp.) | Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof |
EP0582370B1 (de) * | 1992-06-05 | 1998-10-07 | Compaq Computer Corporation | Plattenantriebsteuergerät mit Nachschreibcachespeicher |
JP3183719B2 (ja) * | 1992-08-26 | 2001-07-09 | 三菱電機株式会社 | アレイ型記録装置 |
US5490149A (en) * | 1993-12-28 | 1996-02-06 | International Business Machines Corporation | Tactical read error recovery strategy based on dynamic feedback |
US5838631A (en) | 1996-04-19 | 1998-11-17 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
KR100449693B1 (ko) * | 1997-01-29 | 2004-10-14 | 삼성전자주식회사 | Cpu내의쓰기버퍼데이터보존장치및그방법 |
WO1999018507A1 (en) | 1997-10-08 | 1999-04-15 | Seagate Technology, Inc. | Hybrid data storage and reconstruction system and method for a data storage device |
US6115320A (en) | 1998-02-23 | 2000-09-05 | Integrated Device Technology, Inc. | Separate byte control on fully synchronous pipelined SRAM |
US7069406B2 (en) | 1999-07-02 | 2006-06-27 | Integrated Device Technology, Inc. | Double data rate synchronous SRAM with 100% bus utilization |
KR100363221B1 (ko) * | 2000-11-10 | 2002-12-05 | 디스크뱅크(주) | 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법 |
CN100421081C (zh) * | 2001-06-01 | 2008-09-24 | Nxp股份有限公司 | 数字系统及其错误检测方法 |
US7793020B1 (en) * | 2002-11-27 | 2010-09-07 | International Business Machines Corporation | Apparatus and method to read information from an information storage medium |
US7712010B2 (en) | 2006-06-15 | 2010-05-04 | International Business Machines Corporation | Systems, methods and computer program products for utilizing a spare lane for additional checkbits |
US11593237B2 (en) | 2021-05-28 | 2023-02-28 | International Business Machines Corporation | Fast recovery with enhanced raid protection |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3876978A (en) * | 1973-06-04 | 1975-04-08 | Ibm | Archival data protection |
GB1578485A (en) * | 1976-06-22 | 1980-11-05 | Bell & Howell Co | Data coding and error correcting method |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4425615A (en) * | 1980-11-14 | 1984-01-10 | Sperry Corporation | Hierarchical memory system having cache/disk subsystem with command queues for plural disks |
US4410942A (en) * | 1981-03-06 | 1983-10-18 | International Business Machines Corporation | Synchronizing buffered peripheral subsystems to host operations |
US4644545A (en) * | 1983-05-16 | 1987-02-17 | Data General Corporation | Digital encoding and decoding apparatus |
JPS605023A (ja) * | 1983-06-22 | 1985-01-11 | Tokuyama Soda Co Ltd | 塩化カルシウム水溶液の製造方法 |
FR2561428B1 (fr) * | 1984-03-16 | 1986-09-12 | Bull Sa | Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques |
JPS6162920A (ja) * | 1984-09-05 | 1986-03-31 | Hitachi Ltd | 磁気デイスク装置システム |
CA1263194A (en) * | 1985-05-08 | 1989-11-21 | W. Daniel Hillis | Storage system using multiple mechanically-driven storage units |
US4722085A (en) * | 1986-02-03 | 1988-01-26 | Unisys Corp. | High capacity disk storage system having unusually high fault tolerance level and bandpass |
-
1988
- 1988-05-24 CA CA000567565A patent/CA1296103C/en not_active Expired - Fee Related
- 1988-05-31 JP JP50503088A patent/JP3180130B2/ja not_active Expired - Fee Related
- 1988-05-31 KR KR1019890700189A patent/KR0128343B1/ko not_active IP Right Cessation
- 1988-05-31 WO PCT/US1988/001826 patent/WO1988009968A1/en unknown
- 1988-06-01 AT AT88401327T patent/ATE197853T1/de not_active IP Right Cessation
- 1988-06-01 EP EP88401327A patent/EP0294287B1/de not_active Expired - Lifetime
- 1988-06-01 DE DE3856443T patent/DE3856443T2/de not_active Expired - Fee Related
- 1988-06-02 CN CN88103284A patent/CN1014840B/zh not_active Expired
Also Published As
Publication number | Publication date |
---|---|
ATE197853T1 (de) | 2000-12-15 |
KR0128343B1 (ko) | 1998-04-14 |
EP0294287B1 (de) | 2000-11-29 |
EP0294287A3 (de) | 1991-04-24 |
KR890702122A (ko) | 1989-12-22 |
DE3856443D1 (de) | 2001-01-04 |
JP3180130B2 (ja) | 2001-06-25 |
JPH02500228A (ja) | 1990-01-25 |
EP0294287A2 (de) | 1988-12-07 |
CA1296103C (en) | 1992-02-18 |
WO1988009968A1 (en) | 1988-12-15 |
CN1014840B (zh) | 1991-11-20 |
CN88103284A (zh) | 1988-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3856443T2 (de) | Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen Speichersystem | |
DE69131551T2 (de) | Logische Aufteilung eines Speichersystems mit redundanter Matrix | |
DE69131728T2 (de) | Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur | |
DE69626947T2 (de) | Reservekopie-Generierung in einem RAID-Untersystem | |
DE69127895T4 (de) | Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem | |
DE69412775T2 (de) | System zur Kontrolle der Befehlswarteschlange der Paritätsplatte in einer Speicherplattenanordnung | |
DE69632219T2 (de) | Speicherplattenanordnungssystem | |
DE69615611T2 (de) | Externes Speichersystem mit redundanten Speichersteuerungen | |
DE3750790T2 (de) | Paritätsverteilung zum verbesserten Speicherzugriff. | |
DE69227896T2 (de) | Paritätsberechnung in einer effizienten matrix von massenspeichergeräten | |
DE69735400T2 (de) | Speicherplattenanordnung | |
DE69219208T2 (de) | Verteilter Ersatz in DASD-Feldern | |
DE69528443T2 (de) | Betriebsverfahren einer Speicherplattenanordnung | |
DE69225296T2 (de) | Datenrekonstruktion in einem Speichergerätanordnungssystem | |
DE68926436T2 (de) | Plattenlaufwerkanordnungssystem und Verfahren | |
DE69323225T2 (de) | Datenbehandlung in einem System mit Prozessor zur Steuerung des Zugangs zu einer Mehrzahl von Datenspeicherplatten | |
DE69130669T2 (de) | Netzwerkplattensystem und methode | |
DE69915243T2 (de) | Speicherplattenanordnung-Steuerungsvorrichtung | |
DE69117371T2 (de) | Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt | |
DE68928546T2 (de) | Dateisystem für eine vielzahl von speicherklassen | |
DE69123093T2 (de) | Kanal zur Datenregenerierung in einer fehlertoleranten Plattenlaufwerkanordnung und Verfahren zur Fehlerkorrektur darin | |
DE69529728T2 (de) | Speicherplattenanordnungsgerät | |
DE69021077T2 (de) | Anordnung von flachspulantrieben fuer mehrere magnetkoepfe in plattenspeichern. | |
DE69129444T2 (de) | On-Line-Wiederherstellung von Redundanz-Information in einem redundanten Matrixsystem | |
DE69430599T2 (de) | Dynamisch ausbaubares Speichereinheitsmatrixsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8363 | Opposition against the patent | ||
8339 | Ceased/non-payment of the annual fee |