-
Gebiet der Technik
-
Die
vorliegende Erfindung betrifft allgemein Datenspeichersysteme und
genauer Datenspeichersysteme mit Redundanzvorkehrungen zum Schutz gegen
einen totalen Systemausfall bei einem Ausfall einer Komponente oder
einer Unteranordnung des Speichersystems.
-
Hintergrund
-
Es
ist im Stand der Technik bekannt, dass große Host-Computer und Server
(nachfolgend zusammengefasst als „Host-Computer/Server" bezeichnet) Datenspeichersysteme
großer
Kapazität benötigen. Diese
großen
Host-Computer/Server enthalten im Allgemeinen Datenprozessoren,
welche viele Operationen an Daten durchführen, die den Host-Computern/Servern über periphere
Einrichtungen einschließlich
des Datenspeichersystems zugeführt
werden. Die Ergebnisse dieser Operationen werden zu peripheren Geräten einschließlich des
Datenspeichersystems ausgegeben.
-
Eine
Art von Datenspeichersystem ist ein Magnetplatten-Speichersystem.
Hier sind eine Reihe von Plattenlaufwerken mit dem Host-Computer/Server über eine
Schnittstelle verkoppelt. Die Schnittstelle enthält „Front-End"- oder Host-Computer/Server-seitige
zentrale Einstellsätze
und „Back-End"- oder plattenlaufwerkseitige
zentrale Einstellsätze. Die
Schnittstelle betätigt
die zentralen Einstellsätze in
solcher Weise, dass sie für
den Host-Computer/Server gleichsam transparent sind. Das bedeutet, es
werden Daten in die Reihe von Plattenlaufwerken eingespeichert und
von ihnen entnommen, derart, dass der Host-Computer/Server gleichsam
denkt, er arbeitet mit seinem eigenen Plattenlaufwerk. Ein derartiges
System ist im
US-Patent 5,206,939 beschrieben,
welches den Titel „System
and Method for Disk Mapping and Data Retrieval" hat, Erfinder Moshe Yanai, Natan Vishlitzky,
Bruno Alterescu und Daniel Castel, erteilt am 27. April 1993 und
auf den Inhaber der vorliegenden Erfindung übertragen.
-
Ein
weiteres System ist in
US 6389494 beschrieben.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird eine Systemschnittstelle geschaffen, die einen Cache-Speicher
und eine Vielzahl von zentralen Einstellsätzen aufweist. Jeder von der
Vielzahl von zentralen Einstellsätzen
schließt
eine Datenpipeline ein, die mit einem Eingang dieses einen zentralen
Einstellsatzes verkoppelt ist. Die Datenpipeline schließt einen
Datenpipeline-Speicher und einen Datenpipeline-Speichercontroller
zum Steuern des Datenpipeline-Speichers ein. Jeder der zentralen
Einstellsätze schließt einen
Mikroprozessor ein, der mit dem Datenpipeline-Speichercontroller
verkoppelt ist. Das System schließt ein Schalt- bzw. Vermittlungsnetzwerk
ein, das mit dem Cache-Speicher
verbunden ist, um Daten zu übertragen
zwischen (a) dem Speicher und dem Eingang eines ausgewählten zentralen
Einstellsatzes aus der Vielzahl von zentralen Einstellsätzen über den
Datenpipeline-Speicher; (b) dem Mikroprozessor und dem Datenpipeline-Speicher über den Datenpipeline-Speichercontroller
eines ausgewählten
zentralen Einstellsatzes von der Vielzahl von zentralen Einstellsätzen; und
(c) dem Mikroprozessor und dem Datenpipeline-Speichercontroller,
während der
Datenpipeline-Speicher
eines ausgewählten
zentralen Einstellsatzes aus der Vielzahl von zentralen Einstellsätzen umgangen
wird.
-
In
einer Ausführungsform
schließt
das Vermittlungsnetzwerk ein: (1) eine Vielzahl von ersten Ports,
wobei jeder einzelne der ersten Ports mit einem entsprechenden ersten
von den beiden Ports des Datenpipeline-Speichers verkoppelt ist;
(2) eine Vielzahl von zweiten Ports, wobei jeder einzelne mit einem
entsprechenden zweiten von den beiden Ports des Datenpipeline-Speichers
verkoppelt ist; (3) eine Vielzahl von dritten Ports, von denen jeder
mit einem entsprechenden ersten von den beiden Ports des Datenpipeline-Speichercontrollers
verkoppelt ist; (4) eine Vielzahl von vierten Ports, von denen jeder
mit einem zweiten von den beiden Ports des Datenpipeline-Speichercontrollers
verkoppelt ist.
-
In
einer Ausführungsform
ist das Vermittlungsnetzwerk mit dem Cache-Speicher verkoppelt, um
Daten zu übertragen
zwischen (a) dem Speicher und dem Eingang des aus der Vielzahl von
zentralen Einstellsätzen
ausgewählten
zentralen Einstellsatzes über
den Datenpipeline-Speicher über
die ersten und zweiten Ports des Vermittlungsnetzwerkes; (b) dem Mikroprozessor
und dem Datenpipeline-Speicher über
den Datenpipeline-Speichercontroller über die ersten oder zweiten
Ports des Vermittlungsnetzwerkes; und (c) dem Mikroprozessor und
dem Datenpipeline-Speichercontroller über die dritten oder vierten
Ports des Vermittlungsnetzwerkes, während der Datenpipeline-Speicher umgangen
wird.
-
In
einer Ausführungsform
schließt
das Vermittlungsnetzwerk ein Paar Schalter ein, wobei einer dieser
Schalter mit einem ersten Abschnitt des Cache-Speichers verkoppelt
ist und der andere der Schalter mit einem zweiten Abschnitt des
Cache-Speichers
verkoppelt ist, wobei der erste von den beiden Schaltern die ersten
Ports und die dritten Ports aufweist und wobei der zweite von den
Schaltern die zweiten Ports und die vierten Ports aufweist.
-
In
einer Ausführungsform
ist der Datenpipeline-Speicher ein Quadport-RAM.
-
In
einer Ausführungsform
schließt
jeder von den beiden Schaltern eine Vielzahl von Schalterabschnitten
ein, von denen jeder mit einem entsprechenden von den ersten Ports
und einem entsprechenden von den dritten Ports verkoppelt ist. Jeder der
Schalterabschnitte weist auf: einen Zwischenspeicher, der mit dem
entsprechenden einen von den dritten Ports verkoppelt ist, um eine
Vielzahl von aufeinanderfolgenden Befehlen an dem entsprechenden
einen von den dritten Ports zu speichern; einen Zustandsabschnitt,
um ein Done-Signal auszugeben, das anzeigt, wenn ein Befehl erfolgreich
auf den Speicher übertragen
wurde, und einen Controller, der mit dem Zwischenspeicher und dem
Zustandsabschnitt verkoppelt ist, um als Antwort auf ein Done-Signal
eine Übertragung
eines nächstfolgenden
von der Vielzahl von gespeicherten Befehlen im Zwischenspeicher
auf den Speicher zu ermöglichen.
-
Die
Einzelheiten einer oder mehrerer Ausführungsformen der Erfindung
werden in der begleitenden Zeichnung und der nachstehenden Beschreibung
ausgeführt.
Andere Merkmale, Ziele und Vorteile der Erfindung werden aus der
Beschreibung und der Zeichnung und aus den Ansprüchen deutlich.
-
BESCHREIBUNGEN DER ZEICHNUNGEN
-
Diese
und weitere Merkmale der Erfindung ergeben sich noch deutlicher
aus der folgenden detaillierten Beschreibung unter Bezugnahme auf
die begleitenden Zeichnungen. In diesen stellen dar:
-
1 ein
Blockschaltbild eines Datenspeichersystems gemäß der Erfindung;
-
2 ein
Blockschaltbild der Systemschnittstelle, die in dem Datenspeichersystem
nach 1 verwendet wird;
-
3 ein
Blockschaltbild einer beispielsweise herausgegriffenen Platine eines
zentralen Einstellsatzes in der Schnittstelle nach 2;
-
4 ein
Schema der Schnittstelle von 3 mit einer
Vielzahl der Platine eines zentralen Einstellsatzes von 3,
die mit einem globalen Cache-Speicher
verbunden sind;
-
5 ein
Blockschema eines Beispiels für einen
von zwei Schaltern, die in einem Vermittlungsnetzwerk auf der Platine
eines zentralen Einstellsatzes von 3 verwendet
werden;
-
5A ein
Blockschema des Schalterpaars von 5, die mit
anderen Komponenten der Vielzahl von zentralen Einstellsätzen auf
der Platine eines zentralen Einstellsatzes von 3 verbunden sind.
-
6 die
Anordnung von 6A–6D, die
zusammen ein ausführlicheres
Blockschema des Schalters von 5 bilden;
und
-
7 ein
Ablaufschema eines Verfahrens, das in den Schaltern von 6A bis 6D verwendet
wird.
-
DETAILLIERTE BESCHREIBUNG
-
Es
sei nun auf 1 Bezug genommen, wo ein Datenspeichersystem 100 zur Übertragung
von Daten zwischen einem Host-Computer/Server 120 und einer
Reihe von Plattenlaufwerken 140 über eine Systemschnittstelle 160 gezeigt
ist. Die Systemschnittstelle 160 enthält folgendes: eine Vielzahl
von vorliegend 32 Front-End-Steuereinrichtungen 1801–18032,
welche mit dem Host-Computer/Server 120 über Ports 1231–12332 gekoppelt
sind; eine Vielzahl von zentralen Back-End-Einstellsätzen 2001–20032,
welche mit der Reihe von Plattenlaufwerken 140 über Ports 12333–12364 gekoppelt
sind; einen Datenübertragungsabschnitt 240,
welcher einen globalen Cache-Speicher 220 aufweist,
der mit der Vielzahl von zentralen Front-End-Einstellsätzen 1801–18032 und
den zentralen Back-End-Einstellsätzen 2001–20032 gekoppelt
ist; und ein Nachrichtenübertragungs-Netzwerk 260,
das unabhängig
von dem Datenübertragungsabschnitt 240 arbeitet
und mit der Vielzahl von zentralen Front-End-Einstellsätzen 1801–18032 und
den zentralen Back-End-Einstellsätzen 2001–20032 in
der dargestellten Weise gekoppelt ist. Die zentralen Front-End-
und Back-End-Einstellsätze 1801–18032 bzw. 2001–20032 sind
funktionell gleich und enthalten einen Mikroprozessor (μP) 299 (d.
h., eine zentrale Prozessoreinheit (CPU) und einen RAM), eine Nachrichtenmaschinen-/CPU-Steuereinheit 314 und
eine Datenpipeline 316.
-
Die
zentralen Front-End- und Back-End-Einstellsätze 1801–18032 bzw. 2001–20032 steuern
die Datenübertragung
zwischen dem Host-Computer/Server 120 und der Reihe von
Plattenlaufwerken 140 als Antwort auf Nachrichten, die
zwischen den zentralen Einstellsätzen 1801–18032 und 2001–20032 über das
Nachrichtenübertragungs-Netzwerk 260 geführt werden.
Die Nachrichten erleichtern den Nachrichtentransfer zwischen dem
Host-Computer/Server 120 und der Reihe von Plattenlaufwerken 140,
wobei diese Daten über
den Datenübertragungsabschnitt 240 durch
den globalen Cache-Speicher 220 geführt werden. Im einzelnen ist bezüglich der
zentralen Front-End-Einstellsätze 1801–18032 zu
sagen, dass die Daten zwischen dem Host-Computer/Server und dem
globalen Cache-Speicher 220 über die Datenpipeline 316 in
den zentralen Front-End-Einstellsätzen 1801–18032 laufen
und dass die Nachrichten über
die Nachrichtenmaschinen-/CPU-Steuereinheit 314 in diesen
zentralen Front-End-Einstellsätzen 1801–18032 laufen.
Im Falle der zentralen Back-End-Einstellsätze 2001–20032 fließen die
Daten zwischen den zentralen Back-End-Einstellsätzen 2001–20032 und
der Reihe von Plattenlaufwerken 140 sowie dem globalen
Cache-Speicher 220 über
die Datenpipeline 316 in den zentralen Back-End-Einstellsätzen 2001–20032 und
wieder laufen die Nachrichten über die
Nachrichtenmaschinen-/CPU-Steuereinheit 314 in diesen zentralen
Back-End-Einstellsätzen 2001–20032.
-
Bei
einer solchen Anordnung ist der Cache-Speicher 220 in dem
Datenübertragungsabschnitt 240 nicht
mit der Aufgabe der Übertragung der
Benachrichtigung der zentralen Einstellsätze belastet. Vielmehr arbeitet
das Nachrichtenübertragungs-Netzwerk 260 unabhängig vom
Datenübertragungsabschnitt 240,
wodurch die Betriebsbandbreite der Systemschnittstelle 160 vergrößert wird.
-
Es
sei auf 2 und 3 Bezug
genommen. Jede der Platinen von zentralen Einstellsätzen 1901–2108 enthält, wie
oben angemerkt, vier der zentralen Einstellsätze 1801–18032, 2001–20032 (2).
Es ist festzustellen, dass die Platinen von zentralen Einstellsätzen 1901–1908 vier
zentrale Front-End-Einstellsätze
je Platine umfassen, wobei die zentralen Einstellsätze 1801–18032 die
zentralen Front-End-Einstellsätze sind,
und dass die Platinen von zentralen Einstellsätzen 2101–2108 vier
zentrale Back-End-Einstellsätze je Platine
umfassen, wobei die Platinen von zentralen Einstellsätzen 2101–21032 die
zentralen Back-End-Einstellsätze sind.
Jeder der Einstellsätze 1801–18032, 2101–21032,
enthält
den oben genannten Mikroprozessor 299, den Nachrichtenmaschinen-/CPU-Controller 314 und
die Datenpipeline 316, wie in 1 dargestellt.
-
Die
Platinen der zentralen Front-End-Einstellsätze weisen Ports 1231–12332 wie
in 1 dargestellt auf, die mit den Prozessoren 1211–12132 verkoppelt
sind, wie dargestellt. Die Platinen der zentralen Back-End-Einstellsätze weisen
Ports 12333–12364 auf,
wie in 2 dargestellt, die mit den Plattenlaufwerken 1411–14132 verkoppelt
sind, wie dargestellt.
-
Jede
der Platinen von zentralen Einstellsätzen 1901–2108 enthält einen
Querschienenschalter 318 wie in 3 für eine exemplarische
von den Platinen von zentralen Einstellsätzen 1901–2108 dargestellt,
hier für
die Einstellsatz-Platine 1901. Der Querschienenschalter 318 hat
vier Eingangs-/Ausgangs-Ports, von denen jeder mit der Datenpipeline 316 (2)
eines entsprechenden der vier zentralen Einstellsätze 1801–18032, 2001–20032 auf
der Einstellsatz-Platine 1901–2108 gekoppelt ist.
Der Querschienenschalter 318 hat acht Ausgangs-/Eingangs-Ports,
welche in 3 kollektiv durch die Bezugszahl 321 bezeichnet
sind (und welche in die Rückwandplatine 302 eingesteckt
sind). Der Querschienenschalter 318 auf den Platinen 1911–1918 der
zentralen Front-End-Einstellsätze
dient zur Kopplung der Datenpipeline 316 mit einem ausgewählten der
vier zentralen Front-End-Einstellsätze 1801–18032 auf
der Platine 1901–1908 des
zentralen Front-End-Einstellsatzes mit dem globalen Cache-Speicher 220 über die
Rückwandplatine 302 und den
nicht dargestellten I/O-Adapter. Der Querschienenschalter 318 auf
der Platine 2101–2108 eines zentralen
Back-End-Einstellsatzes dient zur Kopplung der Datenpipeline 316 auf
einem ausgewählten der
vier zentralen Back-End-Einstellsätze 2001–20032 auf
der Platine 2101–2108 eines
zentralen Einstellsatzes mit dem globalen Cache-Speicher 220 über die
Rückwandplatine 302 und
den nicht dargestellten I/O-Adapter.
-
Wie
man somit aus 1 und 2 ersieht, koppelt
die Datenpipeline 316 in den zentralen Front-End-Einstellsätzen 1801–18032 Daten
zwischen dem Host-Computer/Server 120 und dem globalen
Cache-Speicher 220, während
die Datenpipeline 316 in den zentralen Back-End-Einstellsätzen 2001–20032 Daten
zwischen der Reihe von Plattenlaufwerken 140 und dem globalen
Cache-Speicher 220 koppelt. Es sei darauf hingewiesen,
dass gesonderte Punkt-zu-Punkt-Datenwege PTH1 bis PTH64 (1)
zwischen jedem der zentralen Einstellsätze 1801–18032; 2001–20032 und
dem globalen Cache-Speicher 220 existieren.
-
Wie
in den oben genannten mit-anhängigen Patentanmeldungen
beschrieben, steckt außerdem der
Querschienenschalter 320 (2) in der
Rückwandplatine 302 und
dient der Kopplung der zentralen Einstellsätze mit dem Nachrichtennetz 260 (2) über die
Rückwandplatine.
-
Es
sei nun auf 3 Bezug genommen. Hier ist ein
Beispiel für
eine der Platinen 1901–1908, 2101–2108 von
zentralen Einstellsätzen,
vorliegend für
die Einstellsatzplatine 1901 gezeigt. Sie enthält die zentralen
Einstellsätze 1801, 1803, 1805 und 1807.
Ein Beispiel für
einen der zentralen Einstellsätze 1801–1804,
vorliegend den zentralen Einstellsatz 1801, ist in Einzelheiten
gezeichnet, und enthält
die Datenpipeline 316, die Nachrichtenmaschinen-/CPU-Steuereinrichtung 314 und
den Mikroprozessor 299, die wie dargestellt angeordnet
sind.
-
Die
Datenpipeline 316 enthält
einen Protokollübersetzer 400,
einen Datenpipeline-Speicher, hier einen Quadport-RAM (QPR) 402 und
einen Datenpipeline-Speichercontroller,
hier einen Quadport-RAM-Controller 404 (hierin auch als
Pipeline-Maschine,
PM 404 bezeichnet), der in der dargestellten Weise angeordnet
sind. Kurz gesagt bewirkt der Protokollübersetzer 400 eine
Umwandlung zwischen dem Protokoll des Host-Computer/Servers 120 im
Falle eines zentralen Front-End-Einstellsatzes 1801–18032 (und
zwischen dem Protokoll, das von der Reihe von Plattenlaufwerken 140 verwendet wird,
im Falle eines zentralen Back-End-Einstellsatzes 2001–20032)
einerseits und dem Protokoll zwischen den zentralen Einstellsätzen 1801–18032, 2001– 20032 und
dem globalen Cache-Speicher 220 (1) andererseits.
Genauer gesagt, das von dem Host-Computer/Server 120 verwendete
Protokoll kann beispielsweise ein Faserkanal-, SCSE-, ESCON- oder
FICON-Protokoll sein, wie durch den Hersteller des Host-Computer/Servers 120 festgelegt,
während
das Protokoll, das intern in der Systemschnittstelle 160 (2)
verwendet wird, durch den Hersteller der Schnittstelle 160 gewählt wird.
Der Quadport-RAM 402 ist ein FIFO, der durch den Controller 404 gesteuert
wird, da die Rate der in den RAM 402 eintretenden Daten
unterschiedlich von der Rate der Daten sein kann, welche den RAM 402 verlassen.
Der RAM-402 hat vier Ports. Vorliegend erzeugt der Protokollübersetzer 400 Digitalwörter für das Protokoll
der Systemschnittstelle 160 (1), wobei
ein Abschnitt dieses Wortes an einen von jeweils zwei Ports des
Quadport-RAM 402 angekoppelt wird und der andere Abschnitt
des Wortes an den anderen von jeweils zwei Ports des Quadport-RAM 402 angekoppelt
wird.
-
Der
Quadport-RAM hat also ein Paar von Ports 402A und 402B,
jeden der Ports 402A, 402B. Daten werden in der
dargestellten Weise zwischen den Ports 402A, 402B und
deren Cache-Speicher 240 (1) über den
Querschienenschalter 318 (hier auch als obere Maschine,
UM bezeichnet) übertragen.
-
Der
Querschienenschalter 318 enthält ein Paar von Schaltern 406A, 406B.
Jeder der Schalter 406A, 406B enthält vier
QPR-Ports D1–D4;
vier Pipelinemaschinen-(PM-)Ports P1–P4 und vier Eingangs-/Ausgangs-Ports
M1–M4
bzw. M5–M8
auf der Speicherseite, wie dies dargestellt ist. Die speicherseitigen
Eingangs-/Ausgangs-Ports M1–M4,
M5–M8 wurden
oben in Verbindung mit den Erläuterungen
zu 2 kollektiv als Port 321 bezeichnet.
-
Es
sei nun auf 3 Bezug genommen. Die Ports
D1–D4
des Schalters 406A sind mit den Ports 402A eines
entsprechenden Quadport-RAM 402 in jedem der zentralen
Einstellsätze 1801, 1802, 1805 und 1807 in
der gezeigten Weise verbunden. In gleicher Weise sind die QPR-Ports
D1D4 des Schalters 406B in der dargestellten Weise mit
den Ports 402B der Quadport-RAMs 402 in jedem
der zentralen Einstellsätze 1801, 1803, 1805 und 1807 verbunden.
Die PM-Ports P1–P4
des Schalters 406A sind mit einem von den beiden Ports 403A, 402A,
hier mit den Ports 403A eines entsprechenden von den Quadport-RAM-Controllern 404 in
jedem der zentralen Einstellsätze 1801, 1803, 1805 und 1807 durch
Busse RA1–RA4
verbunden, wie dargestellt. Ebenso sind die PM-Ports P1P4 des Schalters 406B mit
den Ports 403B des Quadport-RAM-Controllers 404 eines
entsprechenden von den zentralen Einstellsätzen 1801, 1803, 1805 und 1807 über Busse RB1–RB4 verbunden,
wie dies dargestellt ist.
-
Die
Ports D1–D4
werden gemäß den Steuerwörtern, die
dem Schalter 406A von den Controllern in den zentralen
Einstellsätzen 1801, 1803, 1805, 1807 auf
den Bussen RA1–RA4
geliefert werden, selektiv mit den Ports M1–M4 verkoppelt, und die Ports D1–D4 werden
gemäß den Steuerwörtern, die
dem Schalter 406B von den Controllern 404 in den
zentralen Einstellsätzen 1801, 1803, 1805, 1807 auf
den Bussen RB1–RB4
geliefert werden, mit den Ports M5–M8 verkoppelt, wie dargestellt.
-
Die
Signale RA1–RA4
werden mit PM-Ports P1–P4
des Schalters 406A verkoppelt, und die Busse RB1–RB4 sind
mit den PM-Ports P1–P4
des Schalters 406B verkoppelt. Die Signale auf den Bussen RA1–RA4 schließen Anforderungssignale
ein und ermöglichen
auch den Datentransfer zwischen den Speicherports M1–M8 über die
Pipelinemaschine 404 und den Mikroprozessor 299.
So kann beispielsweise das Signal auf dem Bus RA1 vom PM 404 des zentralen
Einstellsatzes 1801 verwendet werden, um einen Datentransfer
zwischen einem der Speicher M1–M4 über den
QPR 402 und dem Host-Computer über den Schalter 406A anzufordern.
Der Bus RA1 kann auch verwendet werden, um Daten zwischen einem
der Speicher M1–M4
und dem Mikroprozessor 299 in dem zentralen Einstellsatz 1801 zu übertragen.
-
In
gleicher Weise kann das Signal auf dem Bus RB1 vom PM 404 des
zentralen Einstellsatzes 1801 verwendet werden, um einen
Datentransfer zwischen einem der Speicher M5–M8 durch den QPR 402 und
dem Host-Computer durch den Schalter 406B anzufordern.
Der Bus RB1 kann auch verwendet werden, um Daten zwischen einem
der Speicher M5–M8
und dem Mikroprozessor 299 in dem zentralen Einstellsatz 1801 zu übertragen.
-
Die
anderen Direktoren 1801 , 1803 , 1805 und 1807 arbeiten auf ähnliche Weise in Bezug auf
die Busse RA2, RB2, RA3, RB3 und RA4, RB4.
-
Was
die Anforderungssignale auf den Bussen RA1–RA4 für
den exemplarischen Schalter 406A betrifft, so kann einer
der zentralen Einstellsätze 1801 , 1803 , 1805 1807 selektiv
gemäß den Anforderungssignalen
auf den Bussen RA1–RA4 mit
einem der Ports M1–M4 des
Schalters 406A verkoppelt werden. Ebenso kann der Port 402B einer
der zentralen Einstellsätze 1801 –1804 selektiv gemäß den Anforderungssignalen
auf den Bussen RB1–RB4 mit
einem der Ports M5M8 des
Schalters 406B verkoppelt werden. Das Koppeln zwischen
den Platinen 1901 –1908 , 2101 –2108 der zentralen Einstellsätze und
dem globalen Cache-Speicher 220 ist in 4 dargestellt.
-
Man
betrachte wieder 3. Wie oben angegeben, schließt der Querschienenschalter 318 ein Paar
Querschienenschalter 406A, 406B ein. Jeder der
Schalter 406A, 406B schließt vier Eingabe/Ausgabe- oder
QPR-Ports D1–D4
auf der Seite der zentralen Einstellsätze und die vier speicherseitigen
Eingabe/Ausgabe-Ports, die in 2 gemeinsam
mit der Bezugszahl 321 bezeichnet sind, ein. Die QPR-Ports
D1–D4
des Schalters 406A sind mit den vier zentralen Einstellsätzen auf
der Platine für
zentrale Einstellsätze
verbunden, wie dargestellt. Ebenso sind auch die QPR-Ports D1–D4 des
Schalters 406B mit den zentralen Dualport-Einstellsätzen auf dieser
Platine verbunden, wie dargestellt. Somit ist, wie in den oben genannten
mit-anhängigen
Patentanmeldungen beschrieben, jeder zentrale Einstellsatz ein zentraler
Dualport-Einstellsatz.
-
Genauer
ist, wie oben angegeben und wie auch in 1 dargestellt,
jeder der Host-Computerprozessoren 121–12132 im Host-Computer 120 mit einem
Paar der zentralen Front-End-Einstellsätze 1801–18032 verbunden,
um für
eine Redundanz im Falle eines Versagens einer der zentralen Front-End-Einstellsätze 1801–18132,
die damit verkoppelten sind, zu sorgen, wie in den oben beschriebenen
Patentanmeldungen beschrieben.
-
Man
betrachte wiederum 3. Das Schaltnetz 318 ist
mit dem Cache-Speicher 220 (1) verbunden,
um Daten zwischen dem Speicher 220 und (a) dem Eingang
I eines ausgewählten
von der Vielzahl von zentralen Einstellsätzen 1801, 1803, 1805, 1807 durch
den Quadport-RAM 402 zu übertragen (d. h. ein I/O-Transfer);
(b) dem Mikroprozessor 299 und dem Datenpipeline-Speicher
durch den Quadport-RAM-Controller 404 eines
ausgewählten von
den zentralen Einstellsätzen 1801, 1803, 1805, 1807 (d.
h. ein DMA-Transfer, der dafür
ausgelegt ist, Wörter
in den oder aus dem Cache-Speicher 220 zu übertragen);
und (c) dem Mikroprozessor 299 und dem Quadport-RAM-Controller 404,
während
der Quadport-RAM 402 eines ausgewählten von der Vielzahl von
zentralen Einstellsätzen 1801, 1803, 1805, 1807 umgangen
wird (d. h. ein DSA-Transfer, der dafür ausgelegt ist, Wörter in
den oder aus dem Cache-Speicher 220 zu übertragen).
-
Man
betrachte nun 5. Es werden die Einzelheiten
eines beispielhaft herausgegriffenen von den beiden Schaltern, hier
des Schalters 406A, gezeigt. Der Schalter 406A weist
zusätzlich
zu den Ports D1–D,
die mit den Quad-Port-RAMs (QPRs) 402 eines entsprechenden
von den vier zentralen Einstellsätzen 1802–1804 verbunden
ist, vier Ports P1–P4
auf, die mit dem QPR-Controller 404 (3) (auch
als Pipeline-Maschine
PM bezeichnet) eines entsprechenden der vier zentralen Einstellsätze 1802–1804 verkoppelt
sind, wie in 3 dargestellt. Der Schalter 406A ist
ausführlicher
in 5 dargestellt und schließt vier identische Schaltabschnitte 602, 604, 606 und 608 ein,
wie dargestellt. Die Schaltabschnitte 602, 604, 606 und 608 sind
in 6, 6A–6D dargestellt.
Ein beispielhaft herausgegriffener von den Schaltabschnitten 602–608,
hier der Schalter 602, ist ausführlich in 6A dargestellt.
Es reicht hier jedoch zu sagen, dass jeder der Schaltabschnitte 602, 604, 606,
und 608 Portpaare P1, D1 bis P4, D4 aufweist, wie angegeben.
Jeder der Schaltabschnitte 602, 604, 606 und 608 ist
mit einem entsprechenden von den Transceivern (XCVRs) 610–616 verbunden,
wie angegeben. Jeder der Transceiver 610–616 schließt ein Paar
Serializer/Deserializer (SER DES) ein, wie dargestellt. Die SERDESs
in den XCVRs 610–614 sind
mit Ports M1–M4
verkoppelt, wobei diese Ports M1–M4 mit dem Cache-Speicher 220,
in 4 dargestellt, der Speicherplatten verkoppelt
sind, wie dargestellt. Es sei darauf hingewiesen, dass die Schaltabschnitte 602–604 und
die Transceiver 610–616 auf
einem Halbleiterchip ausgebildet sind.
-
Man
betrachte nun 6, 6A–6D, wo
gezeigt ist, dass die Schaltabschnitte 602–608, hier
der Schaltabschnitt 602, gezeigt sind, wobei dieser Schaltabschnitt 602 ausführlicher
in 6A dargestellt ist. So schließt der Schaltabschnitt 602 einen FIFO 432 ein,
der von den Signalen auf dem Bus RA1 am
Port P1 versorgt wird. (Es sei klargestellt,
dass die FIFOs, nicht dargestellt, in den Schaltabschnitten 604–608 mit
Signalen auf den Bussen RA2–RA4 an den Ports P2–P4 versorgt werden, wie in 5 dargestellt).
-
Der
Schaltabschnitt 602 schließt auch eine Anfragenerzeugung 437 und
einen Arbiter 436 und Selektoren 442, 443 und 444 ein,
die alle angeordnet sind wie dargestellt.
-
Es
sei darauf hingewiesen, dass der Datenabschnitt des Wortes am Port
D1 (d. h. des Wortes auf dem Bus DD1) im
Schaltabschnitt 602 verwendet wird und auch mit den anderen
Teilabschnitten 604, 606, 608 (5)
verkoppelt wird. Ebenso wird der Datenabschnitt der Wörter an
den Ports D2–D4 (d.
h. der Wörter
auf den Bussen DD2–DD4)
und innerhalb der Schaltabschnitte 5604, 606, 608 verwendet,
in den Schaltabschnitt 602 auf den Bussen DD1–DD4 eingegeben,
wie dargestellt.
-
Es
sei darauf hingewiesen, dass der Datenabschnitt der Wörter im
FIFO 432 (FIFO Data 1) im Schaltabschnitt 602 verwendet
wird und auch mit den anderen Schaltabschnitten 604, 606, 608 verkoppelt wird
(5). Ebenso wird der Datenabschnitt der Wörter in
den FIFOs, die in den Schaltabschnitten 604, 606, 608 verwendet
werden, in den Schaltabschnitt 602 auf den Bussen FIFO
Data 2–4
eingegeben, wie angezeigt.
-
Es
sei darauf hingewiesen, dass die Transceiversteuerung (XCVR Control
1), die von einer Zustandsmaschine 700 erzeugt wird, im
Schaltabschnitt 602 verwendet wird und auch mit den anderen Schaltabschnitten 604, 606, 608 verkoppelt
wird (5). Ebenso wird die Transceiversteuerung (XCVR
Control 2–XCVR
4), die in den Schaltabschnitten 604, 606, 608 verwendet
wird, in den Schaltabschnitt 602 auf den Bussen XCVR Control 2–XCVR Control
4 eingegeben, wie dargestellt.
-
Es
sei auch darauf hingewiesen, dass die Datenabschnitte des Wortes
am Port M1 (d. h. der Wörter, die vom Transceiver 610 (5)
auf den Bussen DSA_DATA1, QPR_DATA1, ST1 erzeugt werden) auch mit
den anderen Schaltabschnitten 604, 606, 608 verkoppelt
werden. Die Daten auf dem DSA_DATA1-Bus sind Daten, die mit einem DSA-Transfer
assoziiert sind. Die Daten auf dem QPR_DATA1 sind Daten, die mit
entweder einem I/O- oder einem DMA-Transfer assoziiert sind. Die
Daten auf dem ST1-Bus sind Zustandsdaten.
-
Schließlich sei
darauf hingewiesen, dass die Daten DD1, FIFO_DATA1, die über den
Transceiver 610 zum Speicherport M1 weitergegeben werden, auch
in die anderen Schaltabschnitte 604, 606, 608 eingegeben
werden und auf ähnliche
Weise die Daten, die an den Speicherports M2–M4 gekoppelt sind, auch mit
dem Schaltabschnitt 602 verkoppelt werden.
-
Eine
Anforderung auf dem Bus RA1 zum Schaltabschnitt 602 ist
eine Anforderung vom zentralen Einstellsatz 1801 ,
die den einen der vier Ports M1–M4 im Schalter 602, der mit dem Port 402A des zentralen
Einstellsatzes 1801 (QPR-seitiger
Port D1) für einen DMA- oder I/O-Transfer
verkoppelt werden soll, identifiziert. Somit kann der Port 406A des
zentralen Einstellsatzes 1801 mit
einem der speicherseitigen Ports M1–M4 selektiv gemäß den Daten auf dem Bus RA1 verkoppelt werden Ebenso ist eine Anforderung
auf den Bussen RA2, RA3,
RA4 an die Schaltabschnitte 604, 606, 608 (5)
jeweils eine Anforderung von den zentralen Einstellsätzen 1803 , 1805 und 1807 , die den einen der drei Ports M2–M4 in den Schaltabschnitten 604, 606, 608 (5)
identi fizieren, der für
einen DMA- oder I/O-Transfer mit dem Port 402a der zentralen
Einstellsätze 1803 , 1805 und 1807 verkoppelt werden soll (QPR-seitiger
Port D2, D3, D4).
-
Genauer
werden die Anforderungen auf dem Bus RA1,
während
sie vom Quadport-RAM-Controller (d. h. PM) 40 (3)
erzeugt werden, auf dem Empfangs-FIFO 432 (6A)
gespeichert. Der Anforderungsgenerator 434 (6A)
empfängt
vom FIFO 432 die Anforderungen und bestimmt, welcher der vier
speicherseitigen Ports M1–M4 mit dem Port 402A des zentralen
Einstellsatzes 1801 verkoppelt
werden soll. Diese Anforderungen für die speicherseitigen Ports
M1–M4 werden auf den Bussen RA1,1–RA1,4 erzeugt.
Somit wird der Bus RA1,1 (d. h. die Anforderungen für den speicherseitigen
Port M1) an den Arbiter 436 geschickt,
und die Anforderungen von den Schaltabschnitten 604, 606, 608 (5)
(die mit dem Port 402A der zentralen Einstellsätze 1803 , 1805 und 1807 ) auf den Bussen RA2,1, RA3,1, und
RA4,1 verkoppelt sind, werden ebenfalls in den Arbiter 436 eingegeben,
wie angegeben. Der Arbiter 436 löst mehrere Anforderungen für den speicherseitigen
Port M1 beispielsweise auf einer first-come-first-serve-Basis oder
eine Ringverteilungs-Basis. Der Arbiter 436 erzeugt dann
ein Steuersignal auf dem Bus 435, das den einen der zentralen
Einstellsätze 1801 , 1803 , 1805 oder 1807 ,
der mit dem speicherseitigen Port M1 verbunden werden soll, angibt.
-
Das
Steuersignal auf dem Bus 435 wird in die Selektoren 442, 443 und 444 eingegeben.
Ebenfalls in den Selektor 442 werden der Datenabschnitt der
Daten am Port D1, d. h. die Daten auf dem
Datenbus DD1) zusammen mit dem Datenabschnitt der Daten an den Ports
D2–D4 (d. h. die Daten auf den Datenbussen DD2–DD4 eingegeben,
wie angegeben. Ebenfalls in den Selektor 443 eingegeben
werden die FIFO-Daten von den FIFOs in den Schaltabschnitten 602, 604, 606 und 608.
Ebenfalls in den Selektor 444 eingegeben werden die Transceiver-Steuersignale
von den Zustandsmaschinen 700 in den Schaltabschnitten 602, 604, 606 und 608.
Somit bewirkt das Steuersignal auf dem Bus 435, dass die
Selektoren 442, 443 und 444 sich mit
den Ausgängen der
Datenbusse DD1–DD4,
FIFOs 432 verkoppeln und Zustandsmaschinen 700 von
dem einen der zentralen Einstellsätze 1801, 1803, 1805, 187 Zugang zum
speicherseitigen Port M1 durch den Arbiter 436 bekommen.
Die ausgewählten
Ausgänge
der Selektoren 442, 443 und 444 werden
in einem Assembler kombiniert und zum speicherseitigen Port M1 über den
Transceiver als SEND_DATA geschickt. Es sei darauf hingewiesen,
dass, wenn der Arbiter 436 eine Anforderung über die
Signale auf Bussen RA1,1; RA2,1; RA3,1; und RA4,1 erhält, Bestätigungen
vom Arbiter 436 über
Bestätigungssignale
auf der Leitung AK1,1, AK1,2, AK1,3, AK1,4 ausgegeben werden, wobei
diese Signale in die Anforderungsgeneratoren 437 im Schaltabschnitt 602–608 eingegeben
werden.
-
Für eine Speicherleseoperation
arbeitet der Arbiter auf ähnliche
Weise, und wenn eine Erlaubnis erteilt wird, werden die Selektoren 445, 446 und 447 betätigt, um
die Datenlese am Speicherport M1 durch den Schaltabschnitt 602 passieren
zu lassen. Somit wird den Selektoren 445, 446 und 447 auch
ein Steuersignal eingegeben, das vom Anforderungsgenerator 434 auf
dem Bus 449 erzeugt wird, als Antwort auf das Anforderungssignal
RA1, das im FIFO 432 gespeichert
ist. Das Steuersignal auf dem Bus 449 zeigt den Selektoren 445, 446 und 447 eines
der speicherseitigen Ports M1–M4, der mit dem Port D1 auf der Seite des
zentralen Einstellsatzes oder mit dem Bus RA1 verkoppelt werden
soll. Die anderen Schaltabschnitte 604–608 arbeiten auf ähnliche
Weise in Bezug auf die Ports D1–D4,
RA2–RA4
auf der Seite des zentralen Einstellsatzes und die speicherseitigen Ports
M1–M4.
-
Man
betrachte kurz 2 und 3. Es sei darauf
hingewiesen, dass der Schalter 318 mit dem Cache-Speicher 220 (1)
verbunden ist und daher manchmal als die Obere Maschine (UM) bezeichnet
wird. Wie in 3 dargestellt, gibt es vier
Quadport-RAMs, (QPRs) 402 auf jeder für die Platine 1901 eines
zentralen Einstellsatzes (2), d. h.
einen QPR 402 für
jeden der zentralen Einstellsätze 1801 , 1802 , 1803 , 1804 .
Wie auch in 5A dargestellt, sind die vier
QPRs 402 als QPR A, QPR B, QPR C und QPR D bezeichnet.
-
Es
sei auch mit Bezug auf 3 dargestellt, dass es vier
Quadport-RAM-Controller 404,
oder Pipelinemaschinen (PM) auf jeder Platine 1901 eines zentralen
Einstellsatzes (2) gibt, wie in 3 für die Platine 1901 eines
zentralen Einstell satzes dargestellt, d. h. einen PM für jeden
der zentralen Einstellsätze 1801, 1802, 1803, 1804.
Wie in 5A dargestellt, sind die vier
PMs 402 als PM A PM B, PM C und PM D bezeichnet.
-
Man
betrachte 5. Die Schaltabschnitte 602, 604, 606, 608 wirken
zusammen, wie oben beschrieben, so dass jeder PM und QPR auf alle
seriellen Kanäle
zum Speicher 220 (1) zugreifen
kann. Das heißt,
jeder der vier Teile bzw. Slices (d. h. die Schaltabschnitte 602, 604, 606, 608)
kommuniziert mit einem PM und einem QPR auf seiner „unteren" Seite und mit einem
seriellen Kanal, der mit einer Speicherplatte des Cache-Speichers 220 verbunden ist
(4) auf seiner „oberen" Seite.
-
Die
Zustandsmaschine 700 ist dann die Hauptsteuereinheit des
Teils. Bei Empfang einer Bestätigung
für den
Arbiter 436 und die Quelle der Daten vom Request-Erzeuger 437 gibt
er Steuersignale an den QPR (einen DMA- oder I/O-Transfer) oder FIFO 432 (einen
DAS- oder Internregistertransfer) aus, bewegt die geeigneten Daten
durch den Teil, benachrichtigt den XCVR über die eingehenden Daten, damit
der Transfer mit einem Transferzähler
stattfinden kann, und gibt „Done" an die anderen Blöcke aus.
-
Die
XCVRs 600, 612, 614, 618 (5)
steuern die Üertragung
des Befehls und der Daten für
einen entsprechenden von den Kanälen
(5A) zu den anderen von den Speicherports M1–M4, die mit ihm über die Rückseitenplatine verkoppelt
sind, und gibt den Zustand jedes Transfers zum Zustandsabschnitt 702 (6A)
zurück.
Der XCVR erzeugt CRC für
jeden Satz von Befehlen, der zur Speicherplatte geschickt wird und
für jeden
Daten-Burst beim Schreiben. Die Speicherplatte erzeugt CRC aus den Daten,
um Daten-Bursts zu lesen. Der XCVR überprüft den CRC am Ende jeder Lesedaten-
und Transferzustands-Bursts.
-
Der
Zustandsabschnitt 702 (6A), der
als interne(s) Register bezeichnet wird, ist mit einem PM assoziiert.
Er ist dafür
verantwortlich, DSA/Zustandsdaten zum PM zurückzumelden. Bei einem DSA-Lesen
kann der Zustandsabschnitt 702 Daten vom passenden XCVR
empfangen. Das Zustandsregister 702 empfängt ebenfalls
den Transferzustand und meldet diesen am Ende eines Transfers zurück.
-
Der
Assembler 704 (6A) nimmt
die 18 Bits des Befehls und DSA-Schreiben und setzt diese zu 36
Datenbits zusammen.
-
Genauer
kombiniert der Assembler 704 zwei aufeinanderfolgende 18
Bit Daten vom PM (d. h. aus dem FIFO 432 gelesen) zu einem
36 Bit Wort, da die Daten, die zwischen dem PM und dem FIFO 432 passieren,
8 Bits haben (16 Bit + 2 Paritätsbits)
und da der globale Speicher 220 dafür ausgelegt ist, 36 Bits vom
QPR (32 Bits + 4 Paritätsbits)
zu empfangen.
-
Man
betrachte nun 7, das ein Ablaufschema ist,
in dem ein Verfahren dargestellt wird, das verwendet wird, um Befehle
auszuführen,
die im FIFO 432 gespeichert sind (6A).
-
Zu
Anfang ist das Verfahren im Leerlauf, Schritt 900.
-
In
Schritt 902 überprüft die Zustandsmaschine 700,
ob der FIFO 432 leer ist. Wenn der FIFO 432 leer
ist, kehrt die Zustandsmaschine 700 in den Leerlauf zurück, ansonsten
wird ein erster Teil eines Befehls vom FIFO 3432 ausgelesen,
Schritt 904.
-
In
Schritt 906 schickt der Anforderungsgenerator 434 eine
Anforderung an den geeigneten Arbiter 436 (abhängig vom
Inhalt des ersten Wortes des Befehls) und zur Zustandsmaschine 700.
Wenn der Arbiter 436 eine Bestätigung liefert, Schritt 908,
liest die Zustandsmaschine 700 den verbliebenen Teil des Befehls
aus dem FIFO 432 und der Befehl zusammen mit den Daten,
die mit dem Befehl assoziiert sind, wird dann vom FIFO 432 und
vom QPR zum geeigneten Transceiver geschickt, Schritt 910.
-
In
Schritt 912 schickt der Zustandsabschnitt 702,
wenn ein Zustandssignal ST1 beispielsweise zum Zustandsabschnitt 702 geschickt
wird, ein DONE-Signal zur Zustandsmaschine 700, Schritt 914.
-
Dann
wird eine Bestimmung getroffen, ob der FIFO leer ist, Schritt 916.
Wenn der FIFO leer ist, kehrt das Verfahren in den Leerlauf zurück, Schritt 900;
ansonsten geht das Verfahren zu Schritt 918 weiter, wo
der Anforderungsgenerator 434 den ersten Abschnitt eines
Befehls aus dem nächstfolgenden
von der Vielzahl von Befehlen, die im FIFO 432 gespeichert
sind, liest.
-
In
Schritt 922, wenn der Arbiter 436 eine Bestätigung liefert,
kehrt das Verfahren zu Schritt 910 zurück.
-
Mit
diesem Verfahren liefert das Zustandsregister ein DONE-Signal, das
anzeigt, wenn ein Befehl erfolgreich auf den Speicher übertragen
wurde, wodurch ein nächstfolgender
Befehl im Zwischenspeicher als Antwort auf das DONE-Signal an den
Speicher gesendet werden kann.