[go: up one dir, main page]

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 Speichersystem

Info

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
Application number
DE3856443T
Other languages
English (en)
Other versions
DE3856443D1 (de
Inventor
Theodore Jay Goodlander
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STORAGE COMP CORP
Original Assignee
STORAGE COMP CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22010025&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE3856443(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by STORAGE COMP CORP filed Critical STORAGE COMP CORP
Application granted granted Critical
Publication of DE3856443D1 publication Critical patent/DE3856443D1/de
Publication of DE3856443T2 publication Critical patent/DE3856443T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • 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.
DE3856443T 1987-06-02 1988-06-01 Gegen Fehler tolerantes, Fehler korrigierendes Speichersystem und Verfahren zur Speicherung digitaler Information in einem derartigen Speichersystem Expired - Fee Related DE3856443T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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