DE68927624T2 - Mehrfaches plattenspeicher-system mit hoher kapazität und verfahren - Google Patents

Mehrfaches plattenspeicher-system mit hoher kapazität und verfahren

Info

Publication number
DE68927624T2
DE68927624T2 DE68927624T DE68927624T DE68927624T2 DE 68927624 T2 DE68927624 T2 DE 68927624T2 DE 68927624 T DE68927624 T DE 68927624T DE 68927624 T DE68927624 T DE 68927624T DE 68927624 T2 DE68927624 T2 DE 68927624T2
Authority
DE
Germany
Prior art keywords
data
disk drives
error
disk
data words
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE68927624T
Other languages
English (en)
Other versions
DE68927624D1 (de
Inventor
Laurence Flora
Gary Ruby
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.)
Unisys Corp
Original Assignee
Unisys 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
Application filed by Unisys Corp filed Critical Unisys Corp
Publication of DE68927624D1 publication Critical patent/DE68927624D1/de
Application granted granted Critical
Publication of DE68927624T2 publication Critical patent/DE68927624T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/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
    • 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
    • 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
    • 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

Landscapes

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

Description

    HINTERGRUND
  • Die vorliegende Beschreibung bezieht sich generell auf verbesserte Mittel und Verfahren zur Bereitstellung eines sehr zuverlässigen peripheren Speichers mit hoher Kapazität zur Verwendung in einem Datenverarbeitungssystem und speziell auf ein Plattenspeichersystem mit hoher Kapazität, welches sich aus einer Vielzahl von unabhängig betreibbaren Plattenlaufwerken zusammensetzt, die auf eine solche Weise mit einem Fehlerkorrekturkreis kooperieren, daß sie als ein Plattenlaufwerk mit hoher Kapazität, einem ungewöhnlich hohem Fehlertoleranzgrad und einem großen Durchlaßbereich fungieren. Das Verfahren bzw. die Vorrichtung sieht auch die Einbeziehung eines Cache-Speichers in einer Weise vor, welche die Gesamtleistung signifikant verbessert. Bei den heutigen Computersystemen ist die Zuverlässigkeit der in ihnen verwendeten peripheren Speichersysteme eine kritische Größe, die die Zuverlässigkeit des Gesamtsystems berührt, insbesondere wenn Plattenlaufwerke (die im Moment favorisierten peripheren Speichervorrichtungen) als periphere Speicher benutzt werden. Der Hauptgrund besteht darin, daß die Zuverlässigkeit von modernen CPUs (Computer Processing Units - Zentraleinheit) die Zuverlässigkeit der Plattensysteme, mit denen sie verwendet werden, leicht überholt haben, obwohl intensive Aktivitäten in den vergangenen Jahren unternommen wurden, die Zuverlässigkeit dieser Plattensysteme zu verbessern.
  • Die Unausgewogenheit zwischen der Zuverlässigkeit der CPUs und den Plattensystemen hat zu der Entwicklung von Datenbanksystemen mit Prüfprotokollen geführt, die es ermöglichen, eine Datenbasis nach dem Fehler und der Reparatur des Plattensystems zu rekonstruieren.
  • Es wird ebenfalls häufig ein Ansatz mit einer "gespiegelten Platte" verwendet, in dem alle Daten gleichzeitig auf zwei Platten geschrieben werden und eine einfache Wiederherstellung erlauben, wenn eine von ihnen ausfällt.
  • Bekannte Ansätze (wie die vorstehenden) zum Schutz der Integrität der Daten für den Fall eines Plattenfehlers sind entweder im Hinblick auf die direkten Gerätekosten und/oder in Bezug auf die Systemleistung teuer. Was dringend benötigt wird, ist deshalb ein neuer Ansatz zur signifikanten Steigerung der Zuverlässigkeit (Fehlertoleranz) eines Plattenspeichersystems mit hoher Kapazität, das nicht die erheblichen Kosten und Komplexität der zur Zeit bekannten Ansätze erfordert.
  • Ein System gemäß dem Oberbegriff von Anspruch 1 ist in der Patentschrift US-A-4,722,085 des Patentinhabers der vorliegenden Erfindung beschrieben. Dieses Dokument offenbart ein Verfahren zum Schreiben und Lesen von digitalen Daten durch die Benutzung einer Gruppe von separat betreibbaren Plattenlaufwerken. Die Gruppe von Plattenlaufwerken besteht aus einer relativ großen Zahl von kleinen, unabhängig voneinander arbeitenden Platten-Subsystemen, die jeweils ihren eigenen Controller aufweisen. Jedes Platten-Subsystem ist mit einer gemeinsamen Lese-/Schreibschnittstelle gekoppelt, die wiederum üblicherweise mit einem Computerkanal gekoppelt ist. Die Lese-/Schreibschnittstelle enthält einen Fehlerkreis und eine Datenorganisiereinrichtung. Zur Durchführung von Schreib- Operationen speist eine Datenorganisiereinrichtung 32-Bit-Wörter seriell zu dem Fehlerkreis, der sieben zusätzliche Fehlerprüfbits jedem 32-Bit-Wort hinzufügt. Die resultierenden am Ausgang des Fehlerkreises seriell erzeugten 39 Bits werden entsprechend den 39 Plattenlaufwerk-Subsystemen zugeleitet. Dieses Verfahren führt zu einer ungewöhnlich hohen Fehlertoleranz/Zuverlässigkeit und einem sehr großen Durchlaßbereich. Ein Flaschenhals der Gesamtsystem leistung bleibt jedoch die zu langsame Lese-/Schreibschnittstelle.
  • In einem Aufsatz von Bill Winterstein, "Cache Design boots SMD Disk Drive Performance UV, veröffentlicht in Computer Design 1986, Nr.6, S.87-92, wird ein neuer Entwurf von einem Cache in modularen Plattenspeicher-Controllern beschrieben. In diesem Aufsatz wird ein Cache in einem Multitasking-System als vorteilhaft angesehen; FIFO-Schemen werden als ein Flaschenhals in Multitasking-Systemen angesehen. Es wird daher vorgeschlagen, einen Cache in mehrere unabhängige Sektionen zu segmentieren, um nichtsequentielle Zugriffe von verschiedenen Prozessen eines Multitasking-Systems zu ermöglichen. Die Verzahnung wird als ungenügend erachtet, da die Platten-/Systemschnittstelle zu langsam sei und das System deshalb Daten nicht mit der erforderlichen Plattengeschwindigkeit empfangen kann. Dieses Papier schlägt auch die Benutzung eines Caches vor, auf den gleichzeitig von den verschiedenen Prozessen zugegriffen wird, die versuchen, auf einen - möglicherweise virtuell - gemeinsam benutzten Speicher zuzugreifen. In einer solchen Multitasking-Umgebung obliegt es den - nicht sequenziellen - Prozessen, Instruktionen in Form von Daten vorher dem Cache zuzuführen, um hierbei Zugriffszeitprobleme des Platten-/Systeminterfaces zu vermeiden.
  • Ein anderes Forschungspapier von M. Y. Kim "Synchronized Disk Interleaving" in Transactions on Computers, Band C-35, Nr.11, S.978-988 bezieht sich auf eine Massenspeichersystemarchitektur, welche synchronisierte Verzahnungstechniken benutzt. Diese Architektur verwendet das M/G/1 Queueing-Modell. Eine Modellmethodologie zur Evaluierung der durchschnittlichen Eingangs-/Ausgangsantwortzeit wird auch beschrieben. Im Rahmen dieser Methodologie wird ein verzahntes Plattensystem als ein Sonderfall eines konventionellen Systems mit einer einzigen Platte angesehen.
  • Die Aufgabe der vorliegenden Erfindung ist darauf gerichtet, die Plattenzugriffszeit signifikant zu reduzieren, und dabei die Vorteile, welche von der Architektur gemäß der Patentschrift US-A-4,722,085 erzielt wurden, beizubehalten. Diese Aufgabe wird von einem System gemäß Anspruch 1 und 2 sowie durch ein Verfahren gemäß Ansprüchen 16 und 17 erreicht.
  • Das erfindungsgemäße System enthält einen Cache und einen Cache-Bypass, wobei gemäß Anspruch 1 der Cache (Zwischenspeicher) Blöcke von Daten als erste Datenworte speichert, die über die Datenorganisiereinrichtung oder das Mittel zur Erzeugung einer Fehlerprüfziffer ein- und ausgegeben werden und wobei gemäß Anspruch 2 der Cache Blöcke von Daten als zweite Datenworte speichert, die über das Mittel zur Erzeugung wenigstens einer Fehlerprüfziffer oder über den Plattenspeicher empfangen und ausgegeben wurden.
  • Die Merkmale der vorliegenden Erfindung führen zu einer verbesserten Gesamtsystemleistung, die besser ist als eine solche, die bei Verwendung eines Caches mit konventionellen Plattenlaufwerken erzielt wird. Dies ist deshalb der Fall, weil das erfindungsgemäße Verfahren die Fehlerprüf- und Korrekturcharakteristiken einer Mehrfach-Plattenorganisation zu ihrem Vorteil nutzt. Das erfindungsgemäße System ist ein hochgradig zuverlässiges peripheres Speichersystem mit hoher Kapazität, welches nicht die erheblichen Kosten und Komplexität von bekannten Ansätzen erfordert. Es nutzt die ökonomischen Vorteile und andere vorteilhafte Eigenschaften von relativ kleinen Plattenlaufwerken. Der Fehlertoleranzgrad ist ungewöhnlich hoch. Das neue Plattenspeichersystem hat auch einen großen Durchlaßbereich.
  • Der Kerngedanke der Erfindung sowie andere Aufgaben, Merkmale, Vorteile und Verwendungen von ihr werden anhand der nachfolgenden Beschreibung einer bevorzugten Ausführungsform klar, die in Verbindung mit den beiliegenden Zeichnungen vorgenommen wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es zeigen:
  • Fig. 1 ein Blockdiagramm, das ein bekanntes kleines Plattensubsystem zeigt;
  • Fig. 2 ein Blockdiagramm, das eine erste Ausführungsform der Erfindung zeigt;
  • Fig. 3 ein Blockdiagramm, das detaillierter zeigt, wie die Lese-/ Schreibschnittstelle 25 der in Fig. 2 dargestellten bevorzugten Ausführungsform mit den Plattensubsystemen 10-0 bis 10-38 verbunden ist;
  • Fig. 4 eine schematische Darstellung, in der dargestellt ist, wie Daten von der Datenorganisiereinrichtung 34 gemäß Fig. 3 organisiert sind;
  • Fig. 5. ein Blockdiagramm, in dem eine zweite Ausführungsform der Erfindung dargestellt ist, welche die Verwendung eines Caches in besonders vorteilhafter Weise einschließt;
  • Fig. 6 eine weitere Ausführungsform der Erfindung, in der ein Cache in einer anderen Weise bei dem Mehrfachplattenlaufwerksystem gemäß Fig. 3 verwendet wird;
  • Fig. 7 eine modifizierte Version der Ausführungsform gemäß Fig. 5;
  • Fig. 8 eine modifizierte Version der Ausführungsform gemäß Fig. 6.
  • BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • Übereinstimmende Zahlen und Zeichen bezeichnen in allen Darstellungen der Zeichnungen jeweils entsprechende Elemente.
  • Zunächst ist anzumerken, daß die vorliegende Erfindung in einer neuen und nichtnaheliegenden Kombination von Elementen besteht, die unter Benutzung von bekannten Apparaten und Komponenten implementiert werden können. Demgemäß wird die Beschreibung von bestimmten bevorzugten Ausführungsformen der Erfindung dadurch vorgenommen, daß elektrische Blockdiagramme und schematische Darstellungen zusammen mit dazugehörigen Beschreibungen der Arbeitsweisen erfolgt, was in Kombination ausreicht, um Fachleute in die Lage zu versetzen, die Erfindung auszuführen.
  • Es wird zunächst auf Fig. 1 Bezug genommen, in der ein bekanntes, kommerziell verfügbares kleines Plattensubsystem 10 dargestellt ist, das ein Plattenlaufwerk 11 und einen zugehörigen Platten-Controller 12 und Plattenpufferspeicher 13 enthält. Jeder Controller 12 verfügt üblicherweise über eine eigene Datenblockfehlerprüfung und -korrektur, wobei das Auftreten eines nichtkorrigierbaren Fehlers während einer Lese- oder Schreiboperation üblicherweise durch ein Fehlerausgangssignal E angezeigt wird. Die Zuverlässigkeit und Leistung eines solchen Disksubsystems wurde in den vergangenen Jahren signifikant verbessert, während die Kosten konstant gefallen sind. Ein typisches Plattenlaufwerksubsystem 10 kann z. B. ein 5 1/4 Inch Plattenlaufwerk enthalten, das eine Speicherkapazität von 86 Megabyte und eine Zugriffszeit von 35 Millisekunden zur Verfügung stellt. Ein Plattenlaufwerk mit einer größeren Kapazität von 500 bis 800 Megabyte Speicherkapazität ist nun ebenfalls verfügbar.
  • Ein bekanntes Disksubsystem 10, wie es in Fig. 1 dargestellt ist, arbeitet üblicherweise dadurch, daß
  • (1) auf Schreib- und Adressignale W und Adr, die dem Platten-Controller 12 zugeleitet werden, der Controller 12 veranlaßt, daß Daten in dem Plattenpufferspeicher 13 an die entsprechend adressierten Plattenorte geschrieben werden, und
  • (2) auf Lese- und Adressignale R und Adr der Controller 1 2 veranlaßt, daß Daten von dem entsprechend adressierten Plattenort in Plattenpufferspeicher 13 gelesen werden. Die typische Datengröße, welche auf jeder Platte adressiert wird, entspricht einem Datensektor und enthält z. B. 256 Bytes oder 2048 Bits (ein Byte entspricht 8 Bits). Typischerweise stellt der Pufferspeicher 13 Speicherplatz mit einem oder mehreren Datensektoren zur Verfügung. Die Adressignale Adr identifizieren die Plattenspur und den Plattensektor, wo das Lesen oder Schreiben stattfinden soll.
  • Es wird nunmehr auf Fig. 2 Bezug genommen, in der eine bestimmte bevorzugte Ausführungsform der Erfindung dargestellt ist, bei der eine relativ große Zahl von relativ kleinen Plattensubsystemen 10, wie sie in Fig. 1 dargestellt sind, elektrisch so gekoppelt sind, daß sie als ein Plattensystem mit hoher Kapazität und mit einem ungewöhnlich hohen Grad an Fehlertoleranz fungieren.
  • In der spezifischen bevorzugten Ausführungsform der Erfindung, wie sie in Fig. 2 dargestellt ist, ist ein Plattensystem mit hoher Kapazität dargestellt, welches 39 Plattenlaufwerksubsysteme 10-0 bis 10-38 des in Fig. 1 dargestellten Typs verwendet. In dieser bevorzugten Ausführungsform gemäß Fig. 2 werden Daten parallel von einem gemeinsam adressierten Sektor einer jeden Platte 11-0 bis 11-38 gelesen oder hierauf geschrieben, wobei - wie dargestellt - die gemeinsame Adresse durch Signale Adr bestimmt werden, die parallel an die Controller 12-38 gemeinsam mit einem Lese- R oder Schreib- W -signal angelegt werden. Das Signal Tr dient als ein Initialisierungssignal. Bei einer Leseoperation wird ein Datensektor des adressierten Sektors einer jeden Platte in seinen entsprechenden Pufferspeicher 13-0 bis 13-38 gelesen; und für eine Schreiboperation wird ein Datensektor von jedem entsprechenden Pufferspeicher 13-0 bis 13-38 auf den adressierten Sektor seiner entsprechenden Platte geschrieben. Das Vorkommen eines unkorrigierbaren Fehlers während einer Lese- oder Schreiboperation eines Plattenlaufwerksubsystems 10-0 bis 10-38 wird dadurch angezeigt, daß von den Fehlerausgangssignalen E-0 bis E-38 der jeweils Entsprechende realisiert wird.
  • Wie ebenfalls in Fig. 2 dargestellt ist, wird eine Lese-/Schreibschnittstelle 25 zur Verbindung der Plattensubsysteme 10-0 bis 10-38 mit einer Speichersteuereinheit (SCU) 30 bereitgestellt, welche wiederum typischerweise mit einem Computerkanal gekoppelt ist, der mit 33 bezeichnet ist. Fig. 3 zeigt eine besonders bevorzugte Ausführungsform dieser Lese-/Schreibschnittstelle 25 und ihre Verbindung zu den Plattensubsystemen 10-0 bis 10-38. Wie in Fig. 3 dargestellt ist, enthält die Lese- /Schreibschnittstelle 25 einen Fehlerkreis 32 und eine Datenorganisiereinrichtung 34. Wie nachfolgend im Detail beschrieben wird, dient der Fehlerkreis 32 dazu, eine hohe Fehlertoleranz für das periphere Speichersystem mit hoher Kapazität zu schaffen, das unter Benutzung der Plattensubsysteme 10-0 bis 10-38 gebildet ist, während die Datenorganisiereinrichtung 34 dazu dient, auf geeignete Weise das Lesen und Schreiben von Daten zur Übertragung zu dem Kreis zu organisieren, der die Daten empfangen soll.
  • Im einzelnen organisiert die Datenorganisiereinrichtung 34 in Fig. 3 das Schreiben von Daten, die von der SCU 30 empfangen wurden, so daß die Daten zur Verteilung (über den Fehlerkreis 32) zu den Pufferspeichern 13-0 bis 13-38 (Fig. 2) der Plattensubsysteme 10-0 bis 10-38 geeignet organisiert sind; und organisiert das Lesen von Daten, welche von den Pufferspeichern 13-0 bis 13-38 der Disksubsysteme 10-0 bis 10-38 (über den Fehlerkreis 32) empfangen wurden, so daß die Daten zur Verteilung zu der SCU 30 geeignet organisiert sind. Die Datenorganisiereinrichtung 34 antwortet auch auf Daten, die von der SCU 30 empfangen wurden, um geeignete Sektoradressen und Übertragungssignale Adr und Tr und Lese- und Schreibsignale R und W zur parallelen Weiterleitung an die Platten-Controller 12-0 bis 12-38 (Fig. 2) zur Verfügung zu stellen.
  • Die spezifische Art und Weise, mit der der Fehlerkreis 32 eine hohe Fehlertoleranz für das periphere Speichersystem mit hoher Kapazität bereitstellt, das aus den Plattensubsystemen 10-0 bis 10-38 gebildet wurde, wird nun dadurch erklärt, daß typische Lese- und Schreiboperationen für die dargestellte bevorzugte Ausführungsform betrachtet werden.
  • Schreiboperationen werden zuerst betrachtet. Bei der spezifischen bevorzugten Ausführungsform, die nun beschrieben wird, wird das Basissegment von Schreibdaten, die zu der Datenorganisiereinrichtung 34 in Fig. 3 von der SCU 30 übertragen werden, so ausgewählt, daß es 32 Plattensektoren entspricht, wobei ein Sektor - wie vorstehend angemerkt - üblicherweise 256 Bytes oder 2048 Bits enthält. Die Datenorganisiereinrichtung 34 organisiert dieses Basissegment von Daten in 2048 Wörter W0-W2047, wobei jedes Wort sich aus 32 Bits B0-B31 zusammensetzt, wie in Fig. 4 vereinfacht dargestellt ist. Die Datenorganisiereinrichtung 34 speist diese 2048 32-Bitworte W0-W2047 Wort für Wort (d. h. seriell) zu dem Fehlerkreis 32, der sieben zusätzliche Fehlerprüfbits B32-B38 jedem 32-Bitwort in einer konventionellen Weise hinzuaddiert, um auf diese Weise ein hieraus resultierendes 39-Bitwort an seinem Ausgang zu erzeugen, das eine Fehlerprüf- und -korrekturfähigkeit besitzt. Diese 2048 seriell angewendeten 32-Bitworte, die zu dem Fehlerkreis 32 geleitet werden, sind in Fig. 3 mit Wi (B0-B31) gekennzeichnet, und die 2048 seriell erzeugten 39-Bitworte, die am Ausgang des Fehlerkreises 32 erzeugt wurden, sind mit Wi (B0-B38) bezeichnet, wobei "i" Werte zwischen 0 und 2047 entsprechend den 2048 Worten W0-W2047 besitzt. Es ist klar, daß die Erzeugung von Fehlerprüfbits und ihre Benutzung zur Fehlererfassung und -korrektur im Stand der Technik wohlbekannt sind und zur Implementation zur Verfügung steht. Weitere Information in dieser Hinsicht kann z. B. in dem Artikel von R. W. Hamming, "Error Detecting and Error Correcting Codes", Beil Systems Technical Journal, 29, 1950, 5. 147-1 60 und in den US-Patentschriften 4,375,664; 4,168,486; und 4,052,698 gefunden werden.
  • Es wird immer noch auf Fig. 3 Bezug genommen; die 39 Bits B0-B38 werden von jedem der 2048 Worte Wi (B0-B38) seriell am Ausgang des Fehlerkreises 32 erzeugt und entsprechend den Pufferspeichern 13-0 bis 13-38 den 39 Plattenlaufwerk-Subsystemen 10-0 bis 10-38 zugeleitet. Z. B. empfängt, wie in Fig. 3 dargestellt ist, der Pufferspeicher 13-0 die 2048 B0 Bits WiB0 der 2048 seriell erzeugten Worte Wi (B0-B38) und der Pufferspeic her 13-38 empfängt die 2048 B38 Bits WiB38 von Wi (B0-B38). Wie vorstehend in Zusammenhang mit Fig. 1 und 2 beschrieben wurde, werden diese in jedem der Pufferspeic her 13-0 bis 13-38 gespeicherten 2048 Bits parallel auf die Sektoren der entsprechenden Platten 10-0 bis 10-38 auf ein Schreibsignal W hin geschrieben, wobei die Sektoradresse von den gemeinsamen Adressignalen Adr bestimmt wird, die parallel den Platten-Controllern 12-0 bis 12-38 zugeleitet werden.
  • Nachdem beschrieben wurde, wie Schreiboperationen bei der in Fig. 3 dargestellten bevorzugten Ausführungsform durchgeführt werden, werden nun Leseoperationen betrachtet. Wie vorstehend in Zusammenhang mit den Fig. 1 und 2 beschrieben wurde, wird von den Platten 11-0 bis 11-38 auf ein Lesesignal R hin gelesen und eine Adresse Adr parallel den Platten-Controllern 12-0 bis 12-38 zugeleitet, die so arbeiten, daß die Daten in den adressierten Sektoren in ihre entsprechenden Pufferspeicher 13-0 bis 13-38 gelesen werden. Basierend auf der vorstehend beschriebenen Schreiboperation ist nun klar, daß nach solch einem Lesevorgang jeder der Pufferspeicher 13-0 bis 13-38 die 2048 Bits enthält, die einem zugehörigen Bit der 39 Bits B0-B38 entsprechen. Z. B. enthält der Pufferspeicher 11-0 nach dem Lesevorgang die 2048 B0 Bits RIB0 von Worten Wi (B0-B38) und der Pufferspeicher 13-38 enthält dann die 2048 B38 Bits RiB38 der Worte R0 bis R2048. In der spezifischen bevorzugten Ausführungsform, die hier beschrieben wird, wird die Übertragung der 2048 39-Bitworte Ri (B0-B38), die - wie vorstehend beschrieben - in Pufferspeicher 13-0 bis 13-38 eingelesen wurden, zu dem Fehlerkreis 32 durch ein Übertragungssignal Tr initiiert, das parallel zu den Platten-Controllern 12-0 bis 12-38 geleitet wird. Dieses Übertragungssignal Tr wird zu einem ausreichend späteren Zeitpunkt nach der Initiierung einer Leseoperation erzeugt, so daß alle Platten 11-0 bis 11-38 selbst unter der Annahme schlechtester Bedingungen das Auslesen der Daten aus ihrem adressierten Sektor in ihre zugehörigen Pufferspeicher 13-0 bis 13-38 abgeschlossen haben werden. In einer entsprechenden Weise wird während der vorstehend beschriebenen Schreiboperationen eine ausreichende Zeit für alle Platten zur Verfügung gestellt, um das Schreiben von Daten in ihre adressierten Sektoren auch unter der Annahme von schlechtesten Bedingungen abzuschließen. Dies wird - wie in Figur 3 angedeutet - durch Benutzung von Signalen K-0 bis K-38 implementiert, die typischerweise durch entsprechende Controller 12-0 bis 12-38 bereitgestellt werden und anzeigen, wenn die entsprechende Plattenlese- oder -schreiboperation abgeschlossen wurde. Diese Signale K-0 bis K-38 werden zur Bestimmung, wann das Übertragungssignal Tr erzeugt wurde und wann alle Plattenlaufwerke ihre Lese- oder Schreiboperationen abgeschlossen haben, zu der Datenorganisiereinrichtung 34 geleitet. Hieraus ist ersichtlich, daß die Plattensubsysteme 10-0 bis 10-38 in der Lage sind, unabhängig voneinander zu arbeiten, da der Ort des zugreifenden Kopfes relativ zu dem adressierten Sektor der verschiedenen Platten während des Lesens und Schreibens unerheblich ist. Es ist weiterhin wichtig anzumerken, daß selbst bei Annahme von schlechtesten Umständen für die Lese- und Schreiboperationen der Durchlaßbereich immer noch sehr hoch ist, da das Lesen und Schreiben in Bezug auf die Platten- Subsysteme 10-0 bis 10-38 parallel durchgeführt wird.
  • Es wird nun die Beschreibung von Leseoperationen der spezifischen bevorzugten Ausführungsform gemäß Fig. 3 fortgesetzt. Auf die Initiierung von Übertragungs Operationen durch das Übertragungssignal Tr hin werden die entsprechenden Bits, die von dem gemeinsam adressierten Sektor (wie vorstehend beschrieben) in die Pufferspeicher 13-0 bis 13-38 gelesen wurden, dem Fehlerkreis 32 als 2048 seriell erzeugte 39-Bitworte Ri (B0-B38) zugeleitet, wobei jedes Wort ein entsprechendes Bit von einem der Pufferspeicher 13-0 bis 13-38 enthält. Falls kein Fehler aufgetreten war, sind diese Worte Ri (B0-B38) mit den Worten Wi (B0-B38) identisch, die - wie vorstehend beschrieben wurde - von dem Fehlerkreis 32 diesen Pufferspeichern zugeleitet und auf dem gemeinsam adressierten Sektor der Platten geschrieben wurden.
  • Der Fehlerkreis 32 arbeitet in konventioneller Weise auf die seriell zugeleiteten Worte Ri (B0-B38) hin, um Fehler in jedem Wort zu erfassen und diese Fehler zu korrigieren, soweit seine Fähigkeiten hierzu ausreichen. In der spezifischen bevorzugten Ausführungsform, die hier beschrieben wird, wird angenommen, daß der Fehlerkreis 32 (unter Benutzung der Prüfbits B32-B38 in jedem Wort) in einer konventionellen Weise arbeitet, um einen einzelnen Bitfehler in jedem Wort zu erfassen und zu korrigieren und um auch eine Fehlerausgabe E zu dem Fehler speicher und -anzeigekreis 40 auszugeben, um eine wiederherstellbare und/oder anzeigbare Aufzeichnung zu erzielen, die den Typ, die Nummer und den Bitort von erfaßten Fehlern angibt. Wie in Fig. 3 dargestellt ist, werden die resultierenden korrigierten 32-Bitworte Ri (B0-B-31), die von dem Fehlerkreis 32 erzeugt wurden, zu der Datenorganisiereinrichtung 34 geleitet, die diese Worte auf geeignete Weise zur Übertragung zu der SCU 30 organisiert. Nachdem der Aufbau und der Betrieb der spezifischen bevorzugten Ausführungsform der Erfindung, die in den Fig. 1 - 4 dargestellt ist, beschrieben wurde, wird nun die Art und Weise erklärt, durch die für diese bevorzugte Ausführungsform eine hohe Fehlertoleranz erzielt wird. Da jedes der von den Platten 11-0 bis 11-38 ausgelesenen und zu dem Fehlerkreis 32 geleiteten 39-Bitworten in dieser bevorzugten Ausführungsform sich aus einem Bit von jedem Plattenlaufwerk zusammensetzt, wird ein einzelner Fehler in einem der Bits keinen Fehler erzeugen, da dieser einzelne Bitfehler automatisch von dem Fehlerkreis 32 korrigiert wird. Deshalb würde selbst dann kein Fehler auftreten, wenn eine der Plattensubsysteme 10-0 bis 10-38 vollständig ausfällt (oder sogar aus dem System enifemt wird). Weiterhin wird keine Wiederherstellungsroutine oder eine Übertragung von Daten zwischen Platten erforderlich sein, um einen ordnungsgemäßen Betrieb aufrechtzuerhalten. Falls eine Fehlerkorrektur zum Korrigieren von zwei fehlerhaften Bits bereitgestellt wird, könnten zwei der Platten- Subssysteme 10-0 bis 10-38 ausfallen (oder fehlen).
  • Da der Fehlerkreis, wie durch die Bezugszahl 32 in Fig. 3 dargestellt ist, typischerweise eine Information bezüglich des Fehlertyps und des Ortes (der Orte) der fehlerhaften Bits bereitstellt, ist es vorteilhaft, solche Fehlerdaten einem konventionellen Speicher und -anzeigekreis 40 (wie in Fig. 3 dargestellt) zuzuleiten, auf den zu Wartungszwecken zugegriffen werden kann. Falls beispielsweise festgestellt wird, daß ein Plattenlaufwerk mehr als eine bestimmte Anzahl an Bitfehlern erzeugt, kann das Plattenlaufwerk von dem System abgekoppelt werden und durch ein anderes Plattenlaufwerk ersetzt werden, ohne den normalen Betrieb zu beeinflussen, da (natürlich unter der Annahme, daß die Gesamtzahl der korrigierbaren Bitfehler nicht überschritten wird) das System durch die Entfernung der Platte nicht beeinträchtigt wird.
  • Die vorliegende Erfindung gestattet es, von den Fehlerausgangssignalen E-O bis E-38, die von den entsprechenden Plattenlaufwerk-Controllern 12-0 bis 12-38 bereitgestellt werden, zusätzlichen Nutzen zu ziehen. Ein Weg dies zu tun besteht darin, die Fehler-Ausgangssignale E-0 bis E-38 dem Anzeigekreis 40 (wie in Fig. 3 dargestellt) zur Benutzung als eine weitere Überprüfung zuzuleiten, ob eine Platte ausgefallen ist, da ein nicht auf eine Platte zurückzuführender Fehler zwischen einem Pufferspeicher 13 und dem Fehlerkreis 32 vorkommen kann. Eine andere und besonders vorteilhafte Benutzung der Fehlerausgangssignale E-0 bis E-38 besteht darin, sie dem Fehlerkreis 32 (wie auch in Fig. 3 dargestellt ist) zur Benutzung zuzuleiten, um eine erweiterte Leistung des Fehlerkreises 32 zu erzielen. Im einzelnen wird aus dem vorstehend genannten Artikel von R. W. Hamming klar, daß durch Eingabe von Fehlersignalen E-0 bis E-38 zu dem Fehlerkreis 32, die die fehlerhaften Bitpositionen anzeigen, der Fehlerkreis 32 eine Korrektur von Fehlern mit einer größeren Anzahl an Bitpositionen bereitstellen kann, als dies möglich wäre, wenn der Fehlerkreis 32 selbst bestimmen müßte, welche Bitpositionen fehlerhaft waren. Wenn z. B. sieben Prüfbits einem 32-Bitwort hinzugefügt werden, wie dies in der vorstehend beschriebenen Ausführungsform der Fall ist, würde der Fehlerkreis 32 in der Lage sein, nur eine einzelne Bitposition zu korrigieren, falls die Fehlereingangssignale E-0 bis E-38 nicht bereitgestellt werden. Durch Eingabe der Fehlersignale E-0 bis E-38 in den Fehlerkreis 32 (wie in Fig. 3 dargestellt) erlaubt die Benutzung von diesen sieben Prüfbits nun die Korrektur von Fehlern in zwei Bitpositionen.
  • Eine der vorteilhaften Eigenschaften des bevorzugten, anhand der Figuren 2 - 4 beschriebenen Mehrfachplattenlaufwerksystems besteht darin, daß die Platten 11bis 11-38 in Fig. 3 in der Lage sind, unabhängig voneinander zu arbeiten, ohne daß eine Synchronisation ihrer Rotationsgeschwindigkeiten oder relativen Sektorpositionen bereitgestellt werden müßte. Wie vorstehend betont wird dies dadurch erreicht, daß eine ausreichende Zeit während Lese- und Schreiboperationen zur Verfügung gestellt wird, um allen Platten zu ermöglichen, ihre entsprechenden Lese- oder Schreiboperationen abzuschließen. Dies hat jedoch eine Vergrößerung der Plattenzugriffszeit zur Folge.
  • Als nächstes werden die Ausführungsformen gemäß Fig. 5 - 8 betrachtet, die zusätzliche wichtige Aspekte der vorliegenden Erfindung offenbaren, bei denen die Verwendung eines Cache in die Ausführungsform gemäß Fig. 3 in einer solchen Weise eingeschlossen wird, daß die Gesamtzugriffszeit auf das Laufwerk signifikant reduziert wird, während auch andere Leistungssteigerungen erzielt werden. Im einzelnen wird eine Zwischenspeicherung in Cache-Speichern in der Mehrfach- Plattenausführung gemäß Fig. 3 in einer solchen Weise verwendet, daß die Vorteile der Mehrfach-Plattenorganisation und ihre Fehlerprüf- und -korrektureigenschaften vorteilhaft genutzt werden, so daß ihre hohe Fehlertoleranz und hohe Durchlaßbereich-Eigenschaften beibehalten bleiben, während zusätzlich eine signifikante Verbesserung in der Gesamtzugriffszeit bereitgestellt wird, wobei die Gesamtsystemleistung in einem größeren Umfang verbessert wird, als dies bei der Benutzung eines Cache (Zwischenspeichers) mit konventionellen Plattenlaufwerken der Fall wäre.
  • Eine erste Weise, in der eine Zwischenspeicherung mit einem Cache in einem Mehrfach-Plattensystem gemäß der vorliegenden Erfindung bereitgestellt werden kann, ist in Fig. 5 dargestellt. Aus Fig. 5 ist ersichtlich, daß ein Cache 50 und ein Cache-Bypasskreis 60 dem System gemäß Fig. 3 hinzugefügt wurde. Es ist auch zu beachten, daß die Signale R, W und Adr, und Tr von der Datenorganisiereinrichtung 34 in Fig. 5 nicht direkt den Controllern 12-0 bis 12-38 wie in Fig. 3 zugeleitet werden, sondern von dem Bypasskreis 60 gesteuert werden, so daß der Plattenzugriff von ihm gesteuert werden kann. In Fig. 5 spricht die Cache-Steuerung 70 auf ein Steuersignal 70a an, welches von der SCU 30 bereitgestellt wird, die bestimmt, ob der Cache-Bypasskreis 60 während einer Ein-/Ausgabeoperation aktiv zu sein hat oder nicht.
  • Wenn das Steuersignal 70a anzeigt, daß der Cache-Bypasskreis 60 aktiv zu sein hat, stellt es ein Signal 50a für den Cache 50 bereit, das den Cache 50 deaktiviert, so daß ein Betriebsmodus bereitgestellt wird, bei dem keine Zwischenspeicherung in einem Cache stattfindet, bei dem der Cache bei der Ein-/Ausgabeoperation keine Rolle spielt. Der Bypasskreis 60 erzeugt auch ein Plattenzugriffssignal G, welches der Datenorganisiereinrichtung 34, einem Fehlerkreis 22 und Controllern zugeleitet wird, die auf eine Plattenzugriffsoperation eingerichtet sind. Der resultierende Betrieb ist dann der, der bereits vorstehend in Zusammenhang mit Fig. 3 beschrieben wurde, wobei der Cache-Bypasskreis 60 dafür sorgt, daß die Signale R, W, Adr und Tr zu den Controllern 12-0 bis 12-38 geleitet werden und der auch sicherstellt, daß geeignete Pfade zur Weiterleitung von Daten zwischen der Datenorganisiereinrichtung 34 und dem Fehlerkreis 32 zur Verfügung stehen. Der Betrieb in einem Modus ohne die Verwendung eines Cache ist vorteilhaft für solche Typen von Ein- /Ausgabeverarbeitungsoperationen, für die eine Verwendung eines Cache wertlos wäre, wie dies z. B. für Datenstromoperationen der Fall wäre. In solch einem Fall erzeugt die SCU 30 ein geeignetes Nicht-Zwischenspeicherungssignal 70a, das entweder auf ihrem eigenen Betrieb basiert oder auf ein von einem Host bereitgestelltem Signal anspricht. Wie in Fig. 5 angedeutet, werden ebenfalls Vorkehrungen dafür getroffen, daß ein Bediener diesen Nicht-Zwischenspeicherungsmodus auf ein Signal 70b ansprechend herbeiführen kann, das von einer Konsole 80 erzeugt wurde.
  • Die entsprechenden Lese-, Schreib- und Adressignale R, W und Adr, die dem Cache-Bypasskreis 60 zugeleitet werden, werden auch vorteilhaft benutzt, um zu gestatten, daß der Cache-Bypasskreis 60 zusätzlich selektiv davon abhängig aktivierbar ist, ob eine Lese- oder Schreiboperation durchzuführen ist und/oder abhängig davon, ob für die Adresse Adr die Bereitstellung einer Zwischenspeicherung in einem Cache gewünscht ist. Z.B. um einen möglichen Datenverlust zu verhindern, kann die Durchführung der Zwischenspeicherung in einem Cache nur für Leseoperationen zugelassen werden. Es kann ebenfalls wünschenswert sein, die Zwischenspeicherung in einem Cache nur für einen vorbestimmten Bereich von Adressen zuzulassen.
  • Falls irgendwelche der dem Cache-Bypasskreis 60 zugeführten Signale 70a, 70b, R, W oder Adr anzeigen, daß eine Zwischenspeicherung in einem Cache für eine Ein-/Ausgabeoperation bereitgestellt werden soll, wird der Cache-Bypasskreis 60 nicht aktiviert; in solch einem Fall leitet der Cache-Bypasskreis 60 das Signal R, W, Adr und Tr zu dem Cache 50 zusammen mit einem Aktivierungsignal 50a, um den Cache 50 für die Zwischenspeicherungsoperation zu aktivieren. Der Cache so ist so aufgebaut und angeordnet, daß er Daten in Form von Datenblöcken (z. B. 250 Datenblöcke) speichern kann. Unter der Annahme, daß Daten wie in Zusammenhang mit Fig. 3 vorstehend beschrieben organisiert sind, enthält jeder Datenblock 2048 32-Bitworte W0-W2047 wie in Fig. 4 dargestellt, wobei jedes Wort aus 32 Datenbits B0-B31 besteht, die jeweils mit entsprechenden Platte nlaufwerken 11-0 bis 11-31 korrespondieren. Der spezifische Aufbau und die Arbeitsweise des Cache 50 in der dargestellten Ausführungsform gemäß Fig. 5 wird anhand den folgenden Beschreibungen von typischen Lese-und Schreib-Ein-/Ausgabeoperationen klar, die in Situationen vorkommen, bei denen der Cache 50 aktiviert ist.
  • Es wird zunächst eine typische Leseoperation betrachtet, die stattfindet, während der Cache aktiviert ist. Wenn eine Leseoperation durchzuführen ist, stellt die Datenorganisiereinrichtung 34 ein geeignetes Lesesignal R und eine zugehörige Leseadresse Adr bereit, welche in der Ausführungsform gemäß Fig. 5 zu dem Cache 50 über den Cache-Bypasskreis 60 zusammen mit einem Aktivierungssignal 50a geleitet wird. Wenn der Cache 50 aktiviert ist, arbeitet er in einer bekannten Weise, um zu bestimmen, ob der Datenblock, der der zugehörigen Leseadresse Adr entspricht, in dem Cache gespeichert ist. Falls dies der Fall ist, hat ein "Treffer" stattgefunden, der dazu führt, daß der Cache 50 den angefragten Datenblock zu der Datenorganisiereinrichtung 34 ohne die Notwendigkeit des Zugriffs auf die Plattenlaufwerke überträgt. Die Organisations- und Zugriffsarchitektur von dem Cache 50 ist so gewählt, daß die 2048 Worte R0 (B0-B31) bis R2047 (B0-31), die den angefragten Datenblock bilden, seriell einer nach dem anderen von dem Cache 50 zu der Datenorganisiereinrichtung 34 in derselben Weise ausgegeben werden, wie dies während eines Betriebes ohne Zwischenspeicherung in einem Cache stattfindet.
  • Falls auf der anderen Seite der nachgefragte Datenblock in dem Cache 50 nicht gefunden wurde, hat ein "Verfehlt" stattgefunden und der Cache 50 leitet ein "Verfehlt"-Signal 50b zu dem Cache-Bypass kreis 60. Auf dieses "Verfehlt"-Signal 50b bewirkt der Cache-Bypasskreis 60 eine Plattenleseoperation in derselben Weise, wie zuvor für die Operation ohne Zwischenspeicherung in einem Cache beschrieben wurde. Der Cache 50 bleibt jedoch aktiviert, um über Verbindungen 51 den von den Plattenlaufwerken 11-0 bis 11-38 ausgelesenen Datenblock zu empfangen, wobei dieser empfangene Datenblock in dem Cache 50 an einer korrespondierenden Adresse gespeichert wird. Solch eine Cache-Operation nutzt die Vorteile des bekannten LRU(least recently used)- Algorithmus, welcher davon ausgeht, daß es wahrscheinlicher ist, daß kürzlich nachgefragte Daten als nächstes nachgefragt werden als weniger kürzlich nachgefragte Daten (andere Cache- Algorithmen könnten auch verwendet werden). Wie üblich arbeitet der Cache 50 für den Fall, daß der Cache voll ist, wenn ihm ein Datenblock zugeleitet wird, auf den neu zugegriffen wurde, in der Weise, daß der am wenigsten kürzlich benutzte Datenblock in dem Cache durch den Datenblock ersetzt wird, auf den aktuell zugegriffen wurde. Wie es ebenfalls üblicherweise der Fall ist, besitzt der Cache 50 zusätzlich die Fähigkeit, diesen am wenigsten kürzlich benutzten und ausgetauschten Datenblock an seine entsprechende Stelle in dem Plattenspeicher zurückzuführen. Solch eine Rückführung eines Datenblockes wird bereitgestellt, wenn sich beispielsweise der Inhalt des Datenblocks von dem Inhalt unterscheidet, der augenblicklich an der entsprechenden Adresse in dem Plattenspeicher gespeichert ist und wenn es gewünscht ist, daß dieser unterschiedliche Datenblock an diese Plattenspeicheradresse geschrieben wird. Ein Beispiel des Aufbaus und der Anordnung eines bekannten Platten-Cachesystems ist im Detail in der US-Patentschrift 4,394,733 beschrieben.
  • Als nächstes wird betrachtet, wie die Zwischenspeicherung in einem Cache bei einer Schreiboperation verwendet werden kann. Wenn eine Schreiboperation durchzuführen ist, stellt die Datenorganisiereinrichtung 34 ein geeignetes Schreibsignal W und eine dazugehörige Schreibadresse Adr bereit, welche bei der Ausführungsform gemäß Fig. 5 zu dem Cache 50 über den Cache-Bypasskreis 60 zusammen mit dem Aktivierungssignal 50a geleitet wird.
  • Der Cache 50 wird auf diese Weise in der selben Weise wie während einer Leseoperation aktiviert und arbeitet in entsprechender Weise, um zu bestimmen, ob ein Datenblock in dem Cache gespeichert ist, der der Schreibadresse Adr des zu schreibenden Datenblocks entspricht. Falls dies der Fall ist, hat ein "Treffer" stattgefunden, der dazu führt, daß die augenblicklichen Daten, die in dem entsprechenden Datenblock in dem Cache 50 gespeichert sind, von dem neuen Datenblock überschrieben werden. Die Schreiboperation wird hierdurch in der selben schnellen Weise ohne die Verzögerung abgeschlossen, die dadurch entsteht, daß auf den Datenblock gewartet werden muß, der gerade aktuell auf die Plattenlaufwerke geschrieben werden soll. Solch ein Schreiben auf die Plattenlaufwerke kann über Verbindungen 52 zu einem späteren Zeitpunkt durchgeführt werden, wenn das System nicht beschäftigt ist, wie dies z.B. in der bereits erwähnten US- Patentschrift 4,394,733 beschrieben ist.
  • Falls auf der anderen Seite der zu schreibende Datenblock in dem Cache 50 nicht gefunden wurde, hat ein "Verfehlt" stattgefunden und der Cache 50 leitet das "Verfehlt"-Signal 50B zu dem Cache-Bypasskreis 60. Auf dieses "Verfehlt"-Signal 50b hin sorgt der Cache-Bypasskreis 60 für eine Plattenschreiboperation in der selben Weise, wie sie bei einem Betrieb ohne Cache stattfindet. Es ist ebenfalls innerhalb des Umfangs der vorliegenden Erfindung auf ein Schreiben-"Verfehlt" den adressierten Datenblock, der im Cache 50 zu speichern ist und auf den Plattenlaufwerken geschrieben ist, bereitzustellen, so daß die Vorteile eines Algorithmus wie den vorstehend erwähnten LRU-Algorithmus genutzt werden können. In der selben Weise wie vorstehend für eine Leseoperation beschrieben würde dieser neue Datenblock, falls der Cache 50 zu diesem Zeitpunkt voll ist, den am wenigsten kürzlich benutzten Datenblock in dem Cache ersetzen, wobei der ersetzte Datenblock an seine entsprechende Stelle in dem Plattenspeicher zurückgeführt werden könnte, falls dies angemessen ist.
  • Es ist klar, daß die Positionierung eines Cache 50 an der Plattenlaufwerkseite der Datenorganisiereinrichtung 34, wie in Fig. 5 dargestellt, mit einer hiermit entsprechenden Organisation und einer Betriebsweise wie sie vorstehend beschrieben die Verwendung eines Cache erlaubt, der sowohl zum Lesen als auch zum Schreiben in einer Weise bereitgestellt wird, die den großen Durchlaßbereich und die hohen Fehlertoleranzeigenschaften des Mehrfach-Plattenlaufwerksystems gemäß Fig. 3 beibehält. In dieser Hinsicht ist anzumerken, daß der Cache 50 so organisiert ist, daß er eine serielle Ein- und Ausgabe der Datenworte vorsieht, die einen Block bilden (vgl. z. B. Fig. 4).
  • Als nächstes wird auf Fig. 6 Bezug genommen. Fig. 6 zeigt eine weitere Ausführungsform der Erfindung, die eine andere Weise der Verwendung eines Cache in dem Mehrfach-Plattenlaufwerksystem gemäß Fig. 3 zeigt. Bei der Ausführungsform gemäß Fig. 6 sind der Cache 50 und der Cache-Bypasskreis 60 auf der Plattenlaufwerkseite des Fehlerkreises 32 anstatt auf der gegenüberliegenden Seite wie in Fig. 5 angeordnet. Der Aufbau und der Betrieb des Cache 50 und des Cache- Bypasskreises 60 bei der Ausführungsform gemäß Fig. 6 ist derselbe wie der, der anhand von Fig. 5 beschrieben wurde, außer daß jedes Wort eines Datenblockes - als ein Ergebnis davon, daß der Fehlerkreis 32 die sieben Prüfbits B32-B38 zu den 32 Datenbits B0-B31 hinzuaddiert hat - nun 39-Bits lang ist. Der Cache 50 und der Cache-Bypasskreis 60 muß deshalb die Handhabung dieser größeren Wortlängen bewerkstelligen. Die Ausführungsform gemäß Fig. 6 macht es möglich, daß der Fehlerkreis 32 Fehler korrigiert, die sowohl in dem Cache 50 als auch in den Plattenlaufwerken vorkommen. In solch einem Fall wird es immer noch möglich sein, zu Wartungszwecken durch Bezugnahme auf die Controller-Fehlersignale E-0 bis E-38 - wie vorstehend in Verbindung mit Fig. 3 beschrieben - zu bestimmen, ob ein Fehler in einem Plattenlaufwerk vorliegt oder sonst irgendwo vorkommt. Falls keine dieser Fehlersignale E-0 bis E-38 das Vorliegen eines Plattenlaufwerkfehlers anzeigt, kann angenommen werden, daß ein erfaßter Fehler irgendwo sonst vorgekommen ist, wie beispielsweise in dem Cache 50.
  • Es wird nun auf Fig. 7 Bezug genommen, in der entsprechende Teile einer anderen Ausführungsform der Erfindung dargestellt sind, die generell der vorstehend anhand von Fig. 5 beschriebenen Ausführungsform entsprechen, außer daß der Cache- Bypasskreis 60 in Fig. 5 durch den Cache-Steuerkreis 80 ersetzt wurde und zwischen der Datenorganisiereinrichtung 34, dem Fehlerkreis 32 und dem Cache 50 eine Duplex-Bus-Anordung 75 anstelle der Bereitstellung von den in Fig. 5 dargestellten Pfaden verwendet wird. Die in Fig. 7 nicht dargestellten Teile können die gleichen sein, die in Fig. 5 dargestellt sind. Es ist im Hinblick auf Fig. 7 klar, daß der Cache-Steuerkreis 80 die selben Steuerfunktionen durchführt, wie sie für den Cache-Bypasskreis 60 in Fig. 5 beschrieben wurden, und daß der Betrieb der Ausführungsform gemäß Fig. 7 der selbe ist, wie der, der vorstehend für die in Fig. 5 dargestellte Ausführungsform beschrieben wurde, außer daß Datenworte zwischen der Datenorganisiereinrichtung 34, dem Fehlerkreis 32 und dem Cache 50 unter Benutzung der Duplex-Bus-Anordnung 75 gesendet und empfangen werden.
  • Fig. 8 zeigt zugehörige Teile einer weiteren Ausführungsform der Erfindung, die eine Duplex-Bus-Version der vorstehend anhand von Fig. 6 beschriebenen Ausführungsform darstellt. Entsprechend den Ausführungsformen gemäß Fig. 5 und Fig. 7 entspricht die Ausführungsform gemäß Fig. 8 generell der gemäß Fig. 6, außer daß der Cache-Bypasskreis 60 in Fig. 6 durch den Cache-Steuerkreis 80 ersetzt wurde und daß eine Duplex-Bus-Anordnung 85 zwischen dem Fehlerkorrekturkreis 32, dem Cache 50 und den Pufferspeichern 13-0 bis 13-38 verwendet wird, anstelle die in Fig. 5 dargestellten Pfade bereitzustellen. Auch der Betrieb der Ausführungsform gemäß Fig. 8 ist der selbe wie der der Ausführungsform Fig. 6, außer daß Datenworte zwischen dem Speicherkreis 32, dem Cache 50 und den Pufferspeichern 13-0 bis 13-8 unter Benutzung der Duplex-Bus-Anordnung 85 gesendet und empfangen werden.
  • Fig. 7 zeigt eine modifizierte Version der Ausführungsform gemäß Fig. 5.
  • Fig. 8 zeigt eine modifizierte Version der Ausführungsform gemäß Fig. 6.

Claims (22)

1. System zum Zugriff auf eine große Menge digitaler Daten in einer solchen Weise, daß sowohl ein hoher Fehlertoleranzgrad als auch ein großer Durchlaßbereich erzielt wird, mit:
einer Menge separat betreibbarer Plattenlaufwerke (10-0, ..., 10-38), die jeweils wenigstens eine rotierbare Platte und einen zugehörigen Kopf aufweisen; einer Datenorganisiereinrichtung (34), die Daten empfängt, die auf die Plattenlaufwerke (10-0, ..., 10-38) zu schreiben sind und jeden Block in einen Strom von ersten Datenwörtern (Wi(B0-B31)) konvertiert;
Mitteln (32), die auf die ersten Datenworte (Wi(B0-B31)) ansprechend zur Erzeugung wenigstens einer Fehlerprüfziffer vorgesehen sind;
Mitteln zum Schreiben von Daten auf die Menge separat betreibbarer Plattenlaufwerke (10-0, ..., 10-38) in Form von zweiten Datenwörtern (Wi(B0-B38)), die jeweils aus einem ersten Datenwort (Wi(B0, ..., B31)) und der wenigstens einen zugehörigen Fehlerprüfziffer bestehen, die so ausgewählt ist, daß ein Fehler in einem Datenwort bestimmbar ist, wobei die zweiten Datenworte (Wi(B0-B38)) auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) so gespeichert sind, daß jedes Plattenlaufwerk (10-0, ..., 10-38) wenigstens eine Ziffer von jedem zweiten Datenwort (Wi(B0-B38)) speichert;
Mitteln zum Lesen von Daten von der Menge von Plattenlaufwerken (10-0, ..., 10- 38) als eine Vielzahl von zweiten Datenwörtern (Ri(B0-B38));
Mitteln zur Fehlererfassung und zur Korrektur von Datenwörtern, die von der Menge von Plattenlaufwerken (10-0, ..., 10-38) gelesen wurden, unter Benutzung der zugehörigen Fehlerprüfziffern zur Erzeugung erster Datenwörter (Wi(B0-B31)), die zu Datenblöcken durch die Datenorganisiereinrichtung (34) konvertiert werden; dadurch gekennzeichnet, daß das System einen Cache (50) und einen Cache- Bypass (60) besitzt, wobei der Cache (50) Blöcke von Daten als erste Datenwörter (Wi(B0-B31)) speichert, die über die Datenorganisiereinrichtung (34) oder die Mittel (32) zur Erzeugung wenigstens einer Fehlerprüfziffer empfangen und ausgegeben werden.
2. System zum Zugriff auf eine große Menge digitaler Daten in einer solchen Weise, daß sowohl ein hoher Fehlertoleranzgrad als auch ein großer Durchlaßbereich erzielt wird, mit:
einer Menge separat betreibbarer Plattenlaufwerke (10-0, ..., 10-38), die jeweils wenigstens eine rotierbare Platte und einen zugehörigen Kopf aufweisen; einer Datenorganisiereinrichtung (34), die Daten empfängt, die auf die Plattenlaufwerke (10-0, ..., 10-38) zu schreiben sind, und jeden Block in einen Strom von ersten Datenwörtern (Wi(B0-B31)) konvertiert;
Mitteln (32), die auf die ersten Datenworte (Wi(B0-B31)) ansprechend zur Erzeugung wenigstens einer Fehlerprüfziffer vorgesehen sind;
Mitteln zum Schreiben von Daten auf die Menge separat betreibbarer Plattenlaufwerke (10-0, ..., 10-38) in Form von zweiten Datenwörtern (Wi(B0-B38)), die sich jeweils aus einem ersten Datenwort (Wi(B0, ..., B31)) und der wenigstens einen zugehörigen Fehlerprüfziffer zusammensetzen, die so ausgewählt ist, daß ein Fehler in einem Datenwort bestimmbar ist, wobei die zweiten Datenworte (Wi(B0-B38)) auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) so gespeichert sind, daß jedes Plattenlaufwerk (10-0, ..., 10-38) wenigstens eine Ziffer von jedem zweiten Datenwort (Wi(B0-B38)) speichert;
Mitteln zum Lesen von Daten von der Menge von Platte nlaufwerken (10-0, ..., 10- 38) als eine Vielzahl von zweiten Datenwörtern (Ri(B0-B38));
Mitteln zur Fehlererfassung und zum Korrigieren von Datenwörtern, die von der Menge von Plattenlaufwerken (10-0, ..., 10-38) gelesen wurden, unter Benutzung der zugehörigen Fehlerprüfziffern zur Erzeugung erster Datenwörter (Wi(B0-B31)), die zu Datenblöcken durch die Datenorganisiereinrichtung (34) konvertiert werden; dadurch gekennzeichnet, daß das System einen Cache (50) und einen Cache- Bypass (60) enthält, wobei der Cache (50) Blöcke von Daten als zweite Datenwörter (Wi(B0-B38)) speichert, die über die Mittel (32) zur Erzeugung wenigstens einer Fehlerprüfziffer oder über das Plattenlaufwerk (10-0, ..., 10-38) empfangen und ausgegeben werden.
3. System nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Datenorganisiereinrichtung (34) zur Anwendung elektrischer Signale zu den Mitteln (32) zur Erzeugung wenigstens einer Fehlerprüfziffer vorgesehen ist, wobei die elektrischen Signale Ziffern von Datenwörtern entsprechen, die auf den Plattenlaufwerken (10-0, ..., 10-38) zu schreiben sind, wobei die Mittel (32) zur Erzeugung wenigstens einer Fehlerprüfziffer dafür vorgesehen sind, auf diese angewendeten elektrischen Signale hin entsprechend den Datenziffern eines zu schreibenden Datenwortes elektrische Signale zu erzeugen, die einem Datenwort entsprechen, das sich aus diesen Datenziffern und zugehörigen hiervon abgeleiteten Fehlerprüfziffern zusammensetzt.
4. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß jede Ziffer ein binäres Bit enthält.
5. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Datenorganisiereinrichtung (34) auch dafür vorgesehen ist, elektrische Signale zu empfangen, die von den Mitteln (32) zur Erzeugung wenigstens einer Fehlerprüfziffer erzeugt wurden und hiermit korrespondierende elektrische Signale zu einem Speichersteuermittel zu übertragen, wobei die elektrischen Signale Datenziffern eines von den Plattenlaufwerken (10-0, ..., 10-38) gelesenen Datenwortes entspricht.
6. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das System ein Speichersteuermittel enthält und daß die Datenorganisiereinrichtung (34) dafür vorgesehen ist, Daten von dem Speichersteuermittel zu empfangen, die auf die Plattenlaufwerke (10-0, ..., 10-38) zu schreiben sind, um diese empfangenen Daten in elektrische Signale zu organisieren, die Datenziffern von einem Datenwort zur Anwendung auf die Mittel (32) zur Erzeugung wenigstens einer Fehlerprüfziffer entsprechen.
7. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das parallele Lesen und Schreiben eines Datenwortes an einer gemeinsamen Stelle für alle der Plattenlaufwerke (10-0, ..., 10-38) zur Verfügung gestellt wird.
8. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß jedes Plattenlaufwerk (10-0, ..., 10-38) eine Fehleranzeige für den Fall eines möglichen Fehlers zur Verfügung stellt, die anzeigt, ob ein Fehler während eines Lese- oder Schreibvorganges aufgetreten ist, der von ihm hierbei durchgeführt wurde, und
daß das System ein Mittel (32) zur Berichtigung von Fehlern in Datenwörtern enthält, die von der Menge von Plattenlaufwerken (10-0, ..., 10-38) gelesen wurden und das auf die Fehlerprüfziffer, welche von dem Mittel (32) zur Erzeugung wenigstens einer Fehlerpröfziffer erzeugt wurde, und
die Fehleranzeigen zur Erzeugung elektrischer Ausgangssignale hin anspricht, die den Datenziffern jedes angewendeten Datenwortes entspricht, so daß ein Datenwortfehler korrigiert wird.
9. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet&sub1; daß das System Mittel zur Anwendung einer Adresse für das Mittel zum Schreiben von Daten und das Mittel zum Lesen von Daten von der Menge von Plattenlaufwerken (10-0, ..., 10-38) enthält, welches die Adresse bestimmt, an der das Lesen oder Schreiben auf die Plattenlaufwerke (10-0, ..., 10- 38) durchgefihrt wird, wobei die Adresse allen Plattenlaufwerken (10-0, ..., 10-38) gemeinsam ist.
10. System nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das System Controllermittel (12-0, ..., 12-38), welche in der Lage sind, Daten von entsprechenden Plattenlaufwerken (11-0, 11-38) an einer vorgebbaren Adresse zu lesen und zu schreiben, und Pufferspeicher (13-0, ..., 13-38) enthält, die vorgesehen sind zum Speichern von Daten, die von entsprechenden Plattenlaufwerken (11-0, ..., 11-38) von zugehörigen Controllermitteln (12-0, ..., 12-38) gelesen wurden, und zum Speichern von Daten, die auf entsprechende Plattenlaufwerke (11-0, ..., 11-38) von zugehörigen Controllermitteln (12-0, ..., 12-38) zu schreiben sind, wobei jedes Controllermittel (12-0, ..., 12-38) auch dafür vorgesehen ist, eine Fehleranzeige zur Verfügung zu stellen, für den Fall, daß ein Fehler während einer Lese- oder Schreiboperation von entsprechenden Plattenlaufwerken (11-0, ..., 11-38) vorgekommen sein könnte;
wobei jedes Controllermittel (12-0, ..., 12-38) dafür vorgesehen ist, parallel mit den anderen Controllermitteln (12-0, ..., 12-38) zu arbeiten und auf eine angewendete Adresse hin Ziffern, die in entsprechenden Pufferspeichern (13-0, ..., 13-38) gespeichert sind, auf entsprechende Plattenlaufwerke (11-0, ..., 11-38) an einer Stelle zu speichern, die durch die Adresse bestimmt wird;
wobei jedes Controllermittel (12-0, ..., 12-38) auch parallel mit den anderen Controllermitteln (12-0, ..., 12-38) auf eine angewendete Adresse arbeitet, die gemeinsam auf alle Steuermittel (12-0, ..., 12-38) angewendet wird, um Ziffern von dem zugehörigen Plattenlaufwerk (11-0, ..., 11-38) an einer Stelle zu lesen, die von der Adresse bestimmt wird, und um die gelesenen Ziffern in entsprechenden Pufferspeichern (13-0, ..., 13-38) zu speichern;
wobei jede Controllereinrichtung (12-0, ..., 12-38) weiterhin parallel mit den anderen Controllereinrichtungen (12-0, ..., 12-38) betreibbar ist und auf ein Initialisierungssignal hin arbeitet, das gemeinsam auf alle Controllereinrichtungen (12- 0, ..., 1 2-38) angewendet wird, um zu veranlassen, daß eine Ziffer eines Datenwortes von jedem Pufferspeicher (13-0, ..., 13-38) ausgegeben wird um hierbei ein Datenwort zu bilden; und
wobei das Mittel (32) zur Berichtigung von Fehlern in Datenworten, die von der Menge von Plattenlaufwerken (10-0, ..., 10-38) ausgelesen wurden, auf ein von den Pufferspeichern (13-0, ..., 13-38) ausgegebenen Datenwort hin und auf die Fehleranzeigen und Prüfziffern zur Bereitstellung elektrischer Ausgangssignale, die den Datenziffern hiervon entsprechen, arbeitet, wobei die Fehleranzeigen und Prüfziffern von den Controllereinrichtungen (12-0, ..., 12-38) zur Verfügung gestellt werden und das Mittel (32) zur Berichtigung von Fehlern in Datenwörtern, die von der Menge von Plattenlaufwerken (10-0, ..., 10-38) ausgelesen wurden, dafür vorgesehen ist, korrigierte Ausgangssignale bereitzustellen, wenn ein Fehler in einem Datenwort erfaßt wurde.
11. System nach Anspruch 10, dadurch gekennzeichnet, daß die Controllereinrichtungen (12-0, ..., 12-38) dafür vorgesehen sind, auf das Initialisierungssignal hin ansprechend zu veranlassen, daß die Pufferspeicher (13-0, ..., 13-38) sukzessiv eine vorbestimmte Vielzahl von Datenwörtern zu dem Mittel (32) zur Berichtigung von Fehlern in Datenwörtern ausgibt, die von der Menge von Plattenlaufwerken (10-0, ..., 10-38) ausgelesen wurden.
12. System nach Anspruch 10 oder 11, dadurch gekennzeichnet, daß das Initialisierungssignal zu einem Zeitpunkt zur Verfügung gestellt wird, der so gewählt ist, daß alle entsprechenden Ziffern eines jeden auszugebenen Datenwortes in ihre entsprechenden Pufferspeicher (13-0, ..., 13-38) durch ihre entsprechende Controllereinrichtung (12-0, ..., 12-38) eingelesen sein werden.
13. System nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, daß eine gemeinsame Adresse für alle Controllereinrichtungen (12-0, ..., 12-38) zum Lesen und Schreiben angewendet wird.
14. System nach Anspruch 10 bis 13, dadurch gekennzeichnet, daß die Plattenlaufwerke (10-0, ..., 10-38) nicht synchronisiert sind und der Betrieb so gewählt wird, daß ausreichend Zeit für das vorstehende Lesen und Schreiben von der Controllereinrichtung (12-0, ..., 12-38) zur Verfügung steht, um auch für den schlechtesten Fall eine Positionierung des Kopfes relativ zu dem adressierten Ort auf den entsprechenden Platten zu bewerkstelligen.
15. Verfahren zum Zugriff auf eine große Menge von digitalen Daten in einer solchen Weise, daß sowohl eine große Fehlertoleranz als auch ein großer Durchlaßbereich erreicht wird, mit folgenden Schritten:
Bereitstellen einer Menge von separat betreibbaren Plattenlaufwerken (10-0, ..., 10-38), von denen jede wenigstens eine rotierbare Platte und einen zugehörigen Kopf aufweist;
Empfangen von Daten, die auf die Plattenlaufwerke (10-0, ..., 10-38) zu schreiben sind und Konvertieren jedes Blocks in einen Strom von ersten Datenwörtern (Wi(B0-B31));
Erzeugen wenigstens einer Fehlerprüfziffer auf die ersten Datenworte (Wi(B0-B31)) hin;
Schreiben von Daten auf die Menge von separat betreibbaren Plattenlaufwerken (10-0, ..., 10-38) in Form von zweiten Datenworten (Wi(B0-B38)), die jeweils aus einem ersten Datenwort (Wi(B0-B31)) und der wenigstens einen zugehörigen Fehlerprüfziffer bestehen, die so gewählt ist, daß sie gestattet, einen Fehler in einem Datenwort zu bestimmen, wobei die zweiten Datenworte (Wi(B0-B38)) auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) so gespeichert sind, daß jedes Plattenlaufwerk (10-0, ..., 10-38) zumindest eine Ziffer eines jeden zweiten Datenwortes (Wi(B0-B38)) speichert;
Lesen von Daten von der Menge von Plattenlaufwerken (10-0, ..., 10-38) als eine Vielzahl von zweiten Datenworten (Ri(B0-B38);
Erfassen und Korrigieren von Fehlern in Datenworten, welche von der Menge von Plattenlaufwerken (10-0, ..., 10-38) gelesen wurden, unter Benutzung der zugehörigen Fehlerprüfziffern zur Erzeugung von ersten Datenworten (Wi(B0-B31)), die in Datenblöcke umgewandelt sind;
dadurch gekennzeichnet, daß das Verfahren einen Verfahrensschritt enthält, bei dem die Zwischenspeicherung von Daten, welche auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) gespeichert sind, unter Benutzung eines gemeinsamen Cache-Speichers (50) und eines Cache-Bypasses (60) durchgeführt wird, die so ausgebildet und angeordnet sind, daß Blöcke von Daten als erste Datenworte (Wi(B0-B31)) in dem Cache-Speicher (50) gespeichert werden und auf sie in der selben Art und Weise zugegriffen wird, in der die Datenworte auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) gespeichert wurden.
16. Verfahren zum Zugreifen auf eine große Menge von digitalen Daten in einer solchen Weise, daß ein hoher Grad an Fehlertoleranz sowie ein großer Durch- laßbereich erreicht wird, mit folgenden Verfahrensschritten: Bereitstellen einer Menge von separat betreibbaren Plattenlaufwerken (10-0, ..., 10-38), von denen jedes wenigstens eine rotierbare Platte und einen zugehörigen Kopf besitzt;
Empfangen von Daten, die auf die Plattenlaufwerke (10-0, ..., 10-38) zu schreiben sind und Umwandlung eines jeden Blocks in einen Strom von ersten Datenworten (WI(B0-B31));
Erzeugen wenigstens einer Fehlerprüfziffer auf die ersten Datenworte (Wi(B0-B31)) hin;
Schreiben von Daten auf die Menge von separat betreibbaren Plattenlaufwerken (10-0, ..., 10-38) in Form von zweiten Datenworten (Wi(B0-B38)), die sich jeweils aus einem ersten Datenwort (Wi(B0-B31)) und wenigstens einer zugehörigen Fehlerprüfziffer zusammensetzen, die so gewählt ist, daß sie gestatten, einen Fehler in einem Datenwort zu bestimmen, wobei die zweiten Datenworte (Wi(B0- B38)) auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) gespeichert werden, so daß jedes Plattenlaufwerk (10-0, ..., 10-38) wenigstens eine Ziffer von jedem zweiten Datenwort (WI(B0-B38)) speichert;
Lesen von Daten von der Menge von Plattenlaufwerken (10-0, ..., 10-38) als eine Vielzahl von zweiten Datenworten (Ri(B0-B38);
Erfassen und Korrigieren von Fehlern in Datenwörtern, die von der Menge an Plattenlaufwerken (10-0, ..., 10-38) gelesen wurden, unter Benutzung der zugehörigen Fehlerprüfziffern zur Erzeugung erster Datenworter (Wi(B0-B31)), die in Datenblöcke umgewandelt sind; dadurch gekennzeichnet, daß das Verfahren einen Verfahrensschritt enthält, bei dem das Zwischenspeichern von Daten, welche auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) gespeichert sind, unter Benutzung eines gemeinsamen Cache-Speichers (50) und eines Cache-Bypasses (60) erfolgt, die so ausgebildet und angeordnet sind, daß Blöcke von Daten als zweite Datenwörter (Wi(B0-B38)) in dem Cache-Speicher (50) gespeichert werden und auf sie in der selben Art und Weise zugegriffen wird, in der Datenwörter auf der Menge von Plattenlaufwerken (10-0, ..., 10-38) gespeichert wurden.
17. Verfahren nach einem der Ansprüche 15 oder 16, dadurch gekennzeichnet, daß jede Ziffer ein Bit ist.
18. Verfahren nach einem der Ansprüche 15 bis 17,
das den Verfahrensschritt enthält, bei dem die empfangenen Datenziffern und Fehlerprüfziffern in einer Form organisiert werden, die der Art und Weise entspricht, in der Datenwörter auf den Platten der Plattenlaufwerke (10-0, ..., 10- 38) gespeichert sind.
19. Verfahren nach einem der Ansprüche 15 bis 18,
das den nachfolgenden Verfahrensschritt enthält, bei dem die Erzeugung oder Reorganisierung der Datenworte in ein Kanalformat erfolgt und die kanal-formatierten elektrischen Signale an einen Kanal geleitet werden.
20. Verfahren nach einem der Ansprüche 15 bis 19,
bei dem die Plattenlaufwerke (10-0, ..., 10-38) nicht synchronisiert sind und das den Verfahrensschritt enthält, ausreichend Zeit für die Schritte des Lesens und Schreibens zur Verfügung zu stellen, um auch im schlechtesten Fall eine Positionierung des Plattenkopfes relativ zu den adressierten Speicherorten auf der entsprechenden Platte durchführen zu können.
21. Verfahren nach einem der Ansprüche 15 bis 20,
bei dem die Schritte des Lesens und Schreibens für alle Plattenlaufwerke (10-0, ..., 10-38) in Antwort auf eine gemeinsam angewendete Adresse parallel durchgeführt wird.
22. Verfahren nach einem der Ansprüche 15 bis 21, bei dem jedes Plattenlaufwerk (10-0, ..., 10-38) eine Fehleranzeige bereitstellt, die anzeigt, ob ein Fehler während einer Lese- oder Schreiboperation des Plattenlaufwerks vorgekommen sein könnte, und bei dem der Schritt der Fehlererfassung und -korrektur diese Fehleranzeigen zur Berichtigung von Fehlern in Datenworten verwendet werden, die von der Menge der Plattenlaufwerke (10-0, ..., 10-38) gelesen wurde.
DE68927624T 1988-04-01 1989-03-20 Mehrfaches plattenspeicher-system mit hoher kapazität und verfahren Expired - Lifetime DE68927624T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/176,480 US4958351A (en) 1986-02-03 1988-04-01 High capacity multiple-disk storage method and apparatus having unusually high fault tolerance level and high bandpass
PCT/US1989/001111 WO1989009468A1 (en) 1988-04-01 1989-03-20 High capacity multiple-disk storage method and apparatus

Publications (2)

Publication Number Publication Date
DE68927624D1 DE68927624D1 (de) 1997-02-20
DE68927624T2 true DE68927624T2 (de) 1997-04-24

Family

ID=22644522

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68927624T Expired - Lifetime DE68927624T2 (de) 1988-04-01 1989-03-20 Mehrfaches plattenspeicher-system mit hoher kapazität und verfahren

Country Status (5)

Country Link
US (1) US4958351A (de)
EP (1) EP0362362B1 (de)
JP (1) JPH02503966A (de)
DE (1) DE68927624T2 (de)
WO (1) WO1989009468A1 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
US5185694A (en) * 1989-06-26 1993-02-09 Motorola, Inc. Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies
US5072378A (en) * 1989-12-18 1991-12-10 Storage Technology Corporation Direct access storage device with independently stored parity
JPH03216751A (ja) * 1990-01-05 1991-09-24 Internatl Business Mach Corp <Ibm> フアイル転送方法
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
GB9019891D0 (en) * 1990-09-12 1990-10-24 Di Data Ltd Computer memory array control
US5333301A (en) * 1990-12-14 1994-07-26 International Business Machines Corporation Data transfer bus system and method serving multiple parallel asynchronous units
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
JP2923702B2 (ja) * 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
US5257391A (en) * 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals
GB9200207D0 (en) * 1992-01-06 1992-02-26 Di Data Ltd Computer memory array control
GB2264798A (en) * 1992-03-04 1993-09-08 Hitachi Ltd High speed access control
US5331646A (en) * 1992-05-08 1994-07-19 Compaq Computer Corporation Error correcting code technique for improving reliablility of a disk array
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
TW234174B (en) * 1993-05-14 1994-11-11 Ibm System and method for maintaining memory coherency
US5867640A (en) * 1993-06-01 1999-02-02 Mti Technology Corp. Apparatus and method for improving write-throughput in a redundant array of mass storage devices
US5890216A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
EP0770964A1 (de) 1995-10-26 1997-05-02 Matsushita Electric Industrial Co., Ltd. Dateiensystem
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US5805787A (en) * 1995-12-29 1998-09-08 Emc Corporation Disk based disk cache interfacing system and method
US5724501A (en) * 1996-03-29 1998-03-03 Emc Corporation Quick recovery of write cache in a fault tolerant I/O system
US5950229A (en) * 1997-03-12 1999-09-07 Micron Electronics, Inc. System for accelerating memory bandwidth
US7360015B2 (en) * 2004-05-04 2008-04-15 Intel Corporation Preventing storage of streaming accesses in a cache
US9710199B2 (en) 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US10162700B2 (en) 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4430701A (en) * 1981-08-03 1984-02-07 International Business Machines Corporation Method and apparatus for a hierarchical paging storage system
US4500954A (en) * 1981-10-15 1985-02-19 International Business Machines Corporation Cache bypass system with post-block transfer directory examinations for updating cache and/or maintaining bypass
FR2561428B1 (fr) * 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
CA1263194A (en) * 1985-05-08 1989-11-21 W. Daniel Hillis Storage system using multiple mechanically-driven storage units
JPS62171216A (ja) * 1986-01-22 1987-07-28 Nec Corp 半導体論理回路
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4768197A (en) * 1986-09-15 1988-08-30 Amdahl Corporation Cache error code update
US4791642A (en) * 1986-10-17 1988-12-13 Amdahl Corporation Buffer error retry

Also Published As

Publication number Publication date
EP0362362B1 (de) 1997-01-08
DE68927624D1 (de) 1997-02-20
US4958351A (en) 1990-09-18
EP0362362A1 (de) 1990-04-11
JPH02503966A (ja) 1990-11-15
WO1989009468A1 (en) 1989-10-05

Similar Documents

Publication Publication Date Title
DE68927624T2 (de) Mehrfaches plattenspeicher-system mit hoher kapazität und verfahren
DE69123093T2 (de) Kanal zur Datenregenerierung in einer fehlertoleranten Plattenlaufwerkanordnung und Verfahren zur Fehlerkorrektur darin
DE69804209T2 (de) Verfahren um die speicherkapazität von level fünf raid plattenanordnung zu vergrössern und expandierte matrize hergestellt durch solch ein verfahren
DE69127895T2 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE2806024C2 (de)
DE68929229T2 (de) Steuergerät mit einem Cache-Speicher und Verfahren zur Steuerung des Cache-Speichers
DE69031527T2 (de) Pipelinefehlerprüfung und Korrektur für Cache-Speicher
DE69807101T2 (de) Segmentiertes dma mit xor-puffer für speicheruntersysteme
DE60006031T2 (de) Speicherfehlerkorrektur mit einem redundanten geschnittenen Speicher und Standard ECC Mechanismus
DE3751578T2 (de) Datenspeichersystem.
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE69421379T2 (de) Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher
DE69025267T2 (de) Sektorsprung mit Adress-Kollisions-Dekodierung für Aufzeichnungsträger des Wormtyps
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69112445T2 (de) Netzwerkplattenanordnung.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE68923694T2 (de) LRU-Fehlerdetektion unter Verwendung der Sammlung der geschriebenen und gelesenen LRU-Bits.
DE69624191T2 (de) Atomisches Aktualisieren von EDC-geschützten Daten
EP0046976A2 (de) Halbleiterspeicher aus Speicherbausteinen mit redundanten Speicherbereichen
DE69127735T2 (de) Dateienverzeichnisse und Verfahren
DE69515081T2 (de) Redundantes Speicherplattensystem
DE69715993T2 (de) Cache-Speicher mit Verwendung fehlerhaften Ettikettenspeichers
DE3045609C2 (de)
DE69525921T2 (de) Abtastspeichervorrichtung und Fehlerkorrekturverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition