DE68926436T2 - Plattenlaufwerkanordnungssystem und Verfahren - Google Patents

Plattenlaufwerkanordnungssystem und Verfahren

Info

Publication number
DE68926436T2
DE68926436T2 DE68926436T DE68926436T DE68926436T2 DE 68926436 T2 DE68926436 T2 DE 68926436T2 DE 68926436 T DE68926436 T DE 68926436T DE 68926436 T DE68926436 T DE 68926436T DE 68926436 T2 DE68926436 T2 DE 68926436T2
Authority
DE
Germany
Prior art keywords
disk storage
disk
data
drives
array
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
DE68926436T
Other languages
English (en)
Other versions
DE68926436D1 (de
Inventor
William A Brant
David W Gordon
Walter A Hubis
David C Stallmo
David M Warner
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of DE68926436D1 publication Critical patent/DE68926436D1/de
Application granted granted Critical
Publication of DE68926436T2 publication Critical patent/DE68926436T2/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
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals, computer programme data
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

  • Die Erfindung betrifft ein Speichersystem für einen Computer. Insbesondere betrifft die Erfindung ein System mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken, wobei die Konfiguration dieser Anordnung aus Plattenspeicherlaufwerken flexibel gehalten ist. Unter den die Flexibilität betreffenden Aspekten der Anordnung sind die logische Konfiguration der Plattenspeicherlaufwerke, das verfügbare Redundanzniveau und die Zuordnung von Ersatz-Plattenspeicherlaufwerken.
  • Ein Plattenspeicher ist eine bekannte Speichervorrichtung. Es gibt grundsätzlich zwei Arten von Plattenspeichern. Der eine verwendet ein magnetisches Speichermedium und der andere eine optische Platte. Zur Erhöhung der Speicherleistung hat man bislang die Übertragungsgeschwindigkeit und die Speicherdichte der Plattenspeicherlaufwerke erhöht. Unglücklicherweise hielten die Fortschritte der Physik nicht mit den Geschwindigkeitsanforderungen der Computersysteme Schritt. Angesichts dieser Grenzen hat man sich bemüht, große Speichereinheiten mit parallelen Kanälen und kleiner Zugriffszeit herzustellen, deren resultierende Zuverlässigkeit jedoch der wachsenden Komponentenzahl entsprach.
  • Ein Ausführungsbeispiel ist die Entwicklung von Feldern regelmäßig verteilt angeordneter Plattenspeicherlaufwerke (nachstehend einfach Feld von Plattenspeicherlaufwerken genannt). Ein Feld von Plattenspeicherlaufwerken wurde von Micropolis of Chatsworth, Co. hergestellt. In diesem Feld sieht der übergeordnete oder Zentralcomputer das Feld als eine große Speichereinheit. Damit erhöht sich allerdings die Leistungsfähigkeit, weil Plattenspeicherlaufwerke mit kleinerem Plattendurchmesser mit Redundanz zur Erhöhung der Übertragungsraten und der Zuverlässigkeit verwendet werden können. Das Feld aus Plattenspeichern ist auch insofern vorteilhaft, daß es für die in den Speicher einzuschreibenden Daten eine höhere Bandbreite ermöglicht, d. h. daß eine Vielzahl von Plattenspeichern mehrere Wege zum Speichern gestatten und deshalb ein größeres Datenvolumen zum oder vom Plattenspeicherfeld übertragen werden kann als von einem einzelnen Plattenspeicherlaufwerk.
  • Diese starre Konfiguration ist ebenfalls in einem von der University of California, Berkley, beschriebenen Konzept enthalten. Das Computer Science Department dieser Universität hat einen Artikel veröffentlicht, der den Einsatz von Plattenspeicherfeldern untersucht. Dieser Artikel enthielt eine Einschätzung der Leistung von fünf unterschiedlich organisierten Plattenspeicherfeldern, beginnend mit gespiegelten Platten und fortfahrend mit einer Vielzahl von Alternativen unterschiedlicher Leistung und Zuverlässigkeit.
  • Das erste Organisationsniveau setzt gespiegelte Platten ein. Dies ist ein herkömmlicher Versuch zur Verbesserung der Zuverlässigkeit von Plattenspeicherlaufwerken. Diese Option ist jedoch teuer, da für jedes eingeschriebene Datum ein gleiches Datum in eine Prüfplatte eingeschrieben wird. Tandem Corporation, die gespiegelte Platten verwendet hat, verdoppelt die Anzahl der Steuerungen, so daß parallel gelesen werden kann.
  • Das zweite Organisationsniveau, welches der oben erwähnte Artikel behandelt, verwendete einen Hammingcode. Dies stellt einen Schritt zur Verringerung der Anzahl der Prüfplatten dar. Da manchmal zu Gruppen von Platten zugegriffen wird, führt das zweite Niveau eine bitweise Verschränkung der Daten über die Platten einer Gruppe aus und fügt dann genügend viele Prüfplatten zur Erfassung und Korrektur eines Einfachfehlers hinzu. Eine einzelne Paritätsplatte kann einen Einzelfehler erfassen. Um jedoch eine Fehlerkorrektur auszuführen, werden genügend viele Prüfplatten zur Identifikation der fehlerbehafteten Platte benötigt. Für eine Gruppen aus zehn Datenplatten braucht man vier Prüfplatten, und man braucht fünf Prüfplatten für 25 Datenplatten.
  • Weiterhin wird in einem dritten Niveau das Konzept einer einzelner Prüfplatte pro Gruppe erörtert. Indem man jeweils spezielle Signale in den Plattenschnittstellen oder eine besondere Prüfinformation am Ende eines Sektors zur Fehlererfassung und -korrektur vorsieht, können viele Plattensteuerungen feststellen, ob ein Plattenspeicher ausgefallen ist. Im Stand der Technik wird die Information auf einer fehlerhaften Platte durch Berechnung der Parität der verbleibenden guten Platten dann durch einen bitweisen Vergleich mit der für die originale volle Gruppe berechneten Parität rekonstruiert. Wenn diese beiden Paritäten übereinstimmen, ist das fehlerhafte Bit eine O, wenn nicht, ist es eine 1.
  • In dem vierten Niveau werden unabhängige Lese- und Schreiboperationen über verschiedene Platten betrachtet. Die Vorteile der Verteilung eines Datentransfers über alle Plattenspeicher innerhalb der Gruppe bestehen in der Verringerung der Gesamt- oder Gruppentransferzeit, weil die Übertragungsbandbreite des Gesamtfeldes nutzbar gemacht werden kann. Dabei ergeben sich jedoch auch folgende Nachteile. Die Lese-/Schreiboperation von bzw. auf eine Platte in einer Gruppe erfordert das Lesen/Schreiben von bzw. auf alle Platten in einer Gruppe. Falls die Platten asynchron laufen, wurden außerdem keine mittleren Umdrehungsverzögerungen beobachtet. Das Niveau vier erzielt ein paralleles Lesen, das Schreiben ist jedoch nach wie vor auf einen Plattenspeicher pro Gruppe beschränkt, weil jeder Schreibvorgang zu einer Gruppe die Prüfplatte lesen und beschreiben muß.
  • Das fünfte Niveau behandelt andererseits eine Verteilung der Daten- und Prüfinformation pro Sektor über alle Platten - einschließlich der Prüfplatten. Das fünfte Niveau tritt für die Verwendung mehrerer individueller Schreibvorgänge pro Gruppe ein. Dieses Arrangement würde infolgedessen ein Schreiben mit geringfügig modifiziertem Lesen (englisch: small-read-modify-writes) aufweisen, dessen Leistung der Geschwindigkeit pro Platte des Niveaus eins nahekommt und die hohe Transferleistung pro Platte und nutzbare prozentuale Kapazität der Niveaus drei und vier hat. Somit bietet das Niveau fünf Vorteile hinsichtlich Leistung und Zuverlässigkeit im Vergleich mit einem einzelnen großen Plattenspeicher.
  • Die Niveaus des Standes der Technik sind, obwohl sie konzeptionell sind, grundlegende Prinzipien, die für den Einsatz von Plattenspeicherlaufwerksfeldern gelten. Fünf separate, starre Konfigurationen eines Plattenspeicherfeldes und die Vorteile und Nachteile jeder Konfiguration werden dargelegt. Außerdem werden die Ausführungen von Tandem und Micropolis behandelt. Jede dieser Ausführungen ist gleichermaßen starr und eingeschränkt im Bereich. Jede Ausführung stellt eine Eigenschaft heraus, die für einen bestimmten Anwender vorteilhaft sein kann. Die Nachteile dieser Vorrichtungen und Konzepte liegen darin, daß sie nicht flexibel genug sind, um den Bedarf verschiedener Kunden oder eines einzelnen Kunden mit unterschiedlichen Bedürfnissen abzudecken.
  • Unterschiedliche Kunden haben verschiedene Bedürfnisse, die von der Art und der Menge der zu speichernden Daten abhängen. Auch derselbe Kunde kann einen sich ändernden Datenspeicherbedarf haben. Unglücklicherweise werden im Stand der Technik nur individuelle Leistungs- und/oder Zuverlässigkeitskriterien vorgeschlagen. Der Stand der Technik ermöglicht einem Kunden keine Flexibilität bei der Entscheidung, wie groß die Bandbreite, die Übertragungsrate ist oder wieviel Redundanz dem Kunden zur Befriedigung seiner Bedürfnisse zur Verfügung steht. Wenn man die Kosten der Entwicklung eines Plattenspeicherfeldes betrachtet, so stellt ihre Unflexibilität beim Entwurf einer Anwendung ein nahezu sträflich teures Risiko dar.
  • WO-A-89 10 594 beschreibt unter der Annahme, daß sie mit dem beanspruchten Prioritätstag Stand der Technik gemäß Artikel 54 (3) EPÜ ist, ein System, welches eine große Anzahl regelmäßig verteilt angeordneter Plattenspeicherlaufwerke, bzw. ein Plattenspeicherfeld aufweist, zu dem es mehrere Zugriffswege gibt. Das System wird so gesteuert, daß mehrere Speicherklassen verfügbar sind, von denen jede durch verschiedene vorher spezifizierte Parameter gekennzeichnet ist, welche ein Zuverlässigkeitsniveau enthalten, welches durch eine geeignete Fehlerkorrekturcodeerzeugung erreicht wird. Die Konfiguration und der Betrieb des Feldes wird durch den Zentralcomputer gesteuert.
  • Dementsprechend ist es Aufgabe der vorliegenden Erfindung, ein System mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken anzugeben, welches dahingehend anpassungsfähig ist, daß es logisch als ein Gesamtplattenspeicher, der alle die einzelnen Plattenspeicher des Feldes enthält oder als eine Ansammlung aus allen separaten Plattenspeicherlaufwerken oder in jeder dazwischenliegenden Anordnung von Plattenspeichern konfiguriert werden kann.
  • Gemäß einem Aspekt dieser Erfindung ist ein einen Speicher für einen Zentralcomputer bildendes System mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken ermöglicht, welches Feld eine Vielzahl von Plattenspeicherlaufwerken aufweist, zu denen über mehrere Kanäle zugegriffen wird, von denen jeder Kanal Zugriff zu mehreren Plattenspeicherlaufwerken hat, und jedes der regelmäßig verteilt angeordneten Plattenspeicherlaufwerke eine Vielzahl von Sektoren hat, dadurch gekennzeichnet, daß das System eine vom Zentralcomputer separate Plattenspeicher-Steuereinrichtung enthält, um die Vielzahl der Plattenspeicherlaufwerke so zu konfigurieren, daß sie dem Zentralcomputer als irgendeine Anordnung von logischen Plattenspeicherlaufwerken erscheinen, wobei die Konfiguration der Vielzahl der Plattenspeicherlaufwerke so sein kann, daß sie als ein logischer Plattenspeicher oder als ein Mehrfaches der Vielzahl der Plattenspeicherlaufwerke oder als jede dazwischen liegende Kompromißkonfiguration erscheinen.
  • Außerdem kann eine Einrichtung enthalten sein, die den vom Computer aus dem oder in das Feld der Plattenspeicherlaufwerke auszulesenden oder einzuschreibenden Daten eine Vielzahl von Redundanzniveaus zur Verfügung stellt. Schließlich kann eine Einrichtung vorgesehen sein, die, gesteuert von der Plattenspeicher- Steuereinrichtung von Null bis zu allen Redundanzniveaus für die vom Computer einzuschreibenden oder auszulesenden Daten aktiviert.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Verfahren für den Betrieb eines Feldes aus regelmäßig verteilt angeordneten Plattenspeichern erzielt, die einem Zentralcomputer als Speicher zur Verfügung stehen, wobei das Feld eine Vielzahl von feldartig angeordneten Plattenspeicherlaufwerken enthält, zu denen über mehrere Kanäle zugegriffen wird, wobei jeder Kanal zu mehreren Plattenspeicherlaufwerken zugreift und jedes Plattenspeicherlaufwerk des Feldes mehrere Sektoren hat.
  • Das Verfahren ist dadurch gekennzeichnet, daß es einen Schritt der Anwendung einer vom Zentralcomputer separaten Plattenspeicher-Steuereinrichtung für die Steuerung der logischen Konfiguration des Feldes aus Plattenspeichern aufweist, so daß das Feld aus Plattenspeicherlaufwerken dem Zentralcomputer als irgendeine denkbare Anordnung von Plattenspeicherlaufwerken erscheint, wodurch das Feld der Plattenspeicherlaufwerke dem Zentralcomputer als die Vielzahl der Plattenspeicher, als ein alle diese Plattenspeicher umfassender großer Plattenspeicher oder als irgendeine dazwischen liegende Kombination erscheinen kann.
  • Zum besseren Verständnis der Erfindung dient die folgende detaillierte Beschreibung, die lediglich beispielhaft ist und unter Bezug auf die beiliegende Zeichnung gelesen werden sollte.
  • Durch Anwendung des neuen Systems mit dem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken und des hier offenbarten Verfahrens können folgende Vorteile erzielt werden:
  • Es kann ein System mit regelmäßig verteilt angeordneten Plattenspeicherlaufwerken mit hoher Betriebsbandbreite oder mit hoher Übertragungsrate oder mit jedem Kompromiß dazwischen erzielt werden.
  • Ein System mit einem Feld aus Plattenspeicherlaufwerken wird erzielt, welches, abhängig von Anforderungen des Anwenders kein oder mehrere Redundanzniveaus hat.
  • Ein System mit einem Feld aus Plattenspeicherlaufwerken wird erzielt, welches eine streifenförmige Zerlegung der Daten in Blöcken für das Feld aus Plattenspeicherlaufwerken ausführt.
  • Ein System mit einem Feld aus Plattenspeicherlaufwerken wird erzielt, das die Möglichkeit bietet, ein Plattenspeicherlaufwerk herauszunehmen und zu ersetzen, während das Feld aus Plattenspeicherlaufwerken ohne Einfluß auf den Betrieb des gesamten Feldes arbeiten kann.
  • Ferner kann ein System mit einem Feld aus Plattenspeicherlaufwerken, welches mehrere Ersatz- Plattenspeicherlaufwerke aufweist, so betrieben werden, daß das Ersatzlaufwerk die logische Position irgendeines herausgenommenen oder fehlerhaften Plattenspeicherlaufwerks annimmt.
  • Weiterhin kann ein System mit einem Feld aus Plattenspeicherlaufwerken erzielt werden, welches eine Plattenspeicher-Steuereinrichtung hat, die ein Betriebssystem enthält.
  • Ein System mit einem Feld aus Plattenspeicherlaufwerken kann erzielt werden, dessen Plattenspeicher- Steuereinrichtung Anforderung von einem Computer in eine Warteschlange einreihen kann.
  • Ferner kann ein System mit einem Feld aus Plattenspeicherlaufwerken Anforderungen von einem Computer priorisieren.
  • Weiterhin kann ein System mit einem Feld aus Plattenspeicherlaufwerken eine Software mit neu ausrichtbarer Zielsetzung in der Plattenspeicher-Steuereinrichtung haben.
  • Ferner kann ein System mit einem Feld aus Plattenspeicherlaufwerken erzielt werden, das eine korrekte Plazierung eines Plattenspeicherlaufwerks in dem Feld aus Plattenspeicherlaufwerken definieren kann.
  • Außerdem kann ein System mit einem Feld aus Plattenspeicherlaufwerken erzielt werden, das eine Simultanoperation mehrerer Prozessoren und Pufferspeicher durchführen kann, die durch einen gemeinsamen Datenbus verbunden sind.
  • Die beiliegenden Zeichnungen zeigen:
  • Fig. 1 ein schematisches Blockschaltbild eines Systems mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken in einer bevorzugten Ausführung;
  • Fig. 2 ein schematisches Blockschaltbild der SCSI- Kanalsteuereinrichtung in einer bevorzugten Ausführungsart;
  • Fig. 3 ein schematisches Blockschaltbild der ECC- Maschine in bevorzugter Ausführungsart;
  • Fig. 4 ein Prozeßverbindungsdiagramm der Software der bevorzugten Ausführungsart;
  • Fig. 5 ein Flußdiagramm der Operation des HISR- Prozesses in bevorzugter Ausführungsart;
  • Fig. 6 (a) einen Teil eines Flußdiagramms der Operation des HTASK-Prozesses in bevorzugter Ausführungsart;
  • Fig. 6 (b) einen Teil eines Flußdiagramms der Operation des HTASK-Prozesses in bevorzugter Ausführungsart;
  • Fig. 7 (a) ein Flußdiagramm der Operation des STASK- Prozesses in bevorzugter Ausführungsart;
  • Fig. 7 (b) ein Diagramm des SCB in bevorzugter Ausführungsart;
  • Fig. 8 ein Flußdiagramm der Operation des SCSI- Prozesses in bevorzugter Ausführungsart;
  • Fig. 9 ein Flußdiagramm des Betriebs des SISR- Prozesses in bevorzugter Ausführungsart;
  • Fig. 10 ein Flußdiagramm des Programms zur Durchführung einer Leseoperation ohne Redundanz in bevorzugter Ausführungsart;
  • Fig. 11 ein Flußdiagramm des Programms, das eine Leseoperation mit Redundanz in einer bevorzugten Ausführungsart ausführt;
  • Fig. 12 ein Flußdiagramm eines eine Schreiboperation ohne Redundanz ausführenden Programmes in bevorzugter Ausführungsart;
  • Fig. 13 (a) einen Teil eines Flußdiagramms des Programms, welches eine Schreiboperation mit Redundanz in bevorzugter Ausführungsart durchführt;
  • Fig. 13 (b) einen Teil eines Flußdiagramms des Programms, das eine Schreiboperation mit Redundanz in bevorzugter Ausführungsart ausführt.
  • Es wird Bezug genommen auf Fig. 1, die die bevorzugte Ausführungsart des Systems 10 mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken zeigt. Das System 10 mit dem Feld aus Plattenspeicherlaufwerken dient einem Computer 32 als Speichereinheit. Seine primäre Funktion ist die Ausführung von Lese- und Schreiboperationen von und zu den Plattenspeicherlaufwerken 14 vom Computer 32. Als Oberbegriff, der sowohl Lese- als auch Schreiboperation enthält, wird die Bezeichnung Datentransfer verwendet. Eine Transaktion ist eine vollständige Lese- oder Schreibanforderung vom Zentralcomputer 32 zu dem System 10 mit dem Feld aus Plattenspeicherlaufwerken. Wie gezeigt werden wird, erzielt das System 10 Vielseitigkeit dahingehend, daß es großvolumige Datentransfers mit hoher Übertragungsrate oder eine große Anzahl kleinerer Datentransfers mit hoher Übertragungsrate oder jede denkbare Kombination dazwischen durchführen kann.
  • Die bevorzugte Ausführung des Systems 10 mit dem Feld aus Plattenspeicherlaufwerken hat ein Feld 12 aus einzelnen Plattenspeicherlaufwerken 14. Das Feld 12 ist so angeordnet, daß es elf (11) vertikale Kanäle 16 hat. Jeder dieser Kanäle 16 hat sechs (6) Plattenspeicherlaufwerke 14. Diese Plattenspeicher 14 können entweder magnetische oder optische Speichermedien haben und der Zugriff zu ihnen erfolgt über die Kanalsteuerungen 18 durch einen SCSI- Datenbus 60 gemäß Fig. 2. Das Plattenspeicherfeld 12 ist jedoch auf diese Anzahl von Kanälen oder Platten nicht beschränkt. Beispielsweise können 22 Kanäle und jedes Vielfache dieser Zahl von Plattenspeichern vorgesehen sein.
  • Jeder Kanal wird von einer kleinen Computersystemschnittstellen-Kanalsteuerung 18 (SCSI) gesteuert. Die SCSI-Steuerung 18 wird nachstehend mehr im einzelnen beschrieben. Der Zugriff zu jedem der Kanäle 16 erfolgt über einen gemeinsamen Datenbus 20 durch die SCSI-Steuerung 18. Außerdem befindet sich auf dem Datenbus 20 eine Fehlerkorrektur- und -steuermaschine 22 (ECC). Die ECC- Maschine 22 stellt in Kooperation mit der Software des das Feld der Plattenspeicherlaufwerke enthaltenden Systems 10 ein oder zwei Redundanzniveaus für die auf den Plattenspeichern 14 zu speichernden Daten zur Verfügung.
  • Die System-Plattenspeicher-Steuereinrichtung 24 ist für das Feld aus Plattenspeicherlaufwerken des Systems 10 die Hauptsteuereinrichtung. Die Steuereinrichtung 24 hat einen Mikroprozessor 25. Der Mikroprozessor 25 kann 10 Millionen Operationen pro Sekunde ausführen. Dieser Mikroprozessor 25 wurde aufgrund seiner Architektur gewählt, die besonders für den Betrieb eines Feldes aus Plattenspeicherlaufwerken 10 geeignet ist. Die Plattenspeicher-Steuereinrichtung 24 enthält zusätzlich einen Befehlszwischenspeicher 26 und einen daneben liegenden Operandenzwischenspeicher 28. Der Operandenzwischenspeicher 28 hat eine Speicherkapazität von 64 k- Bytes. Ein Schreibpufferspeicher 30 ist außerdem in der Plattenspeicher-Steuereinrichtung 24 vorgesehen.
  • Die Plattenspeicher-Steuereinrichtung 24 steuert den Datentransfer zwischen dem Feld der Plattenspeicherlaufwerke und dem Computer 32 vom Standpunkt der Speicher- und Redundanzzuordnung. Um die Kommunikation zwischen dem Computer 32 und dem System 10 mit dem Feld der verteilten Plattenspeicherlaufwerke zu erleichtern, ist im Computer 32 eine Schnittstellenkarte 34 angeordnet. Die Schnittstellenkarte 34 wirkt als Schnittstelle und Puffer zwischen dem Zentral-VME-Bus 36 und dem DMA-Kabel 38, welches den Computer 32 mit dem System 10 des Feldes der Plattenspeicher verbindet. Das DMA-Kabel 38 ist mit einem Kabeltreiber 40 verbunden. Der Kabeltreiber 40 ist ein bidirektionaler Puffer. Er ist an seinem anderen Ende mit dem Datenbus 20 verbunden und gibt die Daten vom Kabel 38 an den Datenbus 20 und umgekehrt.
  • Ein Mikroprozessorspeicher 42 (der auch als Pufferspeicher 42 bezeichnet wird) befindet sich auch am Datenbus 20. Daten werden in diesem Pufferspeicher gespeichert, wenn sie vom Computer während einer Schreibanforderung eingeschrieben werden sollen. Gleichermaßen werden Daten in diesem Mikroprozessorspeicher 42 gespeichert, wenn sie aus dem Feld der Plattenspeicher in Reaktion auf eine Computerleseanforderung auszulesen sind. Eine Fehlererfassungs- und Korrektureinheit 44 ist mit dem Mikroprozessorspeicher 42 verbunden. Sie führt eine Fehlererfassung und -korrektur bei allen aus bzw. in den Mikroprozessorspeicher 42 auszulesenden bzw. einzuschreibenden Daten aus. Sie ist von der durch die ECC- Maschine 22 zur Verfügung gestellten Redundanz unabhängig.
  • Schließlich ist eine Technikerkonsole 46 vorgesehen. Diese ist ebenfalls mit dem gemeinsamen Datenbus 20 verbunden. Von der Technikerkonsole 46 werden mehrere Funktionen erzielt. Darunter sind der Zugriff des Technikers zum Datenbus 20 um Diagnoseprogramme ablaufen zu lassen, das Vorsehen eines Floppy-Laufwerks, so daß Software zur Änderung der logischen Konfiguration der Plattenspeicherlaufwerke eingegeben werden kann und das Ablaufenlassen von Wartungsprogrammen usw. Die Technikerkonsole 46 beherbergt einen der Wartungsmikroprozessoren. Dieser Prozessor ist zusammen mit der Plattenspeicher-Steuereinrichtung 24 für den Ablauf der Wartungsprozedur (wie sie nachstehend im einzelnen beschrieben wird) verantwortlich. Technikerkonsolen sind im Stand der Technik bekannt.
  • Mit dem Blick auf die Hardware des Systems 10 mit dem Feld aus Plattenspeicherlaufwerken soll die Aufmerksamkeit auf die linke Seite der Fig. 1 gelenkt werden. Die Schnittstellenkarte 34 des Zentralcomputers sitzt innerhalb des Computers 32. Im Entwurf ist es eine einfache Karte, so daß sie bei verschiedenen Schnittstellen zur Anpassung von Kunden mit unterschiedlichen Schnittstellenbedingungen anwendbar ist. Diese Schnittstelle kann alternativ in der Plattenspeicher-Steuereinrichtung 24 untergebracht sein und eine von mehreren unterschiedlichen Schnittstellen ermöglichen. In der bevorzugten Ausführung ist die gewählte Schnittstelle eine VME, was eine international genormte Schnittstelle ist. Das Kabel 38 ist ein DMA-Kabel (DMA: direct memory access). Es ist eine unspezifische 32-Bit- Datenleitung mit geschützter Schnittstelle. Das Kabel 38 geht durch Kabeltreiber 40, die in Wirklichkeit auf der Prozessorkarte 48 sitzen. Die Kabeltreiber 40 setzen Signale im TTL-Pegel (Transistor-Transistor-Logik) auf der Karte 48 in verschiedene Signalpegel für das Kabel 38 für Daten und Statussignale um, welche zum Zentralcomputer 32 zurück gesendet werden. Am Kabel 38 befinden sich 100 Stifte, die 50 differentielle Signale ergeben. Von diesen 50 sind 32 Datenbits und der Ausgleich zu den 50 sind entweder Paritäts- oder Steuersignale. Durch Verwendung differentieller Signale wird das durch die Differenzen der Erdpotentiale zwischen dem Hauptcomputer 32 und dem Feld 10 der Plattenspeicherlaufwerke auf der Karte 48 hervorgerufenen Probleme vermieden. Datensignale auf der Prozessorkarte 48 sind TTL-Signale, gewöhnlich digitale 0- 5-Volt-Logiksignale.
  • Die von dem Hauptrechner über die Kabeltreiber 40 zu dem Feld der Plattenspeicher kommenden Daten werden anfänglich im Mikroprozessorspeicher 42 gespeichert. Die Fehlererfassungs- und -korrektureinheit 44 unterwirft die in den Mikroprozessorspeicher 42 eingeschriebenen und danach ausgelesenen Daten einer Fehlererfassung und -korrektur. Die Einheit 44 bearbeitet nur die in den Mikroprozessorspeicher gehenden oder aus dem Mikroprozessorspeicher kommenden Daten. Die Einheit 44 unterwirft die Daten einer Operation mit einem modifizierten Hammingcode. Dieser modifizierte Hammingcode ist im Stand der Technik bekannt. Er erfaßt alle Zweibitfehler. Der dem Speicherpuffer 42 zugeordnete Hammingcode erzeugt die Prüfbits, die in den Speicher 42 eingeschrieben werden. Beim Lesen regeniert er die Prüfbits, führt die Prüfung der Daten und notwendige Korrekturen aus. Wenn der Hammingcode erzeugt wird, wird die vom Hauptcomputer 32 kommende Parität mitgeprüft. Die Hauptschnittstellenkarte 34 erzeugt Paritätsbits für die Daten und dasselbe Paritätsbit wird durch den Hammingcode hindurch geleitet, welcher das Paritätbit abstreift und das Prüfbit erzeugt. Umgekehrt werden, wenn die Daten aus dem Mikroprozessorspeicher 42 gelesen werden, die Prüfbits geprüft und eine Bytepegelparität regeneriert, so daß alle internen Busse 32 Bit Daten und vier Paritätsbits haben.
  • Bei der bevorzugten Ausführung ist der Mikroprozessorspeicher 42 ein als integrierte Schaltung (IC) ausgeführter RAM-Chip. Deshalb kann man Vergrößerungen und Verkleinerungen der Größe des Mikroprozessorspeichers durch Ersetzen des IC-Chips durch einen Speicher gewünschter Größe Rechnung getragen werden. Der Mikroprozessorspeicher 42 hat zwei Funktionen. Die eine ist die Geschwindigkeitsanpassung. Anders gesagt ermöglicht er den Datentransfer zu und vom Zentralcomputer 32 in jeder für den Zentralcomputer 32 möglichen Geschwindigkeit. Außerdem sitzt der Mikroprozessorspeicher dort, wo die Akkumulation der Streifendaten auftritt. Die Daten vom Zentralcomputer werden segmentweise im Mikroprozessorspeicher 42 abgelegt. Gleichermaßen werden die Daten vom Feld 12 der Plattenspeicherlaufwerke segmentweise im Mikroprozessorspeicher 42 gesammelt, bevor sie auf den Bus für den Hauptcomputer 32 gelegt werden. Diese Segmente werden allgemein als Streifen bezeichnet und ein besonderes Verfahren zur Anordnung der Segmente über das Feld der Plattenspeicherlaufwerke hinweg wird als Streifenzerlegung bezeichnet.
  • Streifenzerlegung bedeutet die Zuordnung einer einzelnen Datei (d. h. eine vollständige Datenübertragung vom Hauptcomputer) auf die Vielzahl der Plattenspeicher und ermöglicht eine höhere Zuverlässigkeit und eine kürzere Transaktionszeit. Wenn ein Plattenspeicher fehlerhaft ist, werden die Daten auf den anderen Plattenspeichern nicht beeinflußt. Außerdem wird die Übertragungsrate durch Einschreiben der Daten in mehrere Plattenspeicher erhöht, weil die Parallelverarbeitungsfähigkeiten der Kanalsteuerung 18 benutzt werden. Beispielsweise ergibt sich bei zwei Plattenspeichern, die jeweils eine Übertragungsrate von 1 Megabyte pro Sekunde haben, wenn eine Datei von zwei k-Byte in Streifen zerlegt und 1 k-Byte in jeden Plattenspeicher eingeschrieben wird, eine effektive Übertragungsrate von 2 Megabyte pro Sekunde. Statt eines Cachespeichers wird der Mikroprozessorspeicher 42 verwendet, weil das System 10 des Plattenspeicherlaufwerkfeldes eine Speichervorrichtung ist und die meisten Hauptcomputer ihre eigenen internen Cachespeicher haben. Dieser Mikroprozessorspeicher 42 kann auch zum Vorauslesen und andere die Leistung steigernde Operationen verwendet werden.
  • Sobald sich die Daten im Mikroprozessorspeicher 42 befinden, wird ein DMA vom Mikroprozessorspeicher 42 durch den Hammingcode in der Einheit 44 auf den Datenbus 20 und hinunter zum Feld der Plattenspeicher abgesetzt. DMA bedeutet einfach, daß der Transfer hardwaremäßig ohne Eingriff des Prozessors gesteuert wird. In jedem Zyklus geschieht über den Bus ein weiterer Informationstransfer. DMA gibt typischerweise eine Anfangsadresse an und führt daraufhin sequentiell eine genügende Zahl von Transfers aus bis sämtliche Daten dieser Transaktion übertragen sind. In Wirklichkeit kennzeichnet die Adresse den Kanal, die Platte und die Sektornummer, wo die ankommenden Daten zu speichern sind. Somit wird die Anfangsadresse gegeben, und dann Gruppen von 512 Datenbytes ohne zusätzliche Zuteilung von Speicherraum übertragen. Es ist zu bemerken, daß die Größe der Wortgruppen alternativ auch 1024 oder 1536 oder 2048, usw. sein kann.
  • An dieser Stelle ist es wichtig zu bemerken, daß eine Platte aus mehreren zylindrischen Spuren besteht, die im Zentrum beginnen und sich radial nach außen vergrößern. Jede dieser Spuren besteht aus mehreren Sektoren. Vom Standpunkt der Plattenspeicher-Steuereinrichtung 24 sind diese Sektoren aufeinanderfolgend numeriert und beginnen bei Null und gehen bis zur höchsten Anzahl der Sektoren auf dieser Platte. Gewöhnlich beträgt die Größe eines Sektors 512 Byte. Genauso gut kann auch ein Mehrfaches von 512 Byte verwendet werden. Die Platten 14 sind jeweils identisch. Deshalb ist die Sektornummer 0 auf der Platte 5 derselbe Ort, bezogen auf die Platte 5, wie die Sektornummer 0 auf der Platte 11, bezogen auf die Platte 11 usw. Die Platten 14 beginnen mit der Nummer 0 und gehen bis 65. Am Feld 12 werden die Daten von mehreren Kanalsteuereinrichtungen 18 empfangen. Für jeden der elf Kanäle des Feldes 12 ist eine Kanalsteuerung 18 vorhanden. Ein Kanal, beispielsweise der Kanal 19, der am weitesten rechts liegt, kann als Ersatzkanal definiert werden. Jede Kanalsteuerung 18 umfaßt einen beträchtlichen Hardwareanteil. Bezogen auf Fig. 2 enthält die Hardware einen 8 Bit-Mikroprozessor 50, 32 k- Byte eines dynamischen oder statischen RAM (Speicher mit wahlfreiem Zugriff) 52, ein Doppelport-RAM (DPRAM) 54, eine DMA-Maschine 56 und einen 8 Bit-Kleincomputer- Interfacesystem-Interfacekanalprozessor 58 (SCSI). Sobald sie sich innerhalb der Kanalsteuerung 18 befinden, führt der SCSI-Prozessor 58 die Daten mittels DMA zu den Plattenspeichern hinunter.
  • Die Kanalsteuerung 18 verleiht den vom Mikroprozessorspeicher 42 empfangenen Daten Parität. Diese Parität wird durch die SCSI-Steuerung 18 zu den Plattenspeichern 14 hinuntergeführt. Der SCSI-Bus 16, über den die Daten zu den Plattenspeichern übertragen werden, ist 9 Bit breit, die 8 Datenbits und 1 Paritätsbit umfassen. An jedem Plattenspeicher 14 befindet sich eine eingebettete SCSI- Steuerung. Diese eingebettete SCSI-Steuerung erzeugt ein Paritätsbit und vergleicht dieses mit dem von der entsprechenden Kanalsteuerung 18 gesendeten. Diese Prüfung wird ausgeführt bevor die Daten in die Platte eingeschrieben werden. Fehler, die durch irgendeines der oben beschriebenen Paritätsschemata und die Hammingcodes erfaßt worden sind, werden durch die Plattenspeicher- Steuereinrichtung 24 protokolliert.
  • Die von der eingebetteten SCSI-Steuerung ausgeführte Paritäts- oder Fehlererfassungs- und -korrekturverfahren werden allgemein als FIRE-Code bezeichnet. Ein FIRE-Code ist einfach ein weiterer mathematischer Code zur Erfassung und Korrektur kurzer Fehlergruppen in einem sehr langen Feld. In Plattenspeicherlaufwerken verwendete man FIRE- Codes seit 1955 in unterschiedlicher Weise, und sie sind im Stand der Technik gut bekannt. Der FIRE-Code-Generator, ein Mikroprozessor und ein Mikroprozessorspeicher befinden sich insgesamt innerhalb des Plattenspeicherlaufwerks 14.
  • Erneut bezogen auf Fig. 1 ist die Plattenspeicher- Steuereinrichtung 24 der Hauptprozessor für das System 10 mit dem Feld der Plattenspeicher. Jede SC I-Kanalsteuerung 18 hat auch einen Mikroprozessor 50. Jeder dieser Prozessoren 24 und 50 kann als Busentscheider arbeiten. Zur Busentscheidung und -zuteilung dient ein "Gray Code"- Generator. Gray Codes sind im Stand der Technik bekannt. Jeder Prozessor und jeder Speicher mit Buszugriff kann Datentransfers mit direktem Speicherzugriff (DMA) ausführen. Der Gray Code-Generator gestattet jedem Kanal die Ausführung eines direkten Speicherzugriffs, wenn er etwas in der Warteschlange und eine Anforderung hat. Jeder SCSI-Steuerungsprozessor 50 hat einen Interrupt, den er erzeugen kann, wenn der Gray Code-Generator ihm einen direkten Speicherzugriff (DMA) gestattet. Deshalb können gleichzeitig mehrere Datentransfertransaktionen in den Steuerungen 18 verarbeitet werden. Eine Steuerung 18 kann zum Plattenspeicherfeld 12 Daten schreiben oder davon auslesen, während eine andere Steuerung 18 zum Datenbus 20 zugreift. Die Plattenspeicher-Steuereinrichtung 24 hat Priorität insofern, als sie bei jedem zweiten Zugriffszyklus zum Datenbus 20 zugreifen darf.
  • Die Plattenspeichersteuereinrichtung 24 basiert auf einem Programm, das auf einem Mikroprozessor 25 (Fig. 1) läuft und auf dem Cachespeicher und Puffer des Mikroprozessors. Ein geeigneter Mikroprozessor ist der MIPS R 2000, hergestellt von MIPS von Sunnyvale, Kalifornien. Die Kombination aus Mikroprozessor 25, Befehlscache 26, Operandencache 28 und Schreibpuffer 30 macht die Plattenspeicher-Steuereinrichtung 24 aus. Ein Wartungsprozessor 27 befindet sich ebenfalls in der Plattenspeicher-Steuereinrichtung 24 auf dem Mikroprozessor 25. Er führt Wartungsfunktionen durch.
  • Die Wartungseinheit besteht aus dem Wartungsprozessor 27 und einem zweiten Wartungsprozessor 45, der sich in der Technikerkonsole 46 befindet. Der zweite Wartungsmikroprozessor 45 steuert Schalter und Lampen, die den Status der Plattenspeicher angeben. Wenn mit einem Computer mehr als ein System 10 eines Feldes von Plattenspeicherlaufwerken verbunden ist, darf das zusätzliche System 10 keine Plattenspeicher-Steuereinrichtung 24 haben. Die Plattenspeicher-Steuereinrichtung 24 des ursprünglichen Systems wird dazu verwendet. Allerdings hat das zusätzliche System seinen eigenen zweiten Wartungsprozessor 45, der den Plattenstatus und die Interrupts überwacht und steuert. Der Wartungsprozeß arbeitet in der Wartungseinheit.
  • Zurück zur Plattenspeicher-Steuereinrichtung 24. Darin hat der Befehlscache 26 eine Kapazität von 64 k-Byte und speichert die Befehle der Plattenspeicher-Steuereinrichtung 24, die am häufigsten angefordert werden. Der Befehlssatz für die Plattenspeicher-Steuereinrichtung 24 ist im Mikroprozessorspeicher 42 gespeichert. Befehle werden von der Plattenspeicher-Steuereinrichtung 24 aufgerufen und im Befehlscache 26 gespeichert, sobald sie verwendet werden sollen. Der Befehlscache 26 hat eine Trefferrate von etwa 95%. Anders gesagt erhält die Plattenspeicher- Steuereinrichtung 26 den gewünschten Befehl vom Befehlscache zu 90-95% der Zeit statt Zeit dazu verwenden, nach draußen zum separaten langsameren Mikroprozessorspeicher 42 zu gehen, um die Befehle zu bekommen. Der Befehlscache 26 ermöglicht es der Plattenspeicher- Steuereinrichtung 24, die Prozessorgeschwindigkeit beizubehalten.
  • An der Plattenspeicher-Steuereinrichtung ist auch ein 64 k-Byte Operandencache 28 und ein statischer Speicher- /Schreibpuffer 30 vorgesehen. Der Operandencache 28 ist für Programmdaten und nicht für Anwenderdaten vorgesehen. Der Cache 28 enthält keinerlei Anwenderdaten, die in die Plattenspeicher 14 eingeschrieben werden. Beispielsweise sind Programmdaten: Wieviele Transaktionen stehen an? Von welchem Computer kommen die Daten? Welche Art Daten sind es?, usw. Der Mikroprozessorspeicher 42 arbeitet wesentlich langsamer als die Plattenspeicher-Steuereinrichtung 24. Der Mikroprozessorspeicher läuft mit 150 Nanosekunden. Der Operandencache und der Befehlscache laufen mit etwa 25 Nanosekunden. Deshalb können mit dem statischen RAM 30 sechs Lese- oder sechs Schreiboperationen in der gleichen Zeit ausgeführt werden, in der eine Schreib- oder Leseoperation mit dem Mikroprozessorspeicher 42 ausgeführt wird. Der statische RAM-Speicherpuffer 30 ist für eine die Geschwindigkeit anpassende Vorrichtung zwischen der Plattenspeicher-Steuereinrichtung 24 und dem Mikroprozessorspeicher 42 notwendig.
  • Die Fehlerkorrektur- und Steuer-(ECC)-Hardware oder -maschine 22 befindet sich am Datenbus 20. Die ECC-Maschine 22 wirkt mit der in der Plattenspeicher-Steuereinrichtung 24 laufenden Software zusammen und ermöglicht bis zu zwei Redundanzniveaus. Die Redundanzoperation enthält in Wirklichkeit fünf Aspekte. Der erste ist die SCSI-Steuerung 18, die einen Plattenspeicher 14 bezüglich der Information über den Fehler befrägt, wenn er einen Fehler meldet. Der zweite Aspekt ist ein Exklusiv-Oder-Redundanzinformationsgenerator. Der dritte Aspekt ist ein Reed- Solomon-Redundanzinformationsgenerator. Der vierte Aspekt ist die Erzeugung von Redundanzsyndromen. Der fünfte besteht in der in der Plattenspeicher-Steuereinrichtung 24 laufenden Software, die das Redundanzprogramm koordiniert.
  • Redundanz verwendet zusätzliche Datenspeicherkapazität dazu, verloren gegangene Daten oder Speichervorrichtungen mathematisch wieder zu erzeugen. Die physikalische Berechnung der Exklusiv-Oder- und Reed-Solomon- Redundanzinformation wird von der Fehlerkorrektur- und -steuermaschine (ECC) 22 ausgeführt. Wenn ein Kunde oder Anwender ein Redundanzniveau wünscht, wird der Exklusiv- Oder-Redundanzalgorithmus freigegeben. Wenn ein Kunde oder Anwender zwei Redundanzniveaus wünscht, wird sowohl die P- als auch Q-Redundanz zur Verfügung gestellt. Zur Abkürzung wird die Exklusiv-Oder-Redundanz "p-Redundanz" genannt. Gleichermaßen wird die Reed-Solomon-Redundanz als "q- Redundanz" bezeichnet.
  • Die ECC-Maschine 22 berechnet die p- und q-Redundanz, sowie die Daten von der Plattenspeicher-Steuereinrichtung 24 zu den Kanalsteuerungen 18 über den Datenbus 20 per DMA übertragen werden. Zum Beispiel wird, falls drei für Daten bestimmte Sektoren über den Datenbus 20 zu den verschiedenen Plattenspeichern übertragen werden und ein Redundanzniveau gewünscht ist, ein zusätzlicher Sektor, der p-Redundanzinformation enthält, durch die ECC-Maschine berechnet und in einen vierten Plattenspeicher eingeschrieben. Falls für dieselben drei Datensektoren zwei Redundanzniveaus gewünscht werden, werden die von der ECC- Maschine berechneten p- und q-Redundanzdaten jeweils in einen vierten und fünften Plattenspeicher eingeschrieben.
  • Die Hardwareauslegung ist so, daß die Redundanzberechnungen im Vorbeifluß der Daten über den Datenbus 20 ausgeführt werden. Anders gesagt, werden die Redundanzberechnungen hardwaremäßig für jede Datentransaktion längs des Datenbusses 20 ausgeführt. Die p- und q-Redundanzfunktionen werden einfach auf die Datensignale im Datenbus aufgetaktet. Ob die Ergebnisse dieser Funktionen in einen Plattenspeicher 14 eingeschrieben werden, ist vollständig programmgesteuert. Wenn der Kunde oder Anwender keine Redundanz wünscht, ordnet die Plattenspeicher-Steuereinrichtung 24 das System 10 des Feldes der Plattenspeicher so an, daß die Redundanzfunktionen nicht berechnet werden. Wenn der Kunde oder Anwender nur ein Redundanzniveau wünscht, wird das System 10 des Feldes der Plattenspeicher so konfiguriert, daß nur die p-Redundanzinformation auf die Platte geschrieben wird.
  • Gleichermaßen werden, wenn zwei Redundanzniveaus gefordert sind, sowohl die p- als auch die q-Redundanzinformation, welche von der ECC-Maschine 22 berechnet wurden, in die Platte eingeschrieben.
  • Bezogen auf Fig. 3 wird ein Blockdiagramm der ECC- Maschine angegeben. Die p-Redundanz wird zunächst behandelt. Wenn die Plattenspeicher-Steuereinrichtung 24 entscheidet, daß drei Informationssektoren auf die Platte zu schreiben sind, versieht es jeden Informationsblock, der ein Teil derselben Transaktion ist, mit einem Kennzeichen. Zur Veranschaulichung wird der erste von drei Blöcken der ersten Kanalsteuerung 18a (von Fig. 1) zugesendet und in einen Sektor eines der Plattenspeicher 14 der Steuerungen 18a eingeschrieben (oder anders gesagt, darauf in Streifen gelegt). Währenddessen werden die Daten im ersten Block auf dem Datenbus von der ECC-Maschine 22 aufgenommen und durch den Exklusiv- Oder-Funktionsblock 64 hindurchgeführt, wo er mit Nullen Exklusiv-Oder verknüpft wird. Aus diesem Grund ist der Ausgang des Funktionsblocks 64 der gleiche wie sein Eingang war. Dieser Ausgang wird im DPRAM 62 gespeichert.
  • Der zweite Informationsblock wird dann von der Plattenspeicher-Steuereinrichtung 24 zur zweiten Kanalsteuerung 18b übertragen, um in einen der Plattenspeicher 14 der zweiten Kanalsteuerung 18b eingeschrieben zu werden. Der zweite Informationsblock wird vom Datenbus 20 durch die ECC-Maschine 22 aufgenommen. Er wird dann mit dem von seinem Ort im DPRAM 62 wieder aufgefundenen ersten Informationsblock Exklusiv-Oder verknüpft. Das Ergebnis dieser Exklusiv-Oder-Funktion wird in derselben Speicherstelle im DPRAM 62 gespeichert wie das Ergebnis der ersten Exklusiv-Oder-Verknüpfung.
  • Gleichermaßen wird, wenn der dritte Informationsblock von der Plattenspeicher-Steuereinrichtung 24 zur dritten Kanalsteuerung 18c (um die Streifenzerlegung zu bewirken) gesendet wird, durch den p-Redundanzfunktionsblock 64 mit dem Ergebnis der vorigen Exklusiv-Oder-Funktion Exklusiv- Oder verknüpft. Dieses Ergebnis wird dann mit allen drei Sektordatenwerten Exklusiv-Oderiert. Die Funktion wird Bit für Bit durchgeführt, das Ergebnis aber als 512 Bitblock der p-Redundanz erhalten. Diese Funktion wird in dieselbe Speicherstelle im DPRAM 62 geschrieben wie die vorigen Ergebnisse für diese Transaktion. Die ECC-Maschine überwacht das Kennzeichen oder die Transaktionsnummer jedes der drei von der Plattenspeicher-Steuereinrichtung 24 gesendeten Datenblöcke. Wenn sie erkennt, daß der dritte mit dem Rest Exklusiv-Oder verknüpft worden ist, schreibt sie den Ergebnisblock der p-Redundanzfunktion, die sich in derselben DPRAM-Stelle 62 oder demselben Kanal befindet in einen vierten Sektor ein. Die Transaktion ist dann vollständig, und drei Datensektoren sowie ein Sektor der p- Redundanz wurden in die Speicherplatten eingeschrieben.
  • Falls bei einem Lesevorgang ein Fehler auf einem Datensektor statt auf einem Redundanzsektor erfaßt wurde, kann die p-Redundanz die verlorenen Daten regenieren. Die SCSI-Steuerung 18 hat aufgezeichnet, aus welchem Sektor die Daten nicht ausgelesen werden konnten. Sie informiert darüber die Plattenspeicher-Steuereinrichtung. Die Plattenspeicher-Steuereinrichtung 24 kennt dann die beiden Plattenspeicher infolge des obigen Beispiels, die korrekte Daten enthalten. Wenn zwei der drei Platten bekannt sind und die Parität für alle drei (die p-Redundanz) ebenfalls bekannt ist, läßt sich mit einem einfachen Prozeß jedes Bit des ausgefallenen Sektors regenerieren. Es ergibt sich der jeweilige Zustand, wenn die Exklusiv-Oder-Verknüpfung mit den anderen Sektoren den p-Redundanz-Sektor erzeugt. Die ECC-Maschine 22 führt diese Berechnung automatisch aus und setzt das Ergebnis in den DPRAM 62.
  • Jede Stelle, an der Ergebnisse im DPRAM 62 gespeichert sind, wird Kanal genannt. Im DPRAM 62 gibt es sechzehn (16) Kanäle, die jeweils ein Umfang von 520 Bits haben (die Größe eines Datentransferblocks). Alternativ kann eine größere Kanalzahl, zum Beispiel 128 oder 256 Kanäle verwendet werden. Bei der Übertragung der Daten auf dem Datenbus und der Ausführung der Redundanz initialisiert und aktiviert die Plattenspeicher-Steuereinrichtung 24 einen dieser Kanäle, so daß die Redundanzfunktion erzeugt und im initialisierten Kanal gespeichert werden kann. Sobald diese Operation vollständig ist, d. h. sobald die Redundanzinformation in den Plattenspeicher eingeschrieben wurde, kann derselbe Kanal erneut initialisiert und für andere Datentransfer-Redundanzoperationen verwendet werden.
  • Wenn zwei Redundanzniveaus benötigt werden, wird eine q-Redundanz zusätzlich zur zuvor ausgeführten p-Redundanz erzeugt. Die q-Redundanzfunktion ist ein Reed-Solomon- Algorithmus. Ein Reed-Solomon-Algorithmus besteht grundsätzlich aus der Multiplikation der Daten in den drei Sektoren mit einem besonderen Polynom, welches eine zur Identifikation der Daten verwendbare Konstante ist. Reed- Solomon ist ein bekannter Algorithmus. Bezogen auf die p- Redundanz wird, wie oben beschrieben, der erste von der Plattenspeicher-Steuereinrichtung 24 zum ersten Kanal 18a transferierte Datenblock dem q-Funktionsblock 68 eingegeben. Dies geschieht zur selben Zeit, wo die Daten dem p-Funktionsblock 64 eingegeben werden, weil der gemeinsame ECC-Bus 70 beide Funktionsblöcke 64 und 68 mit dem Datenbus 20 verbindet. In dem q-Funktionsblock 68 werden die Daten im ersten Datenblock mit einem besonderen Polynom (eine spezifische Konstante) multipliziert.
  • Nach ausgeführter Multiplikation wird das Ergebnis an einer Stelle oder einem Kanal in dem q-Redundanz-DPRAM 66 gespeichert. Während der Übertragung des zweiten Datensektors über den Datenbus 20 wird er derselben q- Funktion in Kombination mit dem Ergebnis der ersten Multiplikation unterworfen. Dieses Ergebnis wird an derselben Stelle im DPRAM 66 wie das zuerst erhaltene Ergebnis gespeichert. Der dritte Datenblock wird genauso behandelt, und das Ergebnis der mit ihm ausgeführten q- Redundanzoperation wird an derselben Stelle im DPRAM gespeichert wie die Ergebnisse der vorangehenden Blöcke derselben Transaktionsnummer. Sobald sie berechnet worden ist, wird die q-Redundanz in diesem Beispiel in den fünften Sektor eingeschrieben. Der q-Redundanzkanal kann dann für den nächsten Datentransfer erneut initialisiert werden.
  • Alternative Verfahren zur Fehlererkennung und -korrektur können auch verwendet werden.
  • An dieser Stelle ist es wichtig zu bemerken, daß immer, wenn ein Lesevorgang ausgeführt wird, nicht nur die SCSI-Steuerung 18 einen Fehler erfassen kann, sondern auch die p- und q-Redundanzfunktionen einen Fehler erkennen können. Während eines Lesevorgangs erzeugen beide Redundanzfunktionen Redundanzinformation für die zu transferierenden Daten. Dies ist dieselbe Redundanzinformation, wie sie in die Platte in den p- und/oder q- Redundanzsektor eingeschrieben wurde, falls eine oder beide Redundanzniveaus erforderlich waren. Diese generierte Information wird dann mit der Redundanzinformation in den jeweiligen p- und q-Redundanzsektoren Exklusiv-Oder verknüpft. Wenn das, was ausgelesen worden ist gleich dem Eingelesenen ist, sollte das Ergebnis der Exklusiv-Oder- Verknüpfung null sein. Wenn es nicht null ist, bedeutet dies, daß die herausgeschriebenen Daten nicht mit den eingeschriebenen Daten übereinstimmen und daß somit ein Fehler aufgetreten ist. Das Ergebnis der Exklusiv- Oderierung der p-Redundanz mit sich selbst wird als p- Syndrom bezeichnet. Gleichermaßen wird das Ergebnis der Exklusiv-Oder-Verknüpfung der q-Redundanz mit sich selbst als q-Syndrom bezeichnet. Immer, wenn ein Syndrom nicht null ist, ist ein Fehler passiert. Die Software der Plattenspeicher-Steuereinrichtung 24 schreitet dann ein, um nachzuprüfen, ob sie die verlorengegangenen Daten unter Verwendung der ECC-Maschine 22 regenerieren kann.
  • Die ECC-Maschine ist ein Hardwareverfahren zur Erzeugung redundanter Daten. Redundanzfähigkeiten in dem System 10 mit dem Feld aus Plattenspeicherlaufwerken sind jedoch zumeist ein Produkt der Software. Dies ist der fünfte Aspekt der Redundanzoperation, wie er unter "Fehlerkorrektur und Steuerung" angeführt wurde. Die Software, die sich hauptsächlich in der Plattenspeicher- Steuereinrichtung 24 und zum geringeren Teil in dem Wartungsprozessor 27 befindet, koordiniert die Vielfalt der Statussignale, die Transfers von Datenblöcken und die erzeugte Redundanzinformation. Zum besseren Verständnis, wie die Software funktioniert und wie sie mit der ECC- Maschine 22 zusammenspielt, wird nachstehend eine Analyse der Lese- und Schreibvorgänge, bei denen mehrere mögliche Fehlerbedingungen auftreten, angegeben.
  • Das System 10 mit dem Feld der Plattenspeicher kann sowohl die p- als auch die q-Redundanz beim Einschreiben der Daten in die Platte berechnen. Bei Redundanzlesevorgängen berechnet das System 10 erneut die p- und q- Redundanzsyndrome. Ein Syndrom ist für die p-Redundanz das Ergebnis der Exklusiv-Oder-Verknüpfung aller Datensektoren in einer Redundanzgruppe mit dem p-Redundanzsektor für diese Gruppe der Datensektoren. Das p-Syndrom sollte null sein. Wenn das p-Syndrom nicht null ist, ist ein Fehler aufgetreten. Das q-Syndrom ist grundsätzlich eine Exklusiv- Oder-Verknüpfung der normierten Daten (multipliziert mit einer spezifischen Konstanten) mit dem q-Redundanzsektor. Erneut ist, falls diese Operation ein von null unterschiedliches Ergebnis erzeugt, ein Fehler aufgetreten. Wenn man diese ECC-Information verwendet, kann in vielen Fällen das System 10 fehlerhafte Daten erkennen und korrigieren.
  • Trotz der Möglichkeit vieler Fehlerzustände ergeben sich nur wenige Aktionstypen: eine Erkennung unbekannter Fehler, die Korrektur von Fehlern und die Fehlermeldung. Man nimmt an, daß ein Fehler "unbekannt" ist, wenn die SCSI-Kanalsteuerung 18 die fehlerhafte Platte nicht meldet, sondern die ECC-Daten einen Fehler angeben (ein Nicht-Null- Syndrom). Allgemein kann, wenn es in einer Redundanzgruppe ein redundantes Plattenspeicherlaufwerk gibt, ein bekannter Fehler korrigiert werden. Wenn zwei redundante Plattenspeicherlaufwerke vorhanden sind, können zwei bekannte Fehler korrigiert oder ein unbekannter Fehler (nicht von der SCSI gekennzeichnet) identifiziert und korrigiert werden.
  • Unkorrigierbare Fehler erzeugen eine Rückmeldung an den Hauptcomputer und ebenfalls eine Fehlermeldung an den in der Technikerkonsole 46 untergebrachten Wartungsprozessor. Unter den Fällen, die nicht identifizierbar oder korrigierbar sind, befinden sich: (1) die Identität eines unbekannten Fehlers bei nur einem Redundanzniveau, und (2) die Identifikation und Korrektur von mehr als einem einzelnen unbekannten Fehler, wenn es zwei redundante Plattenspeicher gibt. Mit dieser Information im Hintergrund wird nun die Ausführung einer Leseanforderung bei unterschiedlich aktivierten Redundanzniveaus beschrieben u Wenn wir mit einer einfachen Leseoperation beginnen, empfängt das System 10 mit dem Feld aus Plattenspeicherlaufwerken eine Anforderung für einen Lesevorgang über den VME-Bus 36. Die Leseanforderung gilt für n Datensektoren, wobei n von eins bis zu der Anzahl der zur Verfügung stehenden Datensektoren geht. Die Plattenspeicher- Steuereinrichtung 24 bildet die logischen Sektoren auf physikalische Sektoren ab und ermittelt, ob diese Sektoren zu Redundanzgruppen gehören. Eine Redundanzgruppe besteht aus einer Gruppe von Datensektoren und den ihr entsprechenden p- oder p- und q-Redundanzblöcken.
  • Für jede Redundanzgruppe reserviert die Plattenspeicher-Steuereinrichtung 24 einen ECC-Kanal (es gibt 16 Kanäle, die in der ECC-Maschine 22 jeweils eine Redundanz ausführen können) und liest dann alle Sektoren in der Redundanzgruppe über den Datenbus 20. Die ECC-Maschine berechnet die p- und q-Syndromwerte anhand der von ihr gelesenen Daten, während dieser Datenstrom über den Datenbus 20 geht. Die angeforderten Daten werden an einer reservierten Speicherstelle in dem Prozessorspeicher 42, gesteuert von der Plattenspeicher-Steuereinrichtung 24, eingeschrieben. Die Daten anderer Sektoren, die für diese Leseoperation nicht angefordert sind sondern Teil der Redundanzgruppe bilden, werden, nachdem sie zur ECC- Maschine 22 zurückgeführt wurden, ausgeschieden. Das Zurückführen der Daten zur ECC-Maschine 22 macht es letzterer möglich, das p-Syndrom erneut zu berechnen.
  • Daraufhin frägt die Plattenspeicher-Steuereinrichtung 24 bei der ECC-Maschine 22 rück, um festzustellen, ob die p- (und die q-, falls zwei Redundanzniveaus gefordert sind) Syndrome nicht null sind. Unter Benutzung der Syndromzustände und bekannter von der SCSI-Kanalsteuerung 18 gemeldeter Fehler, ermittelt die Plattenspeicher- Steuereinrichtung 24 den richtigen Fehlerstatus und unternimmt die notwendigen Schritte zur Fehlerbehandlung. Diese Schritte variieren abhängig vom Fehlertyp und den von der Plattenspeicher-Steuereinrichtung 24 zur Verfügung stehenden Redundanzniveaus.
  • Wenn ein Fehler in einem Lesevorgang auftritt, ist es gewöhnlich die SCSI-Kanalsteuerung 18, die sagt, daß sie den gekennzeichneten Sektor auf einen ihrer Plattenspeicher 14 nicht lesen kann. Zu diesem Zeitpunkt kann die Kanalsteuerung 18 die Daten im fehlerhaften Sektor nicht übertragen, da sie sie nicht lesen konnte (das Ereignis, welches den Fehlerzustand angestoßen hat). Dann erfolgt eine Ermittlung, ob der fehlerhafte Sektor ein durch die Leseanforderung angeforderter Datensektor ist, im Gegensatz zu einem Sektor, zu dem nur zugegriffen wurden, weil er ein Glied der gesamten Redundanzgruppe ist. Falls sich der Fehler nicht in dem im Lesevorgang angeforderten Sektor befand, ist damit bekannt, daß der für den Lesevorgang angeforderte Datensektor fehlerfrei sein muß. Der Fehler wird dann dem Wartungsprozeß gemeldet, der für die Redundanzprozedur verwendete Kanal in der ECC-Maschine 22 freigegeben (um erneut initialisiert zu werden) und der Datentransfer geht weiter.
  • Wenn andererseits der fehlerhafte Sektor ein angeforderter Datensektor ist, erwartet die Plattenspeicher-Steuereinrichtung 24 die korrigierten Daten von der ECC-Maschine 22. Wie oben schon beschrieben worden ist, werden mit der p-Redundanz automatisch Daten von einem verloren gegangenen Sektor (der bei einem Lesevorgang angefordert worden ist) regeniert und in einem p-Puffer 62 gespeichert. Die Plattenspeicher-Steuereinrichtung 24 kopiert dann die Daten aus dem p-Puffer 62 an den für den angeforderten Sektor zugeteilten Speicherplatz. Der zur Regeneration der Daten dienende spezifische ECC-Kanal wird freigegeben und der Datentransfer fortgesetzt. Es ist zu bemerken, daß, falls sich der eine bekannte Fehler im p- Redundanzsektor befindet, die Daten im angeforderten Sektor korrekt sein müssen. Deshalb werden sie an den Hauptcomputer 32 gesendet, während der Wartungsprozeß den Fehler im Redundanzsektor mitgeteilt bekommt. Der Wartungsprozeß kann den Hauptcomputer 32 wegen des fehlerhaften Plattensektors alarmieren und dessen Ort identifizieren, um ihn auszutauschen. Damit ist ein Lesevorgang mit einem bekannten Fehler und p-Redundanz abgeschlossen. Nachstehend wird ein Lesevorgang bei einem bekannten Fehler mit p- und q-Redundanz beschrieben, wobei die p-Redundanz fehlerhaft ist.
  • Es wird festgestellt, ob der bekannte Fehler in einem angeforderten Sektor liegt. Wenn sich der bekannte Fehler in einem angeforderten Sektor befindet, werden der q-Puffer 66 und die Redundanzgruppenplattennummer (welche von der SCSI-Kanalsteuerung 18 zur Verfügung gestellt wird) gebraucht, damit die Plattenspeicher-Steuereinrichtung 24 die korrigierten Daten berechnen kann. Der korrigierte Sektor wird dann an einer Stelle des Mikroprozessorspeichers 42 eingeschrieben, die für den unlesbaren Sektor zugeteilt wird. Nachfolgend werden die Schritte beschrieben, die zu unternehmen sind, wenn zwei bekannte Fehler auftreten und p- und q-Redundanz vorliegt.
  • Das unmittelbar zuvor diskutierte Korrekturverfahren ist dasselbe wie im Falle zweier bekannter Datensektorfehler, die von SCSI-Kanalsteuerung 18 erfaßt werden, wenn zwei Redundanzniveaus, nämlich die p- und die q-Redundanz vorgesehen sind. Wenn die fehlerhaften Sektoren angeforderte Sektoren sind, werden der p-Puffer 62 und der q-Puffer 66 und die Plattennummer der Redundanzgruppe (wie sie die SCSI-Kanalsteuerung 18 mitgeteilt hat) verwendet, damit die Plattenspeicher-Steuereinrichtung 24 die korrekten Daten für einen der unlesbaren Sektoren berechnen kann. Der Prozeß der Korrektor eines Fehlers oder zweier Fehler mit zwei Niveaus der Fehlerkorrektur ist komplex, jedoch bekannt. Die Plattenspeicher-Steuereinrichtung 24 sendet dann die korrigierten Daten für den ersten fehlerhaften Sektor über den Datenbus 20 zu der diesem Sektor zugeteilten Stelle im Mikroprozessorspeicher. Nachdem der Datenstrom über den Datenbus durch die ECC- Maschine gegangen ist, bleibt ein Einzelfehlerzustand übrig. Dieser Zustand wird in derselben Weise gelöst, wie dies oben beschrieben wurde, wo es nur einen bekannten Fehler und p-Redundanz gab. Die p-Redundanzfunktion erzeugt automatisch die verloren gegangenen Sektordaten wieder und plaziert sie in dem p-Puffer im DPRAM 62. Die Plattenspeicher-Steuereinrichtung 24 kopiert dann die Inhalte des p-Puffers 62, die die korrekten Daten für den zweiten unlesbaren Sektor sind und schreibt sie an der dem zweiten unlesbaren Sektor zugeordneten Stelle des Puffers im Mikroprozessorspeicher 42 ein. Der ECC-Kanal wird dann freigegeben und der Datentransfer fortgesetzt. Nachstehend werden die Schritte beschrieben, die unternommen werden, wenn ein unbekannter Fehler auftritt und p- und q-Redundanz vorgesehen sind.
  • Bei einem unbekannten Fehler wird angenommen, daß er auftrat, wenn die SCSI-Kanalsteuerung 18 keinen fehlerhaften Sektor bezeichnet hat (durch Kennzeichnung eines Falschlese- (oder Falscheinschreib-)Vorgangs von bzw. in einem Plattensektor), sondern daß die p- oder q- Redundanzsyndrome ungleich null sind. In dieser Situation ist die Identität des fehlerhaften Sektors nicht bekannt. Falls sowohl das p- als auch das q-Syndrom ungleich null sind, kann unter Verwendung der Werte vom p- und q- Redundanzsektor die Identität des schlechten Sektors von der Plattenspeicher-Steuereinrichtung 24 berechnet werden. Nach der Identifikation gibt es einen Zustand eines bekannten Fehlers und p-Redundanz. Die Plattenspeicher- Steuereinrichtung 24 initialisiert den p-Puffer 62 und den q-Puffer 66 erneut und liest alle Sektoren mit Ausnahme des nun bekannten fehlerhaften Sektors, überträgt alle Sektoren mit Ausnahme des schlechten über die ECC-Maschine 22. Die p-Redundanzfunktion berechnet in der ECC-Maschine 22 automatisch die den Daten zugemessenen fehlenden Sektoren und speichert sie im p-Puffer 62. Dann kopiert die Plattenspeicher-Steuereinrichtung 24 die Daten der unlesbaren Sektoren vom p-Puffer 62 in den für diesen Sektor zugeteilten Puffer (in dem Mikroprozessorspeicher 42). Nach dem Auslesen des Puffers über die ECC-Maschine 22 sollten die q-Syndrome null sein. Dadurch wird bestätigt, daß die Korrektur erfolgreich war. Die während dieser Redundanzoperation verwendeten ECC-Kanäle werden dann freigegeben und der Datentransfer fortgesetzt.
  • Gleichermaßen führt die in der Plattenspeicher- Steuereinrichtung 24 untergebrachte ECC-Software die Redundanz während den Schreiboperationen aus. Ein Beispiel eines Schreibvorgangs vom Gesichtspunkt der Software aus folgt nun. Das System mit dem Feld aus Plattenspeicherlaufwerken empfängt eine Schreibanforderung vom Computer 32. Die Schreibanforderung gilt für n Sektoren. Nach Empfang der Anforderung bildet die Plattenspeicher- Steuereinrichtung 24 die logischen Sektoren in physikalische Sektoren ab und ermittelt, ob diese Sektoren Glieder einer Redundanzgruppe sind. Eine Redundanzgruppe enthält sämtliche Datensektoren für die ein einzelner Sektor der p- oder q-Redundanzdaten erzeugt wird einschließlich des jeweiligen p- oder q-Sektors. Wenn dies alle Glieder einer Redundanzgruppe sind, kann die p- und q- Redundanz in verschiedener Weise berechnet werden, abhängig vom Fehlertyp und von dem zur Verfügung stehenden Redundanzschema. Unabhängig davon muß die ECC-Maschine 22 die Plattenkennung der Platten in einer Redundanzgruppe zur Berechnung der q-Redundanz wissen. Dies deshalb, weil die Plattenkennung die spezifische Konstante bezeichnet, mit der die Daten zu multiplizieren sind. Man muß diese Konstante kennen, um sie wegzudividieren, um die Originaldaten zu erzeugen. In jedem Falle ist einer der ECC-Kanäle reserviert und für die Redundanzprozedur vorbereitet.
  • Eine Schreibanforderung kann das Beschreiben lediglich einiger und nicht aller Datensektoren einer Redundanzgruppe erfordern. Wenn dies der Fall ist, werden alle Sektoren mit Ausnahme der zu beschreibenden aus den Plattenspeichern 14 ausgelesen und (zur Vervollständigung der Redundanzgruppe) den p- und q-Puffern 62 und 66 hinzugefügt. Wenn, dem obigen Beispiel folgend, nur der erste der drei Sektoren zu beschreiben ist, werden die anderen beiden von dem Plattenspeicher ausgelesen, so daß sie mit dem ankommenden Sektor zur Erzeugung eines neuen p- oder q-Redundanzsektors kombiniert werden können. In der Folge werden dann die angeforderten Sektoren in ihre Zielplattenspeicher eingeschrieben und den p- und q-Puffern 62 und 66 hinzugefügt. Sobald die p- und q-Redundanzsektoren berechnet sind, werden sie an ihren richtigen Plattenspeicheradressen eingeschrieben. Damit ist das generelle Beispiel einer Schreiboperation vollständig.
  • Ein anderes Szenario ergibt sich bei der Schreiboperation, wenn alle Sektoren einer Redundanzgruppe in das Feld 12 der Plattenspeicherlaufwerke einzuschreiben sind. Die p- und q-Redundanzinformation wird berechnet sobald der Datenstrom durch die ECC-Maschine 22 auf seinem Weg zur SCSI-Kanalsteuerung 18 geht. Die ECC-Maschine erzeugt dann p- und q-Redundanzsektoren für die Redundanzgruppe und speichert jeweils diese Ergebnisse in den Puffern 62 und 66. Die Redundanzsektoren werden dann an ihren richtigen Plattenspeicheradressen eingeschrieben u Während eines Einschreibvorgangs können Fehler erfaßt werden. Falls ein Fehler erfaßt wurde, wird er der Wartungsprozedur mitgeteilt. Falls sich der Fehler mittels der Redundanzgruppe nicht beseitigen läßt, wird eine mißlungene Schreiboperation an den Hauptcomputer 32 zurückgesendet.
  • Es ist zu beachten, daß die ECC-Maschine 22 zur Berechnung der Redundanz beim Einschreiben als auch beim Auslesen den den hindurchströmenden Daten zugeordneten ECC- Kanal kennen muß. Deshalb ist jeder Block mit einem Anfangskennsatz ausgestattet. Der Kennsatz gibt an, zu welcher Transaktion der jeweils durchströmende Datenblock gehört. Auch zur Berechnung der q-Redundanz muß die ECC- Maschine 22 die den Daten zugeteilte Platte innerhalb der Redundanzgruppe wissen. Diese Information wird durch eine Konfigurationsdatei des Feldes der Plattenspeicher zur Verfügung gestellt, welche kontinuierlich durch die ECC- Software geprüft wird. Die ECC-Software kann zur Konfigurationsdatei zugreifen und, falls nötig, Information durch die ECC-Hardware fließen lassen. Die Konfigurationsdatei sorgt für die Abbildung des logischen Speichers in den physikalischen Speicher und die Abbildung der Redundanzgruppe. Wenn kein Fehler während eines Schreibvorgangs auftritt, teilt die Hauptprozedur HTASK (die nachstehend beschrieben wird) ECC-Kanäle in der Plattenspeicher-Steuereinrichtung 24 zu, wenn der Datentransfer beginnt und nimmt sie wieder weg, wenn der Datentransfer abgeschlossen ist. Die Prozedur HTASK prüft auch die Werte der p- und q-Redundanzsyndrome, um zu ermitteln, ob ein Fehler aufgetreten ist.
  • In Fehlerfällen ermittelt die HTASK-Prozedur, ob es ein Fehler ist und lokalisiert ihn (falls möglich) durch die Prüfung des von der SCSI-Kanalsteuerung 18 zurückgekehrten Status und durch die Überprüfung des p- und q- Syndroms (wenn sie ungleich null sind, geben sie einen Fehler an). Die HTASK-Prozedur fällt die Entscheidung, die ECC-Software/Hardware um Hilfe zu bitten, um den Fehler zu erkennen und zu korrigieren (falls möglich). Außerdem teilt die HTASK-Prozedur dem Wartungsprozeß Fehler mit.
  • Im allgemeinen braucht es einen redundanten Plattenspeicher zur Korrektur eines bekannten Fehlers. Man benötigt zwei redundante Plattenspeicher, um einen unbekannten Fehler zu ermitteln und ihn zu korrigieren. Man braucht ebenfalls zwei redundante Plattenspeicher zur Korrektur zweier unbekannter Fehler. Diese Prinzipien sind bekannt. Außerdem sind dies die einzig möglichen Aktionen in einem System, das einen oder zwei redundante Plattenspeicher hat. Nur in diesen Fällen wird die HTASK- Prozedur die ECC-Software/Hardware, die die Redundanz zur Verfügung stellt, um Hilfe bitten.
  • Nun wird Bezug auf Fig. 4 genommen, die ein Prozeßverbindungsdiagramm für die in der Plattenspeicher-Steuereinrichtung 24 laufende Software zeigt. Das Prozeßverbindungsdiagramm besteht aus Prozeß- und Datenblöcken. Das Verhalten der Software kann als ein Satz asynchroner, gleichzeitiger und interaktive Prozesse beschrieben werden, wo ein durch einen Prozeßblock gekennzeichneter Prozeß lose als eine identifizierbare Folge von einander abhängiger Aktionen definiert wird. Ein Prozeß wird mit einer Berechnung einer einzigen Ausführung eines Programms identifiziert. Ein Prozeß kann einen von drei Zuständen haben: (1) belegt oder in Ausführung begriffen, (2) im Leerlauf aber bereit, die Ausführung zu beginnen, und (3) im Leerlauf, während die Ausführung zeitweilig ausgesetzt ist. Viele der Interaktionen zwischen den Prozessen in einem Computer ergeben sich durch die gemeinsame Nutzung von Systembetriebsmitteln. Die Ausführung eines Prozesses wird ausgesetzt, wenn ein von ihm benötigtes Betriebsmittel durch einen anderen Prozeß belegt ist.
  • Die Existenz vieler gleichzeitiger Prozesse in einem Computersystem erfordert eine Einheit, die eine Gesamtkontrolle durchführt, die Zuordnung der Systembetriebsmittel überwacht, Operationen plant, Interferenzen zwischen unterschiedlichen Programmen verhindert, usw. Eine solche Einheit ist das Betriebssystem. Ein Betriebssystem ist im allgemeinen ein komplexes Programm, obwohl einige seiner Funktionen auch hardwaremäßig implementiert sein können. In der bevorzugten Ausführung ist das Betriebssystem in erster Linie durch Software implementiert.
  • Ein wesentlicher Aspekt des Systems 10 des Feldes der Plattenspeicherlaufwerke ist die Verwendung eines Betriebssystems im Mikroprozessor 25. Dadurch erhält die Plattenspeicher-Steuereinrichtung 24 eine größere Verarbeitungsflexibilität, weil sie die einzelnen Prozesse so verwaltet, daß ihre Funktion unabhängig ist. Sowohl die Transaktionsgeschwindigkeit als auch die Anzahl der vollständigen Transaktionen wird dadurch erhöht.
  • Der HISR-Prozeßblock 72 ist der die Interrupt-Service- Routine ausführende Prozeß im Hauptcomputer 32. Der HISR- Prozeß 72 führt dies alles im Quittungsbetrieb mit dem Hauptcomputer aus. Der HISR sendet Eingabe/Ausgabe Parameterblöcke (IOPB) 74 vom Hauptcomputer zusammen mit einigen Steuersignalen vom Hauptcomputer zum HTASK-Prozeß. Der primäre Prozeßblock ist der HTASK-Prozeßblock 76. Er handhabt alle Eingabe/Ausgabe (Schreib/Lese) Anforderungen vom Hauptcomputer 32. Er ist außerdem verantwortlich für: (1) die Realisierung variabler Redundanzverfahren, (2) die Streifenzerlegung von Datenblöcken in 512, 1024, usw. Blockverteilungen, (3) die Abbildung logischer Plattenspeicher auf die physikalischen Plattenspeicher 14, (4) Durchführung der Redundanzoperation, die Warteschlangenbildung aus überzähligen IOPB's, (5) den Zugriff zu Ersatzplattenlaufwerken 15, und (6) die Zuteilung des Mikroprozessorspeichers 42, so daß dieser einen physikalischen Sektor bildet, wenn dieser physikalische Sektor herausgenommen oder fehlerhaft ist, usw.
  • Während einer Lese- oder Schreiboperation erzeugt der HTASK-Block ein Transaktionsprotokoll 78 (TREC). Das Transaktionsprotokoll umfaßt mehrere SREC's (SCSI- Protokolle), die ebenfalls durch den HTASK-Prozeß generiert werden. Die SREC's sind Protokolle für jeden Transfer von Datensektoren, welcher eine Transaktion ausmacht. Während derselben Transaktion erhalten alle der 512 Datenblöcke oder Sektoren dieselbe Transaktionsnummer. Beispielsweise ist bei 8 Datentreibern und einer Streifenteilung für maximale Leistung die kleinste Dateneinheit, die der Zentralcomputer 32 von dem Feld der Plattenlaufwerke 10 empfangen oder dorthin senden kann, 4 kByte, d. h. 512 · 8 = 4 kByte. Der große Datenblock oder -brocken wird für den Transfer zu und von den Plattenspeicherlaufwerken in 512 Blöcke zerlegt. Die Größe des kleinsten Stücks des Datentransfers kann sich abhängig von der Anzahl der zur Verfügung stehenden Plattenspeicherlaufwerke ändern. Grundlegend wird die Anzahl der zur Verfügung stehenden Plattenspeicherlaufwerke mal dem 512 Byteblock gleich dem kleinsten Datenposten, den der Zentralcomputer senden kann. Natürlich wird dabei eine Streifenzerlegung von einem Plattenspeicherlaufwerk 14 pro Kanal 18 angenommen.
  • Deshalb muß jeder dieser 512 Sektorblöcke als Teil der korrekten Transaktion identifiziert werden. Hier ist zu bemerken, daß, obwohl Daten zu dem Feld 12 der Plattenspeicher in Blöcken von 512 Byte übertragen werden, Blöcke von 1024 oder ein anderes Vielfaches von 512 Byte verwendet werden können. Der HTASK-Prozeß kann die Vollständigkeit einer Schreiboperation mitteilen, indem er die Anzahl der Blocktransfers einer spezifischen Transaktionsnummer überwacht. Wenn alle die Blöcke derselben Transaktionsnummer in die Platte eingeschrieben sind, ist der Schreibvorgang vollständig. Gleichermaßen kann er, wenn die ECC-Maschine den letzten Datenblock einer spezifischen Schreibtransaktion empfangen hat, das Ergebnis der Redundanzberechnung auf die Platte schreiben.
  • Nun wird Bezug auf die Fig. 4 (a) genommen, wobei jedes TREC 78 den entsprechenden IOPB, eine Vielzahl von SCSI-Protokollen (SREC) 80, (die jeweils Blöcke von in einen bestimmten Sektor im Feld 12 der Plattenspeicherlaufwerke einzuschreibenden Daten sind)/und einen Zähler 81 für die Anzahl oder die Nummer der SREC's umfaßt. Jedes SREC 80 wird einem STASK 82-Prozeßblock zugesendet. Der STASK 82 überwacht das Einschreiben der Daten in die SCSI- Steuerung und zusätzlich das Auslesen der Daten aus den SCSI-Steuerungen 18. Bei einem Schreibvorgang sendet der STASK-Prozeß Daten an die SCSI-Steuerungen 18 in Form eines SCSI-Steuerblocks (SCB) 84. Jeder SCB 84 enthält eine Markierung 85, die seine Transaktionsnummer identifiziert und die sein Ziel betrifft. Der STASK-Prozeß 82 unterbricht die SCSI-Kanalsteuerung (SCSI) 86 für den Empfang der SCB's 84. Die SCSI-Kanalsteuerungen 86 sind für das Einschreiben der Daten von der Kanalsteuerung 18 in die einzelnen Plattenspeicher 14 und für das Auslesen aus denselben verantwortlich. Sobald sie an der einzelnen Platte 14 sind, schreibt die eingebettete SCSI-Steuerung auf dem Plattenspeicherlaufwerk 14 die Daten in den oder liest sie aus dem bestimmten Sektor. Dies geschieht im Block 88. Während einer Leseoperation werden, unabhängig davon, ob es eine Leseanforderung vom Zentralcomputer 82 oder eine Leseanforderung zur Berechnung von Redundanzinformation ist, Daten aus den Sektoren der individuellen Plattenspeicheraufwerke durch die eingebettete SCSI-Steuerung (auch im Block 88) wieder aufgefunden. Jeder Block der angeforderten Daten wird zum SCSI-Statusblock (SSB) 90. Jeder SSB 90 hat ein Kennzeichen 91, gleich wie das Kennzeichen 85 für den SCB 84. Diese SSB 90 werden dem SCSI-Interrupt-Routinen-Prozeßblock (SISR) 92 zugesendet. Jeder SISR-Block 92 empfängt auf einen Interrupt hin einen SSB 90 von der SCSI 86. Der SISR erzeugt einen SSB 94 mit einem Kennzeichen 95. Das Kennzeichen 95 ermöglicht dieselbe Funktion wie es das Kennzeichen 91 im Block 90 tut. Der SISR sendet den SSB 94 zum entsprechenden STASK- Prozeß 82. Diese Daten werden dann zusammen mit möglichen Statusfehlern zum HTASK-Prozeß zusammen mit aufgetretenen Fehlern gesendet und zum Zentralcomputer 32 übertragen (falls es ein Schreibvorgang ist).
  • Nun wird bezogen auf Fig. 5 das vom HISR 72 ausgeführte Unterprogramm mehr im einzelnen gezeigt. In Schritt 100 errichtet der HISR Wege zu den HTASK-Prozessen 76. Pro HTASK-Prozeß 76 gibt es einen Weg. Diese Wege werden zum Starten eines HTASK-Prozesses 76 benutzt. Welcher HTASK-Prozeß auch willkürlich gestartet wurde, er muß in dem Moment für die Verarbeitung neuer Anforderungen zur Verfügung stehen. Die Nachricht wird lediglich als Mechanismus zum Starten des HTASK-Prozesses 76 verwendet. Eine Synchronisationsvariable wird erzeugt, die der HTASK- Prozeß 76 aufhängt, und der erste zur Verfügung stehende HTASK-Prozeß wird bei Bedarf gestartet.
  • In Schritt 102 wird das HTASK-Semaphor eingerichtet. Das Semaphor ist ein Softwaremechanismus zur Steuerung der Ausführungsreihenfolge. Der Mechanismus des Semaphors ist eine Folge von Aufrufen, die Bezeichnung "Semaphor runter" bedeutet die Zuordnung oder Reservierung eines bestimmten Prozesses oder eines Teils davon. Umgekehrt bedeutet "Semaphor hoch", daß zu einem bestimmten von ihm gesteuerten Prozeß oder Programm zugegriffen werden kann.
  • Semaphore stellen auch ein Synchronisierelement zur Verfügung.
  • In Schritt 104 werden die IOPB-Strukturen vorbereitet. Diese stellen einen Satz von Strukturen dar, die vorbelegt sind und in eine Kette verfügbarer IOPB's eingereiht werden. Eine Kette ist einfach ein Verfahren, um Strukturen oder Datensektoren in richtiger Reihenfolge miteinander zu verbinden. Die Aktivierung der Interrupts in Schritt 106 teilt der Initialisierungs- bzw. Vorbereitungsstruktur, die den Prozeß gestartet hat, mit, daß sie bereit sein muß, Interrupts vom Zentralcomputer zu akzeptieren. Dies erfordert, daß der Hauptvorbereitungsprozeß Interrupts aktiviert, wenn irgendetwas vorbereitet wird. Schritt 108 ist der Beginn der Hauptroutine. Sie läuft dauernd in sich und wartet auf die Interrupts von dem Zentralcomputer 32. Der HISR 72 wird von einem Interrupt vom Zentralcomputer 32 aufgeweckt. In Schritt 110 wird ein IOPB aus der verfügbaren Liste gewählt. Wenn Speicherzuordner (englisch: mallocs) verwendet werden, wird einer zugeordnet, falls verfügbar. Ein Speicherzuordner ist eine Möglichkeit, Speicher zuzuordnen. Üblicherweise sind die Speicher in ihrer Kapazität begrenzt. Deshalb werden zur sinnvollen Zuordnung des verfügbaren Speichers Speicherzuordner verwendet. Falls Speicherzuordner nicht erlaubt sind und kein Speicher mehr zur Verfügung steht, wird ein Fehlerzustand erzeugt und die Information zum Zentralcomputer 32 zurückgesendet. Die Rückmeldung wird nicht vom HISR gesendet, weil dieser nur eine Interruptroutine ist.
  • In Schritt 112 wird die IOPB-Struktur aus der Verfügbarkeitsliste entfernt und die Daten vom Zentralcomputer 32 über die VME 36 kopiert. Die Felder in der Struktur (falls vorhanden) sind vorbereitet, und Strukturen werden dem Ende der Kette der anhängigen IOPB's hinzugefügt. Dieser Schritt wird ohne Störung des die -Einträge aus dieser Kette entfernenden HTASK-Prozesses 76 durchgeführt. Der HTASK stößt keine Interrupts an, so daß nur der HISR-Prozeß 72 den Schutz durchführen muß. Der IOPB-Eintrag wird dem Ende der Kette oder Schlange hinzugefügt, um die chronologische Reihenfolge einzuhalten.
  • In Schritt 114 wird ein Semaphor "hoch" gesetzt und befreit dadurch einen zur Verfügung stehenden HTASK-Prozeß, um der nächsten IOPB-Anforderung zu dienen. In Schritt 116 werden die in Schritt 106 aktivierten Interrupts erneut aktiviert, so daß die folgende Anforderung verarbeitet werden kann. Dabei muß beachtet werden, daß ein Fenster zwischen diesem Schritt und dem, wo der HISR zurück zum Schlaf geht, verbleibt. Wenn ein anhängiger Interrupt vorliegt, wird der Interrupt-Handhabungsschritt 108 unverzüglich angesprungen. Der Schritt 160 kehrt zum Schritt 108 nach erneuter Aktivierung der Interrupts zurück. Der vom Zentralcomputer 32 empfangene IOPB 74 wurde nun zum HTASK-Prozeßblock 76 gesendet.
  • Unter Bezug auf Fig. 6 wird nun ein Flußdiagramm des HTASK-Prozesses 76 beschrieben. In Schritt 120 richtet der HTASK Wege zum STASK-Prozeß 82 ein. Für jeden HTASK 76 wird ein STASK 82 eingerichtet. In Schritt 122 werden die durch einen HTASK-Prozeß zu verwendenden Strukturen aufgestellt und vorbereitet. Die HTASK's 76 sind identisch und zur Verarbeitung einer IOPB-Anforderung vom Anfang bis zum Ende verantwortlich. Die Anzahl der zugeordneten HTASK-Prozesse braucht nicht mehr als 16 zu sein, weil dies die maximale Anzahl der von der ECC-Maschine 22 gleichzeitig handhabbaren Anforderungen ist (weil die ECC-Maschine 22 nur 16 Kanäle hat). Einige Anforderungen benötigen keine Ein/Ausgabe, jedoch die Mehrzahl von ihnen sind Ein/Ausgabe-Anforderungen.
  • In Schritt 124 werden die SREC-Strukturen zugeteilt oder vorbelegt. Für jede STASK-Anforderung wird eine SREC- Struktur benötigt. Ein IOPB benötigt gewöhnlich mehrere Lese- oder Schreibvorgänge für mehrere Vorrichtungen. In diesem Schritt werden Ressourcen, wie z. B. Speicher, usw. zur Abdeckung dieser Situationen zugeteilt. Zum Beispiel kann nur eine anstehende Operation pro Kanal vorliegen, wobei es vernünftig ist, eine SREC-Struktur pro Kanal zur Verfügung zu haben. Die Anzahl der benötigten SREC's wird auch von der logischen Konfiguration des Feldes 12 der Plattenspeicher beeinflußt. Falls 10 Plattenspeicherlaufwerke 14 ohne Redundanz vorhanden sind und sie als 10 logische (separate) Plattenspeicher konfiguriert sind, wird nur ein SREC benötigt.
  • In Schritt 126 werden die Puffer im Mikroprozessorspeicher 42 für den HTASK-Prozeß zum Lesen oder Schreiben von Daten aufgestellt. Die Puffergröße muß wenigstens einen Sektor umfassen, jedoch hängt die tatsächliche Größe von der Gesamtzahl des im Prozessor 25 zur Verfügung stehenden Raums und dem idealen Kommunikationsumfang mit den SCSI-Steuerungen 18 ab. Danach wird in Schritt 128 für jede Anforderung eine TREC-Struktur aufgestellt. Dies ist eine logische Zuteilung und es gibt pro HTASK-Prozeß eine davon. Die TREC-Struktur beinhaltet die zur Verarbeitung der Anforderung notwendige Information, wie den Ort des IOPB, der Puffer und der SREC- Strukturen. Diese Struktur wird zu diesem Schritt vorbereitet, jedoch wird sie immer auch dann vorbereitet, wenn eine neue Anforderung empfangen wird.
  • Mit Schritt 130 beginnt das Hauptprogramm des HTASK- Prozesses 76. In diesem Schritt wird das HTASK-Semaphor, das im HISR-Schritt 114 "hoch" gesetzt wurde, "tief" gesetzt. Das Tiefsetzen des Semaphors läßt den HTASK-Prozeß zu dem anhängenden IOPB 74 zugreifen. In Schritt 132 wird der anstehende IOPB aus der Spitze der anstehenden IOPB- Schlange herausgenommen. In Schritt 134 werden die Felder in der TREC-Struktur für die aus dem Stapel im Schritt 132 genommene IOPB-Anforderung initialisiert. Im Schritt 136 wird entschieden, ob die Anforderung eine Leseanforderung ist. Wenn dies der Fall ist, geht der HTASK-Prozeß zum Lese-Unterprogramm in Fig 6 (b). Falls es keine Leseanforderung ist, wird nachgefragt, ob es eine Schreibanforderung ist. Wenn es eine Schreibanforderung ist, springt der Prozeß zum Schreib-Unterprogramm in Fig. 6 (b). Wenn die Anforderung weder eine Schreib- noch eine Leseanforderung ist, wird ein Fehler festgestellt und dem Wartungsprozeß gemeldet.
  • Nun wird Bezug genommen auf die Fig. 6 (b), welche das Lese- und Schreib-Unterprogramm des HTASK-Prozesses 76 zeigt. In Schritt 140 im Lese-Unterprogramm wird Information für die durchzuführenden SREC-Anforderungen aus einer gegebenen Sektornummer und logischen Einrichtung (die Konfiguration der Plattenspeicherlaufwerke) berechnet. Zu diesem Zeitpunkt muß auch das für die spezifizierte logische Einrichtung verwendete Redundanzniveau festgestellt werden. Die geeigneten SREC-Strukturen werden (falls nötig) zugeteilt, initialisiert und dem dem angeforderten ECC-Kanal entsprechenden STASK-Prozeß zugesendet.
  • In Schritt 142 wird dann festgestellt, ob Redundanz gefordert ist. Falls dies so ist, wird die ECC-Maschine 22 zur Durchführung der Prüfung aufgestellt, welcher oder welche Redundanzniveaus gefordert sind. Egal wie die Entscheidung in Schritt 142 ausfällt, erreicht der Programmfluß den Schritt 146. In Schritt 146 wird die angeforderte Redundanzoperation ausgeführt. Wenn Fehler auftreten, werden sie, falls möglich, korrigiert. Alle Fehler werden korrekt gemeldet und in manchen Fällen der Wartungsprozeß informiert, so daß er den Fehlerzustand weiter untersuchen kann.
  • Nach der Ausführung der Redundanzoperation werden Daten in den Anwenderdatenbereich kopiert, um sicherzustellen, daß die richtigen Daten aus den Plattenspeichern ausgelesen worden sind, von dort werden sie zum Zentralcomputer 32 übertragen. Dieser Kopiervorgang geschieht in Schritt 140 und stellt das Ende des Lese- Unterprogramms dar.
  • Nun wird auf das Schreib-Unterprogramm Bezug genommen, welches mit Schritt 150 beginnt. In diesem Schritt werden Daten aus dem Anwenderdatenbereich im Mikroprozessorspeicher 42 kopiert. In Schritt 152 wird bei gegebener Sektornummer und logischer Einrichtung Information für den abzusetzenden SREC-Befehl berechnet. Dieser Schritt benötigt auch eine Feststellung, welches Redundanzniveau für die spezifizierte logische Einrichtung (die Konfiguration der physikalischen Plattenspeicherlaufwerke 14) verwendet werden soll. Die Anwenderdaten werden zum Puffer unter Verwendung der geeigneten Blockgröße übertragen (wobei die Anwenderdaten im Zentralcomputer 32 größer als im Prozessorpuffer 42 sind). Die geeigneten SREC-Strukturen werden (falls nötig) zugeteilt und initialisiert und dann dem dem angeforderten Kanal entsprechenden STASK-Prozeß zugesendet.
  • Danach wird festgestellt, ob Redundanz gefordert ist und in welchem Niveau bzw. welchen Niveaus. Diese Feststellung wird in Schritt 154 getroffen. Falls Redundanz angefordert ist, wird sie in Schritt 156 aufgestellt.
  • Danach wird im Schritt 158 der ECC-Information entsprechende Information generiert. Wenn Fehler aufgetreten sind, werden sie, falls möglich, korrigiert. Alle Fehler werden korrekt gemeldet und in manchen Fällen wird der Wartungsprozeß informiert, so daß er die Fehlerzustände weiter untersuchen kann.
  • Unter Bezug auf Fig. 6a gehen sowohl das Lese- als auch das Schreib-Unterprogramm zum Schritt 160. In Schritt 160 wartet das Programm bis die Transaktion vervollständigt ist. Dies macht üblicherweise die Verarbeitung aller SREC's einer gegebenen Transaktion erforderlich. Nach der Vervollständigung der Transaktion sendet Schritt 162 eine Statusmeldung zum Zentralcomputer 32 zurück. Danach wird eine Prüfung der zugeteilten Ressourcen bzw. Betriebsmittel durchgeführt. Ein Beispiel eines zugeteilten Betriebsmittels ist ein am Beginn einer Operation beiseite gelegter Speicher, der zur Vervollständigung der Operation verwendet werden soll. Wenn zugeteilte Betriebsmittel in Schritt 164 erfaßt worden sind, werden sie in Schritt 166 freigeschaltet. Die Programmschleife geht dann zurück zum Startpunkt des HTASK-Hauptprogramms, und die Betriebsmittel sind befreit, und können erneut der nächsten Transaktion zugeordnet werden.
  • Unter Bezug auf Fig. 7 wartet im Schritt 168 der STASK 82 auf eine SREC von einem entsprechenden HTASK 76 oder auf einen SSB 94 von einem entsprechenden SISR 92. Im Schritt 170 stellt der STASK-Prozeß fest, ob er eine SREC hat. Wenn er eine SREC findet, wird letzterer in einer Kette gesichert und dafür ein Kennzeichen generiert. Diese Operation erzeugt einen SCSI-Steuerblock (SCB) 84. Bezogen auf Fig. 7 (b) enthält ein SCB 84 in Wirklichkeit einen Steuerdatenblock (CDB) 171, der die Daten enthält, die als Teil der SREC 84 übertragen worden sind. Das Kennzeichen 173 des SCB 84 wird vom STASK-Prozeß 82 erzeugt und stellt dem SCSI 86 Information zur Verfügung (das Kennzeichen 173 in Fig. 7 (b) ist dasselbe wie das Kennzeichen 85 der Fig. 4). Sobald der SCB 84 erzeugt worden ist, wird er in Schritt 174 dem entsprechenden SCSI 86 zugesendet. Die Programmschleife geht dann zum Beginn des STASK-Programms zurück.
  • Wenn in Schritt 170 keine SREC entdeckt wurde, weiß der STASK-Prozeß, daß er fehlerhaft einen SSB 90 hat. Diese Feststellung wird in Schritt 176 getroffen. Wenn ein SSB 90 gefunden worden ist, stimmt sein Kennzeichen 95 (siehe Fig. 4) mit der in die Kette gebundenen SREC überein. Falls keine Übereinstimmung im Schritt 180 gefunden wurde, wird ein "Fehler"-signal dem HTASK-Prozeß und der Wartungseinheit zugesendet. Der Prozeß geht mit Schritt 182 weiter, falls Übereinstimmung vorhanden ist. Dann wird die übereinstimmende SREC zusammen mit dem Status von dem SSB zum aufrufenden HTASK-Prozeß gesendet. Der Prozeß geht dann zu seinem Anfangspunkt zurück.
  • Nach Beendigung des STASK-Prozesses 82 ist der nächste eine Steuerung durchführende Prozeß der SCSI-Prozeß 86. Die Code-Segmente, die den SCSI-Prozeß betreiben, befinden sich nicht alle auf der Plattenspeicher-Steuereinrichtung 24. Teile befinden sich in den SCSI-Steuerungen 18. Bezogen auf Fig. 2, die eine Explosionsdarstellung der SCSI- Kanalsteuerung 18 ist, ist der SCSI-Prozeßcode im Mikroprozessor 50 untergebracht. Er erzeugt zwei Kommunikationsebenen. Die erste findet zwischen der Plattenspeicher-Steuereinrichtung (mittels der durch SCSI- DMA 53 vom Datenbus 20 aufgenommenen Daten) und dem SCSI- Mikroprozessor 50 statt. Die zweite Kommunikationsebene findet zwischen dem Mikroprozessor 50 und dem erweiterten SCSI-Prozessor 58 statt. Die zweite Ebene übersetzt die Daten und Steuersignale in die Sprache oder das Format des SCSI. Es gibt eine dritte Kommunikationsebene, die zwischen dem erweiterten SCSI-Prozessor und der in jedem Plattenspeicherlaufwerk 14 eingebetteten SCSI-Steuerung stattfindet. Beim Senden der Daten über den Datenbus 20 von der Plattenspeicher-Steuereinrichtung 24 zur SCSI-Kanalsteuerung werden Daten über den gewünschten Kanal, den Plattenspeicher und die Sektornummer gesendet.
  • Nun wird Bezug genommen auf das Prozeßverbindungsdiagramm der Fig. 4, worin die gestrichelte Linie A-A' eine Trennlinie zwischen der in der Plattenspeicher- Steuereinrichtung 24 befindlichen und dort laufenden Software und der Software, die in den SCSI-Kanalsteuerungen 18 abläuft, darstellt. Unterhalb der gestrichelten Linie A- A', aber oberhalb der gestrichelten Linie B-B'/, befindet sich die auf den SCSI-Kanalsteuerungen laufende Software (Gegenstand der Fig. 2). Die SCSI-Steuerung von Block 88 ist einfach die in jedem Plattenspeicherlaufwerk 14 eingebettete SCSI. Die SCSI auf dem Plattenspeicher 88 liest und schreibt von und die Sektoren dieses Plattenspeichers. Die SCSI kommuniziert mit der SCSI- Kanalsteuerung 18 im erweiterten SCSI-Prozessor 58 (siehe Fig. 2). Der Betrieb der SCSI auf der Platte 88 wird vom Hersteller der eingebetteten SCSI zur Verfügung gestellt und ist im Stand der Technik bekannt.
  • Nun wird Bezug genommen auf Fig. 8, die ein Flußdiagramm für den SCSI-Prozeß 86 darstellt. In Schritt 184 erhält der Prozeß einen Befehl vom Zweiport-RAM 54. Das Zweiport-RAM ist der Speicher, wo die Daten, wenn sie vom Datenbus 20 kommen, gespeichert werden. Der empfangene Befehl enthält auch SCB's. Sobald Plattenspeicherlaufwerke zur Verfügung stehen, liest in Schritt 186 der Prozeß entweder von einem bestimmten Plattenspeicherlaufwerk oder schreibt darauf, abhängig davon, ob eine Lese- oder Schreibanforderung vorliegt. Wenn der Lese- oder Schreibprozeß vollständig ist, sendet in Schritt 188 der SCSI- Prozeß den Status an den HTASK-Prozeß in Form eines SSB 90. Der SSB 90 kann auch Daten enthalten, wenn ein Leseprozeß ausgeführt wurde. Dies vervollständigt den SCSI-Prozeßblock 86, der jetzt kontinuierlich in sich selbst umläuft.
  • Am empfangenden Ende des SCSI-Prozeßblocks 86 befindet sich der das SCSI-Interruptdienstprogramm (SISR) ausführende Prozeßblock 92. Das Flußdiagramm dieses Prozeßblocks ist in Fig. 9 dargestellt. In Schritt 190 des SISR-Prozeßblocks 92 wartet der Prozeß 192 auf einen Interrupt vom SCSI-Prozeß 86. Auf einen Interrupt hin empfängt der SISR-Prozeß den SSB 90 vom SCSI-Prozeß 86. Dies geschieht in Schritt 192. In Schritt 194 wird der SSB 90 durch den entsprechenden STASK-Prozeß 82 zum entsprechenden HTASK-Prozeß 76 gesendet. Von dort können zusätzlich zu irgendwelchen anderen Merkmalen des Systems 10 mit dem zur Ausführung konfigurierten Feld der Plattenspeicherlaufwerke Daten und/oder Statusinformation zur Zentrale 32 zurückgemeldet oder Redundanzoperationen ausgeführt werden.
  • Damit ist die Beschreibung der einzelnen Prozesse vollständig. Ein besseres Verständnis, wie die Software des Systems 10 mit dem Feld der Plattenspeicherlaufwerke arbeitet, erhält man anhand der nachfolgend beschriebenen Beispiele einer Lese- und Schreiboperation mit und ohne Redundanz.
  • Nun wird Bezug genommen auf Fig. 10, die ein Flußdiagramm für einen Lesevorgang ohne Redundanz zeigt. Wenn der HTASK-Prozeß eine Leseanforderung in Form eines IOPB empfangen hat, sind der Name der logischen Platte, die Nummer des Anfangssektors und die Sektorzahl im HTASK- Prozeß vorhanden. Der HTASK-Prozeß bildet den Namen der logischen Platte und die Anfangsadresse auf das physikalische Plattenlaufwerk und den Anfangssektor ab. Die Plattenspeicher-Steuereinrichtung 24 stellt sicher, daß jeder Prozeß, um ablaufen zu können, evtl. mit einer unter dem Optimum liegenden Geschwindigkeit, eine minimale Anzahl von SREC-Strukturen und Puffern zugeteilt bekommt. Fig. 10 veranschaulicht das Programm, welches für die Verarbeitung einer Leseanforderung von einem logischen Plattenspeicher verwendet wird, wenn die Zentrale 32 keine Redundanz fordert.
  • Bei gegebener Anfangssektornummer generiert Schritt 198 den Satz aus Paaren der Platten- und physikalischen Sektornummern, die für den ersten Satz zu verarbeiten sind. Ein Satz aus Platten- und physikalischen Nummernpaaren sind alle Paare aus Platten- und physikalischen Sektornummern, die zur Vervollständigung der Übertragung zwischen der Zentrale 32 und dem System 10 mit dem Feld der Plattenspeicherlaufwerke benötigt werden. Anders gesagt, besteht der Satz aus der Nummernpaaren, die es zu einer Anforderung für jede physikalische Platte im Feld braucht (begrenzt durch die Anzahl der Sektoren, die der Anwender anfordert). Da der Lesevorgang ohne Redundanzprüfung arbeitet, gibt es keinen Grund, das Lesen auf einen einzelnen Sektor zu beschränken. Deshalb werden in Schritt 200 vom SCSI eine Kette von Anforderungen bildende Leseanforderungen generiert. Wenn gepuffert wird, d. h. wenn der Mikroprozessorspeicher 42 als Puffer verwendet wird, im Gegensatz zum direkten Transfer zum zentralen Anwenderdatenbereich, muß das Ausmaß der Leseoperation aufgrund der Menge der zur Verfügung stehenden Puffer ermittelt werden. In Schritt 202 werden SREC-Strukturen für den definierten Satz der Paare zugeteilt. Eine Struktur ist ein Speicherbereich, der Binärzahlen enthält, die in einer bestimmten Weise betrachtet werden. In diesem Fall enthalten die SREC-Strukturen die Adressen der Daten in den Puffern. Wenn es nicht genug SREC-Strukturen und/oder Puffer für alle Sektoren der Daten gibt, werden soviel wie möglich aufgestellt und eine Markierung gesetzt für andere SREC-Strukturen und Puffer.
  • In Schritt 204 wird der ECC-Maschine 22 die Identifikation null gegeben, um ihr mitzuteilen, daß sie jetzt nicht benötigt wird. In Schritt 206 werden die SREC- Strukturen und Puffer für die Leseanforderungen aufgestellt. Die SREC-Strukturen werden den geeigneten STASK-Prozessen zugesendet. Das nächste Paar aus Platte und physikalischen Sektorpaaren wird in Schritt 208 für jedes Glied des Satzes, das SREC-Strukturen hatte, generiert. In Schritt 210 ist der Eingang in die Hauptroutine. Hier wird entschieden, ob es noch anstehende zu lesende Sektoren gibt. Wenn alle gelesen sind, geht das Programm zum Ende des Lese-Unterprogramms, zum Schritt 228. Wenn nicht alle Sektoren gelesen worden sind, wird selektiert, ob es irgendwelche anstehenden Fehler gibt. Wenn ein Fehler aufgetreten ist, wird der Wartungsprozeß und der HTASK- Prozeß 76 informiert.
  • Wenn in Schritt 212 kein Fehler gefunden wurde, wartet das Programm auf einen Empfang der Vollständigkeit irgendwelcher Leseanforderungen. Dies geschieht in Schritt 214. Sobald eine Vollständigkeitsinformation vom HTASK- Prozeß empfangen worden ist, ermittelt Schritt 216, welche Anforderung vervollständigt wurde. Wenn ein Fehler aufgetreten ist, werden keine weiteren Anforderungen mehr generiert. Die vorhandenen Anforderungen werden komplett abgearbeitet, es sei denn, sie können gelöscht werden. Wenn eine Pufferspeicherung verwendet wird, sendet Schritt 218 per DMA die Daten vom Pufferspeicher zur Zentrale 32, und eine andere Pufferstelle dient der nächsten Anforderung. Wenn für den Satz der Anforderungen nicht genügend SREC- Strukturen vorhanden sind, wird eine als Ergebnis des Schritts 218 freigeschaltete SREC-Struktur für eines der anstehenden Satzglieder verwendet. Die Anforderungen werden dann im Schritt 220 aufgestellt und zum entsprechenden STASK-Prozeß gesendet. Wenn genügend SREC-Strukturen vorhanden sind oder der Satz komplett ist, wird jedoch in Schritt 222 die nächste Anforderung mit der SREC-Struktur generiert und zum geeigneten STASK-Prozeß gesendet.
  • Schritt 224 erzeugt das nächste Platten- und physikalische Sektornummernpaar für den nächsten angeforderten Eintrag des Satzes. In Schritt 226 wird der Sektorzähler dekrementiert, und das Unterprogramm wird solange durchlaufen, wie die Anzahl der zu lesenden Sektoren größer als null ist. Dann geht das Programm zu Schritt 228, wo die SREC- und Pufferressourcen freigeschaltet werden. Im Schritt 230 wird eine Statusrückmeldung zur Zentrale 32 generiert und daß der Lesevorgang abgeschlossen ist. Die Zentrale 32 hat nun die kompletten Lesedaten, und der den Lesevorgang handhabende HTASK-Prozeß wird freigeschaltet, um eine weitere Anforderung zu handhaben.
  • Nachstehend wird ein Lesevorgang mit Redundanz erläutert. Es wird Bezug genommen auf Fig. 11, die ein Flußdiagramm für den Lesevorgang mit Redundanzprogramm zeigt. Wie in dem Fall der Leseoperation ohne Redundanz, empfängt der HTASK-Prozeß den Namen der logischen Platte, die Anfangssektornummer und Anzahl der Sektoren. Außerdem stellt, wie in Fig. 10, der HTASK-Prozeß sicher, daß jeder Prozeß eine minimale Anzahl von SREC-Strukturen bekommt, um laufen zu können, wenn auch mit einer Rate unter dem Optimum. Beginnend mit Schritt 232 und bei gegebener Anfangssektornummer generiert das Programm den Satz der Paare aus Platten- und physikalischen Sektornummern, die einen Redundanzblock bilden. Sätze, die nur für die Redundanzprüfung dienen, werden markiert, im Gegensatz zu denen, die für die Zentrale 32 gelesen werden. Die für die Redundanzprüfung gelesenen Daten werden in den Anwenderdatenbereich eingelesen. Bei einer Pufferung werden Pufferspeicher eingesetzt, um dies durchzuführen.
  • In Schritt 234 werden die Sektoren im Redundanzblock gesperrt, so daß kein anderer Prozeß versuchen kann, die ECC-Information zu ändern, während sie gerade gelesen wird. Deshalb läuft Schritt 234 in einer Warteschleife und wartet darauf, daß die Sperre aufgehoben wird, d. h. auf Semaphore. Eine Sperre ist ein Mechanismus, der den Zugriff durch andere Prozesse ausschließt. In Schritt 236 wird ein verfügbarer ECC-Kanal erhalten, oder ein Semaphor hochgehängt, bis ein anderer Kanal zur Verfügung steht. Der ECC-Maschine wird eine geeignete Identifikation zugesendet und ein ECC-Kanal initialisiert. Schritt 238 teilt die SREC-Strukturen und Puffer für den definierten Satz von Paaren zu. Wenn es nicht genug SREC-Strukturen und/oder Puffer gibt, werden so viele wie möglich verwendet und die anderen als zu verwenden markiert. Die SREC-Strukturen und Puffer für die Anforderungen werden im Schritt 240 aufgestellt, und die SREC-Strukturen zu den geeigneten STASK-Prozessen 76 gesendet. In Schritt 242 wird das nächste Paar aus Platten- und physikalischer Sektornummer für jedes Glied des Satzes aus Gliedern, die SREC- Strukturen gehabt haben, generiert.
  • Dann wird in die Hauptschleife des Leseprogramms eingetreten. Wenn die Anzahl der zu lesenden Sektoren größer als null und kein Fehler aufgetreten ist (Schritte 244 und 246) wartet das Programm auf den Empfang der Vervollständigung irgendwelcher Leseanforderungen (Schritt 248). In Schritt 250 wird festgestellt, welche Anforderungen komplett sind. Die Daten werden aus dem Puffer kopiert und zur Zentrale 32 gesendet (Schritt 252). Wenn nicht genügend SREC-Strukturen für den Anforderungssatz zur Verfügung stehen, verwendet Schritt 254 die in Schritt 252 freigeschaltete SREC-Struktur für eines der anstehenden Satzglieder. SREC-Strukturen für diese anstehenden Glieder werden dann aufgestellt und zum entsprechenden STASK-Prozeß gesendet. Wenn es nicht genug SREC-Strukturen gibt oder der Satz vollständig ist, generiert Schritt 256 die nächste Anforderung mit der SREC- Struktur. In Schritt 258 wird die Sektorzahl dekrementiert und das Unterprogramm läuft um, bis kein zu lesender Sektor übrig ist.
  • Zurück zu Schritt 246, wo eine Entscheidung getroffen wird, ob ein Fehler beim Lesen der angeforderten Daten von den Plattenspeichern aufgetreten ist. Wenn ein Fehler aufgetreten ist, geht das Programm zum Schritt 260, wo eine Entscheidung im HTASK-Prozeß erfolgt, ob der Fehler korrigierbar ist oder nicht. Wenn die Antwort ja ist, geht das Programm zum Schritt 266. Wenn sich der Fehler in einem Sektor befindet, den die Zentrale 32 angefordert hat, werden die nun richtigen Daten von der ECC-Maschine 22 in den Anwenderdatenbereich kopiert. Der ECC-Kanal wird erneut initialisiert (Schritt 268). Die aufgebauten Anforderungen werden dann an die entsprechenden STASK-Prozesse als SSB's gesendet (Schritt 270). Das nächste Paar aus Platten- und Sektornummer wird für die Leseanforderung vom Zentralcomputer generiert (Schritt 272). Die Sektorzahl wird im Schritt 274 dekrementiert und das Korrektur- Unterprogramm läuft in sich, bis alle Sektoren gelesen worden sind.
  • Sobald alle Sektoren für eine Leseanforderung gelesen worden sind, geht das Programm zum Schritt 276. Darin werden die SREC's und Puffer freigeschaltet. Eine Statusrückmeldung zur Zentrale 32 wird dann erzeugt und das Lesen mit Redundanz ist abgeschlossen (Schritt 278).
  • Wenn im Schritt 260 der Fehler als unkorrigierbar angenommen wird, d. h. wenn er in mehr Sektoren als korrigiert werden können, auftrat, wird den Fehler betreffende Information generiert und dem Wartungsprozeß gemeldet. Diese Operation findet in Schritt 280 statt. Der Programmfluß springt dann aus dem Hauptprogramm heraus (Schritt 282). Dies schließt das Programm für eine Leseoperation mit Redundanz ab.
  • Wenn das System 10 mit dem Feld aus Plattenspeicherlaufwerken eine Schreibanforderung abarbeitet, empfängt die Plattenspeicher-Steuereinrichtung 24 den logischen Plattennamen, die Anfangssektornummer, die Anzahl oder Nummer der von der Zentrale 32 angeforderten Sektoren. Die Plattenspeicher-Steuereinrichtung 24 stellt sicher, daß jeder Prozeß eine Mindestzahl von SREC-Strukturen und Puffern zur Verfügung gestellt bekommt, damit er laufen kann, auch wenn die optimale Rate unterschritten wird. Nun wird Bezug genommen auf Fig. 12, in der die Initialisationsphase der Schreiboperation ohne Redundanz sehr derjenigen der Leseoperation ohne Redundanz ähnelt. Das Programm erzeugt den zu verarbeitenden Satz aus Platten- und physikalischen Sektornummernpaaren bei gegebener Anfangssektornummer (Schritt 284). Da keine Redundanz gefordert ist, kann die Anforderung in Form einer Kette von Anforderungen für die SCSI-Steuerung 18 aufgestellt werden (Schritt 286). SREC-Strukturen und Puffer (falls eine Pufferspeicherung stattfindet) werden dem Satz der definierten Paare zugeteilt (Schritt 288). Schließlich wird der ECC-Maschine 22 eine null als Identifikation zugesendet, um ihren Gebrauch auszuschließen (Schritt 290).
  • Der erste Unterschied stellt sich in Schritt 292 ein. Darin werden die Sektoren, denen eine SREC zugeteilt ist, gesperrt. Dies ist anders als beim Lesevorgang, weil zu diesem Zeitpunkt im Lesezyklus die geforderten Daten sich noch in dem Feld der Plattenspeicher befinden. In Schritt 294 werden die Daten, wenn ein Puffern stattfindet, von der Zentrale aus dem Anwenderbereich in die Puffer kopiert. SREC-Strukturen und Puffer werden aufgestellt und dem geeigneten STASK 82 zugesendet (Schritt 296). Das nächste Platten- und physikalische Sektornummernpaar für jedes Glied aus dem Satz, das eine SREC-Struktur gehabt hat, wird generiert (Schritt 298). Wenn kein Puffern stattfindet, wird die nächste Portion der Schreibdaten aus dem Anwenderbereich in den Puffer kopiert (Schritt 300).
  • Zu diesem Zeitpunkt ist der Initialisationsprozeß abgeschlossen, und die redundanzlose Schreiboperation tritt in ihre Hauptschleife ein. Die Schritte 302 und 304 ermitteln, ob es irgendwelche weiteren Sektoren gibt, die zu beschreiben sind und ob Fehler aufgetreten sind. Wenn solche Sektoren da sind und keine Fehler auftraten, wartet das Programm auf einen Empfang für eine zu beendende Schreiboperation (Schritt 306). Hier wird festgestellt, welche Anforderung vollständig ist (Schritt 308). In Schritt 310 werden, sobald die Anforderung komplett ist, die Sperre der Sektoren aufgehoben (Schritt 310). Wenn es für den Satz der verarbeiteten Anforderungen nicht genug SREC-Strukturen gibt, kann die SREC-Struktur des vollständigen, entsperrten Sektors für eines der anstehenden Satzglieder verwendet werden. Dann wird die Anforderung aufgestellt und die SREC-Strukturen zum geeigneten STASK-Prozeß gesendet (Schritt 312). Wenn es jedoch genügend SREC-Strukturen gibt oder der Satz komplett ist, wird die nächste Anforderung mit den SREC-Strukturen generiert, die dann zum entsprechenden STASK-Prozeß gesendet werden (Schritt 314).
  • Das nächste Platten- und physikalische Sektornummernpaar zum Eintragen in den laufenden Satz wird dann erzeugt (Schritt 316). Wenn eine Pufferspeicherung verwendet wird, werden die Daten vom nächsten Schreibvorgang aus dem Anwenderdatenbereich in die Puffer kopiert (Schritt 318). Die Zahl der auf das Einschreiben wartenden Sektoren wird dann dekrementiert (Schritt 320), und das Unterprogramm läuft in sich, bis alle Sektoren für eine bestimmte Schreibanforderung beschrieben sind. Wenn alle Sektoren für eine Schreibanforderung beschrieben sind, wird die Abfrage in Schritt 302 verneint, es gibt keine zu beschreibenden Sektoren mehr, und der Programmfluß geht zum Schritt 322. In diesem Schritt werden die SREC-Strukturen und Puffer freigeschaltet. Eine Statusrückmeldung wird dann generiert und der Zentrale 32 zugesendet (Schritt 324). Dieser Schritt beendet das Einschreiben ohne Redundanzoperation. Dieses Programm ist im wesentlichen gleich dem Leseprogramm ohne Redundanz vom Standpunkt des Plattensteuerprozesses, mit Ausnahme daß der Datenfluß umgekehrt verläuft und die Voraussetzungen dementsprechend sein müssen. Nach Abschluß der Schreiboperation ohne Redundanz wird nun der Blickpunkt auf das Einschreiben mit Redundanz gerichtet.
  • Wie in den vorigen drei Datentransferprogrammen, wie sie oben beschrieben worden sind, sendet, wenn der Prozeß ein Einschreiben mit Redundanz betrifft, die Zentrale 32 an die Plattenspeicher-Steuereinrichtung einen logischen Plattennamen, eine Anfangssektornummer und die Anzahl der zu beschreibenden Sektoren. Außerdem stellt die Plattenspeicher-Steuereinrichtung 24 sicher, daß jeder Prozeß, um laufen zu können, wenn auch evtl. unterhalb der optimalen Rate, eine minimale Anzahl der SREC-Strukturen und Puffer erhält.
  • Nun wird Bezug auf Fig. 13 (a) genommen, wo der HTASK- Prozeß den Satz aus Paaren der Platten- und physikalischen Sektornummern bei gegebener Anfangssektornummer erzeugt (Schritt 326). Der Satz der Paare aus Platten- und physikalischen Sektornummern enthält alle die Platten- und physikalischen Sektornummernpaare, die einen Redundanzblock bilden. Nach der Erzeugung des Satzes aus Paaren von Platten- und Sektoren werden die von den Anwenderdaten zu ändernden Sektoren markiert und das zu verwendende Redundanzschema angegeben (Schritt 328). Die Sektoren in dem Redundanzblock werden gesperrt, so daß kein anderer Prozeß versuchen kann, die ECC-Information zu verändern, während sie von der Schreibanforderung benutzt wird. Zu diesem Schutz wird ein Semaphor verwendet (Schritt 330). Dann wird ein verfügbarer ECC-Kanal erhalten und eine geeignete ID zur Verwendung des Kanals erzeugt. Der Kanal wird dann für den anstehenden Datentransfer initialisiert (Schritt 332).
  • Während der Kanal initialisiert wird, werden SREC- Strukturen und (falls nötig) Pufferspeicher für den in Schritt 326 definierten Satz der Paare zugeteilt (Schritt 334). Das Schreib-Unterprogramm beginnt mit den zugeteilten SREC-Strukturen. In den Schritten 336 und 338 wird ermittelt, ob es mehr zu beschreibende Sektoren gibt und ob ein Fehler aufgetreten ist. Wenn es mehr Sektoren gibt und ein Fehler nicht aufgetreten ist, wird in Schritt 340 festgestellt, ob das Substraktions/Additionsschema verwendet wird. Redundanz kann durch "Subtrahieren" der alten Daten und "Addieren" neuer Daten oder durch Regenerieren der Redundanz erhalten bleiben. Wenn die Anzahl der durch die Anwenderdaten geänderten Platten kleiner oder gleich der Anzahl der nicht geänderten Platten ist, wird das Subtraktions/Additionsschema verwendet. Andernfalls wird es nicht eingesetzt. Bei Verwendung des Substraktions/Additionsschemas geht der Programmfluß zum Schritt 340.
  • Im Schritt 342 wird der zu verwendende ECC-Kanal initialisiert. Dann wird eine Leseanforderung für die Redundanzsektoren generiert und diese werden in einen Markierbereich der ECC-Maschine 22 (oder in Pufferspeicher) eingelesen, so daß die ECC-Maschine mit den redundanten Gruppendaten aufgestellt wird (Schritt 344). Die SREC- Strukturen und Puffer werden dann aufgestellt und die SREC- Strukturen zum geeigneten STASK-Prozeß gesendet. Diese Anforderungen werden so aufgestellt, daß keine Rückmeldung erhalten wird, bis all die Anforderungen abgearbeitet sind (Schritt 346). Nun warten im Schritt 348 die Programmblöcke auf eine Anforderung zu ihrer Vervollständigung. Solange es anstehende Anforderungen gibt und keine Fehler aufgetreten sind (Schritt 354), ermitteln die Schritte 356 und 358, welche Anforderungen vollständig sind und erzeugen andere Anforderungen, wenn es nicht genug SREC's zur Abarbeitung aller Anforderungen gibt. Wenn ein Fehler bei der Handhabung der Anforderungen aufgetreten ist, wird er dem Wartungsprozeß gemeldet (Schritt 360).
  • Zu diesem Zeitpunkt gibt es neue Redundanzinformation (korrekt für die Sektoren auf der Platte) in der ECC- Maschine 22. Als nächstes werden die SREC-Strukturen und Puffer für die Datentransferanforderungen aufgestellt und die SREC-Strukturen dem geeigneten STASK-Prozeß zugesendet (Schritt 362). Während Sektoren anstehen und kein Fehler aufgetreten ist, werden die vollständigen Anforderungen ermittelt und andere Anforderungen generiert, wenn es für die Abarbeitung samtlicher Anforderungen nicht genügend SREC's gibt (Schritte 364 - 368). Wenn während des Transfers ein Fehler auftritt, wird dies dem Wartungsprozeß mitgeteilt (Schritt 370).
  • Im Schritt 372 wird eine Schreibanforderung für die Redundanzsektoren nach Erhalt des Redundanzsektors von der ECC-Maschine 22 erzeugt. SREC-Strukturen und Puffer werden für die Anforderungen aufgestellt und die SREC-Strukturen dem geeigneten STASK-Prozeß 82 zugesendet (Schritt 374). Die Daten in den Puffern werden dann transferiert und die Programmblöcke warten auf eine Anforderung, um abzuschließen (Schritt 376). Wenn in dem Transfer des Redundanzsektors ein Fehler auftritt, erhält der Wartungsprozeß eine entsprechende Mitteilung (Schritt 378). Zu diesem Zeitpunkt ergibt es unter der Annahme, daß Schritt 378 keinen Fehler erfaßt hat, gute Daten auf der Platte (Schritt 380). Im Schritt 381 wird die Sektorzahl dekrementiert und die Schleife des Unterprogramms läuft, bis die Sektornummer null ist. Wenn die Sektornummer null ist (Schritt 336), springt das Programm zu Schritt 418, wo es die SREC und Pufferspeicher freischaltet. Dann wird im Schritt 420 eine Statusrückmeldung an die Zentrale 32 generiert, womit das Unterprogramm für das Subtraktions/- Additions-Redundanzschema abgeschlossen ist.
  • Jedoch wird das Subtraktions/Additions-Redundanzschema, wie oben erwähnt, nicht verwendet, wenn die Plattenzahl, die von den Anwenderdaten geändert werden, größer als die Anzahl der nicht geänderten Platten ist. Statt dessen wird die Erzeugung des Redundanzsektorschemas verwendet. Die Erzeugung des Redundanzsektors beginnt mit der Feststellung in Schritt 340 der Fig. 13 (a). Bei "nein" in Schritt 340 geht der Ablauf zu Schritt 382 in Fig. 13 (b). Nun wird Bezug auf Fig. 13 (b) genommen, in dem das Substraktions/Additionsschema nicht verwendet wird und der erste Schritt die Initialisierung des ECC-Kanals bewirkt (Schritt 382). Eine Leseanforderung wird für die nicht zu ändernden Sektoren generiert, die die Redundanzsektoren nicht enthalten (Schritt 384). Die gelesenen Daten sind unwichtig, somit werden sie in einen Markierbereich eingelesen. Die SREC-Strukturen und (falls nötig) Pufferspeicher werden für die Anforderungen aufgestellt und dann dem geeigneten STASK-Prozessen gesendet (Schritt 386).
  • Die Daten werden solange gelesen, wie Leseanforderungen anstehen (Schritt 388). In Schritt 390 wird festgestellt, welche Anforderungen abgeschlossen sind. In Schritt 392 werden weitere Anforderungen erzeugt, wenn nicht genügend SREC's zur Bearbeitung aller Anforderungen zur Verfügung stehen. Wenn ein Fehler während des Lesevorgangs aufgetreten ist, wird er dem Wartungsprozeß mitgeteilt (Schritt 394). Zu diesem Zeitpunkt ist die Redundanzinformation für die nicht zu ändernden Daten in der ECC-Maschine 22 erhältlich. SREC-Strukturen und Puffer werden dann für die Schreibanforderungen aufgestellt (Schritt 396). Die SREC-Strukturen werden an die geeigneten STASK-Prozesse 82 gesendet (Schritt 398). Wenn es noch anstehende, zu transferierende Sektoren gibt (Schritt 400), ermittelt Schritt 402, welche Anforderungen abgeschlossen sind. Wenn es nicht genügend SREC's für die Abarbeitung aller Anforderungen gibt, werden weitere Anforderungen generiert (Schritt 404). Wenn während des Schreibvorgangs ein Fehler aufgetreten ist, wird er dem Wartungsprozeß gemeldet (Schritt 406).
  • Die gewünschten Daten wurden nun auf die Platte durch die oben erwähnte Schreibanforderung eingeschrieben. Die entsprechende Redundanzinformation muß von der ECC-Maschine extrahiert und auf die Platte geschrieben werden (Schritt 408). Die SREC-Strukturen und Puffer werden für die Anforderungen aufgestellt und die SREC-Strukturen an die geeigneten STASK-Prozesse gesendet. Die Anforderungen werden so aufgestellt, daß eine Rückmeldung (Meldung vollständig) nicht abgesetzt wird, bis alle Anforderungen abgearbeitet sind (Schritt 410). Ein Empfang wird blockiert (Schritt 412). Falls in dem Transfer ein Fehler aufgetreten ist, wird er dem Wartungsprozeß gemeldet (Schritt 414). Zu diesem Zeitpunkt haben wir gute Daten und Redundanz auf der Platte (Schritt 416). Dann wird in Schritt 417 der Sektorzähler dekrementiert. Das Erzeugungsunterprogramm läuft um, bis der Sektorzähler auf null (0) reduziert worden ist. Wenn der Sektorzähler null erreicht hat, werden die SREC und Pufferspeicher freigeschaltet (Schritt 418). Danach wird eine Statusrückmeldung an die Zentrale generiert (Schritt 420), und dies ist das Ende des Schreibens mit Redundanz.
  • Es ist zu bemerken, daß die HTASK-Prozesse bis n numeriert sind, wobei n die Anzahl oder Nummer der HTASK- Kanäle darstellt. Jeder HTASK-Prozeß kann SREC-Strukturen absenden. Dieses m ist durch die Anzahl der ECC-Kanäle in der ECC-Maschine 22 beschränkt. Eine Transaktionsspeicherung hält bis zu m SREC's. Wenn zur Vervollständigung eines Arbeitsprogramms (task) zusätzliche SREC's gebraucht werden, wird ihnen eine andere Transaktionsnummer zugeteilt.
  • Ein zusätzliches Merkmal des Systems 10 mit dem Feld der Plattenspeicher ist der heiß steckbare Plattenspeicher. Der Ausdruck: "heiß steckbarer Plattenspeicher" bezieht sich auf die Fähigkeit, daß Plattenspeicher 14 ersetzt oder neu eingerichtet werden können, ohne den Betrieb des Feldes der Plattenspeicher zu unterbrechen. In anderen Worten kann ein Plattenspeicher 14 herausgenommen und neu eingebaut oder ersetzt werden, während das System unter Strom steht und im normalen Betriebszustand läuft. Diese Eigenschaft wird durch die Stiftanordnung der Plattenspeicher und der in der Plattenspeicher-Steuereinrichtung 24 laufenden Software ermöglicht.
  • Zunächst ist die Wahrscheinlichkeit der Zerstörung eines Plattenspeichers dann am größten, wenn er eingesteckt wird. Deshalb muß Sorge dafür getragen werden, daß er kein Spannungspotential vor Empfang des Erdpotentials erhält, usw. Demgemäß ist der Erdstift der längste Steckerstift der Plattenspeicher 14. Auf diese Weise wird Erde zugeführt bevor irgendein Spannungspegel anliegt. Die nächst längeren Stifte sind die für 5 und 12 Volt. Die kürzesten sind die Signalstifte. Wenn die Signalstifte zur Steuerung der TTL- Logik verbunden sind, liegen die Spannungen bereits an, wodurch unsichere Zustände beim Einstecken eines neuen Plattenspeichers verringert werden.
  • Der zweite Aspekt der heiß steckbaren Plattenspeicher 14 liegt in der Software der Plattenspeicher- Steuereinrichtung 24. Die Software verleiht dem heiß steckbaren Plattenspeicher "Flinkheit". Beispielsweise kann die Software, wenn ein Redundanzniveau vorgesehen und eine Platte ausgefallen ist, ermitteln, ob die Ersatzplatte eingerichtet worden ist, und die verlorenen, von der ECC- Maschine wieder hergestellten Daten können auf die neue Platte geschrieben werden. Außerdem kann die ECC-Maschine 22, da sie ein Redundanzniveau zur Verfügung hat, die verloren gegangenen Daten für das ausgefallene Plattenspeicherlaufwerk wieder herstellen, bis dieses ersetzt wird. Der Zentralcomputer 32 braucht nicht unbedingt wissen, daß die Daten aus dem fehlerhaften Sektor jedesmal wieder hergestellt worden sind. Allerdings wird an der Wartungseinheit eine Anzeigelampe für das System des Feldes der Plattenspeicher zum Leuchten gebracht, so daß der Anwender erfährt, welche Platte ausgefallen ist. Die ausgefallene Platte wird ersetzt und die wieder hergestellten Daten in die neue Platte eingeschrieben ohne daß der Zentralcomputer 32 erfährt, daß eine Platte ersetzt worden ist. Somit kann die ausgefallene Platte, während sie ersetzt wird (vorausgesetzt, daß wenigstens ein Redundanzniveau zur Verfügung steht) logisch beschrieben oder ausgelesen werden.
  • Die Software kann auch unterscheiden, wenn ein zuvor herausgenommenes Plattenspeicherlaufwerk wieder installiert wurde. In diesem Fall können die Daten aus anderen Plattenspeichern, die zu anderen Zeiten am selben Ort installiert wurden, gelesen bzw. darauf geschrieben werden. Wie oben kann diese Prozedur ohne Abschalten der Stromversorgung am System mit dem Feld aus Plattenspeichern oder Unterbrechung des Datenflusses zwischen ihm und dem Zentralcomputer stattfinden.
  • Zwei dem heiß steckbaren Plattenspeicher ähnelnde Merkmale sind der Plattenspeicher in kaltem Wartezustand (stand by) und das Reservelaufwerk. Der Plattenspeicher in kaltem Wartezustand und das Reservelaufwerk haben zwei ihnen eigene Merkmale. Zuerst ist da die physikalische Existenz eines zusätzlichen Laufwerks oder mehrerer zusätzlicher Laufwerke (15 in Fig. 1). Zum anderen ist da die Ersatzlaufwerke steuernde und aktivierende Software. Ein Ersatz tritt auf, wenn ein Ersatzplattenspeicher 15, der kontinuierlich mit Strom versorgt wurde, statt dem ausgefallenen Plattenspeicher dem Rest des Feldes 12 der Plattenspeicher zugeschaltet wird. Plattenspeicher in kaltem Wartezustand sind diejenigen, deren Stromversorgung erst dann eingeschaltet wird, wenn sie elektronisch zugeschaltet werden; der elektrische Schaltvorgang ist auch für das Hochbooten des Reservelaufwerks verantwortlich. Der Vorteil eines Plattenspeichers in kaltem Wartezustand besteht darin, daß die mittlere Zeit zwischen den Ausfällen (MTBF) noch nicht zu laufen angefangen hat.
  • Abhängig von den Forderungen eines bestimmten Kunden kann das Feld 12 so konfiguriert sein, daß es Reserveplattenspeicherlaufwerke beinhaltet. Die Reserve laufwerke 15 sind innerhalb der Systemkonfiguration angeordnet. Wenn ein normal laufendes Plattenspeicherlaufwerk 15 einen bestimmten Punkt der Verschlechterung erreicht hat, kann die Software für die Reserve oder den kalten Wartezustand automatisch die Adresse des schlechten Plattenspeichers auf einen der Reservelaufwerke umschalten. Der Zeitpunkt der Verschlechterung wird vom Anwender definiert. Wenn nur ein Sektor schlecht ist und ein Redundanzniveau zur Verfügung steht, kann es klug sein, der ECC-Maschine 22 zu gestatten, die Daten jedesmal wieder zu gewinnen. Wenn jedoch eine bestimmte Anzahl von Sektoren oder Spuren eines bestimmten Plattenspeichers Ausfälle zeigt, erfolgt das Umschalten zum Reservelaufwerk oder zum Laufwerk im kalten Wartezustand.
  • Wenn alternativ kein Redundanzniveau gefordert ist, können das Laufwerk in Reserve oder in kaltem Wartezustand im ersten Moment, wo die SCSI-Kanalsteuerung 18 oder die eingebettete SCSI einen Lese- oder Schreibvorgang nicht bearbeiten kann, zugeschaltet werden. Egal, ob die Reserve 15 zugeschaltet wurde, kann die fehlerhafte Platte ersetzt und dann wieder zurückgeschaltet werden.
  • Es ist zu bemerken, daß die Kunden ihr eigenes Niveau eines Ersatzmechanismus haben. Die Plattenspeichersteuereinrichtung 24 kann Lesedaten zurückmelden oder die Daten mit einem Status einschreiben, der die erfolgreiche Operation, die jedoch auf Redundanzinformation zurückgreifen mußte, angibt. In diesem Fall kann der Anwender sein eigenes Ersatzniveau durchführen, indem er den Sektor/die Spur liest und sie logisch auf einen anderen Sektor/eine andere Spur in derselben Platte 14 oder in eine Platte desselben Kanals 16 legt. Dies erfordert allerdings eine Veränderung der Codes im Zentralcomputer.
  • Ein zusätzliches Merkmal des Systems 10 mit dem Feld der Plattenspeicher ist seine Fähigkeit, jedes der logischen Plattenspeicher so zu konfigurieren, daß es ein anderes Redundanzniveau hat. Zum Beispiel kann das Feld 12 in einen logischen Plattenspeicher, der aus 10 physikalischen Plattenspeichern 14 besteht (die ein Redundanzniveau, d. h. einen Plattenspeicher haben), weiter in zwei logische Plattenspeicher, die 20 physikalische Plattenspeicher umfassen (die zwei Redundanzniveaus, d. h. jeweils zwei Plattenspeicher haben), in fünf logische Plattenspeicher aus jeweils einem physikalischen Plattenspeicher (der das Redundanzniveau null hat) und sechs Ersatzplattenspeichern unterteilt werden (die als Ersatz für jede der oben erwähnten Gruppen einspringen können). Diese Unterteilung ist nur beispielhaft. Das System 10 mit dem Feld der Plattenspeicher kann so konfiguriert werden, daß es eine Vielzahl logischer Plattenspeicher, Redundanzniveaus und eine Anzahl von Kombinationen aus Ersatzplattenspeichern hat. Es ist außerdem wichtig zu bemerken, daß das Feld der Plattenspeicher nicht auf 66 Plattenspeicher begrenzt ist. Es kann statt dessen auch mehr Plattenspeicher und mehr Kanäle usw. haben. Genauso ist die Anzahl der Ersatzlaufwerke nicht, wie in Fig. 1, auf sechs beschränkt. Das System kann zehn oder siebzehn oder soviel haben, wie der Kunde wünscht.
  • In dem System 10 mit dem Feld der Plattenspeicher können auch die Zylinder innerhalb einer Plattenspeicherdatengruppe so konfiguriert werden, daß sie für Übertragungen hoher Bandbreite und hoher Übertragungsgeschwindigkeit eingeteilt sind. Der Ausdruck "Zylinder" bezieht sich auf dieselbe Spur auf mehreren Platten, die sich eine gemeinsame Ausrichtung teilen. Wenn eine Datengruppe vier Platten mit jeweils 1000 Spuren hat, gibt es tausend Zylinder in einer Tiefe von vier Platten. Dabei können diese Zylinder beispielsweise von null bis 199 für Datentransfers mit hoher Bandbreite und 200 bis 999 für Datentransfers mit hoher Datenübertragungsrate eingeteilt sein.
  • Zusätzlich zur Konfiguration der Zylinder eröffnet das System 10 mit dem Feld der Plattenspeicher die Flexibilität eines synchronen oder asynchronen Plattenbetriebs (oder anders gesagt synchron oder asynchron laufende Spindelantriebe). Bei synchroner Platte (oder Spindelantrieb) kommt ein Lese/Schreibkopf gleichzeitig auf eine Spur wie die anderen Schreibköpfe auf die anderen Spuren. Die Geschwindigkeit und Winkelstellung der Köpfe sind immer dieselben. Umgekehrt haben asynchrone Platten diese Merkmale nicht. Allgemein haben Felder synchron laufende Platten, weil sie maximale Leistung zur Verfügung stellen, und insbesondere war die Möglichkeit eines individuellen Zugriffs nicht gegeben. Die mit mehreren Prozessoren, usw. unabhängig voneinander arbeitenden Strukturen des Systems 10 mit dem Feld aus Plattenspeichern gestatten einen synchronen oder asynchronen Betrieb der Plattenspeicher. Dies ist bemerkenswert, da der Preis asynchroner Plattenlaufwerke geringer ist als der synchroner Laufwerke.
  • Wie oben beschrieben kann das Verhalten der Software als ein Satz asynchroner konkurrierender und interaktiver Prozesse beschrieben werden, wobei ein Prozeß lose als eine identifizierbare Folge von zusammengehörenden Aktionen definiert ist. Ein Prozeß wird mit einer Berechnung einer einzelnen Ausführung eines Programms identifiziert. Viele der Interaktionen zwischen den Prozessen in einem Computer resultieren aus der gemeinsamen Nutzung der Systembetriebsmittel. Die Ausführung eines Programms wird ausgesetzt, wenn ein von ihm benötigtes Betriebsmittel von einem anderen Prozeß zuvor belegt worden ist.
  • Das, was alle Prozeßblöcke zusammenspielen läßt, ist das Betriebssystem. Das Betriebssystem führt die Gesamtprozeßsteuerung aus, überwacht die Zuteilung der Systembetriebsmittel, plant die Operationen, verhindert Störungen zwischen verschiedenen Programmen, usw. Die Existenz des Betriebssystems ist im Stand der Technik bekannt. Im bevorzugten Ausführungsbeispiel ist das Betriebssystem in den Mikroprozessor 25 gelegt. Die Anwendung eines Betriebssystems in der Plattenspeicher- Steuereinrichtung 24 ermöglicht einen viel höheren Flexibilitätsgrad und höhere Geschwindigkeit bei Datentransferprozeduren. Zum Beispiel gestattet das Betriebssystem, daß mehrere HTASK-Prozesse gleichzeitig ausgeführt werden können. Zusätzlich gestattet es eine zeitweilige Funktion der anderen Prozeßblöcke. Das Betriebssystem wird anstatt eines Arbeitsprogramm(task)zuteilers verwendet. Normalerweise sendet zu einer bestimmten Zeit ein mit einem Speicher verkehrender Zentralcomputer einen Befehl und wartet auf dessen vollständige Bearbeitung. Der Zentralcomputer sendet einen Quittungsinterrupt und wartet mit dem Aussenden des nächsten Befehls auf die Rückkehr einer Statusmeldung. Das System 10 mit dem Feld der Plattenspeicherlaufwerke erleichtert diese Aufgabe, indem es eine IOPB-Schlange in der Plattenspeicher-Steuereinrichtung 24 anlegt. Die Schlange macht es dem Zentralcomputer 32 möglich, so viele Anforderungen oder Befehle wie gewünscht an das System 10 mit dem Feld der Plattenspeicher abzusetzen. Der Zentralcomputer 32 sendet diese an die Plattenspeicher- Steuereinrichtung 24. Wenn es mehr IOPB's gibt als HTASK's zu ihrer Bearbeitung, werden zusätzliche IOPB's in die Schlange gelegt. Der Zentralcomputer 32 kann sich dann ausschalten und andere Arbeitsprogramme bearbeiten statt auf die Rückmeldung des Status zu warten.
  • Der Status wird zum Zentralcomputer über ein Statusbyte im IOPB zurückgegeben. Der IOPB kann zwei Antworten haben. Die Plattenspeicher-Steuereinrichtung war erfolgreich bei der Beendigung der Transaktion. Diese Antwort kann sehr kompliziert sein, z. B. wenn ein Fehler aufgetreten ist und Redundanz zur Wiederherstellung der Daten verwendet wurde. Die andere Antwort ist, daß er die Anforderung nicht erfüllen konnte. Die Definition von "konnte nicht" hängt vom Zentralcomputer oder vom Kundenbedarf ab. Wenn eine "konnte nicht" Antwort auftritt, werden die Daten weggeworfen und ein anderer IOPB vom Zentralcomputer 32 gesendet.
  • Das System 10 mit dem Feld der Plattenspeicherlaufwerke ermöglicht es dem Zentralcomputer 32, Plattenspeicheranforderungen zu priorisieren. Die Plattenspeicher-Steuereinrichtung 24 wirkt auf zwei Prioritätsbits in dem IOPB ein. Das Betriebssystem verleiht der Plattenspeichersteuereinrichtung 24 dieses Leistungsmerkmal, welches von den Prozessen ausgeführt wird. Die Prioritätsbits befinden sich in einem Feld (eine Bitkombination, welche eine bestimmte Funktion definiert) in einem der IOPB-Bytes. Die Prioritätsbits verleihen der Zentrale die Fähigkeit, ihre Anforderungen über andere zu priorisieren. Die HTASK-Prozesse erzeugen TREC-Vermerke bzw. -Einträge. Jeder TREC-Vermerk hat dieselben Prioritätsbits wie die von den HTASK-Prozessen empfangenen IOPB-Blöcke. Da der TREC-Vermerk (der Transaktionsvermerk) von allen anderen Prozessen erkannt wird, erkennen auch die anderen Prozesse die Priorität. Die Priorität ermöglicht es, daß eine gekennzeichnete Transaktion Vorrang bei der Belegung des Datenbusses, usw. hat.
  • Die Software des Systems 10 mit dem Feld der Plattenspeicher ist auf ein neues Ziel ausrichtbar. Die Fähigkeit der Ausrichtbarkeit auf ein neues Ziel bedeutet, daß die Software auf unterschiedlichen Prozessoren laufen kann, d. h. daß der Prozessor ohne das Programm zu ändern, getauscht werden kann. Die Neu-Ausrichtbarkeit ermöglicht auch, daß das Programm auf unterschiedlichen Ebenen laufen kann, wie z. B. einem Personal Computer oder einem Mikroprozessor, die sich in ihrer Hardware wesentlich unterscheiden. Diese Flexibilität der Prozessoren gestattet die Verwendung von Upgrades bei neu auf den Markt kommenden Prozessoren. Sie verfügt ebenso über die Möglichkeit, die Prozessorgeschwindigkeit oder -größe zu verringern, wenn Kosten eine Rolle spielen. Die Neu-Ausrichtbarkeit der Anwender-Software bildenden Software des Systems mit dem Feld der Plattenspeicherlaufwerke, wird im wesentlichen durch zwei Prinzipien erreicht.
  • Zunächst ist die Software in einer Programmiersprache auf einer höheren Ebene geschrieben, die Standard-Compilern geläufig ist. Zum anderen wird die Software compiliert, egal welcher Compiler im Prozessor abläuft. Die im Quellencode geschriebenen prozessorbezogenen Funktionen müssen unter Umständen ausgewechselt werden. Dies macht einige neue Codes erforderlich. Jedoch betrifft dies nur etwa 1% im Vergleich mit den 90 oder 100%, die ohne die Neu-Ausrichtbarkeit nötig wären.
  • Das System 10 mit dem Feld der Plattenspeicherlaufwerke ermöglicht den Austausch von Plattenspeichern während des Betriebs des Feldes aus Plattenspeichern. Für den Bedarf dieses Merkmales gibt es verschiedene Szenarien. Ein primärer Grund ist, einen Reparaturservice zur Verfügung zu stellen, d. h. daß bei Ausfall einer Platte diese ausgetauscht und eine neue an ihre Stelle gesetzt werden kann und daß die Redundanzfunktion, die auf der Platte gewesenen Daten ersetzen kann. Außerdem kann die Situation auftreten, daß mehrere Personen zu dem Feld der Plattenspeicherlaufwerke zugreifen können und daß jede ein anderes Plattenspeicherlaufwerk ein- und austauschen, abhängig davon, ob die Person das System 10 verwendet oder nicht. In dieser Situation und in anderen ist es wichtig, daß die Plattenspeicher-Steuereinrichtung 24 sicherstellt, daß sich eine Platte in ihrer korrekten Position befindet. Deshalb ist ein Algorithmus in der Plattenspeicher-Steuereinrichtung 24 vorgesehen, der feststellt, welche Platte herausgenommen wurde und ob eine neu eingefügte Platte die richtige Position einnimmt.
  • Ein mögliches Verfahren, dies auszuführen, besteht in der Verwendung eines Datum- und Zeitstempels. Dieser Algorithmus würde auf der Platte 14 und ihrer Verwendung einen Datum- und Zeitstempel erzeugen. Wenn ein eingefügtes Plattenspeicherlaufwerk nicht paßt, wird am Bildschirm des Zentralcomputers 32 eine Erinnerung erzeugt, wie z. B.: Wollen Sie diese Platte wirklich lesen oder sie beschreiben? Alternativ kann eine Seriennummer oder eine Codierung zur Ausführung derselben Aufgabe dienen. Außerdem identifiziert der Algorithmus neue Platten und sorgt für ihre logische Konfiguration. Zusätzlich stellt der Algorithmus während eines kalten Hochbootens sicher, daß jede Platte richtig montiert ist und teilt es der Bedienperson mit, wenn es irgendwelche Probleme gibt.
  • Das System 10 mit dem Feld der Plattenspeicherlaufwerke weist 14 Mikrocomputer auf. Davon befinden sich elf in den SCSI-Kanalsteuerungen, und zwar jeweils einer. Ein weiterer ist der Plattenspeicher-Steuermikroprozessor 25. Zwei weitere sind für den Wartungsprozeß bestimmt, einer für die Verarbeitung in der Kundentechnikerkonsole 46 und der andere in der Plattenspeicher-Steuereinrichtung 24. Dadurch daß das System 10 mehrere Prozessoren hat, erzielt man den Vorteil hoher Bandbreite und hoher Übertragungsrate. Eine Schwierigkeit besteht darin, alle Prozessoren auf einmal zu betreiben ohne daß sie zerstörend auf die anderen einwirken. Die Software ist so aufgebaut, daß sie keine Zusammenarbeit zwischen den Prozessoren erforderlich macht. Alle Funktionen sind unabhängig voneinander. Allerdings ist dafür Sorge getragen, daß der die Platte steuernde Mikroprozessor 25 jeden zweiten Zeitschlitz auf dem gemeinsamen Datenbus 20 erhält.

Claims (18)

1. System mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken, die einen Speicher für einen Zentralcomputer (32) bilden, wobei das Feld eine Vielzahl von Plattenspeicherlaufwerken (14) hat, die so konfiguriert sind, daß sie eine regelmäßig verteilte Anordnung (12) bilden, wobei zu dem Feld der Plattenspeicherlaufwerke (14) durch eine Vielzahl von Kanälen (16) zugegriffen wird, wobei jeder Kanal zu mehreren Plattenspeicherlaufwerken (14) zugreift und jedes der Plattenspeicherlaufwerke des Feldes (14) eine Vielzahl von Sektoren hat, dadurch gekennzeichnet, daß das System eine vom Zentralcomputer (32) separate Plattenspeicher-Steuereinrichtung (24) enthält, um die Vielzahl von Plattenspeicherlaufwerken (14) so zu konfigurieren, daß sie dem Zentralcomputer (32) als irgendeine Anordnung logischer Plattenspeicherlaufwerke (14) erscheinen, wodurch die Vielzahl der Plattenspeicherlaufwerke (14) so konfiguriert werden können, daß sie insgesamt als ein logisches Plattenspeicherlaufwerk oder als ein Mehrfaches der Vielzahl der Plattenspeicherlaufwerke (14) oder als irgendeine dazwischen liegende Kompromißkonfiguration erscheinen.
2. System mit einem Feld aus Plattenspeicherlaufwerken nach Anspruch 1, welches weiterhin Mittel (22) aufweist, die bei den vom Zentralcomputer (32) in das Feld der Plattenspeicherlaufwerke (14) eingeschriebenen oder aus diesen ausgelesenen Daten wenigstens ein Redundanzniveau erzeugen.
3. System mit einem Feld aus Plattenspeicherlaufwerken nach Anspruch 1, welches weiterhin aufweist:
Eine Einrichtung (22), die bei den vom Zentralcomputer (32) aus dem Feld der Plattenspeicherlaufwerke (14) ausgelesenen oder in dieses eingeschriebene Daten mehrere Redundanzniveaus erzeugt, und
eine von der Plattenspeicher-Steuereinrichtung (24) gesteuerte Einrichtung für die Aktivierung eines bis zu allen Redundanzniveaus für die Bearbeitung der in das Feld der Plattenspeicherlaufwerke eingeschriebenen oder aus diesem ausgelesenen Daten.
4. System mit einem Feld aus Plattenspeicherlaufwerken gemäß einem der vorangehenden Ansprüche, welches weiterhin eine Einrichtung zur sequentiellen Zuteilung der vom übergeordneten Computer (32) in einer Folge von Blöcken empfangenen Daten aufweist, von denen jeder Block gleich groß ist, zu einem Sektor der Plattenspeicherlaufwerke (14) und zur sequentiellen Speicherung der Folge von Datenblöcken in den Plattenspeicherlaufwerken (14), zu denen über benachbarte Kanäle (16) zugegriffen wird.
5. System mit einem Feld aus Plattenspeicherlaufwerken nach einem der Ansprüche 1 bis 3, welches einen Pufferspeicher hat, wobei die Plattenspeicher- Steuereinrichtung (24) weiterhin aufweist:
eine Einrichtung zur sequentiellen Zuteilung der vom übergeordneten Computer (32) in einer Folge von Blöcken, die jeweils gleich groß sind, empfangenen Daten zu einem Sektor der Plattenspeicherlaufwerke (14); und
eine Zerlegungseinrichtung, welche die Blöcke aufeinanderfolgend von einem Kanal (16) zum anderen in Streifen zerlegt, wobei die Streifenzerlegung horizontal über die Plattenspeicherlaufwerke (14) des Feldes der Plattenspeicherlaufwerke oder diagonal nach unten und quer über die Plattenspeicherlaufwerke (14) des Feldes der Plattenspeicherlaufwerke oder in irgendeiner Kombination dazwischen verläuft.
6. System mit einem Feld aus Plattenspeicherlaufwerken nach Anspruch 5, wobei die Zerlegungseinrichtung weiterhin aufweist:
eine Einrichtung zur Konfiguration der Zerlegungseinrichtung, so daß diese eine Zerlegung in horizontale oder diagonale Streifen oder irgendeine zwischen diesen liegende Kombination der Streifenzerlegung erzielt.
7. System mit einem Feld aus Plattenspeicherlaufwerken nach Anspruch 2 oder 3 oder nach einem von Anspruch 2 oder 3 abhängigen Anspruch, welches weiterhin einen gemeinsamen Datenbus (20) aufweist, der die Vielzahl der Kanäle verbindet, wobei die Einrichtung (22), die mindestens ein Redundanzniveau oder mehrere Redundanzniveaus erzeugt, Redundanzrechnungen mit den Daten durchführt, wenn sich diese entlang dem Datenbus (20) während einer Schreib- oder Leseoperation des Zentralcomputers (32) zu und von einem Kanal (19) ausbreiten.
8. System mit einem Feld aus Plattenspeicherlaufwerken nach einem der vorangehenden Ansprüche, wobei die Steuereinrichtung weiterhin eine Einrichtung zur Abbildung virtueller Speicherstellen auf das Feld aus Plattenspeicherlaufwerken (14) aufweist, welche physikalische Speicherorte aufweisen.
9. System mit einem Feld aus Plattenspeicherlaufwerken nach einem der vorangehenden Ansprüche, welches weiterhin aufweist:
ein oder mehrere Ersatz-Plattenspeicherlaufwerke (15); und
eine Einrichtung, die (a) das Ersatz-Plattenspeicherlaufwerk oder die Plattenspeicherlaufwerke (15) konfiguriert, so daß dieses oder diese logisch mit einem defekten oder herausgenommenen Plattenspeicherlaufwerk übereinstimmt bzw. übereinstimmen, und (b) logisch das defekte oder herausgenommene Plattenspeicherlaufwerk durch das Ersatz-Plattenspeicherlaufwerk (15) ersetzt, so daß das Ersatz-Plattenspeicherlaufwerk (15) den logischen Platz eines defekten oder herausgenommenen Plattenspeicherlaufwerks einnimmt und Daten von dem defekten oder herausgenommenen Plattenspeicherlaufwerk in das Ersatz- Plattenlaufwerk (15) eingeschrieben und aus dem defekten oder herausgenommenen Plattenspeicherlaufwerk auszulesende Daten aus dem Ersatz-Plattenspeicherlaufwerk (15) gelesen werden.
10. System mit einem Feld aus Plattenspeicherlaufwerken nach Anspruch 9, welches weiterhin eine Einrichtung aufweist, die die Daten vom defekten oder herausgenommenen Plattenspeicherlaufwerk wieder herstellt, falls Redundanz vorgesehen ist, und die wieder hergestellten Daten auf einem von der Ersatz-Konfigurationseinrichtung konfigurierten Ersatz-Plattenspeicherlaufwerk speichert.
11. Verfahren zum Betrieb eines Systems mit einem Feld aus regelmäßig verteilt angeordneten Plattenspeicherlaufwerken (15), die einen Speicher für einen Zentralcomputer (32) bilden, wobei das Feld eine Vielzahl von regelmäßig verteilt angeordneten Plattenspeicherlaufwerken (15) hat, zu denen über eine Vielzahl von Kanälen (16) zugegriffen wird, von denen jeder Kanal (16) zu mehreren Plattenspeicherlaufwerken (15) Zugriff hat und wobei jeder Plattenspeicher des Feldes aus Plattenspeicherlaufwerken eine Vielzahl von Sektoren hat, dadurch gekennzeichnet, daß das Verfahren einen Schritt der Anwendung einer vom Zentralcomputer (32) separaten Plattenspeicher-Steuereinrichtung (24) für die Steuerung der logischen Konfiguration der verteilt angeordneten Plattenspeicherlaufwerke (15) aufweist, so daß die verteilt angeordneten Plattenspeicherlaufwerke (15) dem Zentralcomputer (32) als jede denkbare Anordnung von Plattenspeicherlaufwerken (15) erscheinen, wodurch die verteilt angeordneten Plattenspeicherlaufwerke (15) dem Zentralcomputer (32) als die Vielzahl der Plattenspeicherlaufwerke (15) oder als ein großes aus sämtlichen verteilt angeordneten Plattenspeicherlaufwerken des Feldes (15) bestehendes Plattenspeicherlaufwerk oder als irgendeine Kombination dazwischen erscheinen können.
12. Verfahren nach Anspruch 11, das weiterhin die Schritte aufweist:
Verwendung mehrerer Redundanzniveaus bei den vom Zentralcomputer (32) in das Feld aus Plattenspeicherlaufwerken (15) eingeschriebenen oder aus diesen ausgelesenen Daten;
Verwendung einer von der Plattenspeicher-Steuereinrichtung (24) gesteuerten Einrichtung, die aus der Vielzahl der Redundanzniveaus keines oder eine beliebige Anzahl davon aktiviert, um die aus den verteilt angeordneten Plattenspeicherlaufwerken (15) ausgelesenen oder in diese eingeschriebenen Daten zu bearbeiten.
13. Verfahren nach Anspruch 11 oder 12, welches weiterhin folgende Schritte aufweist:
sequentielle Zuordnung der vom Zentralcomputer (32) in mehreren Datenblöcken empfangenen Daten, wobei jeder Datenblock gleich groß ist, zu einem Sektor der Plattenspeicherlaufwerke (32); und
Speichern der Datenblöcke in den Plattenspeicherlaufwerken (15), so daß benachbarte Datenblöcke in der Folge der empfangenen Datenblöcke in den Plattenspeicherlaufwerken (15) gespeichert werden, zu denen über benachbarte Kanäle (16) zugegriffen wird.
14. Verfahren nach Anspruch 11 oder 12, wobei das System einen Pufferspeicher hat und das Verfahren weiterhin folgende Schritte aufweist:
Zuteilen der vom übergeordneten Computer (32) empfangenen Daten in einer benötigten Anzahl von Blöcken jeweils gleicher Größe, zu einem Sektor; und
sequentielle Streifenzerlegung der Blöcke von einem Kanal (16) zum anderen, wodurch die Streifenzerlegung horizontal über die Plattenspeicherlaufwerke (15) der verteilten Anordnung der Plattenspeicherlaufwerke oder diagonal nach unten und quer über das Feld der Plattenspeicherlaufwerke oder in irgendeiner Kombination dazwischen verläuft.
15. Verfahren nach Anspruch 14, bei dem der Streifenzerlegungsschritt weiterhin einen Schritt aufweist, der die Streifenzerlegungseinrichtung so konfiguriert, daß sie eine horizontale oder diagonale Streifenzerlegung oder irgendeine dazwischen liegende Kombination der Streifenzerlegung erzielt.
16. Verfahren nach einem der Ansprüche 11 bis 15, wobei das System einen gemeinsamen Datenbus (20) hat, der die vielen Kanäle (14) verbindet und wobei das Verfahren weiterhin einen Schritt zur Durchführung von Redundanzrechnungen aufweist, während sich die Daten während der Lese- oder Schreiboperationen des Zentralcomputers längs des gemeinsamen Datenbusses (20) zum oder vom Kanal (16) ausbreiten.
17. Verfahren nach einem der Ansprüche 11 bis 16, welches weiterhin einen Schritt zur Abbildung virtueller Speicherstellen auf die verteilt angeordneten Plattenspeicherlaufwerke (15) aufweist, welche physikalische Speicherstellen enthalten.
18. Verfahren nach einem der Ansprüche 11 bis 17, welches weiterhin die Schritte aufweist:
Definition der Stellen jedes Plattenspeicherlaufwerks (15) in dem Feld aus Plattenspeicherlaufwerken; und
Mitteilung an die Plattenspeicher-Steuereinrichtung bei Anstalten, ein Plattenspeicherlaufwerk (15) an einer für ein anderes Plattenspeicherlaufwerk (15) bestimmten Stelle anzuordnen.
DE68926436T 1988-11-14 1989-11-13 Plattenlaufwerkanordnungssystem und Verfahren Expired - Lifetime DE68926436T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US27071388A 1988-11-14 1988-11-14

Publications (2)

Publication Number Publication Date
DE68926436D1 DE68926436D1 (de) 1996-06-13
DE68926436T2 true DE68926436T2 (de) 1996-11-14

Family

ID=23032479

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68926436T Expired - Lifetime DE68926436T2 (de) 1988-11-14 1989-11-13 Plattenlaufwerkanordnungssystem und Verfahren

Country Status (5)

Country Link
EP (1) EP0369707B1 (de)
JP (1) JP2981245B2 (de)
AU (1) AU630635B2 (de)
CA (1) CA2002750C (de)
DE (1) DE68926436T2 (de)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5077736A (en) * 1988-06-28 1991-12-31 Storage Technology Corporation Disk drive memory
US5146574A (en) * 1989-06-27 1992-09-08 Sf2 Corporation Method and circuit for programmable selecting a variable sequence of element using write-back
US5315708A (en) * 1990-02-28 1994-05-24 Micro Technology, Inc. Method and apparatus for transferring data through a staging memory
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5212785A (en) * 1990-04-06 1993-05-18 Micro Technology, Inc. Apparatus and method for controlling data flow between a computer and memory devices
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
US5388243A (en) * 1990-03-09 1995-02-07 Mti Technology Corporation Multi-sort mass storage device announcing its active paths without deactivating its ports in a network architecture
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
US5461723A (en) * 1990-04-05 1995-10-24 Mit Technology Corp. Dual channel data block transfer bus
US5202856A (en) * 1990-04-05 1993-04-13 Micro Technology, Inc. Method and apparatus for simultaneous, interleaved access of multiple memories by multiple ports
US5414818A (en) * 1990-04-06 1995-05-09 Mti Technology Corporation Method and apparatus for controlling reselection of a bus by overriding a prioritization protocol
US5233692A (en) * 1990-04-06 1993-08-03 Micro Technology, Inc. Enhanced interface permitting multiple-byte parallel transfers of control information and data on a small computer system interface (SCSI) communication bus and a mass storage system incorporating the enhanced interface
US5956524A (en) * 1990-04-06 1999-09-21 Micro Technology Inc. System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
JPH0786811B2 (ja) * 1990-06-19 1995-09-20 富士通株式会社 アレイディスク装置のドライブ位置確認方式
NL9001728A (nl) * 1990-07-31 1992-02-17 Tulip Computers International Inrichting voor het verbeteren van de efficientie van de overdracht van data naar en vanuit een geheugeneenheid die is voorzien van tenminste een harde geheugenschijf.
GB9019891D0 (en) * 1990-09-12 1990-10-24 Di Data Ltd Computer memory array control
EP0478337B1 (de) * 1990-09-28 1999-12-22 Xerox Corporation Verfahren zur Datenspeicherung auf und Datenwiedergabe von mehreren Platten
DE4033464A1 (de) * 1990-10-20 1992-04-23 Fischer Gmbh Gert Anordnung zur selektiven kopplung mehrerer module mit einem prozessor
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
AU8683991A (en) * 1990-11-09 1992-05-14 Array Technology Corporation Logical partitioning of a redundant array storage system
JP2752247B2 (ja) * 1990-11-29 1998-05-18 富士通株式会社 情報記憶装置
JP2603757B2 (ja) * 1990-11-30 1997-04-23 富士通株式会社 アレ−ディスク装置の制御方法
US5235601A (en) * 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
US6874101B2 (en) 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US5239640A (en) * 1991-02-01 1993-08-24 International Business Machines Corporation Data storage system and method including data and checksum write staging storage
EP0570516A4 (en) * 1991-02-06 1998-03-11 Storage Technology Corp Disk drive array memory system using nonuniform disk drives
US5303244A (en) * 1991-03-01 1994-04-12 Teradata Fault tolerant disk drive matrix
US5257362A (en) * 1991-03-08 1993-10-26 International Business Machines Corporation Method and means for ensuring single pass small read/write access to variable length records stored on selected DASDs in a DASD array
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
JP3187525B2 (ja) * 1991-05-17 2001-07-11 ヒュンダイ エレクトロニクス アメリカ バス接続装置
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
JPH0589463A (ja) * 1991-09-26 1993-04-09 Mitsubishi Electric Corp データ書込み装置
US5802264A (en) * 1991-11-15 1998-09-01 Fujitsu Limited Background data reconstruction in a storage device array system
US5542064A (en) * 1991-11-21 1996-07-30 Hitachi, Ltd. Data read/write method by suitably selecting storage units in which multiple copies of identical data are stored and apparatus therefor
US5333305A (en) * 1991-12-27 1994-07-26 Compaq Computer Corporation Method for improving partial stripe write performance in disk array subsystems
GB9200207D0 (en) * 1992-01-06 1992-02-26 Di Data Ltd Computer memory array control
JP3058743B2 (ja) * 1992-01-21 2000-07-04 株式会社日立製作所 ディスクアレイ制御装置
US5442752A (en) * 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US5371743A (en) * 1992-03-06 1994-12-06 Data General Corporation On-line module replacement in a multiple module data processing system
JPH05313833A (ja) * 1992-05-11 1993-11-26 Mitsubishi Electric Corp アレイ型ディスク駆動機構システム
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5471640A (en) * 1992-07-06 1995-11-28 Hewlett-Packard Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
JP3083663B2 (ja) * 1992-12-08 2000-09-04 株式会社日立製作所 ディスクアレイ装置
GB2278228B (en) * 1993-05-21 1997-01-29 Mitsubishi Electric Corp An arrayed recording apparatus
JP3099930B2 (ja) * 1993-07-16 2000-10-16 株式会社東芝 ディスクアレイ装置
JP2892910B2 (ja) * 1993-08-02 1999-05-17 株式会社日立製作所 ディスクアレイシステム
US5671349A (en) * 1994-12-06 1997-09-23 Hitachi Computer Products America, Inc. Apparatus and method for providing data redundancy and reconstruction for redundant arrays of disk drives
US5634033A (en) * 1994-12-16 1997-05-27 At&T Global Information Solutions Company Disk array storage system architecture for parity operations simultaneous with other data operations
JPH08263226A (ja) * 1995-03-23 1996-10-11 Toshiba Corp 情報記憶装置
JPH08329021A (ja) * 1995-03-30 1996-12-13 Mitsubishi Electric Corp クライアントサーバシステム
US6694475B1 (en) * 1997-12-17 2004-02-17 Matsushita Electric Industrial Co., Ltd. Magnetic disk apparatus and method of data transfer
DE19811035A1 (de) * 1998-03-13 1999-09-16 Grau Software Gmbh Verfahren zum Speichern von Daten
US7475098B2 (en) 2002-03-19 2009-01-06 Network Appliance, Inc. System and method for managing a plurality of snapshots
US7254754B2 (en) * 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3

Family Cites Families (4)

* 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
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
WO1990001737A1 (en) * 1988-08-02 1990-02-22 Cray Research, Inc. Single disk emulation for synchronous disk array
WO1990006550A1 (en) * 1988-12-08 1990-06-14 Cray Research, Inc. Single disk emulation for asynchronous disk array

Also Published As

Publication number Publication date
JPH02236714A (ja) 1990-09-19
CA2002750A1 (en) 1990-05-14
AU630635B2 (en) 1992-11-05
EP0369707A2 (de) 1990-05-23
DE68926436D1 (de) 1996-06-13
EP0369707B1 (de) 1996-05-08
EP0369707A3 (de) 1991-09-11
CA2002750C (en) 1998-07-21
JP2981245B2 (ja) 1999-11-22
AU4452989A (en) 1990-05-17

Similar Documents

Publication Publication Date Title
DE68926436T2 (de) Plattenlaufwerkanordnungssystem und Verfahren
DE69117371T2 (de) Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69127895T4 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
DE68928546T2 (de) Dateisystem für eine vielzahl von speicherklassen
DE3750790T2 (de) Paritätsverteilung zum verbesserten Speicherzugriff.
DE69735400T2 (de) Speicherplattenanordnung
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE60304194T2 (de) Verfahren und vorrichtung zur tolerierung von mehreren abhängigen oder zwei beliebigen fehlern in einer speicherplattenanordnung
DE69215538T2 (de) Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung
DE10297278B4 (de) Netzwerkspeicher-Vorrichtung für das Verbinden eines Host-Rechners mit mindestens einer Speichervorrichtung und Verfahren für die Verzonung (zoning) eines Speichercontrollermoduls (CMM) zu einem Kanal-Schnittstellenmodul (CIM) innerhalb einer Netzwerkspeicher-Vorrichtung (100)
US5148432A (en) Arrayed disk drive system and method
DE69534057T2 (de) Verfahren zur Vermeidung der Über-Zuteilung virtueller Kapazität in einem redundanten hierarchischen Datenspeichersystem
DE3881786T2 (de) Identifizierung von Datenspeicherungseinrichtungen.
DE4422786B4 (de) Speichersystem
US5657439A (en) Distributed subsystem sparing
DE112010003662B4 (de) Ausgleich nachlassender Funktionsfähigkeit von Halbleiterdatenträgern auf der Grundlage der von einer RAID-Steuereinheit empfangenen Daten- und Paritätsnutzungsinformationen
DE60034327T2 (de) Verfahren und systeme zur implementierung von verwaltungsfunktionen für gemeinsam genutzte plattenanordnungen
US9811454B2 (en) Creating logical disk drives for raid subsystems
DE112007002175T5 (de) Optimierte Rekonstruktion und Rückkopiemethodik für ein ausgefallenes Laufwerk bei Anwesenheit einer globalen Hot Spare Platte
DE4423949A1 (de) E/A-Hilfssystem und Exklusiv-Steuerverfahren, Datenspeicherverfahren und Speicherinitialisierungsverfahren in einem E/A-Hilfssystem
DE69635713T2 (de) Diskarray-Teilsystem
JPH05158624A (ja) 機能低下モードでの動作時における直接アクセス記憶装置アレイのアクセスを管理するための方法
DE69534994T2 (de) Steuerungsvorrichtung für speicherplattenanordnung und speicherplattenanordnungsgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition