DE69215538T2 - Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung - Google Patents
Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnungInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012546 transfer Methods 0.000 description 51
- 239000000872 buffer Substances 0.000 description 24
- 238000013507 mapping Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1033—Inactive data in parity groups, i.e. RAID parity groups where parity is calculated on only occupied or busy bits in the stripe
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single 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.
- 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.
- 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.
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)
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)
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 |
-
1991
- 1991-12-27 US US07/815,118 patent/US5333305A/en not_active Expired - Lifetime
-
1992
- 1992-12-18 EP EP93901200A patent/EP0619897B1/de not_active Expired - Lifetime
- 1992-12-18 AT AT93901200T patent/ATE145737T1/de not_active IP Right Cessation
- 1992-12-18 AU AU33268/93A patent/AU3326893A/en not_active Abandoned
- 1992-12-18 CA CA002126755A patent/CA2126755A1/en not_active Abandoned
- 1992-12-18 JP JP5511760A patent/JPH06511098A/ja active Pending
- 1992-12-18 DE DE69215538T patent/DE69215538T2/de not_active Expired - Fee Related
- 1992-12-18 WO PCT/US1992/010953 patent/WO1993013478A1/en active IP Right Grant
- 1992-12-18 KR KR1019940702254A patent/KR940704028A/ko not_active Application Discontinuation
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 |