DE69230299T2 - Speicherplattenanordnungsteuerungsvorrichtung für eine Datenspeicherungsanordnung - Google Patents

Speicherplattenanordnungsteuerungsvorrichtung für eine Datenspeicherungsanordnung

Info

Publication number
DE69230299T2
DE69230299T2 DE69230299T DE69230299T DE69230299T2 DE 69230299 T2 DE69230299 T2 DE 69230299T2 DE 69230299 T DE69230299 T DE 69230299T DE 69230299 T DE69230299 T DE 69230299T DE 69230299 T2 DE69230299 T2 DE 69230299T2
Authority
DE
Germany
Prior art keywords
bus
data
array
buses
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69230299T
Other languages
English (en)
Other versions
DE69230299D1 (de
Inventor
Mahmoud K. Jibbe
Craig C. Mccombs
Kenneth J. Thompson
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.)
MagnaChip Semiconductor Ltd
NCR International Inc
Original Assignee
Symbios Inc
NCR International Inc
Hyundai Electronics America Inc
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 Symbios Inc, NCR International Inc, Hyundai Electronics America Inc filed Critical Symbios Inc
Application granted granted Critical
Publication of DE69230299D1 publication Critical patent/DE69230299D1/de
Publication of DE69230299T2 publication Critical patent/DE69230299T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • 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
    • 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)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Die vorliegende Erfindung betrifft Datenspeichersysteme der Art mit einem Host-Bus, der so ausgestaltet ist, daß er an ein Host-Gerät angeschlossen werden kann, und mit Laufwerken, die so ausgestaltet sind, daß sie an eine Mehrzahl von Laufwerkgeräten angeschlossen werden können.
  • Jüngere und andauernde Zunahmen im Hinblick auf Leistung und Geschwindigkeit in der Computerverarbeitung, auf Geschwindigkeit und Kapazität von Primärspeicher und auf Größe und Komplexität von Computersoftware hat zur Notwendigkeit für schneller arbeitende sekundäre Speichergeräte mit größerer Kapazität geführt; Magnetplatten stellen die am häufigsten verwendeten externen oder sekundären Speichermittel dar, die in modernen Computersystemen zum Einsatz kommen. Leider hat die Leistungsverbesserungsrate großer Magnetplatten nicht mit der Leistungsverbesserungsrate von Prozessoren und Hauptspeichern Schritt halten können. Es können jedoch erhebliche Verbesserungen im Hinblick auf die Leistung und Kosten für sekundäre Speicher erhalten werden, indem einzelne große, kostspielige Laufwerke durch eine Vielzahl kleiner, kostenarmer Laufwerke ersetzt werden, die zu einer parallelen Array zusammengeschlossen werden, die für den Host wie ein einziges großes, schnelles Laufwerk aussehen.
  • Mehrere Bauartalternativen für Laufwerkarrays wurden in einem Artikel mit dem Titel "A Case for Redundant Arrays of Inexpensive Disks (RAID)" (Ein Fall für redundante Arrays kostenarmer Platten (RAID)) von David A. Patterson, Garth Gibson und Randy H. Katz, University of California Report No. UCB/CSD 87/391, Dezember 1987, vorgestellt. Dieser Artikel erörtert Laufwerkarrays sowie die Verbesserungen im Hinblick auf Leistung, Zuverlässigkeit, Leistungsaufnahme und Skalierbarkeit, die Laufwerkarrays im Vergleich zu einzelnen großen Magnetplatten bieten.
  • In dem Artikel werden fünf Laufwerkarray-Anordnungen beschrieben, die als RAID-Ebenen bezeichnet werden. Die erste RAID-Ebene umfaßt N Laufwerke zum Speichern von Daten und N zusätzliche "Spiegel"-Laufwerke zum Speichern von Kopien der auf die Datenlaufwerke geschriebenen Informationen. Schreibfunktionen der RAID-Ebene 1 verlangen, daß Daten auf zwei Laufwerke geschrieben werden, wobei das zweite "Spiegel"-Laufwerk dieselben Informationen erhält wie das erste Laufwerk. Wenn Daten gelesen werden, dann können sie von einem beliebigen der beiden Laufwerke gelesen werden.
  • Systeme der RAID-Ebene 3 umfassen ein oder mehrere Gruppen von N + 1 Laufwerken. Innerhalb jeder Gruppe werden N Laufwerke zum Speichern von Daten verwendet, und das zusätzliche Laufwerk dient zum Speichern von Paritätsinformationen. Bei Schreibfunktionen der RAID-Ebene 3 wird jeder Datenblock in N Teile unterteilt und so auf den N Datenlaufwerken gespeichert. Die entsprechenden Paritätsinformationen werden auf ein spezielles Paritätslaufwerk geschrieben. Wenn Daten gelesen werden, dann muß auf alle N Datenlaufwerke zugegriffen werden. Das Paritätslaufwerk dient zum Rekonstruieren von Informationen im Falle eines Laufwerkausfalls.
  • Auch Systeme der RAID-Ebene 4 bestehen aus einer oder mehreren Gruppen von N + 1 Laufwerken, wobei N Laufwerke zum Speichern von Daten verwendet werden, und das zusätzliche Laufwerk dient zum Speichern von Paritätsinformationen. Systeme der RAID-Ebene 4 unterscheiden sich von Systemen der RAID-Ebene 3 dadurch, daß zu speichernde Daten in größere Portionen unterteilt werden, die aus einem oder aus vielen Datenblöcken bestehen, und zum Speichern auf die Laufwerke aufgeteilt werden. Das Schreiben erfordert weiterhin Zugriff auf zwei Laufwerke, d. h. eines der N Datenlaufwerke und das Paritätslaufwerk. Auf ähnliche Weise erfordern Lesevorgänge typischerweise nur Zugang auf ein einziges der N Datenlaufwerke, es sei denn, die zu lesenden Daten überschreiten die auf jedem Laufwerk gespeicherte Blocklänge. Wie bei Systemen der RAID-Ebene 3, dient das Paritätslaufwerk zum Rekonstruieren von Informationen im Falle eines Laufwerkausfalls.
  • Die RAID-Ebene 5 ist der RAID-Ebene 4 ähnlich, mit der Ausnahme, daß zusätzlich zu den Daten Paritätsinformationen über die N + 1 Laufwerke in jeder Gruppe verteilt werden. Jede Gruppe enthält zwar N + 1 Laufwerke, aber jedes Laufwerk beinhaltet einige Blöcke zum Speichern von Daten sowie einige Blöcke zum Speichern von Paritätsinformationen. Wo Paritätsinformationen gespeichert werden, wird durch einen vom Benutzer ausgeführten Algorithmus gesteuert. Wie bei Systemen der RAID-Ebene 4, erfordert das Schreiben in RAID- Ebene 5 Zugriff auf wenigstens zwei Laufwerke; aber es erfordert nicht mehr jeder Schreibvorgang auf eine Gruppe Zugriff auf dasselbe spezielle Paritätslaufwerk wie in Systemen der RAID-Ebene 4. Dieses Merkmal bietet die Möglichkeit, gleichzeitige Schreibvorgänge durchzuführen.
  • In einem bekannten Laufwerkarray-System arbeitet der Host als RAID-Controller und führt Paritätserzeugung und - prüfung durch. Durch die Host-Computer-Parität erhöht sich das Overhead der Host-Verarbeitung. Ferner beinhaltet das bekannte System eine feste Datenpfadstruktur, die die Mehrzahl von Laufwerken mit dem Host-System verbindet. Eine Umordnung des Laufwerkarray-Systems zur Aufnahme unterschiedlicher Laufwerkszahlen oder anderer RAID- Konfigurationen läßt sich nicht leicht durchführen.
  • Die US-A-4,914,656 offenbart ein Datenspeichersystem mit einem Host-Bus, der so ausgestaltet ist, daß er an ein Host-Gerät angeschlossen werden kann, Laufwerke, die an eine Mehrzahl von Laufwerkgeräten angeschlossen werden können, selektiv steuerbare Kopplungsmittel, die mit dem Host-Bus und einer Mehrzahl von Bussen verbunden sind und die Anschlußmittel aufweisen, um den Host-Bus mit einer ersten Gruppe von Bussen zu verbinden. Die EP-A-0,369,707 offenbart ein Datenspeichersystem, das ebenfalls einen Host-Bus für den Anschluß an ein Host-Gerät, ein Laufwerk für den Anschluß an eine Mehrzahl von Laufwerkgeräten und selektiv steuerbare Kopplungsmittel umfaßt, die mit dem Host-Bus und dem Laufwerk verbunden sind.
  • Die EP-A-0,294,287 und die EP-A-0,320,107 betreffen Datenspeichersysteme der Art, die in der vorliegenden Erfindung definiert ist, aber alle diese obengenannten Systeme sind nachteiligerweise in bezug auf ihre Anpassungsfähigkeit und Flexibilität im Hinblick auf die Steuerung des Datenflusses zwischen einem Host und einer Laufwerkarray beschränkt.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Datenspeichersystem der vorgegebenen Art bereitzustellen, das leicht an verschiedene Laufwerkarray-Konfigurationen angepaßt werden kann.
  • Daher wird erfindungsgemäß ein Datenspeichersystem bereitgestellt, umfassend einen Host-Bus, der so ausgestaltet ist, daß er an ein Host-Gerät angeschlossen werden kann, Laufwerke, die an eine Mehrzahl von Laufwerkgeräten angeschlossen werden können, selektiv steuerbare Kopplungsmittel, die mit dem genannten Host-Bus und mit einer Mehrzahl von Array-Bussen verbunden sind, die mit den genannten Laufwerken verbunden sind, ein erstes Anschlußmittel, das so ausgestaltet ist, daß es den genannten Host-Bus mit einer ersten Gruppe von ausgewählten Array-Bussen verbindet, dadurch gekennzeichnet, daß das genannte erste Verbindungsmittel eine Mehrzahl von Registern aufweist, die jeweils mit einem jeweiligen Array- Bus assoziiert und mit dem genannten Host-Bus verbunden sind, um Daten von diesem zu empfangen, wobei jedes Register einen jeweiligen Bustreiber hat, der mit diesem sowie mit dem assoziierten Array-Bus verbunden ist, wobei die Bustreiber selektiv steuerbar sind, um den genannten Host-Bus mit der genannten ersten Gruppe ausgewählter Array-Busse zu verbinden, und dadurch, daß das genannte Kopplungsmittel ein Paritätserzeugungsmittel, zweite Verbindungsmittel, die so ausgestaltet sind, daß sie eine zweite Gruppe von ausgewählten Array-Bussen mit dem Eingang des genannten Paritätserzeugungsmittels verbinden, und dritte Verbindungsmittel umfaßt, die so ausgestaltet sind, daß sie den Ausgang des genannten Paritätserzeugungsmittels mit einer dritten Gruppe von ausgewählten Array-Bussen verbinden.
  • Eine Ausgestaltung der Erfindung wird nachfolgend beispielhaft unter Bezugnahme auf die Begleitzeichnungen beschrieben. Dabei zeigt:
  • Fig. 1 ein Blockdiagramm eines Laufwerkarray- Controllers mit der Daten- und Paritäts-Routingarchitektur der vorliegenden Erfindung;
  • Fig. 2 ein Funktionsblockdiagramm des SCSI-Array- Datenpfadchips (ADP) von Fig. 1 mit der Daten- und Paritäts-Routingarchitektur der vorliegenden Erfindung;
  • Fig. 3 ein Blockdiagramm der DMA FIFO und Routing- Blöcke von Fig. 2, die eine bevorzugte Ausgestaltung der vorliegenden Erfindung repräsentieren;
  • Fig. 4A bis 4F ein ausführlicheres Blockdiagramm der in Fig. 3 gezeigten Architektur; und
  • Fig. 5 bis 18 einige der verschiedenen Konfigurationen der Schaltung von Fig. 3. So zeigt beispielsweise Fig. 8 die Schaltungskonfiguration zur Durchführung eines Schreibvorgangs der RAID-Ebene 3.
  • Fig. 1 zeigt ein Blockdiagramm eines SCSI- (kleine Computersystem-Schnittstelle) Laufwerkarray-Controllers mit der Daten- und Paritäts-Routingarchitektur der vorliegenden Erfindung. Der Controller beinhaltet einen Host-SCSI- Adapter 14 als Schnittstelle zwischen dem Host-System- Datenbus 12 und dem SCSI-Datenbus 16. Paritätserzeugung sowie Daten- und Paritätsrouting erfolgen im SCSI-Array- Datenpfadchip (ADP) 10. Der ADP-Chip 10 verbindet den SCSI- Datenbus 16 mit sechs zusätzlichen Datenbussen, die mit den Bezugsziffern 21 bis 26 bezeichnet sind. SCSI-Bus- Schnittstellenchips 31 bis 35 bilden die Schnittstelle zwischen den jeweiligen SCSI-Datenbussen 21 bis 25 und entsprechenden externen Laufwerkdatenbussen 41 bis 45. Bus 26 verbindet den ADP-Chip mit einem 64 kB statischen RAM (SRAM) 36. ADP-Chips 10, SCSI-Adapter 14 und SCSI-Bus- Schnittstellenchips 31 bis 35 arbeiten alle unter der Steuerung eines dedizierten Mikroprozessors 51.
  • Alle gezeigten Datenbusse, mit Ausnahme von Bus 16, haben neun Datenleitungen, von denen eine eine Paritätsbitleitung ist. Bus 16 hat 18 Datenleitungen, von denen zwei Busparitätsleitungen sind. Zusätzliche Steuer-, Bestätigungs- und Meldungsleitungen (nicht dargestellt) sind ebenfalls mit den Datenbussen vorhanden.
  • SCSI-Adapter 14, SCSI-Bus-Schnittstellenchips 31 bis 36, SRAM 36 und Mikroprozessor 51 sind im Handel erhältliche Artikel. So kann beispielsweise der SCSI- Adapter 14 ein Fast - SCSI 2 Chip, die SCSI-Bus- Schnittstellenchips 31 bis 35 können NCR 53C96 Chips und der Mikroprozessor 51 kann ein Motorola MC68020 Mikroprozessor mit 16 MHz sein. Auf dem Mikroprozessorbus sind auch ein 1 MB DRAM, ein 128 kB EPROM, ein 8 kB EEPROM, ein 68901 Multifunktions-Peripherie-Controller sowie verschiedene Register resident.
  • Der SCSI-Datenpfadchip 10 ist ein anwendungsspezifisches IC-Bauelement, das sämtliche Datenrouting-, Datenmultiplexier- und -demultiplexier- sowie Paritätserzeugungs- und -prüfaspekte der RAID-Ebenen 1, 3 und 5 handhaben kann. Auch die Datenmultiplexierung nicht redundanter Daten unter fünf Kanälen ist möglich. Der ADP-Chip 10 handhabt die Übertragung von Daten zwischen dem Host-SCSI-Adapter 14 und den SCSI-Bus-Interfacechips 31 bis 35. Der ADP-Chip handhabt auch die Bewegungen von Daten zu und von dem 64 kB SRAM während der Lese-/Modifizier- /Schreibvorgänge der RAID-Ebene 5.
  • Fig. 2 ist ein Funktionsblockdiagramm des in Fig. 1 gezeigten SCSI-Array-Datenpfadchips (ADP). Der ADP-Chip besteht aus den folgenden internen Funktionsblöcken: Steuerlogikblock 60 mit Diagnosemodul 62, Konfigurationssteuer- und Statusregistermodul 64, Interruptmodul 66 und Schnittstellenmodul 68; DMA FIFO Block 70; sowie Daten- und Paritätsrouting-Block 100.
  • Die Hauptfunktion des Steuerblocks 60 besteht darin, den hierin beschriebenen Datenpfad und Paritätspfad zu konfigurieren und zu prüfen. Das Mikroprozessor- Schnittstellenmodul 68 enthält grundsätzliche Mikroprozessor-Lese- und -Schreib-Zyklus-Steuerlogik für Kommunikation und Datenübertragung zwischen dem Mikroprozessor 51 (in Fig. 1 gezeigt) und Steuer- und Statusregistern im Steuerblock. Diese Schnittstelle entspricht einem gemultiplexten Adreß- und Datenbusstandard, bei dem Mikroprozessor-Lese- und - Schreibzyklen aus einer Adreßphase gefolgt von einer Datenphase bestehen. Während der Adreßphase wird ein bestimmtes Register vom Mikroprozessor gewählt. Während der nachfolgenden Datenphase werden Daten auf den adressierten Register geschrieben oder von ihm gelesen.
  • Das Konfigurationssteuer- und Statusregistermodul 64 weist zahlreiche 8-Bit-Register unter der Steuerung des Mikroprozessor-Schnittstellenmoduls 68 wie oben umrissen auf. Der Inhalt der Steuerregister bestimmt die Konfiguration der Daten- und Paritätspfade. Statusregister senden Konfigurations- und Interrupt-Informationen zum Mikroprozessor.
  • Das Diagnosemodul 62 beinhaltet Ein- und Ausgangsdatenregister für den Host- und jeden Array-Kanal. Die Eingangsregister werden vom Prozessor geladen und senden Daten zum Host-Bus 16, zu den Array-Bussen 21 bis 25 und zum SRAM-Bus 26, um Host- oder Array-Übertragungen zu emulieren. Die Ausgangsregister, die mit durch die verschiedenen Datenbusse geführten Daten geladen werden, werden vom Mikroprozessor gelesen, um den ordnungsgemäßen Betrieb gewählter Daten- und Paritätspfadkonfigurationen zu überprüfen.
  • Das Interrupt-Modul 66 enthält die Steuerlogik, die notwendig ist, um die Maskierung und Gruppierung von ADP- Chip- und Laufwerk-Controller-Kanal-Interruptsignalen auszuführen. Beliebige aus fünf Kanal-Interruptsignalen, die von den SCSI-Bus-Schnittstellenchips 31 bis 35 empfangen werden, und drei intern generierten ADP- Paritätsfehler-Interruptsignalen können miteinander kombiniert werden, um Interruptsignale für den Mikroprozessor zu generieren.
  • Die Funktion des DMA FIFO Blockes 70 besteht darin, vom Host erhaltene Daten so lange zu halten, bis die Array bereit ist, die Daten zu akzeptieren und sie vom 18-Bit-Bus 16 in 9-Bit-Busse 18 umzuwandeln. Während der Lesevorgänge hält der DMA FIFO Block 70 die von der Laufwerkarray erhaltenen Daten fest, bis das Host-System bereit ist, die Daten zu akzeptieren, und wandelt die Daten von 9-Bit- Bussen 18 in den 18-Bit-Bus 16 um.
  • Der Daten- und Paritätsrouting-Block 100 enthält die Steuerlogik zum Konfigurieren der Daten- und Paritätspfade zwischen dem Host, der Laufwerkarray und dem SRAM 36 als Reaktion auf Steuerbytes, die in die im Modul 64 enthaltenen Steuerregister gesetzt werden. Block 100 enthält auch Logik zum Erzeugen und Prüfen von Parität, Überprüfen von Daten, Senden von Daten, Überwachen von Datenübertragungen und Rekonstruieren von Daten, die aufgrund eines Ausfalls eines einzelnen Laufwerks verlorengegangen sind.
  • Fig. 3 ist ein Blockdiagramm des in Fig. 2 gezeigten DMA FIFO Blocks 70 und Routingblocks 100 und repräsentiert eine bevorzugte Ausgestaltung der vorliegenden Erfindung.
  • Die Datenroutingarchitektur beinhaltet fünf Datenkanäle, wobei jeder Kanal einen Datenpfad zwischen dem SCSI-Adapter 14 und einem entsprechenden einen der SCSI-Bus- Schnittstellenchips 31 bis 35 bildet. Der erste Datenkanal beinhaltet ein Doppelregister 101, das zwischen 9-Bit-Host- Bussen 16U und 16L und dem Array-Bus 21 geschaltet ist. Die Busse 16U und 16L übertragen 16 Bits Daten und zwei Bits Paritätsinformationen zwischen dem externen SCSI-Adapter 14 und dem Doppelregister 101. Der Array-Bus 21 verbindet das Doppelregister 101 mit dem SCSI-Bus-Schnittstellenchip 31. Zusätzliche Anzapfungsstellen zum Array-Bus 21 werden nachfolgend erörtert. Datenkanäle 2 bis 5 sind ähnlich aufgebaut und verbinden die Host-Busse 16U und 1% über jeweilige Doppelregister 102 bis 105 und Array-Busse 22 bis 25 mit den SCSI-Bus-Schnittstellenchips 32 bis 35.
  • Jedes der Doppelregister 101 bis 105 beinhaltet einen internen Zwei-zu-Eins-Multiplexer für die Auswahl als Eingang zu einem der Host-Busse 16U oder 16L, wenn Daten von den Bussen 16U und 16L zu den Array-Bussen übertragen werden sollen. Doppelregister 101 und 102 beinhalten jeweils einen internen Zwei-zu-Eins-Multiplexer für die Auswahl als Eingang zu den zugehörigen Array-Bussen oder eines Paritätsbusses 130, wenn Daten zu Host-Bussen 16U und 16L übertragen werden sollen.
  • Eine Exklusives-ODER-Schaltung 110 wird benutzt, um Paritätsinformationen anhand von Daten auf Array-Bussen 21 bis 25 zu generieren. Eine Anzapfungsstelle befindet sich zwischen jedem der Array-Bussen 21 bis 25 und einem ersten Eingang eines jeweiligen Zwei-zu-Eins-Multiplexers, dessen Ausgang einen Eingang zur Exklusives-ODER-Schaltung 110 bildet. Die zweiten Eingänge jedes der Multiplexer, mit den Bezugsziffern 111 bis 115 bezeichnet, sind auf Masse geschaltet.
  • Der Ausgang der Exklusives-ODER-Schaltung 110 ist über den 9-Bit-Bus 130 zu Doppelregistern 101 und 102 und Tri- State-Puffern 121, 122, 123, 124, 125 und 126 gegeben. Jeder der Tri-State-Puffer 121 bis 126 sendet, wenn er aktiviert ist, die von der Exklusives-ODER-Schaltung 110 generierten Paritätsinformationen zu einem jeweiligen einen der Busse 21 bis 26. Bus 26 verbindet den Ausgang des Tri- State-Puffers 126 mit SRAM 36 und einem Eingang eines Zwei- zu-Eins-Multiplexers 116. Der Ausgang des Multiplexers 116 ist der Eingang zur Exklusives-ODER-Schaltung 110, um die Architektur mit Möglichkeiten für Paritätsprüfung und Datenrekonstruktion auszustatten, die nachfolgend ausführlicher beschrieben werden.
  • Fig. 3 zeigt auch sechs Sender/Empfänger, mit den Bezugsziffern 141 bis 146 bezeichnet, zum Verbinden jeweiliger Busse 21 bis 26 mit dem Prozessorbus 53, um Diagnoseinformationen zwischen den Array-Kanälen und dem Prozessor zu übertragen. Ein zusätzlicher Sender/Empfänger 150 verbindet die Host-Busse 16U und 16L mit dem Prozessorbus 53. Die Sender/Empfänger 141 bis 146 und 150 ermöglichen Diagnosevorgänge durch den Controller- Prozessor.
  • Die Fig. 4A bis 4F zeigen zusätzliche Einzelheiten über Aufbau und Betrieb der Doppelregister 101 bis 105, der Sender/Empfänger 141 bis 146 und des Senders/Empfängers 150, sowie über die Steuerung von Daten zu und von den SCSI-Bus-Schnittstellenchips 31 bis 35 und dem SRAM 36.
  • Das Doppelregister 101 umfaßt der Figur zufolge einen Multiplexer 203 für die Auswahl von Daten von einem der Busse 16U oder 16L zur Speisung in die Register 205 und 207, einen Latch 209 und einen Puffer/Treiber 211, um den Registerinhalt auf den Array-Bus 21 zu setzen. Das Doppelregister 101 weist ferner einen Multiplexer 213 für die Auswahl von Daten von einem der Busse 21 oder 130 auf, um sie in die Register 215 und 217 zu setzen, und einen Puffer/Treiber 219, um den Inhalt der Register 213 und 215 auf den Bus 16L zu setzen. Das Doppelregister 102 ist im Aufbau identisch mit dem Doppelregister 101 für die Übertragung von Daten von einem der Busse 16U und 16L zum Bus 22 und von einem der Busse 21 und 130 zum Bus 16U. Die Doppelregister 103 und 104 sind jeweils dem Doppelregister 101 bzw. 102 ähnlich, mit der Ausnahme, daß keines einen Multiplexer aufweist, der dem Multiplexer 213 entspricht, oder eine Verbindung mit dem Bus 130. Das Doppelregister 105 beinhaltet lediglich diejenigen der oben beschriebenen Elemente, die für die Übertragung von Informationen von den Bussen 16U und 16L zum Bus 25 notwendig sind.
  • Jeder der Sender/Empfänger 141 bis 146 beinhaltet ein Register 223, das zum Empfangen und Speichern von Daten geschaltet ist, die auf dem zugehörigen Array oder SRAM-Bus resident sind, einen Puffer/Treiber 225, der so geschaltet ist, daß er den Inhalt des Registers 223 zum Prozessorbus 53 sendet, ein Register 227, das so geschaltet ist, daß es Daten vom Prozessorbus 53 empfängt und speichert, und einen Puffer/Treiber 229, der so geschaltet ist, daß er den Inhalt des Registers 227 zum zugehörigen Array oder SRAM- Bus sendet. Der Sender/Empfänger 150 beinhaltet Register und Treiber zum Speichern und Übertragen von Daten zwischen dem Prozessorbus 53 und jedem der Host-Busse 16U und 16L.
  • Die Array-Busse 21 bis 25 beinhalten jeweils ein Paar parallel geschalteter Puffer/Treiber 233 und 235 zum Steuern der Richtung des Datenflusses zwischen dem Array- Bus und seinem zugehörigen SCSI-Bus-Schnittstellenchip. Der SRAM-Bus 26 ist ähnlich mit dem SRAM 36 verbunden.
  • Steuerleitungen (nicht dargestellt) sind zwischen Steuerregistern vorgesehen, die im Konfigurationssteuer- und Statusmodul 64 resident sind (oben erörtert), sowie Doppelregister 101 bis 105, Multiplexer 111 bis 116, Tri- State-Puffer 121 bis 126, sowie Sender/Empfänger 141 bis 146 und 150. Fünf Datenpfad-Steuerregister sind für die Konfiguration des Datenpfads verantwortlich.
  • Das Datenpfad-Steuerregister 1 steuert den Datenfluß durch die Doppelregister 101 bis 105 bei Array- Schreibvorgängen. Jedes Steuerregisterbit steuert den Betrieb eines der Register 101 bis 105, wie unten gezeigt.
  • Datenpfad-Steuerregister 1
  • Bit 0 - aktiviert Register 101
  • Bit 1 - aktiviert Register 102
  • Bit 2 - aktiviert Register 103
  • Bit 3 - aktiviert Register 104
  • Bit 4 - aktiviert Register 105
  • Bit 5 - nicht belegt
  • Bit 6 - nicht belegt
  • Bit 7 - nicht belegt
  • Wenn eines der Steuerbits 0 bis 4 im H-Zustand ist, dann werden die vom Host erhaltenen Daten auf den internen Array-Bus übertragen, der dem aktivierten Register entspricht. Die vom Host erhaltenen Daten stehen danach auf dem SCSI-Bus-Schnittstellenchip zur Verfügung, der mit dem Array-Bus, der Paritätserzeugungslogik und der Diagnoseschaltungsanordnung verbunden ist.
  • Das Datenpfad-Steuerregister 2 steuert den Betrieb der Multiplexer 111 bis 116 und bestimmt so den Eingang zur Exklusives-ODER-Schaltung 110. Jedes Registerbit steuert den Betrieb eines der Multiplexer 111 bis 116, wie unten gezeigt.
  • Datenpfad-Steuerregister 2
  • Bit 0 - wählt Eingang zu MUX 111
  • Bit 1 - wählt Eingang zu MUX 112
  • Bit 2 - wählt Eingang zu MUX 113
  • Bit 3 - wählt Eingang zu MUX 114
  • Bit 4 - wählt Eingang zu MUX 115
  • Bit 5 - wählt Eingang zu MUX 116
  • Bit 6 - nicht belegt
  • Bit 7 - nicht belegt
  • In der obigen Tabelle setzt eine logische Eins, die in einem oder mehreren der Registerbits 0 bis 5 gespeichert ist, den entsprechenden Multiplexer so, daß er Daten von seinem zugehörigen Array-Bus zur Exklusives-ODER-Schaltung 110 sendet. Eine in einem oder mehreren der Registerbits 0 bis 5 gespeicherte logische Null wählt den entsprechenden auf Masse geschalteten Multiplexereingang.
  • Das Datenpfad-Steuerregister 3 aktiviert und deaktiviert den Fluß von Daten zu und von SCSI-Bus- Schnittstellenchips 31 bis 35 und SRAM 36. Die Funktionen der einzelnen Registerbits werden nachfolgend beschrieben.
  • Datenpfad-Steuerregister 3
  • Bit 0 - Aktivieren von SCSI DMA E/A auf Kanal 1
  • Bit 1 - Aktivieren von SCSI DMA E/A auf Kanal 2
  • Bit 2 - Aktivieren von SCSI DMA E/A auf Kanal 3
  • Bit 3 - Aktivieren von SCSI DMA E/A auf Kanal 4
  • Bit 4 - Aktivieren von SCSI DMA E/A auf Kanal 5
  • Bit 5 - Aktivieren von Daten-E/A mit SRAM
  • Bit 6 - nicht belegt
  • Bit 7 - nicht belegt
  • Eine in einem der Bits 0 bis 5 gespeicherte logische Eins aktiviert den entsprechenden Kanal. Die Datenflußrichtung zu und von SCSI-Bus-Schnittstellenchips 31 bis 35 und SRAM 36 wird vom Datenpfad-Steuerregister 5 bestimmt.
  • Das Datenpfad-Steuerregister 4 aktiviert, durch zugehörige Chip-Hardware, spezifische RAID-Vorgänge wie nachfolgend beschrieben.
  • Datenpfad-Steuerregister 4
  • Bit 0 - Array-Datenübertragungsrichtung
  • Bit 1 - Aktivierung RAID-Ebene 1
  • Bit 2 - Aktivierung RAID-Ebene 4 oder 5
  • Bit 3 - Aktivierung RAID-Ebene 3
  • Bit 4 - Aktivierung Laufwerkskonfiguration 2 + 1
  • Bit 5 - Aktivierung Laufwerkskonfiguration 4 + 1
  • Bit 6 - Aktivierung Array-Paritätsprüfung
  • Bit 7 - nicht belegt
  • Die Datenflußrichtung durch die Registergruppen 101 bis 105 wird durch Setzen von Bit 0 bestimmt. Dieses Bit wird für Host-zu-Array-Schreibvorgänge in den H-Zustand und für Array-zu-Host-Lesevorgänge in den L-Zustand gesetzt. Bits 1, 2 und 3 aktivieren die spezifischen RAID-Vorgänge, wenn sie im H-Zustand sind. Bits 4 und 5 aktivieren die spezifischen Vorgänge der RAID-Ebene 3, wenn sie im H- Zustand sind. Das Steuerbit 6 wird in den H-Zustand gesetzt, um die Paritätsprüfung zu aktivieren.
  • Das Datenpfad-Steuerregister 5 steuert die Datenflußrichtung zu oder von SCSI-Bus-Schnittstellenchips 31 bis 35 und SRAM 36.
  • Datenpfad-Steuerregister 5
  • Bit 0 - Array-Richtungskanal 1
  • Bit 1 - Array-Richtungskanal 2
  • Bit 2 - Array-Richtungskanal 3
  • Bit 3 - Array-Richtungskanal 4
  • Bit 4 - Array-Richtungskanal 5
  • Bit 5 - Externe SRAM-Richtung
  • Bit 6 - nicht belegt
  • Bit 7 - nicht belegt
  • Eine in einem der Registerbits 0 bis 5 gespeicherte logische Eins gibt vor, daß Daten vom Array-Kanal-Bus zu seinem angeschlossenen SCSI-Bus-Schnittstellenchip oder zum SRAM übertragen werden sollen. Eine logische Null legt die Datenübertragungsrichtung vom SCSI-Bus-Schnittstellenchip oder SRAM zum entsprechenden Array-Kanal-Bus fest. Die Steuerbits des Registers 3 müssen so gesetzt werden, daß sie die SCSI-Bus-Schnittstellenchips 31 bis 35 des SRAM 36 zur Durchführung einer Datenübertragung aktivieren.
  • Die oben erörterten fünf Datenpfad-Steuerregister aktivieren oder deaktivieren Doppelregister 101 bis 105, Multiplexer 111 bis 116, Tri-State-Puffer 121 bis 126 sowie Sender/Empfänger 141 bis 146 und 150, um die Architektur zur Durchführung der verschiedenen Lese- und Schreibvorgänge der RAID-Ebenen 1, 3, 4 und 5 zu konfigurieren, die nachfolgend unter Bezugnahme auf Fig. 5 bis 14 beschrieben werden.
  • Fig. 5 zeigt die Datenpfadarchitektur, die so konfiguriert ist, daß Schreibvorgänge der RAID-Ebene 1 auf den Kanälen 1 und 2 durchgeführt werden. Der Inhalt der Datenpfad-Steuerregister 1 bis 5 lautet hexadezimal ausgedrückt: Steuerregister 1-03hex, Steuerregister 2 - 00hex, Steuerregister 3 - 03hex, Steuerregister 4 - 03hex und Steuerregister 5 - 03hex. Somit werden Doppelregister 101 und 102 aktiviert, um vom Host über die Busse 16U und 16L empfangene Daten zu den Bussen 21 und 22 zu übertragen. Daten werden zunächst vom Bus 16L zu den Bussen 21 und 22 und von dort vom Bus 16U zu den Bussen 21 und 22 übertragen. SCSI-Bus-Schnittstellenchips 31 und 32 werden aktiviert, um Daten von den Bussen 21 und 22 zu ihren zugehörigen Array-Laufwerken zu übertragen, wobei jedes Laufwerk dieselben Daten erhält. Aktive Busse (Busse 16U, 16L, 21 und 22) sind in Fig. 5 mit stärkeren Linien gezeichnet. Neben den aktiven Bussen stehen Pfeile, um die Richtung des Datenflusses auf den Bussen anzuzeigen.
  • Die Lesekonfiguration der RAID-Ebene 1 ist in Fig. 6 dargestellt. Da Array-Laufwerke Kanal 1 und Kanal 2 dieselben Informationen speichern, braucht bei einem Lesevorgang auf RAID-Ebene 1 nur auf eines der Laufwerke zugegriffen werden. Zum Lesen von Daten von Laufwerkkanal 1 wird der Datenpfad-Steuerregisterinhalt wie folgt gesetzt: Steuerregister 1 - 00hex, Steuerregister 2 - 01hex, Steuerregister 3 - 011hex, Steuerregister 4 - 02hex und Steuerregister 5 - 00hex. Der SCSI-Bus- Schnittstellenchip 31 wird aktiviert, um Daten vom Laufwerkkanal 1 zum Bus 21 zu übertragen. Der Multiplexer 111 wird aktiviert, um die Daten auf dem Bus 21 durch die Paritätserzeugungsschaltung 110 zum Bus 130 zu übertragen. Da die Multiplexer 112 bis 116 deaktiviert sind, gehen die zum Multiplexer 111 gesendeten Daten unverändert durch den Paritätsgenerator. Die Doppelregister 101 und 102 werden aktiviert, um vom Bus 130 erhaltene Daten jeweils zu den Bussen 16U und 16L zu senden. Der Bus 16U erhält obere Byteinformation, während der Bus 16L untere Byteinformation überträgt.
  • Fig. 7 zeigt die Datenpfadarchitektur, die so konfiguriert ist, daß Laufwerk Kanal 1 der RAID-Ebene 1 von Laufwerk Kanal 2 rekonstruiert wird. Der Datenpfad- Steuerregisterinhalt wird wie folgt gesetzt: Steuerregister 1 - 00hex, Steuerregister 2 - 02hex, Steuerregister 3 - 03hex, Steuerregister 4 - 03hex und Steuerregister 5 - 01hex. Der SCSI-Bus-Schnittstellenchip 32 wird aktiviert, um Daten zum Bus 22 zu senden, der Multiplexer 112 wird aktiviert, um Daten vom Bus 22 zum Bus 130 zu senden, der Tri-State-Puffer 121 wird aktiviert, um Daten vom Bus 130 zum Bus 21 zu senden, und der SCSI-Bus-Schnittstellenchip 31 wird aktiviert, um vom Bus 21 erhaltene Daten auf Laufwerk Kanal 1 zu schreiben. Die Architektur könnte auch so konfiguriert werden, daß Laufwerk Kanal 2 von Laufwerk Kanal 1 rekonstruiert wird.
  • Fig. 8 zeigt die Datenpfadarchitektur, die so konfiguriert ist, daß sie 4+1 (vier Datenlaufwerke und ein Paritätslaufwerk) Schreibvorgänge von RAID-Ebene 3 zuläßt. Der Inhalt der Datenpfad-Steuerregister lautet wie folgt: Steuerregister 1 - 0Fhex, Steuerregister 2 - 0Fhex, Steuerregister 3 - 1Fhex, Steuerregister 4-29hex und Steuerregister 5 - 1Fhex. Die Doppelregister 101 bis 104 werden aktiviert, um Daten vom Host jeweils zu den Bussen 21 bis 24 zu senden. Die Multiplexer 111 bis 114 werden aktiviert, um Daten von den Bussen 21 bis 24 zum Paritätsgenerator 110 zu senden, dessen Ausgang über den Bus 130, den aktivierten Tri-State-Puffer 125 und den Bus 25 zur Busschnittstelle 35 übertragen wird. Die Bus- Schnittstellenchips 31 bis 35 werden aktiviert, um Daten von den Bussen 21 bis 25 zu ihren entsprechenden Array- Laufwerken zu senden.
  • Die Lesekonfiguration der RAID-Ebene 3 ist in Fig. 9 illustriert, wo die SCSI-Bus-Schnittstellenchips 31 bis 34 aktiviert werden, um Daten von ihren entsprechenden Array- Laufwerken über die Busse 21 bis 25 zu Doppelregistern 101 bis 104 zu senden. Die Doppelregister 101 bis 104 werden aktiviert, um die von den Bussen 21 bis 24 erhaltenen Daten zu den Bussen 16U und 16L zu senden. Die Datenpfad- Steuerregister werden wie folgt gesetzt, um die Datenpfade zu konfigurieren: Steuerregister 1 - 00hex, Steuerregister 2 - 1Fhex, Steuerregister 3 - 1Fhex, Steuerregister 4 - 68hex und Steuerregister 5 - 00hex. Die Paritätsprüfung erfolgt durch Durchführung eines Exklusives-ODER-Vorgangs an den auf Laufwerk Kanal 5 gespeicherten Paritätsinformationen mit den von Laufwerk Kanal 1 bis Kanal 4 gelesenen Daten. Der Ausgang des Paritätsgenerators 110 sollte 00hex lauten, wenn die gespeicherten Daten fehlerfrei vom Array zurückgelesen werden.
  • Fig. 10 zeigt die Datenpfadarchitektur, die konfiguriert wurde, um Laufwerk Kanal 2 der RAID-Ebene 3 von den übrigen Daten- und Paritätslaufwerken zu rekonstruieren. Der Inhalt des Datenpfad-Steuerregisters wird wie folgt gesetzt: Steuerregister 1 - 00hex, Steuerregister 2 - 1 Dhex, Steuerregister 3 - 1Fhex, Steuerregister 4-29hex und Steuerregister 5 - 02hex. Die SCSI-Bus-Schnittstellenchips 31, 33, 34 und 35 sowie die Multiplexer 111, 113, 114 und 115 werden aktiviert, um Daten- und Paritätsinformationen von Array-Laufwerk Kanal 1, 3, 4 und 5 zum Paritätsgenerator 110 zu senden. Der Paritätsgenerator 110 kombiniert die erhaltenen Daten und Paritätsinformationen, um Daten von Kanal 2 zu regenerieren. Der Ausgang des Paritätsgenerators wird über den Bus 130, das aktivierte Tri-State-Gerät 122, den Bus 22 und den aktivierten Bus-Schnittstellenchip 32 zum Laufwerk Kanal 2 gesendet. Alternativ könnte die Architektur so konfiguriert werden, daß die rekonstruierten Daten während der Lesevorgänge direkt zum Host gesendet werden.
  • Schreibvorgänge der RAID-Ebene 5 beinhalten ein Lese- und ein Schreibverfahren. Fig. 11 und 12 illustrieren einen Schreibvorgang der RAID-Ebene 5, der die Array- Laufwerke Kanal 1 und 2 beinhaltet, wobei Daten auf Array- Laufwerk Kanal 2 und Paritätsinformationen auf Laufwerk Kanal 1 aktualisiert werden sollen. Die Datenpfade werden zunächst wie in Fig. 11 gezeigt konfiguriert, um Informationen von den Laufwerken Kanal 1 und 2 zu lesen. Diese Informationen werden durch Multiplexer 111 und 112 zum Paritätsgenerator 110 gesendet, und das Ergebnis wird über den Bus 130, den aktivierten Tri-Ttate-Puffer 136 und den Bus 26 im externen SRAM 36 gespeichert. Die Datenpfad- Steuerregister enthalten die folgenden Codes:
  • Steuerregister 1 - 00hex, Steuerregister 2 - 03hex,
  • Steuerregister 3 - 23hex, Steuerregister 4 - 04hex und
  • Steuerregister 5 - 20hex.
  • Dann werden neue Daten und Paritätsinformationen wie in Fig. 12 gezeigt auf die Array-Laufwerke Kanal 1 und 2 geschrieben. Doppelregister 102 wird aktiviert, um die neuen Daten vom Host zu empfangen und die Daten über den Bus 22 und den aktivierten SCSI-Bus-Schnittstellenchip 32 zu Laufwerk Kanal 2 zu senden. Die neuen Daten werden auch durch den Multiplexer 112 zum Paritätsgenerator 110 gesendet. Die zuvor auf den SRAM 36 geschriebenen Informationen werden auch durch den Multiplexer 116 zum Paritätsgenerator 110 gesendet. Der Ausgang des Paritätsgenerators ist die neue Parität, die durch den aktivierten Tri-State-Puffer 121, den Bus 21 und den aktivierten SCSI-Bus-Schnittstellenchip 31 zu Laufwerk Kanal 1 gesendet werden. Der Inhalt der Datenpfad- Steuerregister für den zweiten Teil des Schreibvorgangs von RAID-Ebene 5 lautet wie folgt: Steuerregister 1-02hex, Steuerregister 2-22 hex, Steuerregister 3-23hex, Steuerregister 4-05hex und Steuerregister 5 - 03hex.
  • Fig. 13 veranschaulicht einen Lesevorgang auf RAID- Ebene 5. In diesem Beispiel sind die zu lesenden Informationen auf Array-Laufwerk Kanal 5 resident. Die Datenpfad-Steuerregister werden gesetzt, um SCSI-Bus- Schnittstellenchip 35, Multiplexer 115 und Doppelregister 101 und 102 zu aktivieren, Daten von Laufwerk Kanal 5 zum Host zu übertragen. Der Steuerregisterinhalt lautet:
  • Steuerregister 1 - 00hex, Steuerregister 2 - 10hex,
  • Steuerregister 3 - 10hex, Steuerregister 4 - 04hex und
  • Steuerregister 5 - 00hex.
  • Die Laufwerkrekonstruktion von RAID-Ebene 5 ist ähnlich der oben in Verbindung mit Fig. 9 erörterten Laufwerkrekonstruktion von RAID-Ebene 3. Fig. 14 zeigt eine Konfiguration zum Rekonstruieren von Daten auf Kanal 2. Der Datenpfad-Steuerregisterinhalt lautet: Steuerregister 1 - 00hex, Steuerregister 2 - 1 Dhex, Steuerregister 3 - 1Fhex, Steuerregister 4-25hex und Steuerregister 5 - 02hex.
  • Die Datenpfadarchitektur kann auch so konfiguriert werden, daß Datenprüfung, Datensendung und Diagnosevorgänge durchgeführt werden. Zusätzliche Steuerregister sind vorgesehen, um Sender/Empfänger 141 bis 146 und Sender/Empfänger 150 zu steuern, um die Architektur zur Durchführung dieser zusätzlichen Vorgänge zu konfigurieren. Die Fig. 15 bis 18 illustrieren einige der Datenprüfungs-, Datensendungs- und Diagnosevorgänge, die durchgeführt werden können.
  • Fig. 15 zeigt die Datenpfadarchitektur, die so konfiguriert ist, daß überprüft wird, daß auf Array- Laufwerken Kanal 1 und 2 gemäß RAID-Ebene 1 gespeicherte Informationen korrekt sind. Kanal 1 und 2 werden aktiviert, um Daten von den SCSI-Bus-Schnittstellenchips 31 und 32 zu empfangen. Die Multiplexer 111 und 112 werden aktiviert, um diese Daten zur Exklusives-ODER-Schaltung 110 zu senden.
  • Der Ausgang der Schaltung 110, der 00hex lauten sollte, wenn die Laufwerke Kanal 1 und 2 duplizierte Informationen erhalten, wird über den Bus 130, den aktivierten Tri-State- Puffer 125, den Bus 25, den aktivierten Sender/Empfänger 145 und den Bus 53 zur Auswertung zum Prozessor gesendet.
  • Fig. 16 illustriert die Datenpfadarchitektur, die so konfiguriert ist, daß überprüft wird, ob in der Array gemäß RAID-Ebenen 3 und 5 gespeicherte Informationen korrekt sind. Kanäle 1 bis 5 werden aktiviert, um Daten von den SCSI-Bus-Schnittstellenchips 31 bis 35 zu empfangen. Die Multiplexer 111 bis 115 werden aktiviert, um diese Daten zur Exklusives-ODER-Schaltung 110 zu senden. Der Ausgang der Schaltung 110, der 00hex sein sollte, wenn die Daten und Paritätsinformationen richtig sind, wird über den Bus 130, den aktivierten Tri-State-Puffer 126, den Bus 26 und den aktivierten Sender/Empfänger 146 zur Auswertung zum Prozessor gesendet.
  • Die Fig. 17 und 18 zeigen die Datenpfadarchitektur, die für eine Datensendung konfiguriert wurde, wobei dieselben Daten auf jedes der Laufwerke in der Array geschrieben werden. Die Datensendung kann erfolgen, um alle Array-Laufwerke mit einer bekannten Datenstruktur zu initialisieren. In Fig. 17 werden Daten vom Doppelregister 101 vom Prozessor über den Bus 53 und den aktivierten Sender/Empfänger 150 erhalten. In Fig. 18 werden Daten vom Host-System zum Doppelregister 101 gesendet. In beiden Fällen wird das Doppelregister 101 aktiviert, um die empfangenen Daten über den Bus 21 zu den SCSI-Bus- Schnittstellenchips 31 zu senden. Der Multiplexer 111 wird aktiviert, um Daten von Bus 21 zur Exklusives-ODER- Schaltung 110 zu senden. Die Multiplexer 112 bis 116 bleiben deaktiviert, so daß der Ausgang der Schaltung 110 äquivalent ist mit den vom Bus 21 empfangenen Daten. Die Tri-State-Geräte 112 bis 115 werden aktiviert, um den Ausgang der Schaltung 110 zu den SCSI-Bus- Schnittstellenchips 32 bis 35 zu senden.
  • Daraus wird ersichtlich, daß mit der vorliegenden Erfindung eine flexible Datenpfad- und Paritätspfadarchitektur zum Steuern des Datenflusses zwischen einem Host-System und einer Laufwerkarray bereitgestellt wird. Der Fachperson wird einleuchtend sein, daß die Erfindung nicht auf die Details der obigen Ausgestaltungen begrenzt ist. So braucht die Architektur beispielsweise nicht auf fünf Kanäle beschränkt zu sein. Außerdem sind andere Konfigurationen als die oben beschriebenen möglich. So können andere Prozessoren, Prozessorschnittstellen und Busschnittstellen als die in den Figuren dargestellten und oben erörterten Typen eingesetzt werden. So kann beispielsweise die Datenpfadarchitektur mit ESDI-, IPI- oder EISA-Geräten anstatt mit SCSI-Geräten konstruiert werden.

Claims (8)

1. Datenspeichersystem, umfassend einen Host-Bus (16), der so ausgestaltet ist, daß er an ein Host-Gerät angeschlossen werden kann, Laufwerke (31-35, 41-45), die an eine Mehrzahl von Laufwerkgeräten angeschlossen werden können, selektiv steuerbare Kopplungsmittel (10), die mit dem genannten Host-Bus (16) und mit einer Mehrzahl von Array-Bussen (21, 25) verbunden sind, die mit den genannten Laufwerken (31-35, 41-45) verbunden sind, ein erstes Verbindungsmittel (205, 207, 211), das so ausgestaltet ist, daß es den genannten Host-Bus (16) mit einer ersten Gruppe von ausgewählten Array-Bussen (21-25) verbindet, dadurch gekennzeichnet, daß das genannte erste Verbindungsmittel eine Mehrzahl von Registern (205, 207) aufweist, die jeweils mit einem jeweiligen Array-Bus (21-25) assoziiert und mit dem genannten Host-Bus (16) verbunden sind, um Daten von diesem zu empfangen, wobei jedes Register (205, 207) einen jeweiligen Bustreiber (211) hat, der mit diesem sowie mit dem assoziierten Array-Bus (21-25) verbunden ist, wobei die Bustreiber (211) selektiv steuerbar sind, um den genannten Host-Bus (16) mit der genannten ersten Gruppe ausgewählter Array-Busse (21-25) zu verbinden, und dadurch, daß das genannte Kopplungsmittel (10) ein Paritätserzeugungsmittel (110), zweite Verbindungsmittel (111-115), die so ausgestaltet sind, daß sie eine zweite Gruppe von ausgewählten Array-Bussen (21-25) mit dem Eingang des genannten Paritätserzeugungsmittels (110) verbinden, und dritte Verbindungsmittel (121-125) umfaßt, die so ausgestaltet sind, daß sie den Ausgang des genannten Paritätserzeugungsmittels (110) mit einer dritten Gruppe von ausgewählten Array-Bussen (21-25) verbinden.
2. Datenspeichersystem nach Anspruch 1, dadurch gekennzeichnet, daß das genannte Paritätserzeugungsmittel eine Exklusiv-ODER-Schaltung (110) beinhaltet.
3. Datenspeichersystem nach Anspruch 2, dadurch gekennzeichnet, daß das genannte Kopplungsmittel (10) vierte Verbindungsmittel (213-219) aufweist, die so ausgestaltet sind, daß sie den Ausgang der genannten Exklusiv-ODER-Schaltung (110) mit dem genannten Host-Bus (16) verbinden.
4. Datenspeichersystem nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß die genannten zweiten Verbindungsmittel jeweilige Multiplexer (111-115) aufweisen, die mit den genannten Array-Bussen (21-25) assoziiert sind, wobei jeder genannte Multiplexer (111-115) einen ersten Eingang, der mit seinem assoziierten Array-Bus (21-25) verbunden ist, einen zweiten Eingang, der mit einer Referenzspannungsquelle verbunden ist, einen Ausgang, der mit einem Eingang der genannten Exklusiv-ODER-Schaltung (110) verbunden ist, und einen Steuersignaleingang aufweist.
5. Datenspeichersystem nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, daß die genannten dritten Verbindungsmittel jeweilige Bustreiber (121-125) aufweisen, die mit den genannten Array-Bussen (21-25) assoziiert sind, wobei jeder Bustreiber (121-125) einen Eingang, der mit dem Ausgang der genannten Exklusiv-ODER-Schaltung (110) verbunden ist, einen Ausgang, der mit dem assoziierten Array-Bus (21-25) verbunden ist, und einen Steuersignaleingang aufweist.
6. Datenspeichersystem nach einem der Ansprüche 2 bis 5, gekennzeichnet durch ein temporäres Speichermittel (36), ein fünftes Verbindungsmittel (126), das so ausgestaltet ist, daß es den Ausgang der genannten Exklusiv-ODER- Schaltung (110) selektiv mit dem genannten temporären Speichermittel (36) verbindet, und ein sechstes Verbindungsmittel (116), das so ausgestaltet ist, daß es das genannte temporäre Speichermittel (36) selektiv mit einem Eingang der genannten Exklusiv-ODER-Schaltung (110) verbindet.
7. Datenspeichersystem nach Anspruch 6, gekennzeichnet durch einen Diagnosebus (53), siebte Verbindungsmittel (141-145), die so ausgestaltet sind, daß sie den genannten Diagnosebus (53) selektiv mit einer vierten Gruppe von ausgewählten Array-Bussen (21-25) verbinden, und ein achtes Verbindungsmittel (150), das so ausgestaltet ist, daß es den genannten Diagnosebus (53) selektiv mit dem genannten Host-Bus (16) verbindet.
8. Datenspeichersystem nach einem der vorherigen Ansprüche, gekennzeichnet durch eine Mehrzahl von steuerbaren Schnittstellengeräten (31-35), die so ausgestaltet sind, daß sie die genannten Array-Busse (21- 25) mit jeweiligen Laufwerksbussen (41-45) verbinden.
DE69230299T 1991-03-13 1992-03-11 Speicherplattenanordnungsteuerungsvorrichtung für eine Datenspeicherungsanordnung Expired - Lifetime DE69230299T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/668,660 US5345565A (en) 1991-03-13 1991-03-13 Multiple configuration data path architecture for a disk array controller

Publications (2)

Publication Number Publication Date
DE69230299D1 DE69230299D1 (de) 1999-12-23
DE69230299T2 true DE69230299T2 (de) 2000-06-21

Family

ID=24683251

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69230299T Expired - Lifetime DE69230299T2 (de) 1991-03-13 1992-03-11 Speicherplattenanordnungsteuerungsvorrichtung für eine Datenspeicherungsanordnung

Country Status (4)

Country Link
US (1) US5345565A (de)
EP (1) EP0508604B1 (de)
JP (1) JP3159768B2 (de)
DE (1) DE69230299T2 (de)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
US5487160A (en) * 1992-12-04 1996-01-23 At&T Global Information Solutions Company Concurrent image backup for disk storage system
GB2273584B (en) * 1992-12-16 1997-04-16 Quantel Ltd A data storage apparatus
DE4309148A1 (de) * 1993-03-22 1994-09-29 Siemens Nixdorf Inf Syst Disk-Array mit Lastverteilung
US5598549A (en) * 1993-06-11 1997-01-28 At&T Global Information Solutions Company Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver
JPH0793219A (ja) * 1993-09-20 1995-04-07 Olympus Optical Co Ltd 情報処理装置
US5546558A (en) * 1994-06-07 1996-08-13 Hewlett-Packard Company Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
JP2981711B2 (ja) * 1994-06-16 1999-11-22 日本アイ・ビー・エム株式会社 ディスク記憶装置
US5499341A (en) * 1994-07-25 1996-03-12 Loral Aerospace Corp. High performance image storage and distribution apparatus having computer bus, high speed bus, ethernet interface, FDDI interface, I/O card, distribution card, and storage units
US5634033A (en) * 1994-12-16 1997-05-27 At&T Global Information Solutions Company Disk array storage system architecture for parity operations simultaneous with other data operations
JPH08263225A (ja) * 1995-03-22 1996-10-11 Mitsubishi Electric Corp データストレージシステム及びストレージ管理方法
US5680538A (en) * 1995-08-10 1997-10-21 Dell Usa, L.P. System and method for maintaining a minimum quality of service during read operations on disk arrays
US5893138A (en) * 1995-10-02 1999-04-06 International Business Machines Corporation System and method for improving channel hardware performance for an array controller
US5740397A (en) * 1995-10-11 1998-04-14 Arco Computer Products, Inc. IDE disk drive adapter for computer backup and fault tolerance
US5774682A (en) * 1995-12-11 1998-06-30 International Business Machines Corporation System for concurrent cache data access by maintaining and selectively merging multiple ranked part copies
US6233704B1 (en) 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US6076142A (en) * 1996-03-15 2000-06-13 Ampex Corporation User configurable raid system with multiple data bus segments and removable electrical bridges
US5867736A (en) * 1996-03-29 1999-02-02 Lsi Logic Corporation Methods for simplified integration of host based storage array control functions using read and write operations on a storage array control port
JPH09305328A (ja) * 1996-05-13 1997-11-28 Fujitsu Ltd ディスクアレイ装置
US5805788A (en) * 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5761534A (en) * 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5862313A (en) * 1996-05-20 1999-01-19 Cray Research, Inc. Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US5819310A (en) * 1996-05-24 1998-10-06 Emc Corporation Method and apparatus for reading data from mirrored logical volumes on physical disk drives
US5881254A (en) * 1996-06-28 1999-03-09 Lsi Logic Corporation Inter-bus bridge circuit with integrated memory port
US5937174A (en) * 1996-06-28 1999-08-10 Lsi Logic Corporation Scalable hierarchial memory structure for high data bandwidth raid applications
US5856989A (en) * 1996-08-13 1999-01-05 Hewlett-Packard Company Method and apparatus for parity block generation
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US5835694A (en) * 1996-12-06 1998-11-10 International Business Machines Corporation Raid-configured disk drive array wherein array control occurs at the disk drive level
US5960169A (en) * 1997-02-27 1999-09-28 International Business Machines Corporation Transformational raid for hierarchical storage management system
US5951691A (en) * 1997-05-16 1999-09-14 International Business Machines Corporation Method and system for detection and reconstruction of corrupted data in a data storage subsystem
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
US6134630A (en) 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
US6085303A (en) * 1997-11-17 2000-07-04 Cray Research, Inc. Seralized race-free virtual barrier network
US6145028A (en) * 1997-12-11 2000-11-07 Ncr Corporation Enhanced multi-pathing to an array of storage devices
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
JP3033550B2 (ja) * 1998-01-13 2000-04-17 三菱電機株式会社 Scsiインタフェース接続装置、scsiコントローラ、scsiケーブル及びscsiバックプレーン
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
EP1153395A4 (de) * 1998-12-30 2002-04-17 Intel Corp Organisation eines speicherbausteins
US6532562B1 (en) * 1999-05-21 2003-03-11 Microsoft Corp Receiver-driven layered error correction multicast over heterogeneous packet networks
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6487613B1 (en) 1999-10-14 2002-11-26 Dell Products L.P. System for indicating channel availability by having a light emitting diode operative to signal of connection of a data storage device to an internal connector
JP2002023891A (ja) * 2000-05-01 2002-01-25 Matsushita Electric Ind Co Ltd 特定用途向けのプログラムを格納したモジュール
JP2007220136A (ja) * 2000-05-01 2007-08-30 Matsushita Electric Ind Co Ltd モジュールを装着可能なデータ端末装置
JP2007193841A (ja) * 2000-05-01 2007-08-02 Matsushita Electric Ind Co Ltd 特定用途向けのプログラムを格納したモジュール
US7404021B2 (en) 2000-11-17 2008-07-22 Aristos Logic Corporation Integrated input/output controller
US7146448B2 (en) * 2001-09-28 2006-12-05 Dot Hill Systems Corporation Apparatus and method for adopting an orphan I/O port in a redundant storage controller
US6839788B2 (en) * 2001-09-28 2005-01-04 Dot Hill Systems Corp. Bus zoning in a channel independent storage controller architecture
US7437493B2 (en) * 2001-09-28 2008-10-14 Dot Hill Systems Corp. Modular architecture for a network storage controller
US7315911B2 (en) * 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US7536495B2 (en) * 2001-09-28 2009-05-19 Dot Hill Systems Corporation Certified memory-to-memory data transfer between active-active raid controllers
US7340555B2 (en) * 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US7143227B2 (en) * 2003-02-18 2006-11-28 Dot Hill Systems Corporation Broadcast bridge apparatus for transferring data to redundant memory subsystems in a storage controller
US7062591B2 (en) * 2001-09-28 2006-06-13 Dot Hill Systems Corp. Controller data sharing using a modular DMA architecture
AU2002361603A1 (en) * 2001-11-09 2003-05-26 Chaparral Network Storage, Inc. Transferring data using direct memory access
US7543085B2 (en) 2002-11-20 2009-06-02 Intel Corporation Integrated circuit having multiple modes of operation
US7206989B2 (en) * 2002-11-20 2007-04-17 Intel Corporation Integrated circuit having multiple modes of operation
US7093033B2 (en) 2003-05-20 2006-08-15 Intel Corporation Integrated circuit capable of communicating using different communication protocols
US7543096B2 (en) * 2005-01-20 2009-06-02 Dot Hill Systems Corporation Safe message transfers on PCI-Express link from RAID controller to receiver-programmable window of partner RAID controller CPU memory
US7536508B2 (en) * 2006-06-30 2009-05-19 Dot Hill Systems Corporation System and method for sharing SATA drives in active-active RAID controller system
US7681089B2 (en) * 2007-02-20 2010-03-16 Dot Hill Systems Corporation Redundant storage controller system with enhanced failure analysis capability

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494196A (en) * 1981-05-19 1985-01-15 Wang Laboratories, Inc. Controller for peripheral data storage units
US4612613A (en) * 1983-05-16 1986-09-16 Data General Corporation Digital data bus system for connecting a controller and disk drives
US4958351A (en) * 1986-02-03 1990-09-18 Unisys Corp. High capacity multiple-disk storage method and apparatus having unusually high fault tolerance level and high bandpass
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
FR2615318A1 (fr) * 1987-05-11 1988-11-18 Optelec Applic Optiq Electro R Transformateur electrique pour four a micro-ondes
CA1296103C (en) * 1987-06-02 1992-02-18 Theodore Jay Goodlander High-speed, high capacity, fault-tolerant, error-correcting storage system
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
US5206943A (en) * 1989-11-03 1993-04-27 Compaq Computer Corporation Disk array controller with parity capabilities
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5130992A (en) * 1990-04-16 1992-07-14 International Business Machines Corporaiton File-based redundant parity protection in a parallel computing system
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
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system

Also Published As

Publication number Publication date
EP0508604A3 (en) 1993-09-22
EP0508604B1 (de) 1999-11-17
JPH06180623A (ja) 1994-06-28
EP0508604A2 (de) 1992-10-14
JP3159768B2 (ja) 2001-04-23
US5345565A (en) 1994-09-06
DE69230299D1 (de) 1999-12-23

Similar Documents

Publication Publication Date Title
DE69230299T2 (de) Speicherplattenanordnungsteuerungsvorrichtung für eine Datenspeicherungsanordnung
DE69331369T2 (de) Betriebsverfahren einer Speicherplattenanordnung
DE69814579T2 (de) Parallel arbeitende exklusiv-oder-einheit
DE69529728T2 (de) Speicherplattenanordnungsgerät
DE69127895T4 (de) Logisches spurschreibzuordnungssystem für paralleles plattenlaufwerksmatrixdatenspeicherungsuntersystem
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE69733076T2 (de) Hochleistungsdatenweg mit sofortigem xor
DE3382592T2 (de) Zweifachbusstruktur fuer die rechnerverbindung.
DE69632424T2 (de) Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
DE69215538T2 (de) Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung
DE69227896T2 (de) Paritätsberechnung in einer effizienten matrix von massenspeichergeräten
DE3881786T2 (de) Identifizierung von Datenspeicherungseinrichtungen.
DE69322310T2 (de) Busarchitektur für integrierten Daten/- und Videospeicher
DE69131480T2 (de) Speicher für platteneinheit
DE68919219T2 (de) Speicher für platteneinheit.
DE68923026T2 (de) Speicherdiagnosegerät und Verfahren.
DE3586487T2 (de) Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern.
DE69834026T2 (de) Verfahren und vorrichtung zur befehlswiedereinordnung und wiederherstellung von daten zur originalen befehlsreihenfolge
DE3438869C2 (de)
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69409602T2 (de) Datenspeicherungssystemarchitektur
DE69807101T2 (de) Segmentiertes dma mit xor-puffer für speicheruntersysteme
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: V. BEZOLD & SOZIEN, 80799 MUENCHEN

8327 Change in the person/name/address of the patent owner

Owner name: HYNIX SEMICONDUCTOR INC., ICHON, KYONGGI, KR

Owner name: NCR INTERNATIONAL, INC., DAYTON, OHIO, US

8327 Change in the person/name/address of the patent owner

Owner name: MAGNACHIP SEMICONDUCTOR, LTD., CHEONGJU, KR

Owner name: NCR INTERNATIONAL, INC., DAYTON, OHIO, US