DE69930307T2 - Datenspeichersystem - Google Patents

Datenspeichersystem Download PDF

Info

Publication number
DE69930307T2
DE69930307T2 DE69930307T DE69930307T DE69930307T2 DE 69930307 T2 DE69930307 T2 DE 69930307T2 DE 69930307 T DE69930307 T DE 69930307T DE 69930307 T DE69930307 T DE 69930307T DE 69930307 T2 DE69930307 T2 DE 69930307T2
Authority
DE
Germany
Prior art keywords
data
double
write
bus
director
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
DE69930307T
Other languages
English (en)
Other versions
DE69930307D1 (de
Inventor
Brian Leicester ARSENAULT
W. Victor Shrewsbury TUNG
Stoddard Jeffrey Needham KINNE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of DE69930307D1 publication Critical patent/DE69930307D1/de
Application granted granted Critical
Publication of DE69930307T2 publication Critical patent/DE69930307T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)

Description

  • Hintergrund der Erfindung
  • Die Erfindung betrifft allgemein Datenspeichersysteme, und insbesondere Datenspeichersysteme, die Redundanzanordnungen haben, um im Falle eines Versagens einer Komponente oder Baugruppe des Speichersystems vor einem Totalausfall des Systems geschützt zu sein.
  • Wie auf dem Fachgebiet bekannt ist, erfordern große Zentralrechnersysteme Datenspeichersysteme mit großer Speicherkapazität. Diese großen Zentralrechnersysteme weisen allgemein Datenprozessoren auf, die viele Operationen an Daten ausführen, die durch Peripherieeinrichtungen, einschließlich des Datenspeichersystems, in das Rechnersystem eingegeben werden. Die Ergebnisse dieser Operationen werden zu den Peripherieeinrichtungen, einschließlich des Datenspeichersystems, ausgegeben.
  • Ein Typ eines Datenspeichersystems ist ein Magnetplattenspeichersystem. Hierbei sind mehrere Platteneinheiten (Plattenspeicherbank) und das Zentralrechnersystem über eine Schnittstelle miteinander verbunden. Die Schnittstelle weist CPU- oder "vordere" Steuerungen (oder Direktoren) und "hintere" Plattensteuerungen (oder Direktoren) auf. Die Schnittstelle betreibt die Steuerungen (oder Direktoren) auf eine solche Weise, daß sie dem Rechner transparent sind. Das heißt, Daten werden auf eine solche Weise in der Plattenspeicherbank gespeichert oder von dort herausgeholt, daß das Zentralrechnersystem denkt, daß es nur mit einem einzigen Zentralspeicher arbeitet. Ein solches System ist beschrieben im US-Patent 5 206 939 mit dem Titel "System and Method for Disk Mapping and Data Retrieval", Erfinder Moshe Yanai, Natan Vishlitzky, Bruno Alterescu und Daniel Castel, herausgegeben am 27. April 1993 und auf den gleichen Zessionar übertragen wie die vorliegende Erfindung.
  • Wie in diesem US-Patent beschrieben, kann die Schnittstelle zusätzlich zu den CPU-Steuerungen (oder Direktoren) und Plat tensteuerungen (oder Direktoren) auch adressierbare Cachespeicher aufweisen. Der Cachespeicher ist ein Halbleiterspeicher und ist vorgesehen, um Daten aus dem Zentralrechnersystem schnell zu speichern, bevor sie in den Platteneinheiten gespeichert werden, und andererseits Daten aus den Platteneinheiten zu speichern, bevor sie zum Zentralrechner geschickt werden. Da der Cachespeicher ein Halbleiterspeicher ist, im Unterschied zu den Platteneinheiten, die Magnetspeicher sind, liest und schreibt er Daten viel schneller als die Platteneinheiten.
  • Die CPU-Steuerungen, Plattensteuerungen und der Cachespeicher sind über eine gedruckte "Backplane"-Schaltkarte miteinander verbunden. Insbesondere sind Plattensteuerungen an gedruckten Plattensteuerung-Schaltkarten angebracht. CPU-Steuerungen sind an gedruckten CPU-Steuerung-Schaltkarten angebracht. Und Cachespeicher sind an gedruckten Cachespeicher-Schaltkarten angebracht. Die Plattensteuerung-, CPU-Steuerung- und Cachespeicher-Schaltkarten stecken in der gedruckten "Backplane"-Schaltkarte. Um im Falle eines Ausfalls einer Steuerung Datenintegrität bereitzustellen, hat die gedruckte "Backplane"-Schaltkarte einen Systembus, der aus einem Buspaar besteht. Ein Satz Plattensteuerungen ist mit dem einen Bus verbunden und ein anderer Satz Plattensteuerungen ist mit dem anderen Bus verbunden. Ebenso ist ein Satz CPU-Steuerungen mit dem einen Bus verbunden und ein anderer Satz CPU-Steuerungen ist mit dem anderen Bus verbunden. Die Cachespeicher sind mit beiden Bussen verbunden. Jeder der Busse stellt Daten, Adreß- und Steuerinformation bereit.
  • Somit stellt die Verwendung von zwei Bussen einen Grad an Redundanz bereit, um in dem Fall, daß die Steuerungen oder Platteneinheiten, die mit dem einen Bus verbunden sind, versagen, vor einem Totalausfall des Systems geschützt zu sein. Ferner erhöht die Verwendung von zwei Bussen die Datenübertragungsbandbreite des Systems im Vergleich zu einem System mit einem einzigen Bus.
  • Die US 5 819 045 A offenbart ein Verfahren zum Ermitteln eines Netzwerk-Leistungsfähigkeitsindexes (NCI), der die Last, die ein Rechner einem Rechnernetz auferlegt, repräsentiert.
  • Gemäß der Erfindung wird ein Datenspeichersystem mit den Merkmalen von Anspruch 1 bereitgestellt.
  • In einer bevorzugten Ausführungsform wird ein Datenspeichersystem bereitgestellt, in welchem ein Hostrechner über eine Schnittstelle mit einer Plattenspeicherbank verbunden ist. Die Schnittstelle weist einen Systemspeicher auf, der zwei Systemspeichersektionen aufweist. Jede Speichersektion hat mehrere adressierbare Orte zum Speichern der in diese Speichersektion an den adressierbaren Orten geschriebenen Daten. Ein Systembus ist mit den zwei Systemspeichersektionen verbunden. Mehrere Direktoren sind über den Systembus mit dem Systemspeicher verbunden, wobei die Direktoren konfiguriert sind, um die Datenübertragung zwischen dem Hostrechner und der Plattenspeicherbank zu steuern, wenn die Daten durch den Systemspeicher hindurchgehen. Die Direktoren sind konfiguriert, um das System in einen Doppelschreibmodus zu setzen und in diesem Modus ein zwischen dem Hostrechner und der Plattenspeicherbank zu übertragendes Datenbündel bei sich zu speichern, dieses gespeicherte Bündel von Daten sequentiell zum Systembus zu übertragen und zu ermöglichen, daß in beide mit diesem Systembus verbundene Speichersektionen an dem gleichen adressierbaren Ort das gleiche sequentiell zu dem Systembus übertragene Datenbündel hineingeschrieben wird.
  • Gemäß einem anderen Merkmal weist die Schnittstelle einen Systemspeicher mit zwei Systemspeichersektionen auf. Jede Systemspeichersektion hat mehrere adressierbare Orte, um die in diese Speichersektion an den adressierbaren Orten hineingeschriebenen Daten zu speichern. Ein Systembus, der zwei Systembusse aufweist, ist bereitgestellt, wobei jeder der zwei Systembusse mit der entsprechenden Sektion der zwei Systemspeichersektionen verbunden ist. Mehrere Direktoren sind über den Systembus mit dem Systemspeicher verbunden. Die Direktoren sind konfiguriert, um die Datenübertragung zwischen dem Hostrechner und der Plattenspeicherbank zu steuern, wenn die Daten durch den Systemspeicher hindurchgehen. Die Direktoren sind konfiguriert, um das System in einen Doppelschreibmodus zu setzen und in diesem Modus ein zwischen dem Hostrechner und der Plattenspeicherbank zu übertragendes Datenbündel bei sich zu spei chern, dieses gespeicherte Datenbündel sequentiell zu den zwei Systembussen zu übertragen und zu ermöglichen, daß in beide mit diesen Systembussen verbundene Speichersektionen an dem gleichen adressierbaren Ort das gleiche sequentiell zu den zwei Systembussen übertragene Datenbündel hineingeschrieben wird.
  • Gemäß einem anderen Merkmal speichern während des Doppelschreibmodus die Direktoren zwischen dem Hostrechner und der Plattenspeicherbank zu übertragende Datenbündel bei sich. Jedes in dem Direktor gespeicherte Datenbündel wird dann während eines Speicherzyklus zu einem der zwei mit diesem Direktor verbundenen Systembusse übertragen und während des nächsten Speicherzyklus wird dann das gleiche Datenbündel noch einmal übertragen, aber dieses Mal zu dem anderen der zwei mit diesem Direktor verbundenen Systembusse. Somit wird das gleiche gespeicherte Datenbündel sequentiell zu den beiden mit diesem Direktor verbundenen Systembussen übertragen. Der Direktor ermöglicht, daß sequentiell in beide mit beiden Systembussen verbundene Speichersektionen an den gleichen adressierbaren Orten das gleiche Datenbündel hineingeschrieben wird, das sequentiell zu jedem der zwei mit dem Direktor verbundenen Systembusse übertragen worden ist. Somit sind nach den zwei Systemspeicherzyklen das Datenbündel und eine Kopie dieses Datenbündels an dem gleichen adressierbaren Ort beider Speichersektionen gespeichert. Folglich sind redundante Datenbündel in dem Systemspeicher gespeichert.
  • Gemäß einem anderen Merkmal ist ein Doppelschreibbus mit den mehreren Direktoren verbunden. Jeder Direktor weist auf: (a) einen Direktorspeicher zum Speichern des entweder von dem Hostrechner oder der Plattenspeicherbank aus zugeführten Datenbündels; und (b) eine Doppelschreibsteuerung. Die Doppelschreibsteuerung ist in der Lage, (i) als Antwort auf einen dem System zugeführten Doppelschreibmodusbefehl einen Doppelschreib-Interrupt an dem Doppelschreibbus bereitzustellen; (ii) einen am Doppelschreibbus erzeugten Doppelschreib-Interrupt zu empfangen; und (iii) als Antwort auf den am Doppelschreibbus empfangenen Doppelschreib-Interrupt sequentiell das im Direktorspeicher gespeicherte Datenbündel an den zwei Systembussen anzuordnen, um es sequentiell in beiden System speichersektionen an den gleichen adressierbaren Orten zu speichern.
  • Gemäß einem weiteren Merkmal ist das System in der Lage, zu einem Nichtdoppelschreibmodus zurückzukehren, wenn als Antwort auf eine dem System bereitgestellte Rücksetzbedingung jeder der mehreren Direktoren in einen Nichtdoppelschreibmodus zurückgesetzt ist. Im Nichtdoppelschreibmodus ist jeder der Direktoren in der Lage, das im Direktorspeicher gespeicherte Datenbündel an einem ausgewählten der zwei Systembusse anzuordnen, um diese gespeicherten Daten in derjenigen Systemspeichersektion zu speichern, die mit diesem ausgewählten Systembus verbunden ist.
  • Gemäß einem weiteren Merkmal ist jeder Direktor in der Lage, einen Fehler bei der Übertragung der Daten zwischen dem Direktor und jeder der Systemspeichersektionen zu erkennen. Als Antwort auf einen erkannten Fehler zwischen dem Direktor und einer der zwei Systemspeichersektionen ist jeder Direktor in der Lage, anschließende Datenübertragungen zwischen dem Direktor und der anderen der zwei Systemspeichersektionen zu erzwingen.
  • Kurze Beschreibung der Zeichnung
  • Diese und weitere Merkmale der Erfindung werden aus der folgenden detaillierten Beschreibung schneller ersichtlich, wenn sie zusammen mit den beiliegenden Zeichnungen gelesen wird, die zeigen:
  • 1 ist ein erfindungsgemäßes Datenspeichersystem, das in der Lage ist, in einem Doppelschreibmodus oder in einem Nichtdoppelschreibmodus zu arbeiten;
  • 2 ist ein Blockdiagramm eines beispielhaften Speichers, der für eine Verwendung in dem System von 1 geeignet ist;
  • 3 ist ein Blockdiagramm eines erfindungsgemäßen hinteren Direktors, der für eine Verwendung in dem System von 1 geeignet ist;
  • 4 ist ein Blockdiagramm eines erfindungsgemäßen vorderen Direktors, der für eine Verwendung in dem System von 1 geeignet ist;
  • 5 ist ein Blockdiagramm einer erfindungsgemäßen Doppelschreib-HIGH/LOW-Zwang-Steuerung, die für eine Verwendung in den vorderen und hinteren Direktoren von 3 und 4 geeignet ist;
  • 6 ist ein Flußdiagramm eines in den Direktoren von 3 und 4 gespeicherten Programms, das in der Lage ist, das System von 1 in einen Doppelschreibmodus zu setzen;
  • 7 ist ein Flußdiagramm eines in den Direktoren von 3 und 4 gespeicherten Programms, das in der Lage ist, das System von 1 aus dem Doppelschreibmodus in einen Nichtdoppelschreibmodus zu setzen; und
  • 8 ist ein Flußdiagramm eines in den Direktoren von 3 und 4 gespeicherten Programms, das in der Lage ist, das System von 1 in einen erzwungenen HIGH/LOW-Modus zu setzen.
  • Beschreibung der bevorzugten Ausführungsformen
  • Mit Bezug auf 1 ist ein Datenspeichersystem 10 gezeigt, in welchem ein Hostrechner 12 über eine Systemschnittstelle 16 mit einer Gruppe 14 von Platteneinheiten (Plattenspeicherbank 14) verbunden ist. Die Systemschnittstelle 16 weist einen System- oder Cachespeicher 18 auf, der Speichersektionen mit hohen Adressen (Hochadreß-Speichersektion) 18H und Speichersektionen 18L mit niedrigen Adressen (Niederadreß-Speichersektionen) hat. Mehrere Direktoren 200 2015 sind bereitgestellt, um die Datenübertragung zwischen dem Hostrechner 12 und der Plattenspeicherbank 14 zu steuern, wenn diese Daten durch den Systemspeicher 18 laufen. Das System 10 weist einen Systembus 17 auf, der vier Systembusse aufweist, einen oberen Hochadreßspeicher-Bus TH, einen oberen Niederadreßspeicher-Bus TL, einen unteren Hochadreßspeicher-Bus BH und einen unteren Niederadreßspeicher-Bus BL, wie detaillierter in der US-A-6 289 401 beschrieben ist. Insbesondere sind die Hochadreß-Systembusse TH, BH elektrisch mit den Hochadreß-Speichersektionen 18H verbunden. Die Niederadreß-Systembusse TL, BL sind elektrisch mit den Niederadreß-Speichersektionen 18L verbunden. Jeder der Direktoren 200 2015 ist mit zwei Systembussen verbunden; wobei der eine Bus ein Hochadreßbus ist und der andere ein Niederadreßbus ist. Somit ist jeder der Direktoren 200 2015 mit den zwei Systemspeichersektionen 18H und 18L verbunden.
  • Hierbei sind während eines Nichtdoppelschreibmodus die Speicherorte des Systemspeichers 18, die die höheren Adressen haben, in den Hochadreß-Speichersektionen 18H und sind die Speicherorte, die die niedrigeren Adressen haben, in den Niederadreß-Speichersektionen 18L. Es ist anzumerken, daß jeder der Direktoren 200 2015 mit einem der zwei Hochadreß-Systembusse TH, BH und mit einem der zwei Niederadreß-Systembusse TL, BL elektrisch verbunden ist. Somit ist jeder der Direktoren 200 2015 in der Lage, alle Orte im gesamten Systemspeicher 18 (d.h. sowohl die Hochadreß-Speichersektionen 18H als auch die Niederadreß-Speichersektionen 18L) zu adressieren und ist daher in der Lage, an irgendeinem Speicherort im gesamten Systemspeicher 18 Daten zu speichern oder von dort herauszuholen. Während die Systembusse BH, BL, TH, TL dem Speicher 18 Daten, Adressen und Speichersteuerung (d.h. Schreibfreigabe, Lesefreigabe) bereitstellen, weist das System 10 außerdem einen Doppelschreib-Steuersignal-Bus DW auf, der, wie gezeigt, mit allen Direktoren verbunden ist.
  • Insbesondere ist ein hinterer Teil der Direktoren, hier die Direktoren 200 203 und 2012 2015 , jeweils über I/O-Adapterkarten 220 223 und 2212 2215 elektrisch mit der Plattenspeicherbank 14 verbunden und ist ein vorderer Teil der Direktoren, hier die Direktoren 204 2011 , jeweils über I/O-Adapterkarten 224 2211 elektrisch mit dem Hostrechner 12 verbunden. Es ist auch anzumerken, daß jedes Ende der Busse TH, TL, BH, BL mit einem Paar "Master-Slave-Arbiter-Anordnungen" verbunden ist, die nicht gezeigt sind und detailliert in Verbindung mit der oben erwähnten anhängigen Patenanmeldung beschrieben sind.
  • Wie nachstehend detailliert beschrieben wird, ist das System 10 in der Lage, in mehreren Modi zu arbeiten. Ein Modus ist ein Nichtdoppelschreibmodus, ein anderer Modus ist ein Doppelschreibmodus und ein weiterer Modus ist ein erzwungener HIGH/LOW-Modus. Zunächst ist anzumerken, daß die zwischen dem Hostrechner 12 und der Plattenspeicherbank 14 zu übertragenden Daten als eine Serie von Bündeln dieser Daten übertragen werden. Ferner ist anzumerken, daß die Direktoren 200 2015 die zwischen dem Hostrechner 12 und der Plattenspeicherbank 14 zu übertragenden Datenbündel speichern. Während eines Nichtdoppel schreibmodus wird das gespeicherte Datenbündel von dem diese Daten speichernden Direktor zu einem der zwei mit ihm verbundenen Systembusse übertragen, um es temporär im Systemspeicher 18 zu speichern. Jedoch wird im Doppelschreibmodus das in dem Direktor gespeicherte Datenbündel sequentiell zu beiden mit diesem Direktor verbundenen Bussen übertragen. Die Direktoren ermöglichen, daß in beide mit diesen beiden Bussen verbundenen Speichersektionen 18H und 18L an den gleichen adressierbaren Orten das sequentiell zu dem Bus übertragene Datenbündel hineingeschrieben wird. Somit sind für eine Redundanz zwei Kopien des gleichen Datenbündels in den zwei Speichersektionen 18H, 18L gespeichert.
  • Ferner ist jeder der Direktoren 200 2015 in der Lage, einen Fehler bei der Übertragung der Daten zwischen dem Direktor und den Speichersektionen 18H und 18L zu erkennen. Jeder der Direktoren ist in der Lage, als Antwort auf einen erkannten Fehler zwischen dem Direktor und einer der zwei Speichersektionen 18H, 18L anschließende Datenübertragungen zwischen dem Direktor und der anderen der zwei Speichersektionen zu erzwingen. Betrachtet man also den Direktor 204 , der mit den Bussen BL und TH verbunden ist: wenn dieser Direktor ein bei sich gespeichertes Datenbündel über den Systembus TH zur Speichersektion 18H übertragen soll und wenn mit einer Schaltung zur Fehlererkennung und -korrektur (EDAC) oder einer "Zeitüberschreitung"-Schaltung (nicht gezeigt) ein Fehler bei dieser Übertragung in der Speichersektion 18H oder dem Direktor 204 erkannt wird, dann wird das System 10 von diesem Direktor 204 in den erzwungenen HIGH/LOW-Modus (nachstehend beschrieben) gesetzt. Insbesondere erzwingt in diesem Beispiel der Direktor 204 , daß alle Übertragungen von Datenbündeln zu dem mit ihm verbundenen anderen Speicher, hier über den Systembus BL zur Speichersektion 18L, erfolgen, bis der Fehler korrigiert ist.
  • Betrachtet sei nun der allgemeine Betriebsablauf des Systems 10: Wenn der Hostrechner 12 eine Speicherung von Daten wünscht, schickt der Hostrechner 12 zu einem der vorderen Direktoren 204 2011 eine Schreibanforderung zur Ausführung eines Schreibbefehls. Einer der vorderen Direktoren 204 2011 antwortet auf die Anforderung und bittet den Hostrechner 12 um die Daten. Nachdem die Anforderung dem anfordernden der vorderen Direktoren 204 2011 übergeben worden ist, bestimmt der Direktor die Datengröße und reserviert Platz im Systemspeicher 18, um die Anforderung zu speichern. Der vordere Direktor erzeugt dann Steuersignale, um für den gegebenen Bus zu entscheiden, an entweder einem Hochadreßspeichersystembus (TH oder BH) oder einem Niederadreßspeichersystembus (TL oder BL), die mit diesem vorderen Direktor verbunden sind, abhängig von dem zur Speicherung der Daten zugewiesenen Ort im Systemspeicher 18 und um die Übertragung zum Systemspeicher 18 freizugeben. Der Hostrechner 12 überträgt dann die Daten als Datenbündel zum vorderen Direktor. Der vordere Direktor meldet dann dem Hostrechner 12, daß die Übertragung abgeschlossen ist. Der vordere Direktor schaut in einer im Systemspeicher 18 gespeicherten Tabelle (nicht gezeigt) nach, um zu bestimmen, welcher der hinterer Direktoren 200 203 und 2012 2015 diese Anforderung erledigen soll. Die Tabelle ordnet der Adresse des Hostrechners 12 eine Adresse in der Plattenspeicherbank 14 zu. Der vordere Direktor legt dann eine Mitteilung in einen "Postkasten" (nicht gezeigt und im Systemspeicher 18 gespeichert) für den hinteren Direktor, der die Anforderung, die Datenmenge und die Plattenadresse für die Daten bearbeiten soll. Andere hintere Direktoren, wenn sie im Leerlauf sind, rufen den Systemspeicher 18 ab, um ihre "Postkästen" zu überprüfen. Wenn der abgerufene "Postkasten" eine auszuführende Übertragung anzeigt, bearbeitet der hintere Direktor die Anforderung, adressiert die Platteneinheit in der Bank, liest die Daten aus dem Systemspeicher 18 aus und schreibt sie in die Adressen einer Platteneinheit in der Bank 14. Wenn Daten aus der Plattenspeicherbank 14 zum Hostrechner 12 auszulesen sind, arbeitet das System 10 in umgekehrter Weise.
  • Wie oben kurz angemerkt, sind die Direktoren 200 2015 konfiguriert, um das System 10 in einen Doppelschreibmodus zu setzen. In diesem Doppelschreibmodus speichern die Direktoren 200 2015 die zwischen dem Hostrechner 12 und der Plattenspeicherbank 14 zu übertragenden Datenbündel bei sich. Jedes in dem Direktor gespeicherte Datenbündel wird dann während eines Speicherzyklus zu einem der beiden mit diesem Direktor verbundenen Systembusse übertragen und im nächsten Speicherzyklus wird das gleiche Datenbündel dann noch einmal übertragen, aber dieses Mal zum anderen der mit diesem Direktor verbundenen beiden Systembusse. Somit wird das gleiche gespeicherte Datenbündel sequentiell zu beiden mit diesem Direktor verbundenen Systembussen übertragen. Der Direktor ermöglicht, daß sequentiell in beide mit den zwei Systembussen verbundene Speichersektionen 18H und 18L an den gleichen adressierbaren Orten das gleiche Datenbündel eingeschrieben wird, das sequentiell zu jedem der zwei mit dem Direktor verbundenen Systembusse übertragen worden ist. Betrachtet man zum Beispiel den Direktor 204 , dann läuft während des Doppelschreibmodus ein Datenbündel von dem Hostrechner 12 aus zu diesem Direktor 204 und wird in diesem Direktor 204 gespeichert. Das gespeicherte Datenbündel wird dann zusammen mit einer Adresse, an welche dieses Datenbündel in die Speichersektion 18L einzuschreiben ist, während eines Systemspeicherzyklus zum Beispiel zum Systembus BL übertragen. Während des nächsten Systemspeicherzyklus wird das gleiche Datenbündel zusammen mit dem gleichen adressierbaren Ort, der zur Speicherung in der Speichersektion 18L verwendet worden ist, zum Systembus TH übertragen. Somit wird während des zweiten Speicherzyklus das gleiche Datenbündel in der Speichersektion 18H an dem gleichen adressierbaren Ort gespeichert, wie das Datenbündel in der Speichersektion 18L gespeichert wurde. Somit sind nach den zwei Systemspeicherzyklen das Datenbündel und eine Kopie dieses Datenbündels an dem gleichen adressierbaren Ort beider Speichersektionen 18H und 18L gespeichert. Folglich sind im Systemspeicher 18 redundante Datenbündel gespeichert.
  • Als ein Beispiel für die Speichersektionen 18H, 18L ist hier in 2 Sektion 18H gezeigt, um mehrere, hier vier, DRAM-Sektionen aufzuweisen, die, wie gezeigt, über Busschnittstellen und ASIC-Steuerlogik mit dem oberen und unteren Bus verbunden sind.
  • Jeder des hinteren Teils der Direktoren 200 203 und 2012 2015 hat einen identischen Aufbau, ein Beispiel dafür, hier hinterer Direktor 200 , ist in 3 gezeigt, um aufzuweisen: zwei Zentralprozessorabschnitte CPU X und CPU Y, eine Dualport-Speichersektion mit wahlfreiem Zugriff (Dualport-RAM-Sektion) zum Speichern der Datenbündel, welche einen mit der Y-CPU verbundenen Dualport-RAM-Y und einen mit der X-CPU verbundenen Dualport-RAM-X aufweist, gemeinsame Betriebsmittel (Flashspeicher, unter anderem zum Speichern von Programmen, die Flußdiagramme einiger davon sind in 6, 7 und 8 gezeigt, usw.), zwei Backplane-Schnittstellen 22H, 22L, zwei Datenlatchschaltungen 24H, 24L, zwei Adressenlatchschaltungen 26H, 26L, zwei I/O-Backplane-Schnittstellen 281 , 282 und ein Doppelschreib-HIGH/LOW-Zwang-Steuerabschnitt 30 (der detailliert in Verbindung mit 5 beschrieben wird), alle wie gezeigt angeordnet. Der X- und der Y-CPU-Abschnitt sind durch eine I/O-Adapterkarte 220 (1) über eine I/O-Backplaneabschnitt-Schnittstelle 281 , 282 mit der Plattenspeicherbank 14 verbunden. Anzumerken ist, daß der Direktor einen primären Ausgangsanschluß P und einen sekundären Ausgangsanschluß S hat. Wie in Verbindung mit der oben erwähnten anhängigen Patentanmeldung detailliert beschrieben, ist der primäre Anschluß P sowohl mit der I/O-Backplane-Schnittstelle 281 als auch der I/O-Backplane-Schnittstelle 282 verbunden. Ebenso ist der sekundäre Anschluß S sowohl mit der I/O-Backplane-Schnittstelle 282 als auch der I/O-Backplane-Schnittstelle 281 verbunden.
  • Die Dualport-RAM-Sektion des Direktors 200 ist verbunden mit: (1) einem Hochadreß-Speicherbus, hier BH, über die Datenlatchschaltung 24H und die Backplane-Abschnitt-Schnittstelle 22H; und (2) einem Niederadreß-Speicherbus, hier TL, über die Datenlatchschaltung 24L und die Backplane-Abschnitt-Schnittstelle 22L, wie gezeigt. Daten (d.h. Datenbündel) werden als Antwort auf Latchsignale, die von dem Doppelschreib/HIGH/LOW-Zwang-Steuerabschnitt 30 auf Leitungen 32H bzw. 32L zugeführt werden, in den Datenlatchschaltungen 32H bzw. 32L gespeichert. Wie oben angemerkt, wird der Doppelschreib/HIGH/LOW-Zwang-Steuerabschnitt 30 detailliert in Verbindung mit 5 beschrieben. Es genügt hier jedoch zu sagen, daß dieser Abschnitt 30 in der Lage ist, (i) als Antwort auf einen dem System 10 zugeführten Doppelschreibmodusbefehl einen globalen Doppelschreib-Interrrupt (GLB_DW) an dem Doppelschreibbus DW bereitzustellen; (ii) einen von einem der anderen Direktoren 201 2015 an dem Doppelschreibbus DW erzeugten globa len Doppelschreib-Interrupt (GLB_DW) zu empfangen und (iii) als Antwort auf den an dem Doppelschreibbus DW empfangenen globalen Doppelschreib-Interrupt (GLB_DW) (entweder auf den GLB_DW, den er erzeugte, oder denjenigen, der von irgendeinem der anderen Direktoren erzeugt wurde) sequentiell das im Dualport-RAM gespeicherte Datenbündel an beiden mit diesem Direktor verbundenen Systembussen BH, TL an dem gleichen adressierbaren Ort anzuordnen. Hier sequentiell das im Dualport-RAM gespeicherte Datenbündel an beiden mit diesem Direktor verbundenen Systembussen BH und TL an dem gleichen adressierbaren Ort anzuordnen, wie oben beschrieben. Selbstverständlich ist der Abschnitt 30 so konfiguriert, daß, wenn dem System 10 ein Doppelschreibmodusbefehl nicht zugeführt worden ist (d.h. wenn das System 10 in einem Nichtdoppelschreibmodus ist), das Datenbündel in dem Dualport-RAM an einem der zwei Systembusse angeordnet wird, hier entweder BH oder TL, mit unterschiedlichen adressierbaren Orten. Wenn das System 10 in einen Doppelschreibmodus gesetzt worden ist, ist dieser Abschnitt 30 außerdem in der Lage, zu einem Nichtdoppelschreibmodus zurückzukehren, wenn jeder der mehreren Direktoren 200 2015 als Antwort auf eine dem System 10 zugeführte Rücksetzbedingung in einen Nichtdoppelschreibmodus zurückgesetzt worden ist. Wie oben erwähnt, ist außerdem jeder der Direktoren 200 2015 in der Lage, einen Fehler bei der Übertragung der Daten zwischen dem Direktor und den Speichersektionen 18H und 18L zu erkennen. Jeder der Direktoren ist in der Lage, als Antwort auf einen erkannten Fehler zwischen dem Direktor und einer der Speichersektionen 18H, 18L anschließende Datenübertragungen zwischen dem Direktor und dem anderen Speicher zu erzwingen. Betrachtet man den Direktor 204 , der mit den Bussen TL und BH verbunden ist: falls dieser Direktor ein bei sich gespeichertes Datenbündel über den Bus BH zur Speichersektion 18H übertragen soll und bei dieser Übertragung ein Fehler mit Hilfe einer EDAC- oder "Zeitüberschreitung" schaltung in der Speichersektion 18H oder dem Direktor 204 erkannt wird, so wird das System 10 von diesem Direktor 204 in den erzwungenen HIGH/LOW-Modus gesetzt. In diesem Beispiel erzwingt der Direktor 204 insbesondere, daß alle Übertragungen von Datenbündeln über den Bus TL zu dem mit ihm verbundenen anderen Speicher, hier zur Speichersektion 18L, erfolgen, bis der Fehler korrigiert ist.
  • Im einzelnen werden im Doppelschreibmodus von dem Steuerabschnitt 30 Latchfreigabesignale sequentiell an den Leitungen 32H und 32L erzeugt. Das heißt in diesem Beispiel, während eines Speicherzyklus wird ein Latchfreigabesignal zum Beispiel an der Leitung 32H erzeugt und während des nächsten Speicherzyklus wird ein Latchfreigabesignal an der Leitung 32L erzeugt. Als Antwort auf diese Latchfreigabesignale wird in diesem Beispiel das Datenbündel im Dualport-RAM sequentiell in den Datenlatchschaltungen 24H bzw. 24L gespeichert. Außerdem speichern im Doppelschreibmodus die Latchsignale an den Leitungen 32H, 32L eine gemeinsame Adresse entweder am Bus 34X oder Bus 34Y in die Adreßlatchschaltungen 26H oder 26L. Die in den Adreßlatchschaltungen 26H und 26L gespeicherte Adresse sieht den gleichen Adreßort im Systemspeicher 18 vor, wo dieses Datenbündel zu speichern ist. Es ist anzumerken, daß, wenn in diesem Beispiel das Datenbündel durch das Latchfreigabesignal an der Leitung 32H während eines Speicherzyklus von dem Dualport-RAM aus in die Datenlatchschaltung 24H gespeichert wird und die Adresse für dieses gespeicherte Datenbündel in die Adreßlatchschaltung 26H gespeichert wird, dieses gespeicherte Datenbündel zusammen mit seiner Adresse durch die Backplane-Schnittstelle 22H zum Hochadreß-Speichersystembus BH läuft. Wenn in diesem Beispiel ebenso das gleiche Datenbündel durch das Latchfreigabesignal an der Leitung 32L während des nächsten Speicherzyklus von dem Dualport-RAM aus in die Datenlatchschaltung 24L gespeichert wird und die Adresse für dieses gespeicherte Datenbündel in die Adreßlatchschaltung 26L gespeichert wird, läuft dieses gespeicherte Datenbündel zusammen mit seiner Adresse durch die Backplane-Schnittstelle 32L zum Niederadreß-Speichersystembus TL. Somit wird das Datenbündel, das von dem Dualport-RAM aus für eine Speicherung im Systemspeicher 18 übertragen wird, während eines Speicherzyklus zuerst zum Beispiel über die Datenlatchschaltung 24H und die Backplane-Schnittstelle 22H am Bus BH angeordnet und wird während des nächsten Speicherzyklus dann über die Datenlatchschaltung 24L und die Backplane-Schnittstelle 22L am Bus TL angeordnet.
  • Jeder des vorderen Teils der Direktoren 204 2011 hat einen identischen Aufbau, der im wesentlichen demjenigen der vorstehend in Verbindung mit 3 beschriebenen hinteren Direktoren entspricht. So ist ein Beispiel dafür, hier Direktor 204 , detailliert in 4 gezeigt, wobei entsprechende Elemente mit den gleichen Bezugszeichen bezeichnet sind, wie sie in 3 verwendet sind. So ist der beispielhafte vordere Direktor 204 gezeigt, um aufzuweisen: zwei Zentralprozessorabschnitte (d.h. CPU X und CPU Y), eine Dualport-Speichersektion mit wahlfreiem Zugriff (Dualport-RAM-Sektion), die einen mit der Y-CPU verbundenen Dualport-RAM-Y und einen mit der X-CPU verbundenen Dualport-RAM-X aufweist, gemeinsame Betriebsmittel (Flashspeicher usw.), zwei Backplane-Schnittstellen 22H, 22L, zwei Datenlatchschaltungen 24H, 24L, zwei Adreßlatchschaltungen 26H, 26L, zwei I/O-Backplane-Schnittstellen 281 , 282 und einen Doppelschreib/HIGH/LOW-Zwang-Steuerabschnitt 30 (der in Verbindung mit 5 detailliert beschrieben wird), alle wie gezeigt angeordnet. Der X- und der Y-CPU-Abschnitt sind durch eine I/O-Adapterkarte 224 (1) über eine I/O-Backplaneabschnitt-Schnittstelle 281 , 282 mit dem Hostrechner 12 verbunden, wie gezeigt ist.
  • Wie bei den hinterer Direktoren ist die Dualport-RAM-Sektion verbunden mit: (1) einem Hochadreß-Speicherbus, hier TH, über die Datenlatchschaltung 24H und die Backplane-Abschnitt-Schnittstelle 22H; und (2) einem Niederadreß-Speicherbus, hier BL, über die Datenlatchschaltung 24L und Backplane-Abschnitt-Schnittstelle 22L, wie gezeigt. Daten (d.h. Datenbündel) werden als Antwort auf Latchsignale, die von dem Doppelschreib/HIGH/LOW-Zwang-Steuerabschnitt 30 auf Leitungen 32H bzw. 32L zugeführt werden, in den Datenlatchschaltungen 24H bzw. 24L gespeichert. Wie oben angemerkt, ist der Abschnitt 30 in der Lage, (i) als Antwort auf einen dem System 10 zugeführten Doppelschreibmodusbefehl einen globalen Doppelschreib-Interrrupt (GLB_DW) an dem Doppelschreibbus DW bereitzustellen; (ii) einen von einem der anderen Direktoren 201 2015 an dem Doppelschreibbus DW erzeugten globalen Doppelschreib-Interrupt (GLB_DW) zu empfangen und (iii) als Antwort auf den am Doppelschreibbus DW empfangenen globalen Doppelschreib-Interrupt (GLB_DW) (entweder den GLB_DW, den er erzeugte, oder denjenigen, der von irgendeinem der anderen Direktoren erzeugt wurde) sequentiell das in dem Dualport-RAM gespeicherte Datenbündel an beiden mit diesem Direktor verbundenen Systembussen BH, TL an dem gleichen adressierbaren Ort anzuordnen. Hier sequentiell das in dem Dualport-RAM gespeicherte Datenbündel an den beiden Systembussen TH und BL an dem gleichen adressierbaren Ort anzuordnen. Wenn ferner das System 10 in einen Doppelschreibmodus gesetzt worden ist, ist dieser Abschnitt 30 in der Lage, zu einem Nichtdoppelschreibmodus zurückzukehren, wenn jeder der mehreren Direktoren 200 2015 als Antwort auf eine dem System 10 zugeführte Rücksetzbedingung in einen Nichtdoppelschreibmodus zurückgesetzt worden ist. Wie oben erwähnt, ist außerdem jeder der Direktoren 200 2015 in der Lage, einen Fehler bei der Übertragung der Daten zwischen dem Direktor und den Speichersektionen 18H und 18L zu erkennen. Jeder der Direktoren ist in der Lage, als Antwort auf einen erkannten Fehler zwischen dem Direktor und einer der Speichersektionen 18H, 18L anschließende Datenübertragungen zwischen dem Direktor und der anderen Speichersektion zu erzwingen.
  • Mit Bezug nun auf 5 ist der Doppelschreib/HIGH/LOW-Zwang-Steuerabschnitt 30 gezeigt, um aufzuweisen: zwei Doppelschreib-Interrupt-Steuerungen 40X , 40Y , die jeweils mit dem X-CPU-Abschnitt und Y-CPU-Abschnitt des Direktors, der diesen Steuerabschnitt 30 hat, verbunden sind. Jede Steuerung 40X , 40Y hat einen identischen Aufbau und ist konfiguriert, um (i) als Antwort auf einen dem System 10 (1) zugeführten Doppelschreibmodus-Befehl einen globalen Doppelschreib-Interrupt YGLB_DW bzw. XGLB_DW bereitzustellen und (ii) einen Doppelschreib-Interrupt DW_INT zu empfangen, der an dem Doppelschreibbus DW entweder von dem Direktor, der den Steuerabschnitt 30 hat, oder irgendeinem der anderen Direktoren erzeugt wurde. Die XGLB_DW und YGLB_DW-Signale, von denen jedes hier ein Zweibitsignal ist, werden einem ODER-Gatter 42 zugeführt. Das Ausgangssignal des ODER-Gatters 42 ist ein Zweibitsignal GLB_DW_OUT, das einem GTL-Treiber zugeführt wird. Das Ausgangssignal des GTL-Treibers ist das globale Doppelschreibsignal GLB_DW und wird über den Doppelschreibbus DW den anderen Direk toren zugeführt und wird über den GTL-Empfänger, der das Signal DW_INT für die zwei Doppelschreib-Interrupt-Steuerungen 40X , 40Y , erzeugt, dem das GLB_DW-Signal erzeugenden Direktor zugeführt.
  • Der Doppelschreib/HIGH/LOW-Zwang-Steuerabschnitt 30 weist außerdem zwei Adreß-Gatearrays (Gatearray: Gatter-Anordnung) 46X und 46Y auf, die jeweils mit den X- und Y-Interrupt-Steuerungen 40X , 40Y verbunden sind, wie gezeigt. Die zwei Adreßgatearrays 46X und 46Y liefern dem Systemspeicher 18 Adressen für die im Dualport-RAM gespeicherten Datenbündel, im Doppelschreibmodus, eine gemeinsame Adresse für jedes Datenbündel, wie oben diskutiert. Die Ausgangssignale der Adreß-Gatearrays 56X und 64Y werden einem Logikabschnitt 50 zugeführt. Der Logikabschnitt 50 erzeugt die Latchsignale an den Leitungen 32H und 32L und die X- und Y-DRAM-Steuersignale (z.B. Lesen/Schreiben/Adressieren) für den DRAM-Abschnitt. Die Steuerungen 40X , 40Y liefern Adressen für das von dem Dualport-DRAM-Abschnitt (3 und 4) aus zu den Datenlatchschaltungen 24H, 24L einzukoppelnde Datenbündel an den Bussen 34X bzw. 34Y . Somit werden die von den zwei Adreß-Gatearrays 46X und 46Y an die Busse 34X und 34Y gelieferten Adressen den Adreßlatchschaltungen 26H, 26L zugeführt, wie in 3 und 4 gezeigt und oben diskutiert ist. Anzumerken ist, daß die Adressen auf den Bussen 34X und 34Y selektiv gemäß den Latchsignalen an den Leitungen 32H und 32L in die Adreßlatchschaltungen 26H und 26L gespeichert werden.
  • Insbesondere wird während des Doppelschreibmodus, wie oben angemerkt, das Datenbündel im Dualport-RAM-Abschnitt sequentiell in die Datenlatchschaltungen 24H und 24L gestellt. Es ist anzumerken, daß, während des Doppelschreibmodus, wenn das Datenbündel zum Beispiel in die Datenlatchschaltung 24H gespeichert wird, eine Adresse für diese Daten in die Adreßlatchschaltung 26H gespeichert wird. Ferner wird während des nächsten Systemspeicherzyklus, wenn Daten in die Latchschaltung 26L gespeichert werden, die gleiche Adresse, die im vorausgehenden Speicherzyklus in die Adreßlatchschaltung 26H gespeichert wurde, in die Adreßlatchschaltung 26L gespeichert. Während des Nichtdoppelschreibmodus sind während aufeinanderfolgender Spei cherzyklen die in die Adreßlatchschaltungen 26H und 26L gespeicherte Adresse unabhängig voneinander.
  • Mit Bezug nun auf 6 ist ein Flußdiagramm eines in den Direktoren 200 2015 gespeicherten Programms gezeigt, wobei dieses Programm in der Lage ist, das System 10 (1) in den Doppelschreibmodus zu setzen. So wird beim Starten (Schritt 600) das System 10 überprüft, um festzustellen, ob im Systemspeicher 18 die Speicherkapazitäten der Hochadreß-Speichersektion 18H und der Niederadreß-Speichersektion 18L ausgeglichen sind (d.h. die Sektionen ausgeglichene Speicherkapazitäten haben). Wenn eine Unausgeglichenheit festgestellt wird (Schritt 602), wird das System 10 von dem Benutzer heruntergefahren (Schritt 604) und wird eine zusätzliche Speicherkapazität zu derjenigen Sektion 18L oder 18H hinzugefügt, deren Speicherkapazität unzureichend ist.
  • Nachdem eine Ausgeglichenheit des Systemspeichers 18 festgestellt worden ist, wählt der Benutzer, wenn gewünscht, einen Doppelschreib-Betriebsmodus. Dieser Modus wird gewählt, wenn der Benutzer wünscht, im Systemspeicher 18 redundante Daten zu haben, d.h. das gleiche Datenbündel in jeder der Speichersektionen 18L und 18H. Somit ist im Falle eines Defekts in einer der Speichersektionen 18H oder 18L und einer nicht ordnungsgemäßen Übertragung der Daten zwischen dem Hostrechner 12 oder der Plattenspeicherbank 14 (1) und dieser Speichersektion das gleiche Bündel übertragener Daten in der anderen Speichersektion 18H, 18L verfügbar. Damit das System im Doppelschreibmodus ordnungsgemäß arbeitet, muß jeder der Direktoren 200 2015 wissen, daß das System 10 in den Doppelschreibmodus gesetzt worden ist. Wenn einer der Direktoren 200 2015 feststellt, daß der Benutzer das System in den Doppelschreibmodus gesetzt hat, wird in diesem Direktor ein Signal sowohl zur X- als auch Y-CPU geschickt (Schritt 606). Als Antwort auf dieses Signal veranlassen die X- und Y-Interrupt-Steuerabschnitte 40X und 40Y bei einem ersten darauffolgenden Systemtaktpuls, daß sich eines von zwei Bit eines Maschinenzustandsregisters (nicht gezeigt) von einem anfänglichen, zurückgesetzten logischen 0-Zustand zu einem logischen 1-Zustand ändert. Wenn dieser Interrupt am nächsten Systemtaktpuls existiert, wird das zweite Bit der Maschi nenzustandsregister sowohl des X- als auch des Y-Interrupt-Steuerabschnitts 40X und 40Y von einem anfänglichen logischen 0-Zustand zu einem logischen 1-Zustand geändert. Also werden die Maschinenzustandsregister sowohl des X- als auch des Y-Interrupt-Steuerabschnitts 40X und 40Y nur dann, wenn die Doppelschreib-Anforderung nach den zwei Systemtaktpulsen existiert, einen binären logischen 00-Zustand an beiden Bussen XGLB_DW* und YGLB_DW* erzeugen. (Es ist anzumerken, daß die Logik hier "aktive" niedrige Logik ist, in 5 mit dem Stern (*) gekennzeichnet). Nur wenn dieser logische 00-Zustand an den Bussen XGLB_DW* und YGLB_DW* erzeugt ist, wird das ODER-Gatter 42 einen logischen 00-Zustand am Bus GLB_DW* erzeugen (Schritt 608, 610, 612), wiederum in einer "aktiven niedrigen" Logik (Schritt 606). Der logische 00-Zustand am Bus GLB_DW* wird über einen GTL-Treiber zugeführt zu: dem Doppelschreibbus DW (5) als ein globales Doppelschreibsignal GLB_DW*; und zurück zu den X- und Y-Interrupt-Steuerabschnitten 40X und 40Y über einen GTL-Empfänger, wie in 5 gezeigt. Das GLB_DW*-Signal zeigt diesem Direktor und allen anderen Direktoren an, daß ein Doppelschreibmodus angefordert worden ist, d.h. daß ein GLB_DW*-Signal am Doppelschreibbus DW gültig geworden worden ist (Schritt 614, 6). Wie oben angemerkt, wird das logische GLB_DW*-11-Signal am Doppelschreibbus dem interruptaussendenden der Direktoren 200 2015 und allen anderen Direktoren 200 2015 zugeführt. Jeder der Direktoren 200 2015 stellt fest, ob die Maschinenzustandsregister in seinen X- und Y-Interrupt-Steuerabschnitten 40X und 40Y im logischen 00-Zustand sind. Wenn auch der interruptaussendende der Direktoren 200 2015 seine Maschinenzustandsregister im logischen 00-Zustand hat, müssen die übrigen der Direktoren 200 2015 zwei Systemtaktpulse warten, bevor ihre Maschinenzustände in den logischen 00-Zustand gesetzt werden (Schritt 613). Nachdem alle Direktoren 200 2015 im Doppelschreibmodus sind, wie durch den Softwarestatus (Schritt 615) angezeigt, schicken die Interrupt-Steuerabschnitte 40X und 40Y die Signalanzeige für globalen Doppelschreibmodus zu den Adreßgatearray-Steuerungen 46X , 46Y (5) (Schritt 616).
  • Mit Bezug nun auf 7 ist ein Flußdiagramm eines in den Direktoren 200 2015 gespeicherten Programms gezeigt, das in der Lage ist, das System 10 (1) von dem Doppelschreibmodus aus in einen Nichtdoppelschreibmodus zurückzusetzen. Als Antwort auf einen Benutzerbefehl, den Doppelschreibmodus zurückzusetzen (d.h. zu inaktivieren), tritt die Software in die Routine zum "Ausschalten" des globalen Doppelschreibmodus (Schritt 700) ein. Interrupts werden den zwei X- und Y-Interrupt-Steuerungen 40X und 40Y zugeführt (5, Schritt 702) und wenn nach zwei Systemtaktpulsen der Interrupt wirksam ist (Schritt 704), wird das GLB_DW*-Signal am Doppelschreibbus DW ungültig (Schritt 706). Da die Doppelschreib-Steuerabschnitte 30 am Doppelschreibbus DW ODER-verdrahtet sind, ist es notwendig, daß alle Direktoren 200 2015 das GLB_DW*-Signal dem Doppelschreibbus DW in einem niedrigen, d.h. Ungültigkeit anzeigenden logischen Zustand zugeführt haben, bevor alle Direktoren 200 2015 zurückgesetzt werden. Das heißt, der Doppelschreibmodus ist inaktiviert und das System 10 ist in den Nichtdoppelschreibmodus gesetzt, Schritt 708. Als Antwort auf das Ungültigkeitssignal aus dem Doppelschreibbus DW (d.h. alle Direktoren 200 2015 erzeugen ein Doppelschreibmodus-Ungültigkeitssignal am Doppelschreibbus DW) zeigen die X- und Y-Interrupt-Steuerungen 40X und 40Y den Adreßgatearray-Steuerungen 46X , 46Y an, daß das System 10 nun im Nichtdoppelschreibmodus ist (Schritt 710).
  • Mit Bezug nun auf 8 ist ein Flußdiagramm eines in den Direktoren 200 2015 gespeicherten Programms gezeigt, das in der Lage ist, das System 10 (1) in einen erzwungen HIGH/LOW-Modus zu setzen. Es wird vorausgesetzt, daß das System 10 im Doppelschreibmodus (Schritt 800) normal arbeitet. Die Steuerungen bzw. Direktoren messen die Anzahl der Fehler oder "Zeitüberschreitungs" fehler, die ihnen gemeldet werden (Schritt 802). Wenn keinem der Direktoren 200 2015 Fehler oder Zeitüberschreitungen in einer größeren als einer vorgegebenen Anzahl gemeldet worden sind, bleibt das System weiter im Doppelschreibmodus (Schritt 804, 806). Wenn andererseits einem der Direktoren 200 2015 Fehler oder Zeitüberschreitungen in einer größeren als der vorgegebenen Anzahl gemeldet worden sind, initiiert dieser Direktor den erzwungenen HIGH/LOW-Betriebsmodus für das System 10 (Schritt 806). Wie oben in Verbindung mit 6 (Schritt 608) und 7 (Schritt 702) diskutiert, erzeugen die Maschinenzustandsregister sowohl der X- als auch der Y-Interrupt-Steuerabschnitte 40X und 40Y einen binären logischen 11-Zustand entweder (a) an beiden Bussen XGLB_FOR_HI* und YGLB_FOR_HI* oder (b) an beiden Bussen XGLB_FOR_LO und YGLB_FOR_LO* (Schritt 810), abhängig davon, ob die Fehler in Verbindung mit Übertragungen zum Hochadreß-Speicherbus oder Niederadreß-Speicherbus auftreten (Schritt 810). (Anzumerken ist, daß die Logik hier eine "aktive" niedrige Logik ist, in 5 mit dem Sternchen (*) gekennzeichnet.) Die Signale an den Bussen XGLB_FOR_HI* und YGLB_FOR_HI* werden dem NAND-Gatter 60HI zugeführt und die Signale an den Bussen XGLB_FOR_LO* und YGLB_FOR_LO* werden dem NAND-Gatter 60LO zugeführt. Wenn die Logiksignale an beiden Bussen XGLB_FOR_HI* und YGLB_FOR_HI* einen erzwungenen HI-Buszustand anzeigen (d.h. es sind zu viele Fehler oder Zeitüberschreitungen zur Niederadreß-Speichersektion 18L), wird ein GLB_FOR_LO*-Signal (in "aktiver" niedriger Logik) für den dieses Signal ausgebenden Direktor und für die anderen Direktoren 200 2015 erzeugt. Ebenso wird, wenn die Logiksignale an beiden Bussen XGLB_FOR_LO* und YGLB_FOR_LO* einen erzwungenen LO-Buszustand anzeigen (d.h. es sind zu viele Fehler oder Zeitüberschreitungen zur Hochadreß-Speichersektion 18H), ein GLB_FOR_HI*-Signal (in "aktiver" niedriger Logik) für den dieses Signal ausgebenden Direktor und für die anderen Direktoren 200 2015 erzeugt (Schritt 812). Anzumerken ist, daß die NAND-Gatter 60HI und 60LO an dem Doppelschreibbus DW ORDER-verdrahtet sind. Es ist auch anzumerken, daß sich die Ausgangssignale der NAND-Gatter 60HI und 60LO über ein von einem Benutzer aktiviertes Signal DIS_IF*, das "open-collector"-Treibern 61H und 61LO zugeführt wird, inaktivieren lassen, wie gezeigt. Auf diese Weise wird ein Interrupt erzeugt, wenn einer der Direktoren 200 2015 einen HIGH/LOW-Zwang-Interrupt (d.h. entweder ein GLB_FOR_LO*-Signal oder ein GLB_FOR_HI*-Signal) gültig macht, 5 (Schritt 814). Die Direktoren 200 2015 sind nun im HIGH/LOW-Zwangsmodus (d.h. der Doppelschreibmodus ist inaktiviert) und die X- und Y-Interrupt-Steuerungen 40X und 40Y zeigen den Adreßgatearray-Steuerungen 46X und 46Y an, wo der erzwungene HIGH- und/oder erzwungene LOW-Zustand gewählt ist. Die Adreßgatearray-Steuerungen 40X und 40Y stellen dann jeweils an den Y_TB_MEM*- und/bzw. X_TB_MEM*-Bussen Signale bereit, um dadurch der Logik 50 zu ermöglichen, Latchsignale an den Leitungen 32H oder 32L zu erzeugen; das erstere wird bei einem erzwungenen HIGH-Zustand erzeugt (d.h. zu viele Fehler oder Zeitüberschreitungen zur Niederadreß-Speichersektion 18L) und das letzere wird bei einem erzwungenen LOW-Zustand erzeugt (d.h. zu viele Fehler oder Zeitüberschreitungen zur Hochadreß-Speichersektion 18H), Schritt 816.

Claims (8)

  1. Datenspeichersystem, in welchem ein Hostrechner über eine Schnittstelle mit einer Bank von Plattenlaufwerken verbunden ist, wobei diese Schnittstelle aufweist: einen Systemspeicher, der zwei Systemspeichersektionen aufweist, wobei jede Speichersektion mehrere adressierbare Orte hat, um in diese Speichersektion geschriebene Daten an den adressierbaren Orten zu speichern; einen Systembus, der mit den zwei Systemspeichersektionen verbunden ist; mehrere Direktoren, die über den Systembus mit dem Systemspeicher verbunden sind, wobei diese Direktoren während des Durchgangs dieser Daten durch den Systemspeicher die Datenübertragung zwischen dem Hostrechner und der Bank von Plattenlaufwerken steuern; dadurch gekennzeichnet, daß wenn das System in einem Doppelschreibmodus ist, einer der Direktoren die zwischen dem Hostrechner und der Bank von Plattenlaufwerken zu übertragenden Daten bei sich speichert, diese gespeicherten Daten während zweier Systemspeicherzyklen sequentiell zu dem Systembus überträgt und beide mit diesem Systembus verbundenen Speichersektionen freigibt, um darin die während der zwei Systemspeicherzyklen zum Systembus sequentiell übertragenen Daten an den gleichen adressierbaren Orten einzuschreiben.
  2. Datenspeichersystem nach Anspruch 1, in welchem der Bus zwei Systembusse aufweist, wobei jeder Systembus mit einer entsprechenden der zwei Systemspeichersektionen verbunden ist, und in welchem, wenn das System in einen Doppelschreibmodus gesetzt ist, einer der Direktoren die zwischen dem Hostrechner und der Bank von Plattenlaufwerken zu übertragenden Daten bei sich speichert und diese gespeicherten Daten während zweier Systemspeicherzyklen zu den zwei Bussen überträgt und beide mit diesen zwei Systembussen verbundenen Systemspeichersektionen freigibt, um darin die während der zwei Systembuszyklen zu den Systembussen sequentiell übertragenen Daten an den gleichen adressierbaren Orten einschreiben zu lassen, um sie in beiden Speichersektionen zu speichern.
  3. System nach Anspruch 2, das einen Doppelschreibmodusbus aufweist, der mit den mehreren Direktoren verbunden ist, und in welchem jeder Direktor aufweist: (a) einen Direktorspeicher zum Speichern der von dem Hostrechner aus zugeführten Daten; und (b) eine Doppelschreibsteuerung, um (i) als Antwort auf einen dem System zugeführten Doppelschreibmodusbefehl einen Doppelschreib-Interrupt an dem Doppelschreibbus bereitzustellen; (ii) einen an dem Doppelschreibbus erzeugten Doppelschreib-Interrupt zu empfangen; und (iii) als Antwort auf den an dem Doppelschreibbus empfangenen Doppelschreib-Interrupt die in dem Direktorspeicher gespeicherten Daten während der zwei Systemspeicherzyklen sequentiell an den zwei Systembussen anzuordnen, um sie in beiden Systemspeichersektionen an den gleichen adressierbaren Orten zu speichern.
  4. System nach Anspruch 2, das einen Doppelschreibmodusbus aufweist, der mit den mehreren Direktoren verbunden ist, und in welchem jeder Direktor aufweist: (a) einen Direktorspeicher zum Speichern der von dem Hostrechner aus zugeführten Daten; und (b) eine Doppelschreibsteuerung, um (i) als Antwort auf einen dem System zugeführten Doppelschreibmodusbefehl einen Doppelschreib-Interrupt an dem Doppelschreibbus bereitzustellen; (ii) einen von dem Doppelschreibbus erzeugten Doppelschreib-Interrupt zu empfangen; und (iii) als Antwort auf den an dem Doppelschreibbus empfangenen Doppelschreib-Interrupt die in dem Direktorspeicher gespeicherten Daten während der zwei Systemspeicherzyklen sequentiell an den zwei Systembussen anzuordnen, um sie in beiden Systemspeichersektionen an den gleichen adressierbaren Orten an mindestens einem der Systembusse zu speichern; (iv) zu einem Nichtdoppelschreibmodus zurückzukehren, wenn jeder der mehreren Direktoren als Antwort auf eine dem System bereitgestellte Rücksetzbedingung in einen Nichtdoppelschreibzustand zurückgesetzt ist, und um in einem solchen Nichtdoppelschreibzustand die in dem Direktorspeicher gespeicherten Daten an einem ausgewählten der zwei Systembusse anzuordnen, um die gespeicherten Daten in derjenigen der Systemspeichersektionen zu speichern, die mit dem ausgewählten der zwei Systembusse verbunden ist.
  5. System nach Anspruch 3, in welchem jeder Direktor eingerichtet ist, um einen Fehler bei der Übertragung der Daten zwischen dem Direktor und jeder der Systemspeichersektionen zu erkennen und um als Antwort auf einen erkannten Fehler zwischen dem Direktor und einer der Systemspeichersektionen anschließende Datenübertragungen zwischen dem Direktor und der anderen der Systemspeichersektionen zu erzwingen.
  6. System nach Anspruch 2, in welchem, wenn das System beim Ausfall eines der zwei Systembusse in einen erzwungenen Systemspeichermodus gesetzt ist, einer dieser Direktoren die zwischen dem Hostrechner und der Bank von Plattenlaufwerken zu übertragenden Daten speichert und diese gespeicherten Daten nur zu dem anderen der mit den mehreren Direktoren verbundenen Systembusse, einen Doppelschreibmodusbus eingeschlossen, überträgt, und in welchem mindestens einer der Direktoren aufweist: (a) einen Direktorspeicher zum Speichern der von dem Hostrechner aus zugeführten Daten; und (b) eine Doppelschreibsteuerung, um (i) als Antwort auf einen dem System zugeführten Doppelschreibmodusbefehl einen Doppelschreib-Interrupt an dem Doppelschreibbus bereitzustellen; (ii) einen von dem Doppelschreibbus erzeugten Doppelschreib-Interrupt zu empfangen; und (iii) als Antwort auf den an dem Doppelschreibbus empfangenen Doppelschreib-Interrupt die in dem Direktorspeicher gespeicherten Daten während zweier Systemspeicherzyklen sequentiell an den zwei Systembussen anzuordnen, um sie in beiden Systemspeichersektionen an den gleichen adressierbaren Orten zu speichern.
  7. Datenspeichersystem nach Anspruch 2, in welchem, wenn das System in einen Doppelschreibmodus gesetzt ist, einer dieser Direktoren Bündel der zwischen dem Hostrechner und der Bank von Plattenlaufwerken zu übertragenden Daten bei sich speichert, wobei jedes in dem Direktor gespeicherte Datenbündel dann während eines Speicherzyklus zu einem von zwei mit diesem Direktor verbundenen Systembussen übertragen wird und während des nächsten Speicherzyklus das gleiche Datenbündel dann zu dem anderen der zwei mit diesem Direktor verbundenen Systembusse übertragen wird, das gleiche gespeicherte Datenbündel während zweier Systemspeicherzyklen sequentiell zu den zwei Systembussen übertragen wird und in beiden Speichersektionen an den gleichen adressierbaren Orten gespeichert wird.
  8. Datenspeichersystem nach Anspruch 2, in welchem, wenn das System in einem Doppelschreibmodus ist, einer der Direktoren die zwischen dem Hostrechner und der Bank von Plattenlaufwerken zu übertragenden Daten bei sich speichert und diese gespeicherten Daten sequentiell zu beiden Speichersektionen überträgt.
DE69930307T 1998-12-30 1999-12-29 Datenspeichersystem Expired - Lifetime DE69930307T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US223417 1998-12-30
US09/223,417 US6493795B1 (en) 1998-12-30 1998-12-30 Data storage system
PCT/US1999/031178 WO2000039690A1 (en) 1998-12-30 1999-12-29 Data storage system

Publications (2)

Publication Number Publication Date
DE69930307D1 DE69930307D1 (de) 2006-05-04
DE69930307T2 true DE69930307T2 (de) 2006-11-30

Family

ID=22836406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69930307T Expired - Lifetime DE69930307T2 (de) 1998-12-30 1999-12-29 Datenspeichersystem

Country Status (6)

Country Link
US (1) US6493795B1 (de)
EP (1) EP1058888B1 (de)
JP (2) JP3742753B2 (de)
KR (1) KR100560552B1 (de)
DE (1) DE69930307T2 (de)
WO (1) WO2000039690A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10048402B4 (de) * 1999-09-29 2012-03-29 Emc Corporation Datenspeichersystem

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519739B1 (en) 1999-09-29 2003-02-11 Emc Corporation Fault detector
US6735655B1 (en) 1999-09-29 2004-05-11 Emc Corporation Interrupt request controller
US6543029B1 (en) 1999-09-29 2003-04-01 Emc Corporation Error corrector
US6915394B1 (en) 1999-09-29 2005-07-05 Emc Corporation Microprocessor interface
US6836818B1 (en) * 1999-09-29 2004-12-28 Emc Corporation Central processing unit
US6779130B2 (en) 2001-09-13 2004-08-17 International Business Machines Corporation Method and system for root filesystem replication
US7340555B2 (en) * 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US7062591B2 (en) * 2001-09-28 2006-06-13 Dot Hill Systems Corp. Controller data sharing using a modular DMA architecture
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
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
US7437493B2 (en) * 2001-09-28 2008-10-14 Dot Hill Systems Corp. Modular architecture for a network storage controller
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
US7536495B2 (en) * 2001-09-28 2009-05-19 Dot Hill Systems Corporation Certified memory-to-memory data transfer between active-active raid controllers
AU2002361603A1 (en) * 2001-11-09 2003-05-26 Chaparral Network Storage, Inc. Transferring data using direct memory access
US20030217211A1 (en) * 2002-05-14 2003-11-20 Rust Robert A. Controller communications over an always-on controller interconnect
US7583732B2 (en) * 2002-12-06 2009-09-01 Broadcom Corporation Managing bursts of data
US20060002482A1 (en) * 2004-06-30 2006-01-05 Clinton Walker Signal drive de-emphasis for memory bus
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
US8365023B2 (en) 2011-04-29 2013-01-29 International Business Machines Corporation Runtime dynamic performance skew elimination

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
EP0128945B1 (de) * 1982-12-09 1991-01-30 Sequoia Systems, Inc. Sicherstellungsspeichersystem
US5457786A (en) * 1990-07-03 1995-10-10 Texas Instruments Incorporated Serial data interface with circular buffer
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
JP3264465B2 (ja) 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
DE69506404T2 (de) * 1994-06-10 1999-05-27 Texas Micro Inc., Houston, Tex. Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem
JPH08263225A (ja) * 1995-03-22 1996-10-11 Mitsubishi Electric Corp データストレージシステム及びストレージ管理方法
US5787265A (en) 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5682509A (en) * 1995-12-13 1997-10-28 Ast Research, Inc. Bus interface to a RAID architecture
US5991852A (en) * 1996-10-28 1999-11-23 Mti Technology Corporation Cache ram using a secondary controller and switching circuit and improved chassis arrangement
US5953745A (en) * 1996-11-27 1999-09-14 International Business Machines Corporation Redundant memory array
US5895485A (en) * 1997-02-24 1999-04-20 Eccs, Inc. Method and device using a redundant cache for preventing the loss of dirty data
US5935258A (en) * 1997-03-04 1999-08-10 Micron Electronics, Inc. Apparatus for allowing data transfers with a memory having defective storage locations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10048402B4 (de) * 1999-09-29 2012-03-29 Emc Corporation Datenspeichersystem

Also Published As

Publication number Publication date
JP2006024230A (ja) 2006-01-26
DE69930307D1 (de) 2006-05-04
EP1058888B1 (de) 2006-03-08
JP3742753B2 (ja) 2006-02-08
US6493795B1 (en) 2002-12-10
KR20010041461A (ko) 2001-05-25
EP1058888A1 (de) 2000-12-13
WO2000039690A9 (en) 2001-09-07
KR100560552B1 (ko) 2006-03-15
WO2000039690A1 (en) 2000-07-06
JP2002533834A (ja) 2002-10-08

Similar Documents

Publication Publication Date Title
DE69930307T2 (de) Datenspeichersystem
DE60031499T2 (de) Verfahren zur Übertragung von Signalen der Typen "fibre-channel" und "non-fibre-channel" über ein gemeinsames Kabel
DE69322310T2 (de) Busarchitektur für integrierten Daten/- und Videospeicher
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69919137T2 (de) Datenspeichersystem
DE68920435T2 (de) Steuereinheit für den speicher.
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE3586352T2 (de) Busarbiter fuer datenverarbeitungssystem mit einem ein-/ausgabekanal.
DE69316755T2 (de) Fehlertolerantes rechnersystem.
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE69131948T2 (de) Adressaktivierungsanordnung und Verfahren für Speichermodule
DE68923026T2 (de) Speicherdiagnosegerät und Verfahren.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE102006002526A1 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE69230211T2 (de) Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem
DE69901247T2 (de) Direktspeicherzugriff in einer brücke für ein mehrprozessorsystem
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE10297283T5 (de) Controller-Daten-Sharing mittels einer DMA-Architektur
DE69428538T2 (de) Verfahren zum konfigurieren von mehreren adapterkarten auf einem bus
DE10048402B4 (de) Datenspeichersystem
DE3606211A1 (de) Multiprozessor-computersystem
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition