[go: up one dir, main page]

DE69215538T2 - Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung - Google Patents

Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung

Info

Publication number
DE69215538T2
DE69215538T2 DE69215538T DE69215538T DE69215538T2 DE 69215538 T2 DE69215538 T2 DE 69215538T2 DE 69215538 T DE69215538 T DE 69215538T DE 69215538 T DE69215538 T DE 69215538T DE 69215538 T2 DE69215538 T2 DE 69215538T2
Authority
DE
Germany
Prior art keywords
data
stripe
parity information
write operation
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69215538T
Other languages
English (en)
Other versions
DE69215538D1 (de
Inventor
E Neufeld
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.)
Compaq Computer Corp
Original Assignee
Compaq Computer 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 Compaq Computer Corp filed Critical Compaq Computer Corp
Application granted granted Critical
Publication of DE69215538D1 publication Critical patent/DE69215538D1/de
Publication of DE69215538T2 publication Critical patent/DE69215538T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1033Inactive data in parity groups, i.e. RAID parity groups where parity is calculated on only occupied or busy bits in the stripe
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Die vorliegende Erfindung ist auf ein Verfahren zur Verbesserung des Betriebsverhaltens von Mehrfachplattenspeichern in Computersystemen gerichtet, und insbesondere betrifft sie ein Verfahren zum Ausführen von schreibvorgängen in einem Plattenfeld unter Verwendung einer Paritätsdatenredundanz und eines Wiedererlangungsschutzes.
  • Mikroprozessoren und Computer, die diese verwenden, sind in den letzten Jahren zunehmend leistungsfähiger geworden. Derzeit verfügbare Personal-Computer weisen Fähigkeiten über die eines Großrechners und Minicomputers von vor 10 Jahren hinaus auf. Es sind Mikroprozessor-Datenbusgrößen von 32 Bit weitgehend verfügbar, wogegen in der Vergangenheit 8 Bit herkömmlich und 16 Bit üblich waren.
  • Personal-Computersysteme haben sich über die Jahre entwickelt und neue verwendungen werden täglich entdeckt. Diese Verwendungen gehen in verschiedene Richtungen und besitzen folglich unterschiedliche Anforderungen an die verschiedenen Subsysteme, die das gesamte Computersystem bilden. Mit der zunehmenden Leistung von Computersystemen wurde es klar, daß Massenspeichersubsysteme, wie fest installierte Plattenspeicher, eine in zunehmendem Maße bedeutende Rolle im Datentransfer zu und von dem Computer spielen. In den letzten paar Jahren entwickelte sich ein neuer Trend zu Speichersubsystemen, die als Plattenfeldsubsysteme bezeichnet werden, zur Verbesserung des Datenübertragungsverhaltens, der Kapazität und der Zuverlässigkeit. Ein Grund zum Bau von Plattenfeldsystemen besteht darin, eine Logikvorrichtung zu schaffen, die eine sehr hohe Datentransferrate aufweist. Dies kann man durch Zusammenschließen verschiedener Standardplattenlaufwerke und durch parallele Datenübertragung zu und von diesen Laufwerken erzielen. Dementsprechend sind Daten eines bestimmten Logikpakets über jede in dem Plattenfeld vorhandene Platte verteilt gespeichert, so daß jede Platte einen Teil des Datenpakets hält. Wenn N-Platten zusammengeschlossen werden, dann kann die effektive Datenübertragungsrate bis auf das N-fache erhöht werden. Diese Technik, die als Aufstreifung (Striping) bekannt ist, stammt aus dem Supercomputerumfeld, wo der Transfer von großen Datenmengen zu und von einem Sekundärspeicher häufig notwendig ist. Beim Aufstreifen wird ein sequenzieller Datenblock in Segmente mit einheitlicher Länge aufgebrochen, wie eine Sektorgröße, und sequenzielle Segmente werden auf sequenzielle Plattenlaufwerke geschrieben, nicht jedoch auf sequenzielle Positionen eines Einzelplattenlaufwerks. Die Einheitslänge oder Datenmenge, die über jede Platte verteilt gespeichert wird, wird als Streifengröße bezeichnet. Wenn der Datenblock länger ist als N Einheitslängen, wird der Vorgang für die nächste Sektorenlage auf den Plattenspeichern wiederholt. Mit diesem Verfahren wurden die N physikalischen Laufwerke zu einer einzigen Logikvorrichtung. Dies kann entweder durch Software oder durch Hardware implementiert werden.
  • Ein Verfahren, das zum Schaffen von Datenschutz und Wiedererlangung in Plattenfeldsubsystemen verwendet wird, wird als Paritätsschema bezeichnet. In einem Paritätsschema werden in verschiedene Laufwerke innerhalb des Felds geschriebene Datenblöcke verwendet und ein bekanntes AUSSCHLIESSLICH-ODER (XOR)- Verfahren wird verwendet zum Erzeugen von Paritätsinformationen, die in ein reserviertes oder Paritätslaufwerk innerhalb des Felds geschrieben wird. Der Vorteil dieses Verfahrens besteht darin, daß man es zur Minimierung der Datenspeichermenge verwenden kann, die zum Zwecke der Datenredundanz und Wiedererlangung innerhalb des Felds vorgesehen ist. Es gibt jedoch eine Anzahl von Nachteilen zu der Verwendung von Paritätsfehlertoleranzverfahren.
  • Ein Hauptnachteil besteht darin, daß herkömmliche Betriebssysteme viele kleine Schreibvorgänge auf das Plattensubsystem ausführen, die oft kleiner sind als die Streifengröße des Plattenfelds, was als Teilstreifenschreibvorgänge bezeichnet wird. Wenn dies auftritt, wird das Betriebsverhalten des Plattensubsystems ernsthaft betroffen, da die gegenwärtig auf der Platte vorhandenen Daten von der Platte gelesen werden müssen, um die neue Paritätsinformation zu erzeugen. Dies führt zu zusätzlichen Umdrehungen des Plattenlaufwerks und verursacht Verzögerungen bei der Befehisabarbeitung. Man erkennt, daß zusätzlich zu der zur Ausführung der tatsächlichen Vorgänge notwendigen Zeit der Lesevorgang, auf den ein Schreibvorgang auf demselben Sektor einer Platte folgt, zu einem Verlust eines Plattenumlaufs oder ungefähr 16,5 Millisekunden für bestimmte Arten von Festplattenlaufwerken führt.
  • Somit ist es oft erforderlich, daß bei Computerschreibvorgängen, die auf einer Platte gespeicherten Daten zuerst gelesen werden, durch den im Wirt-System aktiven Prozess modifiziert werden, und dann auf die gleiche Adresse auf der Datenplatte zurückgeschrieben werden. Dieser Vorgang umfaßt ein Datenlesen von der Platte, eine Veränderung der Daten und ein Datenschreiben auf die Platte auf die gleiche Adresse. Wenn ein gesamter Plattenstreifen in das Feld geschrieben wird, kann die Paritätsinformation direkt aus den auf das Plattenfeld geschriebenen Daten erzeugt werden, und daher ist kein zusätzliches Lesen des Plattenstreifens erforderlich. Ein Problem tritt jedoch auf, wenn der Computer nur einen Teilstreifen auf eine Platte innerhalb des Feldes schreibt, da die Feldsteuerung nicht ausreichend Information zum Berechnen der Parität für den gesamten Streifen aufweist.
  • Es gibt im allgemeinen zwei Verfahren, die zum Berechnen der Paritätsinformation für Teilstreifenschreibvorgänge verwendet werden. Bei dem ersten Verfahren enthält ein Teilstreifenschreiben auf eine Datenplatte in einem XOR Paritätsfehlertoleranzsystem ein Ausgeben eines Lesebefehls, um die richtige Parität beizubehalten. Das Computersystem liest zuerst die Paritätsinformation von der Paritätsplatte für die Datenplattensektoren, die auf den neuesten Stand gebracht werden, und die alten Datenwerte, die auf der Datenplatte zu ersetzen sind.
  • Die XOR Paritätsinformation wird dann durch den Wirt oder einen lokalen Prozessor oder eine zugewiesene Logik durch Ausführung einer XOR Operation in Bezug auf die alten Datensektoren, die mit den verwandten Paritätssektoren zu ersetzen sind, neu berechnet. Dies stellt den Paritätswert ohne diese Datenwerte wieder her. Die neuen Datenwerte werden mit einer XOR Operation mit diesen wiederhergestellten Werten verknüpft, um die neuen Paritätsdaten zu erzeugen. Ein Schreibbefehl wird dann ausgeführt, und die auf den neuesten Stand gebrachten Daten werden auf die Datenplatten geschrieben und die neue Pantätsinformation wird auf die Paritätsplatte geschrieben. Es ist klar, daß dieser Vorgang zwei zusätzliche Teilsektorlesevorgänge erfordert, nämlich einen von der Paritätsplatte und ein Lesen der alten Daten, vor der Erzeugung der neuen XOR- Paritätsinformation. Die neue Paritätsinformation und neuen Daten werden dann auf Stellen geschrieben, die gerade gelesen wurden. Folglich verschlechtert sich das Datenübertragungsverhalten.
  • Das zweite Verfahren erfordert ein Lesen der restlichen Daten, die nicht für den Streifen zurückzuweisen sind, trotz der Tatsache, daß sie nicht durch den Schreibvorgang ersetzt werden. Unter Verwendung der neuen Daten und der alten Daten, die wiedergewonnen wurden, kann die Paritätsinformation für den gesamten Streifen, der auf den neuesten Stand gebracht wird, bestimmt werden. Dieser Vorgang erfordert einen Lesevorgang der nicht zu ersetzenden Daten und einen Schreibvorgang eines Vollen Streifens.
  • Daher schadet ein Teilstreifenschreiben dem Betriebsverhalten des Systems, da entweder der Rest des Streifens, der nicht geschrieben wird, erfaßt werden muß, oder die bestehende Pantätsinformation für den Streifen vor dem tatsächlichen Schreiben der Information gelesen werden muß. Dementsprechend existiert eine Notwendigkeit für ein verbessertes Verfahren zum Ausführen von Teilstreifenplattenschreibvorgängen in einem für Paritätsfehler toleranten Plattenfeld.
  • Die Grundlagen zu Datenfilesystemen, die in Computersystemen verwendet werden, stellen sich wie folgt dar. Im allgemeinen kann ein Datenfilesystem eines von zwei Verfahren verwenden, nämlich entweder eine "Leerstellenauflistung" - oder ein Bit- Kartierungsverfahren, um die Menge und Lage von freiem Platz auf den Plattenlaufwerkseinheiten zu beschreiben. In einem Leerstellenauflistungsverfahren enthält eine bekannte Lage auf der Platte einen Zeiger zu einem Block, und in diesem Block ist eine Liste von anderen freien Blöcken, d.h. von Blöcken auf der Platte, die durch das Datenfilesystem nicht verwendet werden. Der allerletzte Zeiger in diesem Block zeigt auf einen Block mit einer Liste von anderen freien Blöcken, wodurch eine Kette von Blöcken gebildet wird, die Inforination über freien Platz in dem Datenfilesystem enthalten. Wenn ein Leerstellenauflistungsverfahren verwendet wird, ist es schwierig zu bestimmen, ob ein entsprechender Block frei oder unbenutzt ist, da die gesamte Leerstellenauflistung durchgegangen werden muß, um festzustellen, ob der Block frei oder leer ist. In einem Bit-Kartierungsschema enthält ein Teil der Platte ein reserviertes Gebiet, wo ein Bit jedem "Zuweisungscluster" zugewiesen ist, wobei ein Zuweisungscluster eine Anzahl von zugewiesenen Blöcken enthalten kann. Ein jeweiliges Bit wird gesetzt, wenn das entsprechende Cluster leer ist, und es wird gelöscht, wenn das entsprechende Cluster nicht frei ist. Daher muß man in einem Bit-Kartierungsschema lediglich das jeweilige, mit dem gewünschten Cluster verknüpfte Bit überprüfen, um zu bestimmen, ob das Cluster frei ist. Die meisten Betriebssysteme einschließlich DOS, OS/2, Netware und moderne Versionen von UNIX verwenden ein Bit-Kartierungsschema. Das klassische und ursprüngliche UNIX Betriebssystem ist ein Beispiel eines Betriebssystems, das ein Leerstellenauflistungsschema verwendet.
  • Die vorliegende Erfindung ist auf ein Verfahren und eine Vorrichtung zum Verbessern des Plattenbetriebsverhaltens während der Teilstreifenschreibvorgänge in einem Computersystem gerichtet, das ein Plattenfeldsubsystem unter Verwendung von XOR Paritätsfehlertoleranz - und Wiedergewinnungstechniken aufweist. Wenn ein Teilstreifenschreibvorgang begonnen wurde, bestimmt das erfindungsgemäße Verfahren, ob der Teil des entsprechenden Streifens, der nicht während des Teilstreifenschreibens beschrieben wird, ungebrauchten Platz in dem Datenfilesystem umfaßt. Falls dem nicht so ist, wird der Teilstreifenschreibvorgang ausgeführt unter Verwendung der in den Grundlagen beschriebenen Verfahren, wobei ein vorhergehender Lesevorgang dazu verwendet wird, die vorliegenden Daten und die Paritätsinformation von der Platte zu lesen. Wenn jedoch der Teil des jeweiligen Streifens, der nicht beschrieben wird während des Teilstreifenschreibens, nicht verwendeten Platz in dem Datenfilesystem umfaßt, dann muß der vorliegende Inhalt des Datenstreifens nicht erhalten werden. In diesem Fall kann der Teilstreifenschreibvorgang ohne jeglichen vorhergehenden Lesevorgang ausgeführt werden. Wahlweise kann eine Leerinformation oder jegliche andere verfügbare Daten über den Rest des Streifens, der nicht beim Schreiben betroffen wird, geschrieben werden. Durch Umgehen der Notwendigkeit des vorhergehenden Lesevorgangs, kann die Einbuße im Betriebsverhalten durch Ausführung eines Teilstreifenschreibens in dem Fall, daß der Rest des Datenstreifens nicht erhalten werden muß, aufgehoben werden.
  • Ein besseres Verständnis der vorliegenden Erfindung kann man erhalten, wenn man die folgende ausführliche Beschreibung der bevorzugten Ausführungsform in Verbindung mit den folgenden Zeichnungen in Betracht zieht. In den Zeichnungen zeigen:
  • Fig. 1 und 2 Blockdiagramme eines beispielhaften Computersystems, auf dem das Verfahren nach der vorliegenden Erfindung ausführbar ist;
  • Fig. 3 Blockdiagramm des Datensubsystems der bevorzugten Ausführungsform; Fig. 4 ein Funktionsblockdiagramm der Übertragungssteuerung der Fig. 3 gemäß der bevorzugten Ausführungsform;
  • Fig. 5 ein Flußdiagramm eines Schreibvorgangs in dem erfindungsgemäßen Verfahren, wenn die Plattenfeldsteuerung der Fig. 3 nicht verwendet wird; und
  • Fig. 6A und 6B Flußdiagramme eines Schreibvorgangs in dem erfindungsgemäßen Verfahren, wenn die Plattenfeldsteuerung der Fig. 3 verwendet wird.
  • Das nachfolgend beschriebene Computersystem und das Plattenfeldsubsystem stellen die bevorzugte Ausführungsform der Erfindung dar. Es wird davon ausgegangen, daß auch andere Computersysteme, die nicht die Eigenschaften des nachfolgend beschriebenen Systems aufweisen, zur Ausführung der vorliegenden Erfindung geeignet sein können.
  • Es wird nun auf die Fig. 1 und 2 Bezug genommen, in denen der Buchstabe C allgemein ein Computersystem bezeichnet, auf dem die vorliegende Erfindung ausführbar ist. Der Klarheit halber ist das System C in zwei Teilen gezeigt, wobei die Verbindung zwischen den Fig. 1 und 2 durch Bezug zu den umringelten Ziffern 1-8 dargestellt ist. Das System C umfaßt eine Anzahl von Blockelementen, die über vier Datenleitungen verbunden sind.
  • Die zentrale Prozessoreinheit CPU umfaßt einen Systemprozessor 20, einen numerischen Co-Prozessor 22, eine Cache- Speichersteuerung 24 und zugeordnete Logikschaltungen, die mit einem Systemprozessorbus 26 in Verbindung stehen. Der Cache- Steuerung 24 ist ein Hochgeschwindigkeits-Cache-Datenspeicher mit wahlfreiem Zugriff 28 (RAM), eine Logikschaltung 30 zur Programmierung einer Kartierung nicht-Cache-fähiger Speicheradressen (NCA), eine Speicherkartierung 32 nicht-Cachefähiger Adressen oder NCAs, eine Adressenaustauschlatch- Schaltung 34, eine Datenaustauschübertragungsvorrichtung 36 und eine Rufanfragefeststellungslogik 43 (page hit detect logic) zugeordnet. Der CPU sind auch ein Logikschaltkreis 38 für den Systemprozessorbetriebszustand, ein Logikschaltkreis 40 zur Aktivierung der nächsten Adresse (NA) und eine Busanfrage Logikschaltung 42 zugeordnet.
  • Der Systemprozessor ist vorzugsweise ein 80386 Mikroprozessor der Intel Corporation. Der Systemprozessor 20 weist für seine Steuerungs-, Adressen- und Datenleitungen eine Schnittstelle mit dem Systemprozessor Bus 26 auf. Der Coprozessor 22 ist vorzugsweise ein Intel 80387 und/oder Weitek WTL3167 Numerikprozessor, der mit dem lokalen Prozessor 26 und dem Systemprozessor 20 auf herkömmliche Weise eine Schnittstelle aufweist. Der Cache-RAM 28 ist vorzugsweise ein geeigneter statischer Hochgeschwindigkeitsspeicher mit wahlfreiem Zugriff, der mit den Adressen- und Datenelementen des Busses 26 eine Schnittstelle aufweistunter Steuerung durch die Cache-Steuerung 24, um die erforderlichen Cache-Speicheroperationen auszuführen. Die Cache-Steuerung 24 ist vorzugsweise eine Intel 82385 Cache-Steuerung, die zum Betrieb in einem auf zwei Wege eingestellten, assoziativen Master Modus konfiguriert ist. In der bevorzugten Ausführungsform sind die Bauteile 33 MHz Versionen der entsprechenden Einheiten. Ein Intel 80486 Mikroprozessor und ein externes Cache-Speichersystem können den 80386 Prozessor, den numerischen Coprozessor, den 82385 und das Cache RAM ersetzen, falls dies erwünscht ist. Eine Adress-Latch- Schaltung 34 und eine Datenübertragungsvorrichtung 36 bilden eine Schnittstelle für die Cache-Steuerung 24 mit dem Prozessor 20 und schaffen eine lokale Busschnittstelle zwischen dem Prozessorbus 26 und einem Wirt- oder Speicherbus 44. Eine Schaltung 38 ist eine Logikschaltung, die ein Bus-Bereit- Signal bereitstellt, um den Zugang zum Bus 26 zu steuern und anzuzeigen, wann der nächste Zyklus beginnen kann. Die Aktivierungsschaltung 40 wird dazu verwendet anzuzeigen, daß die nächste Adresse oder Daten oder Code, der durch die Subsystemelemente in einem sequenziellen (pipelined) Adressmodus verwendet werden soll, auf den lokalen Bus 26 gelegt werden kann.
  • Eine Programmiervorrichtung 30 für die Kartierung der nichtcache-fähigen Speicheradressen (NCA) arbeitet mit dem Prozessor 20 und dem Speicher 32 für die nicht-cache-fähigen Adressen zusammen, um die nicht-cache-fähigen Speicherstellen zu kartieren. Der Speicher 32 für die nicht-cache-fähigen Adressen wird dazu verwendet, nicht-cache-fähige Gebiete des Systemspeichers zu verwenden, um verschiedene Arten von Cache- Kohärenzproblemen zu vermeiden. Die Bus-Anfrage Logikschaltung 42 wird durch den Prozessor und zugehörende Elemente dazu verwendet, Zugang zum Wirt-Bus 44 in solchen Situationen anzufragen, wie z.B. wenn abgerufene Daten nicht im Cache-Speicher 28 gelegen sind und ein Zugriff auf den Systemspeicher notwendig ist.
  • Das Hauptspeicherfeld oder der Systemspeicher 58 ist an den Wirt-Bus 44 gekoppelt. Das Hauptspeicherfeld 58 ist vorzugsweise ein dynamischer Speicher mit wahlfreiem Zugriff. Der Speicher 58 weist eine Schnittstelle mit dem Wirt-Bus 44 über eine EISA Buspuffer (EBB) - Datenpufferschaltung 60, eine Speichersteuerschaltung 62 und eine Speicherkartierungsvorrichtüng 68 auf. Der Puffer 60 führt Datenübertragungs- und Paritätszeugungs- und Überprüfungsfunktionen aus. Die Speichersteuerung 62 und die Speicherkartierungsvorrichtung 68 besitzen eine Schnittstelle mit dem Speicher 58 über einen Adressenmultiplexer und Spaltenadressenanblitz (ADDR/CAS) - Puffer 66 und eine Zeilenadressenanblitz (RAS) - Aktivierungslogikschaltung 64.
  • In den Zeichnungen ist das System C so konfiguriert, daß es den Prozessorbus 26, den Wirt-Bus 44, einen erweiterten Industriestandardarchitektur (EISA) Bus 46 (Fig. 2) und einen X- Bus 90 (Fig. 2) aufweist. Die Einzelheiten des in dem in der Fig. 2 dargestellten und nicht im einzelnen erläuterten Systems sind für die vorliegende Erfindung nicht von Bedeutung, außer daß sie ein Beispiel eines vollständig konfigurierten Computersystems veranschaulichen. Der Teil des in der Fig. 2 dargestellten Systems C ist im wesentlichen ein konfiguriertes EISA-System, das den notwendigen EISA-Bus 46 und die EISA-Bus- Steuerung 48, Daten-Latches und Übertragungsvorrichtungen, die als EBB Datenpuffer 50 und Adressen Latches und Puffer 52 bezeichnet werden, enthält, um zwischen dem EISA-Bus 46 und dem Wirt-Bus 44 eine Schnittstelle zu schaffen. Zudem ist in der Fig. 2 eine integrierte Systemperiphene (ISP) 54 dargestellt, die eine Anzahl von in einem Computersystem auf EISA Basis verwendete Elemente enthält.
  • Die ISP 54 enthält eine Steuerung 56 für direkten Speicherzugriff zum Steuern des Zugriffs zu einem Hauptspeicher 58 (Fig. 1) oder auf in einem EISA-Einschub enthaltenen Speicher und auf Eingabe/Ausgabe (I/O) -Stellen ohne die Notwendigkeit des Zugriffs auf den Prozessor 20. Die ISP 54 enthält auch Interrupt-Steuerungen 70, eine nicht-maskierbare Interrupt-Logik 72 und einen Systemtimer 74, die eine Steuerung von Interrupt- Signalen ermöglichen und die notwendigen Timing-Signale und Wartezustände auf eine Weise gemäß der EISA-Spezifikation und der herkömmlichen Praxis erzeugen. In der bevorzugten Ausführungsform werden vom Prozessor erzeugte Interrupt-Anfragen über zwei Interrupt-Steuerschaltungen gesteuert, die die herkömmlichen Intel 8259 Interrupt-Steuerungen emulieren und erweitern. Die ISP 54 enthält auch eine Busentscheidungslogik 75, die in Zusammenarbeit mit der Bussteuerung 48 zwischen den verschiedenen Anfragen auf den EISA-Bus 46 durch die Cache- Steuerung 44, die DMA-Steuerung 56 und die an dem EISA-Bus 46 gelegene Bus-Mastervorrichtung eine Steuer- und Entscheidungsfunktion durchführt.
  • Der EISA-Bus 46 enthält ISA und EISA-Steuerbusse 76 und 78, ISA und EISA-Datenbusse 80 und 82 und es besteht eine Schnittstelle über den X-Bus 90 in Kombination mit der ISA- Bussteuerung 76 von dem EISA-Bus 46. Eine Steuerung und eine Daten/Adressenübertragung für den X-Bus 90 wird durch die X- Bussteuerlogik 92, Datenpuffer 94 und Adresspuffer 96 erleichtert.
  • An den X-Bus angeschlossen sind verschiedene Peripherievorrichtungen wie eine Tastatur/Maussteuerung 98, die eine Schnittstelle mit dem X-Bus 90 mit einer geeigneten Tastaturund einer geeigneten Maus jeweils über Verbindungen 100 und 102 aufweisen. Ebenfalls an den X-Bus angeschlossen sind Nur- Lese-Speicher (ROM) - Schaltungen 108, die die grundlegende Betriebssoftware für das System C und für den Systemvideooperationen enthalten. Ein serieller Kommunikationskanal 108 ist ebenfalls mit dem System C über den X-Bus 90 verbunden. Eine Floppydiskhalterung, ein Parallelanschluß, ein zweiter Seriell-Anschluß und Videounterstützungsschaltungen sind im Schaltkreisblock 110 vorgesehen.
  • Das Computersystem C enthält ein Plattenuntersystem 111, das eine Plattenfeldsteuerung 112, einen fixierten Plattenverbinder 114 und ein fixiertes Plattenfeld 116 enthält. Die Plattenfeldsteuerung 112 ist mit dem EISA-Bus 46 verbunden, vorzugsweise in einem Einschub, um die Kommunikation von Datenund Adressinformation durch den EISA-Bus 46 zu schaffen. Der fixierte Plattenverbinder 114 ist mit der Plattenfeldsteuerung 112 verbunden und weiter mit dem fixierten Plattenfeld 116 verbunden. Das Computersystem C enthält vorzugsweise ein Betriebssystem, das ein Bit-Kartierungsschema verwendet, um den freien Platz in dem Datenfilesystem darzustellen. Auf diese Weise kann die Plattensteuerung 112 einfach feststellen, ob bestimmte Blöcke frei sind oder unbenutzten Platz in dem Datenfilesystem umfassen. In einer anderen Ausführungsform der Erfindung wird ein Betriebssystem verwendet, das ein Leerstellenauflistungsschema verwendet. In dieser Ausführungsform liest die Software in der Plattenfeldsteuerung 112 vorzugsweise die gesamte Leerstellenauflistung und erzeugt eine Bitkartierung im Speicher, die dazu verwendet werden kann, einfacher festzustellen, ob jeweilige Blöcke in dem Datenfilesystem frei oder unbenutzt sind.
  • Es wird nun Bezug genommen auf die Fig. 3, in der das zur Veranschaulichung des erfindungsgemäßen Verfahrens verwendete Plattensubsystem 111 gezeigt ist. Die Plattenfeldsteuerung 112 weist einen lokalen Prozessor 130 auf, vorzugsweise einen Intel 80186. Der lokale Prozessor 130 besitzt einen multigeplexten Adress/Daten-Bus UAD und Steuerausgänge UC. Der multigeplexte Adress/Daten-Bus UAD ist mit einer Übertragungsvorrichtung 132 verbunden, deren Ausgang der lokale Prozessordatenbus UD ist. Der multigeplexte Adress/Daten-Bus UAD ist zudem mit den D Eingängen von einem Latch 134 verbunden, deren Q Ausgänge den lokalen Prozessoradressbus UA bilden. Der lokale Prozessor 130 ist mit dem Speicher 136 mit wahlfreiem Zugriff (RAM) verknüpft, das über den multigeplexten Adress/Datenbus UAD und den Adressen/Datenbus UA gekoppelt ist. Das RAM 136 ist mit dem Prozessor Steuerbus UC verbunden, um geeignete Timingsignale zu entwickeln. Auf ähnliche Weise ist der Nur- Lesespeicher (ROM) 138 mit dem multigeplexten Adress/Datenbus UAD, dem Prozessor-Adress-Bus UA und dem Prozessor-Steuerbus UC verbunden. Somit hat der lokale Prozessor 130 seinen eigenen residenten Speicher zur Steuerung seines Betriebs und zur Speicherung seiner Daten. Eine programmierbare Feldlogik (PAL) - Vorrichtung 140 ist mit dem lokalen Prozessorsteuerbus UC verbunden, um zusätzliche Steuersignale zu entwickeln, die in der Plattenfeldsteuerung 112 verwendet werden.
  • Der lokale Prozessor Adress-Bus UA, der lokale Prozessor Daten-Bus UD und der lokale Prozessor Steuerbus sind zudem mit einer Bus-Master-Schnittstellensteuerung (BMIC) 142 verbunden. Die Bus-Master-Schnittstellensteuerung 142 dient der Funktion zum Schaffen der Schnittstelle der Plattenfeldsteuerung 112 mit einem Standardbus wie dem EISA oder MCA-Bus, und wirkt als Bus-Master. In der bevorzugten Ausführungsform weist die BMIC 142 eine Schnittstelle mit dem EISA-Bus 46 auf und sie ist ein Intel 82355. Somit kann durch diese Verbindung mit den lokalen Prozessor-Bussen UA, UD und UC die BMIC 142 mit dem lokalen Prozessor 140 eine Schnittstelle aufweisen, um eine Weiterreichung von Daten- und Steuerinformation zwischen dem Wirt- System C und dem lokalen Prozessor 130 zu ermöglichen.
  • Zusätzlich sind der lokale Prozessor-Daten-Bus UD und der lokale Prozessor Steuerbus UC vorzugsweise mit einer Übertragungssteuerung 144 verbunden. Die Übertragungssteuerung 144 ist im allgemeinen eine spezielle Mehrkanalsteuerung mit direktem Speicherzugriff (DMA), die zur Übertragung von Daten zwischen dem Übertragungspuffer RAM 146 und verschiedenen anderen Vorrichtungen, die in der Plattenfeldsteuerung 112 vorhanden sind, verwendet wird. Beispielsweise ist die Übertragungssteuerung 144 mit dem BMIC 142 durch die BMIC- Datenleitungen BMID und die BMIC-Steuerleitung BC verbunden. Somit kann über diese Schnittstelle die Übertragungssteuerung 144 Daten von dem Übertragungspuffer RAM 146 auf den BMIC 142 übertragen, wenn der Lese-Vorgang angefragt ist. Wenn ein Schreibvorgang angefragt ist, können Daten von dem BMIC 142 auf den Übertragungspuffer - RAM 146 übertragen werden. Die Übertragungssteuerung 144 kann dann diese Information von dem Übertragungspuffer - RAM 146 auf das Plattenfeld 116 weiterreichen. Die Übertragungssteuerung 144 ist in größeren Einzelheiten in der US-Anmeldung Nr. 431 735 und der entsprechenden europäischen Patentoffenlegungsveröffentlichung Nr. 0427119 vom 4. April 1991 beschrieben, die hiermit durch Bezug darauf eingeschlossen sind.
  • Die Übertragungssteuerung 144 enthält einen Plattendatenbus DD und einen Plattenadressbus und einen Steuerbus DAC. Der Plattenadress- und Steuerbus DAC ist mit zwei Puffern 165 und 166 verbunden, die Teil des fixierten Plattenverbinders 114 sind und dazu verwendet werden, Steuersignale zwischen der Übertragungssteuerung 144 und dem Plattenfeld 116 zu senden und zu empfangen. Der Plattendatenbus DD ist mit zwei Datenübertragungsvorrichtungen 148 und 150 verbunden, die Teil des festen Plattenverbinders 114 sind. Die Ausgaben aus der Übertragungsvorrichtung 148 und dem Übertragungspuffer 146 sind mit zwei Plattenlaufwerkanschlußverbindern 152 und 154 verbunden. Auf ähnliche Weise sind zwei Verbinder 160 und 162 mit den Ausgängen der Übertragungsvorrichtung 150 und des Puffers 166 verbunden. Zwei Festplatten 156 und 158 können zu jedem Verbinder 152, 154, 160 und 162 verbunden werden. Somit können in der bevorzugten Ausführungsform bis zu acht Plattenlaufwerke mit der Übertragungssteuerung 144 verbunden und mit dieser gekoppelt werden. Auf diese Weise können die verschiedenen Daten-, Adress- und Steuersignale zwischen der Übertragungssteuerung 144 und den jeweiligen Plattenlaufwerken weitergereicht werden.
  • In einem veranschaulichten Plattenfeldsystem 112 ist zudem eine Kanalkompatibilitätssteuerung (CPC) 164 mit dem EISA-Bus 46 verbunden. Die CPC 164 ist mit der Übertragungssteuerung 144 über die Kompatibilitätsdatenleitungen CD und die Kompatibilitätssteuerleitungen CC verbunden. Die CPC 164 ist derart vorgesehen, daß die Software, die für frühere Computersysteme geschrieben wurde, die keine Plattenfeldsteuerung 112 und ihre BMIC 142 aufweisen, die über einen EISA-spezifischen Raum adressiert werden und sehr hohen Durchsatz erlauben, betreibbar ist, ohne daß ein Neuschreiben der Software notwendig ist. Somit emuliert die CPC 164 die verschiedenen Steuerkanäle, die früher in den Schnittstellen mit den Festplatten verwendet wurden.
  • Es wird nun auf die Fig. 4 Bezug genommen. Die Übertragungssteuerung 144 selbst umfaßt eine Reihe von getrennten Schaltkreisblöcken. Die Übertragungssteuerung 144 enthält zwei Haupteinheiten, die als RAM-Steuerung 170 und als Plattensteuerung 172 bezeichnet werden. Die RAM-Steuerung 170 weist eine Entscheidungseinrichtung (Arbiter) auf zur Steuerung der verschiedenen Schnittstellenvorrichtungen, die Zugriff auf den Transferpuffer-RAM 146 und einen Multiplexer haben, so daß die Daten zu und von dem Übertragungspuffer-RAM 146 weitergereicht werden können. Ähnlich enthält die Plattensteuerung 172 einen Arbiter zur Bestimmung, welche der verschiedenen Vorrichtungen Zugriff auf die integrierte Plattenschnittstelle 174 besitzt und enthält eine Multiplexfähigkeit, um zu ermöglichen, daß die Daten geeignet vor und zurück durch die integrierte Plattenschnittstelle 174 übertragen werden.
  • Die Übertragungssteuerung 144 enthält vorzugsweise 7 DMA- Kanäle. Ein DMA-Kanal 176 ist zur Zusammenarbeit mit dem BMIC 142 zugewiesen. Ein zweiter DMA-Kanal 178 ist zur Zusammenarbeit mit der CPC 164 zugewiesen. Diese beiden Vorrichtungen, die BMIC 142 und die Bus-Kompatibilitätskanalsteuerung 164, sind nur an den Übertragungsbus-RAM 146 über ihre geeigneten DMA-Kanäle 176 und 178 und die RAM-Steuerung 170 gekoppelt. Die BMIC 142 und die Kompatibilitätskanalsteuerung 164 haben keinen direkten Zugriff auf die integrierte Plattenschnittstelle 174 und das Plattenfeld 116. Der lokale Prozessor 130 (Fig. 3) ist mit der RAM-Steuerung 170 durch einen DMA-Kanal 180 für den lokalen Prozessor verbunden und ist mit der Plattensteuerung 172 über einen Plattenkanal 182 für den lokalen Prozessor verbunden. Somit ist der lokale Prozessor 130 sowohl mit dem Übertragungspuffer-RAM 146 und dem Plattenfeld 116 wie gewünscht verbunden.
  • Zusätzlich enthält die Übertragungssteuerung 144 4 DMA- Plattenkanäle 184, 186, 188 und 190, die es ermöglichen, daß Information unabhängig und gleichzeitig zwischen dem Plattenfeld A und dem RAM 146 übertragen wird. Es sei bemerkt, daß der vierte DMA/Plattenkanal 190 auch eine XOR-Fähigkeit enthält, so daß Paritätsoperationen jederzeit in der Übertragungssteuerung 144 ausführbar sind, ohne daß Berechnungen durch den lokalen Prozessor 130 notwendig sind. Das obige Computersystem C und das Plattenfeldsubsystem 111 stellen das bevorzugte Computersystem zur Ausführung des erfindungsgemäßen Verfahrens dar.
  • Es wird wieder auf die Fig. 3 Bezug genommen. In der bevorzugten Ausführungsform wird eine Plattenanfrage vorzugsweise durch den Systemprozessor 20 an die Plattenfeldsteuerung 112 durch den EISA-Bus 46 und die BMIC 142 vorgenommen. Der lokale Prozessor 130 bildet beim Empfang dieser Anfrage durch die BMIC 142 eine Datenstruktur in dem RAM-Speicher 136 des lokalen Prozessors. Diese Datenstruktur ist als eine Befehlsliste bekannt und kann eine einfache Lese- oder Schreibanfrage sein, die an das Plattenfeld gerichtet ist, oder sie kann ein umfangreicherer Satz von Anfragen sein, die mehrere Lese/Schreib- oder Diagnose- und Konfigurierungsanfragen enthalten. Die Befehlsliste wird dann an den lokalen Prozessor 130 zur Weiterbearbeitung weitergereicht. Der lokale Prozessor 130 überwacht dann die Ausführung der Befehlsliste, einschließlich der Datenübertragung. Wenn die Ausführung der Befehlsliste vollendet ist, informiert der lokale Prozessor 130 die Betriebssystemvorrichtungsansteuerung, die auf dem Systemmikroprozessor 20 läuft.
  • Die Eingabe der Befehlsliste und die Notifizierung der Vollendung der Befehlsliste werden durch ein Protokoll erzielt, das in dem BMIC 142 gelegene Eingabe/Ausgabe (I/O) Register verwendet.
  • Die Lese- und Schreibvorgänge, die durch die Plattenfeldsteuerung 112 ausgeführt werden, sind als eine Anzahl von Anwendungsaufgaben, die auf dem lokalen Prozessor 130 laufen, implementiert. Aufgrund der Natur der interaktiven Eingabe/Ausgabe-Vorgänge, ist es nicht praktikabel für das beispielhafte Computersystem C, Plattenbefehle als Einzelbatchaufgaben auf dem Prozessor 130 zu bearbeiten. Dementsprechend verwendet der lokale Prozessor 130 ein Echtzeitmultitasking-Anwendungsssystem, das es ermöglicht, mehrere Aufgaben durch den Prozessor 130 zu adressieren, einschließlich des erfindungsgemäßen Verfahrens. Vorzugsweise ist das Betriebssysterm auf dem lokalen Prozessor 130 das AMX 86 Multitaskingsystem von Kadak Product Ltd. Der AMX-Betriebssystemkern schafft eine Anzahl von Systemdiensten zusätzlich zu den in dem erfindgungsgemäßen Verfahren dargelegten Anwendungen.
  • Betrieb der Erfindung in einem Computersystem ohne eine intelligente Plattenfeldsteuerung
  • Die Fig. 5 stellt einen Schreib-Betrieb dar unter Verwendung des erfindungsgemäßen Verfahrens auf einem generischen Computer mit drei oder mehr Plattenlaufwerken unter Verwendung der XOR-Paritätsfehler-Toleranzverfahren. Das in der Fig. 5 in Betracht gezogene System ist nicht von der in der Fig. 1-4 beschriebenen Art und enthält keine intelligente Plattenfeldsteuerung 112. Statt dessen ist das in der Fig. 5 dargestellte Verfahren für ein Computersystem geeignet, in dem die Vorrichtungsansteuerung den Systemprozessor 20 dazu verwendet, alle Plattenlese- und Schreibvorgänge auszuführen, einschließlich der XOR-Vorgänge. Daher ist die Fig. 5 ein Flußdiagramm des Verfahrens zum Ausführen eines Schreibvorgangs gemäß der Erfindung für einen generischen Computer, der keine intelligente Plattenfeldsteuerung 112 aufweist.
  • In dem Schritt 202 führt der Systemprozessor 20 ein Anwendungsprogramm aus und erzeugt einen Schreibbefehl für die Plattenvorrichtungsansteuerung. Die Plattenvorrichtungsansteuerung ist ein Teil der Software, die in dem Computersystem C, vorzugsweise dem Systemspeicher 58, enthalten ist, die den tatsächlichen Schnittstellenbetrieb mit den Platteneinheiten ausführt. Die Plattenvorrichtungsansteuerungs-Software übernimmt die Steuerung des Systemprozessors 20 zur Durchführung bestimmter Aufgaben zum Ausführen der erforderlichen I/O- Vorgänge. Die Steuerung geht weiter zu Schritt 204, wo die Vorrichtungsansteuerung bestimmt, ob wenigstens ein voller Streifen auf das Plattenfeld 116 zu schreiben ist. Man erkennt, daß der Schreibbefehl einen Teildatenstreifen, einen vollen Datenstreifen oder einen vollen Datenstreifen plus einen Teildatenstreifen, die auf das Plattenfeld 116 geschrieben werden, spezifizieren kann. In dem Schritt 204 bestimmt die Vorrichtungsansteuerung, daß wenigstens ein voller Datenstreifen auf das Feld 116 geschrieben wird, und die Steuerung geht zu Schritt 206. In Schritt 206 bewirkt die Vorrichtungsansteuerung, daß der Prozessor 20 die Paritätsinformation für den ersten Schreibvorgang eines vollen Datenstreifens erzeugt. Wenn der Vorgang ein Schreiben eines vollen Datenstreifens enthält, müssen die Paritätsdaten nicht der jeweiligen Platte erhalten werden, da die Paritätsinformation sofort aus den Daten erhaltbar ist. Die Steuerung geht dann weiter zu Schritt 208, wo der Prozessor 20 die Paritätsinformation und die Daten auf die Platten schreibt. Danach geht die Steuerung weiter zu Schritt 214, wo die Vorrichtungsansteuerung bestimmt, ob zusätzliche Sektoren geschrieben werden müssen. Falls dem so ist, kehrt die Steuerung zu Schritt 204 zurück.
  • Falls in Schritt 204 die Vorrichtungsansteuerung feststellt, daß kein voller Datenstreifen auf das Plattenfeld 116 geschrieben wird, sondern lediglich ein Teildatenstreifen geschrieben wird, geht die Steuerung zu Schritt 210. In dem Schritt 210 bestimmt die Vorrichtungsansteuerung, ob der Teil des Streifens, der nicht mit Daten während des Teilstreifenschreibbetriebs beschrieben wird, nicht verwendeten Platz umfaßt. In der bevorzugten Ausführungsform prüft die Vorrichtungsansteuerung die Bit-Kartierung für die jeweiligen Abschnitte auf jeder Platte, die den Streifen umfassen, um festzustellen, ob die jeweiligen Blöcke von Sektoren in dem Streifen, der nicht mit Daten in dem nachfolgenden Teilstreifenschreibbetrieb beschrieben wird, nicht verwendeten Platz umfassen. Wenn der Teil des Streifens, der nicht mit Daten beschrieben werden wird, nicht verwendeten Platz umfaßt, dann ist keine Notwendigkeit vorhanden, die alte Paritätsinformation oder Daten von dem Streifen zu lesen, und die Steuerung geht weiter zu Schritt 206. In Schritt 206 erzeugt die Vorrichtungsansteuerung die Paritätsinformation für den Datenstreifen und schreibt dann die Paritätsinformation und die Daten auf die jeweilige Platte in Schritt 208. Während des Schreibvorgangs in Schritt 208 schreibt die Vorrichtungsansteuerung vorzugsweise Dummy-Daten auf den Teil des Streifens, der nicht mit Teilstreifenschreibdaten beschrieben wird, die hier im folgenden als gültige Daten bezeichnet werden. Die Vorrichtungsansteuerung verwendet vorzugsweise die Dummy-Daten in Verbindung mit den gültigen Daten zur Paritätsberechnung. Alternativ berechnet die Vorrichtungsansteuerung die Paritätsinformation nur aus den gültigen Daten, die sich aus dem Teilstreifenschreibbetrieb ergeben, und es werden keine Dummy- Daten geschrieben. Man beachte jedoch, daß in dieser Alternative etwas Speicher notwendig wäre, um aufzuzeichnen, welche Platten in der Paritätsberechnung für jeden Streifen betroffen sind, so daß im Falle eines Plattenausfalls die Daten geeignet rekonstruiert werden könnten. Die Steuerung geht dann zu Schritt 214.
  • Wenn somit der gesamte Streifen, wo das Teilstreifenschreiben auftreten wird, nicht verwendeten Platz vor dem Teilstreifenschreiben umfaßt, dann kann die Paritätsinformation ohne jegliche Plattenlesevorgänge berechnet werden. Wenn ähnlich der Streifen, wo das Schreiben auftreten soll, vor dem Schreiben einen Daten enthaltenden und einen nicht benutzten Bereich enthält, und der nachfolgende Teilstreifenschreibbetrieb den Teil des Streifens überschreiben wird, der Daten enthält, so daß nachdem der Schreibbetrieb ausgeführt ist, der nicht beschriebene Teil des Streifens unbenutzt ist oder Dummy-Daten enthält, dann sind keine Plattenlesevorgänge notwendig. In diesen Fällen erfordert der Schreibbetrieb weniger Zeit zu seiner Ausführung.
  • In einer anderen Ausführungsform der Erfindung bestimmt die Vorrichtungsansteuerung in Schritt 212 lediglich, ob der gesamte Streifen unbenutzten Platz enthält, bevor entweder zu den Schritten 212 oder 206 verzweigt wird. In dieser Ausführungsform ist ein vorhergehender Lesebetrieb notwendig, bevor ein Teilstreifenschreibbetrieb ausgeführt wird, falls irgendein Teil des Streifens unbenutzten Platz enthält, sogar wenn dieses Gebiet durch den Schreibbetrieb überschrieben werden wird.
  • Wenn die Vorrichtungsansteuerung in Schritt 210 bestimmt, daß ein Teil des Streifens, der nicht mit gültigen Daten während des Teilstreifenschreibbetriebs beschrieben werden wird, gegenwärtig Daten enthält, dann geht die Steuerung zu Schritt 212. In Schritt 212 bewirkt die Vorrichtungsansteuerung, daß der Systemprozessor 20 plattenspezifische Schreibbefehle erzeugt, die jeweils die zugeordnete Paritätsinformation und alte Daten aus der Parität und den Datenplatten lesen, und diese Information in die Zwischenpuffer im Speicher 58 legt. Die Steuerung geht dann zu Schritt 206, wo der Systemprozessor 20 die neuen oder gültigen Daten, die alten Daten und die alte Paritätsinformation aus dem Schreibpuffergebiet und Speichergebiet verwendet, um die neue XOR-Paritätsinformation zu erzeugen. Es sei darauf hingewiesen, daß jedes der in den Grundlagen beschriebenen Verfahren verwendbar ist. Die alten Datenund Paritätsinformationen werden aus den Zwischenpuffern im Speicher 58 gelesen. Die Steuerung des Systemprozessors 20 geht dann zu Schritt 208, wo die Vorrichtungsansteuerung bewirkt, daß der Systemprozessor 20 die neuen Daten und neue Paritätsinformation auf die jeweiligen Platten schreibt. Die Steuerung geht dann zu Schritt 214, wo die Vorrichtungsansteuerung bestimmt, ob es zusätzliche auf die Platten zu schreibende Datensektoren gibt. Wenn zusätzliche Sektoren geschrieben werden müssen, kehrt die Steuerung zu Schritt 204 zurück. Wenn keine zusätzlichen Sektoren zu schreiben sind, geht die Steuerung zu Schritt 216, wobei die Signale der Vorrichtungsansteuerung vollendet sind. Die Steuerung geht dann zu Schritt 218, der den Schreibbetrieb beendet, und die Vorrichtungsansteuerung gibt den Systemprozessor 20 frei, um seine Abarbeitung des Anwenderprogramms wieder aufzunehmen.
  • Betrieb der Erfindung in einer Corputersyster Rit einer intelligenten Plattenfelduteuerung.
  • Es wird nun auf die Fig. 6A und 6B Bezug genommen, in denen ein Flußdiagramm eines Schreibbetriebs, wie er in einem Computersystem C mit der intelligenten Plattenfeldsteuerung 112 ausgeführt wird, gezeigt ist. Das Flußdiagramm ist der Klarheit wegen in zwei Teilen gezeigt, und die Verbindung zwischen den Fig. 6A und 6B ist durch Bezug auf den eingekreisten Buchstaben A gezeigt. Der Schreibbetrieb beginnt bei Schritt 300, wo der aktive Prozess oder die Anwendung bewirkt, daß der Systemprozessor 20 eine Schreibanfrage erzeugt, die an die Plattenvorrichtungsansteuerung weitergegeben wird. Wenn dies auftritt, übernimmt die Plattenvorrichtungssteuerung die Steuerung des Systemprozessors 20, um eine Schreibbefehlsliste zu erzeugen.
  • Den Schritt 302 bestimmt die Vorrichtungsansteuerung, ob der Schreibbefehl einen gerade vollen Datenstreifen, der auf das Plattenfeld 116 zu schreiben ist, erfordert. In der bevorzugten Ausführungsform wird in Betracht gezogen, daß die Vorrichtungsansteuerung getrennte Befehlslisten für Vollstreifenschreiben und Teilstreifenschreiben erstellt. Falls der Schreibbetrieb ein Schreiben eines gerade vollen Streifens beinhaltet, d.h., eine ganzzahlige Anzahl von Vollstreifenschreibvorgängen, dann erstellt die Vorrichtungsansteuerung die Befehlsliste in Schritt 304 und überträgt die Befehlsliste in Schritt 312. Wenn der Schreibbetrieb kein Schreiben eines gerade vollen Streifens beinhaltet, was der üblichere Fall ist, dann stellt die Vorrichtungsansteuerung in Schritt 306 fest, ob weniger als ein voller Streifen zu schreiben ist. Wenn mehr als ein voller Streifen zu schreiben ist, dann trennt die Vorrichtungsansteuerung in Schritt 308 die Vollstreifenschreibbetriebe ab und erstellt eine Befehlsliste für diese Vorgänge. In Schritt 310 erstellt die Vorrichtungsansteuerung eine Befehlsliste für den verbleibenden Teilstreifenschreibvorgang. Wenn in Schritt 306 die Vorrichtungsansteuerung feststellt, daß weniger als ein voller Streifen zu schreiben ist, geht die Vorrichtungsansteuerung direkt zu Schritt 310, wo sie die Befehlsliste für den Teilstreifenschreibbetrieb erzeugt. Die Vorrichtungsansteuerung geht dann von Schritt 310 zu Schritt 312, wo sie die Befehlsliste (EN) an die Plattensteuerung 112 über die BMIC 142 überträgt. Die Vorrichtungsansteuerung geht dann in einen Wartezustand, um auf ein Endesignal von der Plattenfeldsteuerung 112 zu warten. Somit erzeugt die erfindungsgemäße Vorrichtungsansteuerung getrennte Befehlslisten für Vollstreifen- und Teilstreifen schreibvorgänge. In einer anderen Ausführungsform der Erfindung schafft die Vorrichtungsansteuerung Schreibbefehle für die Plattensteuerung 112 ohne zwischen Voll- und Teilstreifenschreibvorgängen zu unterscheiden. In dieser Ausführungsform bestimmt die Plattenfeldsteuerung 112, ob der Betrieb ein Voll- oder Teilstreifenschreiben ist, wenn die Schreibbefehlsliste erhalten wird.
  • In Schritt 314 bestimmt die Plattensteuerung 112, nachdem die Befehlsliste(n) von der Vorrichtungsansteuerung erhalten wurden, ob die entsprechende Befehlsliste, die sie abarbeitet, ein Volistreifen- oder Teilstreifenschreibvorgang ist. Wenn der Schreibbetrieb ein Vollstreifenschreiben ist, dann schreitet der logische Betriebsfluß zu Schritt 316 folgt, wo der lokale Prozessor 130 die plattenspezifischen Schreibbefehle für den Vollstreifenschreibbetrieb bildet. Dann geht die Steuerung zu Schritt 318, wobei der Übertragungssteuerchip (TCC) 144 Paritätsdaten aus dem Datenvollstreifen, der auf das Plattenfeld 116 geschrieben werden, erzeugt. Die Betriebssteuerung geht dann zu Schritt 320, wobei die TCC 114 die Daten und neu erzeugte Parität auf die Platten innerhalb des Plattenfelds 116 schreibt. Dann geht die Steuerung zu Schritt 322, wobei der lokale Prozessor 130 bestimmt, ob zusätzliche volle Streifen auf das Plattenfeld 116 zu schreiben sind. Wenn zusätzliche volle Streifen auf das Plattenfeld 116 zu schreiben sind, kehrt die Steuerung zu Schritt 318 zurück und die Schritte 318 - 322 werden wiederholt. Wenn keine zusätzlichen Vollstreifen auf das Plattenfeld 116 zu schreiben sind, dann wird die vorliegende Befehlsliste zu Ende geführt, wie in Schritt 338 gezeigt ist, wobei eine Anzeige über die Vollendung an die Vorrichtungsansteuerung ausgegeben wird, um diese möglicherweise aus ihrem Wartezustand freizugeben, um eine Fortsetzung des Betriebs zu ermöglichen.
  • Wenn die Plattensteuerung 112 in Schritt 314 feststellt, daß die empfangene Befehisliste, die sie abarbeitet, ein Teilstreifenschreiben beinhaltet, dann geht die Steuerung zu Schritt 324. In Schritt 324 stellt die Plattensteuerung 112 fest, ob der Teil des Streifens, der nicht mit gültigen Daten während des Teilstreifensschreibvorgangs beschrieben wird, ungenutzten Raum umfaßt. In der bevorzugten Ausführungsform prüft die Steuerung 112 die Bit-Kartierung auf jeweilige Bereiche auf jeder den Streifen umfassenden Platte in Schritt 324, um festzustellen, ob die jeweiligen Blöcke oder Sektoren in dem Streifen, die in dem nachfolgenden Teilstreifenschreibbetrieb nicht beschrieben werden, unbenutzten Platz umfassen. Wenn der Teil des Streifens, der während des Teustreifenschreibbetriebs nicht beschrieben werden wird, unbenutzten Platz umfaßt, dann besteht keine Notwendigkeit zum Lesen der alten Paritätsinformation oder von Daten von dem Streifen, und die Steuerung geht weiter zu Schritt 326. In Schritt 326 erzeugt die TCC 144 Paritätsinformation für die zu schreibenden gültigen Daten. In Schritt 328 bildet die Plattenfeldsteuerung 112 plattenspezifische Schreibbefehle, um die Daten auf das Plattenfeld 116 übertragen, auf der Grundlage der Schreibbefehlsliste, die der Vorrichtungssteuerung vorgelegt wurden. In Schritt 330 schreibt die TCC 144 die Daten- und Paritätsinformation auf die Platten. Die Abarbeitung der Befehlsliste wird dann in Schritt 338 vollendet.
  • Die Plattensteuerung 112 schreibt vorzugsweise Dummy-Daten auf den Teil des Streifens, der nicht mit gültigen Daten während des Teilstreifenschreibbetriebs beschrieben wird, und die TCC 144 verwendet vorzugsweise die Dummy-Daten in Verbindung mit den Teilstreifenschreibdaten bei der Paritätsberechnung. Alternativ dazu berechnet die TCC 144 die Paritätsinformation nur aus den gültigen, während des Teilstreifenschreibvorgangs geschriebenen Daten, was ähnlich ist zu der Art und Weise, bei der die Paritätsinformation während der Vollstreifenschreibvorgänge erzeugt wird und keine Dummy-Daten geschrieben werden. In diesen Fällen würde eine Neuerzeugung von Daten ausgeführt ohne Verwendung der in dem nicht verwendeten Block vorhandenen Werte, sondern nur unter Verwendung der verwendeten Blöcke und des Paritätswerts. Wie zuvor bemerkt wurde, wurde in diesem anderen Schema Speicher in der Plattensteuerung 112 vorzugsweise bereitgestellt werden, um aufzuzeichnen, welche Blöcke und welche Platten in der Paritätsberechnung jedes Streifens betroffen sind.
  • Wenn somit der gesamte Streifen, wo das Teilstreifenschreiben auftritt, unverwendeten Platz umfaßt, dann kann die Paritätsinformation ohne jegliche Plattenlesevorgänge berechnet werden. Wenn auf ähnliche Weise der Streifen, wo das Schreiben auftritt, einen Daten enthaltenden und einen nicht verwendeten Teil enthält, und der nachfolgende Teilstreifenschreibbetrieb den Teil des Streifens, der Daten enthält, überschreiben wird, so daß der nicht-beschriebene Teil des Streifen, nachdem der Schreibbetrieb ausgeführt ist, nicht verwendet ist oder Dummy- Daten enthält, dann werden keine Plattenlesevorgänge benötigt. In diesen Fällen erfordert der Schreibbetrieb weniger Zeit zu seiner Vollendung.
  • In einer anderen Ausführungsform der Erfindung bestimmt die Plattensteuerung 112 in Schritt 324 lediglich, ob der gesamte Streifen nicht-verwendeten Platz umfaßt, bevor entweder zu den Schritten 332 oder 326 verzweigt wird. In dieser Ausführungsform ist ein vorhergehender Lesevorgang notwendig, bevor der Teilstreifenschreibbetrieb ausgeführt wird, falls irgendein Teil des zu beschreibenden Streifens nicht-verwendeten Platz umfaßt, sogar wenn dieses Gebiet durch den Teilstreifenschreibbetrieb überschrieben werden wird.
  • Wenn die Plattensteuerung 112 in Schritt 324 feststellt, daß ein Teil des Streifens, der nicht mit gültigen Daten während des Teilstreifenschreibbetriebs beschrieben werden wird, gegenwärtig gültige Daten enthält, dann geht die Steuerung zu Schritt 332. In Schritt 332 werden die Schreibbefehle von der Vorrichtungsansteuerung durch den Prozessor 130 der Reihe nach angeordnet, und die BMIC 142 führt die Übertragung von Daten vom Speicher zu dem Übertragungssteuerungspuffer-RAM 146 aus. Die Steuerung geht dann zu Schritt 334, wobei der lokale Prozessor 130 Plattenleseanfragen für die alten Platten und die alte Paritätsinformation, die den nicht zu überschreibenden Datensektoren entspricht, erzeugt. Die Leseanfragen werden der Reihe nach angeordnet und der lokale Prozessor 130 richtet sich danach. Die Steuerung geht dann zu Schritt 336, wo die Leseanfragen ausgeführt werden. Die alte Paritätsinformation und die alten Daten werden von ihren jeweiligen Platten gelesen und in den Übertragungspuffer 146 über die TCC 144 geladen.
  • Die Steuerung geht dann zu Schritt 326, und neue Paritätsinformation für den Teilstreifenschreibbetrieb wird gemäß den zuvor beschriebenen Verfahren unter Verwendung von neuen Daten, alter Daten und alter Paritätsinformationen erzeugt. Die TCC 144 greift vorzugsweise auf die neuen Daten wie auch auf die alte Paritätsinformation und die in dem Übertragungspuffer 146 gespeicherten alten Daten zu und verwendet den dafür bestimmten XOR-DMA-Paritätskanal, um die neue XOR- Paritätsinformation zu erzeugen. Diese spezielle Paritätseignung erlaubt der bevorzugten Ausführungsform, Paritätsoperationen auszuführen ohne Berechnungen durch den lokalen Prozessor 130 zu erfordern. Die Steuerung geht dann zu Schritt 328, wobei der lokale Prozessor 130 Plattenschreibbefehle erzeugt, um die Daten auf das Plattenfeld 116 zu übertragen. Die Steuerung geht dann zu Schritt 330, und die TCC 144 schreibt die neuen Daten und neue Paritätsinformation auf ihre jeweiligen Platten über die DMA-Subkanäle 184 - 190. Wenn somit das Gebiet oder der Streifen, wo das Teilstreifenschreiben auftritt, gegenwärtig gültige Daten enthält, die nicht überschrieben werden, dann sind drei zusätzliche Schritte, nämlich Schritt 332, 334 und 336, notwendig, um den Schreibbetrieb zu vollenden. Diese drei zusätzlichen Schritte sind die Einbuße im Betriebsverhalten, die mit den Teilstreifenschreibvorgängen verknüpft sind, wenn das zu beschreibende Gebiet gegenwärtig Daten enthält. Die Ausführung der Befehlsliste endet dann in Schritt 338.
  • Es ist klar, daß die Schreibbefehlslisten für Volistreifenund Teilstreifenschreiben von Daten praktisch simultan ausführbar sind als Folge der Multitaskingumgebung, die in der Plattenfeldsteuerung 112 verwendet wird. Es sei bemerkt, daß daher bei Vollendung einer Befehlsliste in Schritt 338, andere Befehlslisten zugleich in der Plattensteuerung 112 in den Schritten 314 - 338 ausgeführt werden können. Wenn die Befehlsliste eines jeweiligen Betriebs am Ende ist, dann signalisiert die Plattensteuerung 112 ein Ende des Schreibens an die Plattenvorrichtungsansteuerung. Die Vorrichtungsansteuerung gibt dann die Steuerung des Systemprozessors 20 auf, um die Ausführung des Anwendungsprogramms fortzusetzen.
  • Es sei daher bemerkt, daß kein vorhergehender Lesevorgang notwendig ist bei einem Teilstreifenschreibbetrieb, wenn der Teil des Streifens, der nicht mit gültigen Daten zu beschreiben ist, nicht verwendeten Platz umfaßt. Die alten Daten und alte Paritätsinformation müssen nicht von den Plattenlaufwerken in diesem Fall gelesen werden, sondern nur die neuen Daten und Paritätsinformation muß auf die Plattenlaufwerke geschrieben werden. Dummy-Daten können zudem auf den jeweiligen Streifen geschrieben werden, falls erwünscht. Somit wird der Betrieb bei Teilstreifenschreibvorgängen verbessert, wenn der Teil des nicht mit gültigen Daten zu beschreibenden Streifens als nicht-verwendeten Platz in dem Datenfilesystem umfassend festgestellt wird.
  • Die vorhergehende Offenbarung und Beschreibung der Erfindung ist für diese veranschaulichend und beispielhaft und Veränderungen in den Bauteilen und den Verfahren, wie auch in den Einzelheiten der dargestellten Logik und der Flußdiagramme können ohne Abweichung von dem Bereich der Erfindung, wie er in den Ansprüchen bestimmt ist, gemacht werden.

Claims (13)

1. Ein Verfahren zum Ausführen von Plattenfeldschreibvorgängen in einem Plattenfeld eines Computersystems mit einer Vielzahl von Platteneinheiten, die jeweils eine Vielzahl von Streifen zum Speichern von Daten- und Paritätsinformation aufweisen, wobei das Plattenfeld Paritätsfehler- Toleranzverfahren verwendet, wobei das Verfahren weiter umfaßt:
Erzeugen eines Datenschreibbetriebs zum Schreiben von gültigen Daten auf einen Datenstreifenabschnitt in dem Plattenfeld;
Bestimmen, ob der Schreibbetrieb ein Teilstreifenschreibbetrieb ist, wobei der Teilstreifenschreibbetrieb ein Schreiben von gültigen Daten auf nur einen ersten Teil des Datenstreifenabschnitts enthält;
Bestimmen, ob ein zweiter Abschnitt des Datenstreifenabschnitts, der sich von dem ersten Abschnitt unterscheidet, nicht verwendeten Platz umfaßt, wenn es sich bei dem Schreibvorgang um einen Teilstreifenvorgang handelt;
Erzeugen von Paritätsinformation für den Datenstreifenabschnitt unter Verwendung lediglich der gültigen Daten, wenn der zweite Abschnitt nur nicht verwendeten Platz umfaßt; und
Schreiben der gültigen Daten auf den ersten Abschnitt und die Paritätsinformation auf den Paritätsinformationsabschnitt des Streifens nach Erzeugung der Paritätsinformation.
2. Das Verfahren nach Anspruch 1, das weiter umfaßt:
Erzeugen von Paritätsinformation für den Datenstreifen unter Verwendung der gültigen Daten und von Dummy-Daten, wenn es sich bei dem Schreibvorgang um einen Teilstreifenschreibvorgang handelt und der zweite Abschnitt nicht verwendeten Platz umfaßt; und
Schreiben der Dummy-Daten in den zweiten Abschnitt des Datenstreifenabschnitts während des Schritts des Schreibens von gültiger Daten und von Paritätsinformation.
3. Das Verfahren nach Anspruch 1 oder 2, das weiter umfaßt:
Erzeugen von Paritätsinformation für den Datenstreifenabschnitt unter Verwendung der gültigen Daten, wenn es sich bei dem Schreibvorgang um einen Vollstreifenschreibvorgang handelt;
Schreiben der gültigen Daten und der Paritätsinformation auf den Streifen nach Erzeugen der Paritätsinformation für den Vollstreifenschreibvorgang.
4. Das Verfahren nach den Ansprüchen 1 oder 2, das weiter umfaßt:
Lesen alter Daten von dem zweiten Abschnitt des Datenstreifenabschnitts nach dem Schritt der Bestimmung von nicht-verwendetem Platz, wenn es sich bei dem Schreibvorgang um einen Teilstreifenschreibvorgang handelt und der zweite Abschnitt gebrauchten Platz umfaßt;
Erzeugen von zweiter Paritätsinformation für den Datenstreifenabschnitt unter Verwendung der gültigen Daten und der alten Daten; und
Schreiben der gültigen Daten und der zweiten Paritätsinformation auf den Streifen nach Erzeugung der zweiten Paritätsinformation.
5. Das Verfahren nach Anspruch 1 oder 2, das weiter umfaßt:
Lesen alter Daten aus dem zweiten Abschnitt und alter Paritätsinformation aus dem Paritätsinforrnationsabschnitt nach dem Schritt der Bestimmung nicht-verwendetem Platzes, falls es sich bei dem Schreibvorgang um einen Teilstreifenschreibvorgang handelt und der zweite Abschnitt gebrauchten Platz umfaßt;
Erzeugen zweiter Paritätsinformation für den Datenstreifenabschnitt unter Verwendung der gültigen Daten, der alten Daten und der alten Paritätsinformation; und
Schreiben der gültigen Daten und der zweiten Paritätsinformation auf den Streifen nach Erzeugung der Paritätsinformation.
6. Das Verfahren nach Anspruch 1 oder 2, wobei der Schritt des Bestimmens des Teilstreifenschreibens durch einen systemprozessor in dem Computersystem ausgeführt wird.
7. Das Verfahren nach den Ansprüchen 1 oder 2, wobei der Schritt des Bestimmens des Teilstreifenschreibens durch einen lokalen Prozessor, der mit dem Plattenfeld gekoppelt ist, ausgeführt wird.
8. Das Verfahren nach Anspruch 1, wobei der Schritt des Erzeugens des Datenschreibvorgangs das Erzeugen von getrennten Schreibbefehlslisten für Vollstreifenschreibvorgänge und Teilstreifenschreibvorgänge enthält; und
wobei der Schritt der Bestimmung des Schreibvorgangs eine Bestimmung enthält, ob eine empfangene Schreibbefehlsliste ein Vollstreifenschreibbetrieb oder ein Teilstreifenschreibbetrieb ist.
9. Ein Computersystem, das Plattenfeldschreibbetriebe durchführt, mit:
einem Systembus;
einem mit dem Systembus gekoppelten Plattenfeld mit einer Vielzahl von Platteneinheiten, die jeweils eine Vielzahl von Streifen ausweisen zum Speichern von Daten und von Paritätsinformation;
einer mit dem Systembus gekoppelten Vorrichtung zum Erzeugen eines Datenschreibvorgangs zum Schreiben gültiger Daten auf einen Datenstreifenabschnitt in dem Plattenfeld;
einer mit der Schreiberzeugungsvorrichtung gekoppelten Vorrichtung zum Bestimmen, ob der Schreibvorgang ein Teilstreifenschreibvorgang ist, wobei der Teilstreifenschreibvorgang ein Schreiben von gültigen Daten nur auf einen ersten Abschnitt des Datenstreifenabschnitts enthält;
einer mit der Bestimmungsvorrichtung für den Teilstreifenschreibvorgang und dem Plattenfeld gekoppelten Vorrichtung zur Bestimmung, ob ein zweiter Abschnitt des Datenstreifenabschnitts nicht verwendeten Platz umfaßt, wenn es sich bei dem Schreibvorgang um einen Teilstreifenschreibvorgang handelt;
einer mit der Bestimmungsvorrichtung für nicht gekoppelten Platz und dem Bussystem gekoppelten Vorrichtung, die die Daten empfängt zum Erzeugen von Paritätsinformation für den Datenstreifenabschnitt nur unter Verwendung der gültigen Daten, wenn der zweite Abschnitt nur nicht verwendeten Platz umfaßt; und
einer mit der Paritätsinformationserzeugungsvorrichtung, dem Systembus und dem Plattenfeld gekoppelten Vorrichtung zum Schreiben der gültigen Daten in den ersten Abschnitt und der Paritätsinformation in den Paritätsinformationsabschnitt des Streifens.
10. Das Computersystem nach Anspruch 91 wobei die Paritätsinformationserzeugungsvorrichtung Paritätsinformation für den Datenstreifen erzeugt unter Verwendung der gültigen Daten und von Dummy-Daten, wenn der zweite Abschnitt nicht verwendeten Platz umfaßt; und
wobei die Schreibvorrichtung die Dummy-Daten in den zweiten Abschnitt des Datenstreifenabschnitts schreibt, wenn die gültigen Daten und die Paritätsinformation auf den Streifen geschrieben werden.
11. Das Computersystem nach Anspruch 9 oder 10, wobei die Paritätsinformationsserzeugungsvorrichtung zudem mit der Teilstreifenschreibbestimmungsvorrichtung gekoppelt ist und betrieben wird, wenn der Schreibvorgang ein Vollstreifenvorgang ist.
12. Das Computersystem nach Anspruch 9 oder 10, das weiter umfaßt:
eine mit dem Plattenfeld, der Vorrichtung zur Bestimmung nicht-verwendeten Platzes und der Teilstreifenschreibbestimmungsvorrichtung gekoppelte Vorrichtung zum Lesen alter Daten von dem zweiten Abschnitt des Datenstreifenabschnitts, wenn der Schreibvorgang ein Teilstreifenschreibvorgang ist und der zweite Abschnitt gebrauchten Platz umfaßt; eine mit der Vorrichtung zum Lesen alter Daten und dem Systembus gekoppelte Vorrichtung, die die Daten empfängt, zum Erzeugen zweiter Paritätsinformation für die Daten unter Verwendung der gültigen Daten und der alten Daten; und
eine mit der Vorrichtung zum Erzeugen zweiter Paritätsinformation, dem Systembus und dem Plattenfeld gekoppelte Vorrichtung zum Schreiben der gültigen Daten und der zweiten Paritätsinformation auf den Streifen.
13. Das Computersystem nach den Ansprüchen 9 oder 10, das weiter umfaßt:
eine mit dem Plattenfeld, der Vorrichtung zur Bestimmung nicht verwendeten Platzes und der Teilstreifenschreibbestimmungsvorrichtung gekoppelte Vorrichtung zum Lesen alter Daten und alter Panätsinformation von dem Streifen, wenn der Schreibvorgang ein Teilstreifenschreibvorgang ist und der zweite Abschnitt gebrauchten Platz umfaßt;
eine mit der Lesevorrichtung und der Vorrichtung zur Erzeugung des Schreibvorgangs gekoppelte Vorrichtung, die die gültigen Daten empfängt zum Erzeugen zweiter Paritätsinformation für den Datenstreifenabschnitt unter Verwendung der gültigen Daten, der alten Daten und der alten Paritätsinformation; und
eine mit der Vorrichtung zur Erzeugung einer zweiten Parität und dem Plattenfeld gekoppelte Vorrichtung zum Schreiben der gültigen Daten und der zweiten Paritätsinformation auf den Streifen.
DE69215538T 1991-12-27 1992-12-18 Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung Expired - Fee Related DE69215538T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/815,118 US5333305A (en) 1991-12-27 1991-12-27 Method for improving partial stripe write performance in disk array subsystems
PCT/US1992/010953 WO1993013478A1 (en) 1991-12-27 1992-12-18 Method for improving partial stripe write performance in disk array subsystems

Publications (2)

Publication Number Publication Date
DE69215538D1 DE69215538D1 (de) 1997-01-09
DE69215538T2 true DE69215538T2 (de) 1997-05-22

Family

ID=25216919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69215538T Expired - Fee Related DE69215538T2 (de) 1991-12-27 1992-12-18 Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung

Country Status (9)

Country Link
US (1) US5333305A (de)
EP (1) EP0619897B1 (de)
JP (1) JPH06511098A (de)
KR (1) KR940704028A (de)
AT (1) ATE145737T1 (de)
AU (1) AU3326893A (de)
CA (1) CA2126755A1 (de)
DE (1) DE69215538T2 (de)
WO (1) WO1993013478A1 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
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
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
EP0701716B1 (de) * 1993-06-03 2002-08-14 Network Appliance, Inc. Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem
US6138126A (en) * 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
JPH08511368A (ja) * 1993-06-04 1996-11-26 ネットワーク・アプリアンス・コーポレーション 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法
JPH07134635A (ja) * 1993-11-10 1995-05-23 Nec Eng Ltd ディスクアレイ装置
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US6525971B2 (en) 1995-06-30 2003-02-25 Micron Technology, Inc. Distributed write data drivers for burst access memories
US5682354A (en) * 1995-11-06 1997-10-28 Micron Technology, Inc. CAS recognition in burst extended data out DRAM
US5526320A (en) 1994-12-23 1996-06-11 Micron Technology Inc. Burst EDO memory device
US5610864A (en) 1994-12-23 1997-03-11 Micron Technology, Inc. Burst EDO memory device with maximized write cycle timing
JP3253473B2 (ja) * 1995-01-27 2002-02-04 富士通株式会社 二重化された共用メモリの等価性回復処理方法および装置
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5745915A (en) * 1995-03-17 1998-04-28 Unisys Corporation System for parallel reading and processing of a file
US5701473A (en) * 1995-03-17 1997-12-23 Unisys Corporation System for optimally storing a data file for enhanced query processing
US5758149A (en) * 1995-03-17 1998-05-26 Unisys Corporation System for optimally processing a transaction and a query to the same database concurrently
US5699503A (en) * 1995-05-09 1997-12-16 Microsoft Corporation Method and system for providing fault tolerance to a continuous media server system
JP3202550B2 (ja) * 1995-07-14 2001-08-27 日本電気株式会社 ディスクアレイサブシステム
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
US5862158A (en) * 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
US5729504A (en) * 1995-12-14 1998-03-17 Micron Technology, Inc. Continuous burst edo memory device
US7681005B1 (en) * 1996-01-11 2010-03-16 Micron Technology, Inc. Asynchronously-accessible memory device with mode selection circuitry for burst or pipelined operation
US5720025A (en) 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
US6055577A (en) * 1996-05-06 2000-04-25 Oracle Corporation System for granting bandwidth for real time processes and assigning bandwidth for non-real time processes while being forced to periodically re-arbitrate for new assigned bandwidth
US6981126B1 (en) 1996-07-03 2005-12-27 Micron Technology, Inc. Continuous interleave burst access
US6401186B1 (en) 1996-07-03 2002-06-04 Micron Technology, Inc. Continuous burst memory which anticipates a next requested start address
US5802593A (en) * 1996-09-06 1998-09-01 Intel Corporation Method and apparatus for improving disk drive performance
US6434663B1 (en) 1996-09-06 2002-08-13 Intel Corporation Disk block allocation optimization methodology with accommodation for file system cluster size greater than operating system memory page size
US6742080B1 (en) 1996-09-06 2004-05-25 Intel Corporation Disk block allocation optimization methodology and application
JPH1185580A (ja) * 1997-09-11 1999-03-30 Matsushita Electric Ind Co Ltd ファイル管理システム及びファイル管理方法
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US7047357B1 (en) * 1998-10-01 2006-05-16 Intel Corporation Virtualized striping controller
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
JP2001166887A (ja) * 1999-12-08 2001-06-22 Sony Corp データ記録再生装置及びデータ記録再生方法
US6795894B1 (en) 2000-08-08 2004-09-21 Hewlett-Packard Development Company, L.P. Fast disk cache writing system
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
JP2002123479A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd ディスク制御装置およびそのキャッシュ制御方法
JP3435400B2 (ja) * 2000-12-08 2003-08-11 株式会社東芝 ディスクアレイ装置におけるデータ修復方法及びディスクアレイコントローラ
US6658528B2 (en) 2001-07-30 2003-12-02 International Business Machines Corporation System and method for improving file system transfer through the use of an intelligent geometry engine
US7200715B2 (en) 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
US7120826B2 (en) 2002-03-29 2006-10-10 International Business Machines Corporation Partial mirroring during expansion thereby eliminating the need to track the progress of stripes updated during expansion
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US6904498B2 (en) * 2002-10-08 2005-06-07 Netcell Corp. Raid controller disk write mask
KR100502106B1 (ko) * 2002-10-17 2005-07-20 한국전자통신연구원 스트라이핑 기법을 이용한 레이드 시스템에서의 데이터재구성 방법
US7085953B1 (en) 2002-11-01 2006-08-01 International Business Machines Corporation Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array
JP4354233B2 (ja) * 2003-09-05 2009-10-28 株式会社日立製作所 バックアップシステム及び方法
US7228432B2 (en) * 2003-09-11 2007-06-05 Angelo Michael F Method and apparatus for providing security for a computer system
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7382880B2 (en) * 2004-01-26 2008-06-03 Hewlett-Packard Development Company, L.P. Method and apparatus for initializing multiple security modules
US7930503B2 (en) * 2004-01-26 2011-04-19 Hewlett-Packard Development Company, L.P. Method and apparatus for operating multiple security modules
US8933941B2 (en) * 2004-08-23 2015-01-13 Hewlett-Packard Development Company, L.P. Method and apparatus for redirection of video data
US7927948B2 (en) 2005-07-20 2011-04-19 Micron Technology, Inc. Devices with nanocrystals and methods of formation
US8205019B2 (en) * 2005-09-30 2012-06-19 Intel Corporation DMA transfers of sets of data and an exclusive or (XOR) of the sets of data
GB0610335D0 (en) * 2006-05-24 2006-07-05 Oxford Semiconductor Ltd Redundant storage of data on an array of storage devices
US20110258380A1 (en) * 2010-04-19 2011-10-20 Seagate Technology Llc Fault tolerant storage conserving memory writes to host writes
US8954670B1 (en) 2011-04-18 2015-02-10 American Megatrends, Inc. Systems and methods for improved fault tolerance in RAID configurations
US9268644B1 (en) * 2011-04-18 2016-02-23 American Megatrends, Inc. Systems and methods for raid acceleration
JP5962140B2 (ja) * 2012-03-30 2016-08-03 富士通株式会社 プログラム、制御方法、制御装置およびシステム
TWI461901B (zh) 2012-12-10 2014-11-21 Ind Tech Res Inst 資料儲存與重建的方法與系統
US20150095696A1 (en) * 2013-09-27 2015-04-02 Datadirect Networks, Inc. Second-level raid cache splicing
US10545825B2 (en) * 2016-04-29 2020-01-28 Synamedia Limited Fault-tolerant enterprise object storage system for small objects

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4072853A (en) * 1976-09-29 1978-02-07 Honeywell Information Systems Inc. Apparatus and method for storing parity encoded data from a plurality of input/output sources
US4157586A (en) * 1977-05-05 1979-06-05 International Business Machines Corporation Technique for performing partial stores in store-thru memory configuration
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals

Also Published As

Publication number Publication date
EP0619897A1 (de) 1994-10-19
DE69215538D1 (de) 1997-01-09
KR940704028A (ko) 1994-12-12
JPH06511098A (ja) 1994-12-08
EP0619897B1 (de) 1996-11-27
AU3326893A (en) 1993-07-28
CA2126755A1 (en) 1993-06-28
WO1993013478A1 (en) 1993-07-08
US5333305A (en) 1994-07-26
ATE145737T1 (de) 1996-12-15

Similar Documents

Publication Publication Date Title
DE69215538T2 (de) Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE69529728T2 (de) Speicherplattenanordnungsgerät
DE69814579T2 (de) Parallel arbeitende exklusiv-oder-einheit
DE69425222T2 (de) Dynamisch ausbaubares Speichereinheitsmatrixsystem
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
DE69117371T2 (de) Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE69030024T2 (de) Verfahren zur Herstellung einer Duplikation von einer Datenbank
DE69032655T2 (de) Seitenspeicher-Steuerschaltung
DE69804209T2 (de) Verfahren um die speicherkapazität von level fünf raid plattenanordnung zu vergrössern und expandierte matrize hergestellt durch solch ein verfahren
DE69131728T2 (de) Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69126416T2 (de) Speichergerätanordnungsarchitektur mit Copyback-Cachespeicher
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE69230211T2 (de) Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem
DE69231841T2 (de) Verfahren und Vorrichtung zum Zugriff von Datensätze mit variabler Länge die mit fester Block-Formatierung auf Speicheranordnungen mit direktem Zugriff gespeichert sind
DE3586299T2 (de) Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher.
DE69020569T2 (de) Modulares ein-/ausgabesystem für superrechner.
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE4423949A1 (de) E/A-Hilfssystem und Exklusiv-Steuerverfahren, Datenspeicherverfahren und Speicherinitialisierungsverfahren in einem E/A-Hilfssystem
DE68923694T2 (de) LRU-Fehlerdetektion unter Verwendung der Sammlung der geschriebenen und gelesenen LRU-Bits.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee