DE602004012987T2 - Datenspeichersystem - Google Patents

Datenspeichersystem Download PDF

Info

Publication number
DE602004012987T2
DE602004012987T2 DE602004012987T DE602004012987T DE602004012987T2 DE 602004012987 T2 DE602004012987 T2 DE 602004012987T2 DE 602004012987 T DE602004012987 T DE 602004012987T DE 602004012987 T DE602004012987 T DE 602004012987T DE 602004012987 T2 DE602004012987 T2 DE 602004012987T2
Authority
DE
Germany
Prior art keywords
ports
memory
central
data pipeline
data
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
DE602004012987T
Other languages
English (en)
Other versions
DE602004012987D1 (de
Inventor
Ofer Westborough PORAT
Brian K. Cedar Park CAMPBELL
Yujie Franklin XU
Eric J. Marlborough BRUNO
Paul C. Mendon WILSON
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 DE602004012987D1 publication Critical patent/DE602004012987D1/de
Application granted granted Critical
Publication of DE602004012987T2 publication Critical patent/DE602004012987T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices

Description

  • 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 6A6D, 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 180118032, welche mit dem Host-Computer/Server 120 über Ports 123112332 gekoppelt sind; eine Vielzahl von zentralen Back-End-Einstellsätzen 200120032, welche mit der Reihe von Plattenlaufwerken 140 über Ports 1233312364 gekoppelt sind; einen Datenübertragungsabschnitt 240, welcher einen globalen Cache-Speicher 220 aufweist, der mit der Vielzahl von zentralen Front-End-Einstellsätzen 180118032 und den zentralen Back-End-Einstellsätzen 200120032 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 180118032 und den zentralen Back-End-Einstellsätzen 200120032 in der dargestellten Weise gekoppelt ist. Die zentralen Front-End- und Back-End-Einstellsätze 180118032 bzw. 200120032 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 180118032 bzw. 200120032 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 180118032 und 200120032 ü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 180118032 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 180118032 laufen und dass die Nachrichten über die Nachrichtenmaschinen-/CPU-Steuereinheit 314 in diesen zentralen Front-End-Einstellsätzen 180118032 laufen. Im Falle der zentralen Back-End-Einstellsätze 200120032 fließen die Daten zwischen den zentralen Back-End-Einstellsätzen 200120032 und der Reihe von Plattenlaufwerken 140 sowie dem globalen Cache-Speicher 220 über die Datenpipeline 316 in den zentralen Back-End-Einstellsätzen 200120032 und wieder laufen die Nachrichten über die Nachrichtenmaschinen-/CPU-Steuereinheit 314 in diesen zentralen Back-End-Einstellsätzen 200120032.
  • 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 19012108 enthält, wie oben angemerkt, vier der zentralen Einstellsätze 180118032, 200120032 (2). Es ist festzustellen, dass die Platinen von zentralen Einstellsätzen 19011908 vier zentrale Front-End-Einstellsätze je Platine umfassen, wobei die zentralen Einstellsätze 180118032 die zentralen Front-End-Einstellsätze sind, und dass die Platinen von zentralen Einstellsätzen 21012108 vier zentrale Back-End-Einstellsätze je Platine umfassen, wobei die Platinen von zentralen Einstellsätzen 210121032 die zentralen Back-End-Einstellsätze sind. Jeder der Einstellsätze 180118032, 210121032, 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 123112332 wie in 1 dargestellt auf, die mit den Prozessoren 121112132 verkoppelt sind, wie dargestellt. Die Platinen der zentralen Back-End-Einstellsätze weisen Ports 1233312364 auf, wie in 2 dargestellt, die mit den Plattenlaufwerken 141114132 verkoppelt sind, wie dargestellt.
  • Jede der Platinen von zentralen Einstellsätzen 19012108 enthält einen Querschienenschalter 318 wie in 3 für eine exemplarische von den Platinen von zentralen Einstellsätzen 19012108 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 180118032, 200120032 auf der Einstellsatz-Platine 19012108 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 19111918 der zentralen Front-End-Einstellsätze dient zur Kopplung der Datenpipeline 316 mit einem ausgewählten der vier zentralen Front-End-Einstellsätze 180118032 auf der Platine 19011908 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 21012108 eines zentralen Back-End-Einstellsatzes dient zur Kopplung der Datenpipeline 316 auf einem ausgewählten der vier zentralen Back-End-Einstellsätze 200120032 auf der Platine 21012108 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 180118032 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 200120032 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 180118032; 200120032 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 19011908, 21012108 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 18011804, 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 180118032 (und zwischen dem Protokoll, das von der Reihe von Plattenlaufwerken 140 verwendet wird, im Falle eines zentralen Back-End-Einstellsatzes 200120032) einerseits und dem Protokoll zwischen den zentralen Einstellsätzen 180118032, 200120032 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 12112132 im Host-Computer 120 mit einem Paar der zentralen Front-End-Einstellsätze 180118032 verbunden, um für eine Redundanz im Falle eines Versagens einer der zentralen Front-End-Einstellsätze 180118132, 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 18021804 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 18021804 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, 6A6D dargestellt. Ein beispielhaft herausgegriffener von den Schaltabschnitten 602608, 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) 610616 verbunden, wie angegeben. Jeder der Transceiver 610616 schließt ein Paar Serializer/Deserializer (SER DES) ein, wie dargestellt. Die SERDESs in den XCVRs 610614 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 602604 und die Transceiver 610616 auf einem Halbleiterchip ausgebildet sind.
  • Man betrachte nun 6, 6A6D, wo gezeigt ist, dass die Schaltabschnitte 602608, 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 604608 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 602608 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 604608 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.

Claims (8)

  1. Systemschnittstelle (160), aufweisend: (a) einen Cache-Speicher (220); (b) eine Vielzahl von zentralen Einstellsätzen (180118032, 200120032), wobei jeder aus der Vielzahl von zentralen Einstellsätzen aufweist: (i) eine Datenpipeline (316), die zwischen einen Eingang dieses einen Einstellsatzes geschaltet ist, wobei die Datenpipeline aufweist: (A) einen Datenpipeline-Speicher (402); (B) einen Datenpipeline-Speichercontroller (404) zum Steuern des Datenpipeline-Speichers (402); und (ii) einen Mikrorechner (299), der mit dem Datenpipeline-Speichercontroller (404) verkoppelt ist; (c) ein Schaltnetzwerk (318), das mit dem Cache-Speicher (220) verkoppelt ist, um Daten zu übertragen zwischen dem Cache-Speicher (220) und: (i) dem Eingang eines aus der Vielzahl der zentralen Einstellsätze (1801, 1803, 1805, 1807) ausgewählten Einstellsatzes über den Datenpipeline-Speicher (402); (ii) dem Mikrorechner (299) und dem Datenpipeline-Speicher (402) über den Datenpipeline-Speichercontroller (40) eines aus der Vielzahl von Einstellsätzen (1801, 1803, 1805, 1807) ausgewählten Einstellsatzes; und (iii) dem Mikrorechner (299) und dem Datenpipeline-Speichercontroller (404) unter Umgehung des Datenpipeline-Speichers (402) eines aus der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) ausgewählten Einstellsatzes.
  2. Systemschnittstelle (160) nach Anspruch 1, wobei: der Datenpipeline-Speichercontroller ein Paar Ports aufweist; und das Schaltnetzwerk (318) aufweist: (1) eine Vielzahl von ersten Ports (D1–D4 von 406A), von denen jeder mit einem entsprechenden ersten Port von den beiden Ports (402A, 402B) des Datenpipeline-Speichers (402) der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) verbunden ist; (2) eine Vielzahl von zweiten Ports (D1–D4 von 406B), von denen jeder mit einem entsprechenden zweiten Port von den beiden Ports (402A, 402B) des Datenpipeline-Speichers (402) von der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) verbunden ist; (3) eine Vielzahl von dritten Ports (P1–P4 von 406A), von denen jeder mit einem entsprechenden ersten Port von den beiden Ports (403A, 403B) des Datenpipeline-Speichercontrollers (404) von der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) verbunden ist; (4) eine Vielzahl von vierten Ports (P1–P4 von 406B), von denen jeder mit einem entsprechenden zweiten Port von den beiden Ports (403A, 403B) des Datenpipeline-Speichercontrollers (404) von der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) verbunden ist.
  3. Systemschnittstelle (160) nach Anspruch 2, wobei ein solches Schaltnetzwerk (318) mit dem Cache-Speicher (220) verbunden ist, um Daten zu übertragen zwischen dem Cache-Speicher (220) und: (a) dem Eingang eines aus der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) ausgewählten Einstellsatzes über den Datenpipeline-Speicher (402) über die ersten oder zweiten Ports (D1–D4 von 406A oder 406B) des Schaltnetzwerks (318); (b) dem Mikrorechner (299) und dem Datenpipeline-Speicher (402) über den Datenpipeline-Speichercontroller (404) über die ersten oder zweiten Ports (D1–D4 von 406A oder 406B) des Schaltnetzwerks (318) eines aus der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) ausgewählten Einstellsatzes; und (c) dem Mikrorechner (299) und dem Datenpipeline-Speichercontroller (404) unter Umgehung des Datenpipeline-Speichers (402) über die dritten oder vierten Ports (P1–P4 von 406A oder 406B) des Schaltnetzwerks (318) eines aus der Vielzahl von zentralen Einstellsätzen (1801, 1803, 1805, 1807) ausgewählten Einstellsatzes.
  4. Systemschnittselle (160) nach Anspruch 3, wobei das Schaltnetzwerk (318) ein Paar Schalter (406A, 406B) enthält, wobei einer dieser Schalter (406A, 406B) mit einem ersten Abschnitt des Cache-Speichers (220) verbunden ist und ein anderer der Schalter mit einem zweiten Abschnitt des Cache-Speichers (220) verbunden ist, wobei der erste (406A) der beiden Schalter die ersten Ports (D1–D4) und die dritten Ports (P1–P4) aufweist und wobei der zweite (406B) der beiden Schalter die zweiten Ports (D1–D4) und die vierten Ports (P1–P4) aufweist.
  5. Systemschnittstelle (160) nach Anspruch 4, wobei jeder von den beiden Schaltern (406A, 406B) aufweist: eine Vielzahl von Schalterabschnitten (602, 604, 606, 608), die jeweils mit einem Entsprechenden von den ersten Ports (D1–D4) und einem Entsprechenden von den dritten Ports (P1–P4) verkoppelt sind; wobei jeder der Schaltabschnitte (602, 604, 606, 608) aufweist: einen Puffer (432), der mit dem Entsprechenden von den dritten Ports (P1–P4) verkoppelt ist, um aufeinander folgende Befehle an dem Entsprechenden von den dritten Ports (P1–P4) zu empfangen; einen Statusabschnitt (702) zum Ausgeben eines Fertig-Signals, das anzeigt, wann ein Befehl erfolgreich an den Speicher (220) übertragen wurde; einen Controller (700), der mit dem Puffer (432) und dem Statusabschnitt (702) verkoppelt ist, um zu ermöglichen, dass als Antwort auf das Fertig-Signal der nächste von den Befehlen im Puffer (432) an den Speicher (220) übertragen wird.
  6. Systemschnittstelle (160) nach Anspruch 5, wobei der Puffer (432) ein FIFO ist.
  7. Systemschnittstelle (160) nach einem Ansprüche 2 bis 6, wobei der Datenpipeline-Speicher (402) ein Quad-Port-RAM ist.
  8. Verfahren zum Betreiben einer Systemschnittstelle (160) nach Anspruch 2, wobei das Schaltnetzwerk (318) ein Paar Schalter aufweist, wobei von diesen Schaltern (406A, 406) einer mit einem ersten Abschnitt des Cache-Speichers (220) verbunden ist und ein anderer von den Schaltern (406A, 406B) mit einem zweiten Abschnitt des Cache-Speichers (220) verbunden ist, wobei der erste (406A) von den beiden Schaltern (406A, 406B) die ersten Ports (D1–D4) und die dritten Ports (P1–P4) aufweist und wobei der zweite (406B) der Schalter (406A, 406B) die zweiten Ports (D1–D4) und die vierten Ports (P1–P4) aufweist und wobei der zweite von den beiden Schaltern (406A, 406B) die zweiten Ports (D1–D4) und die vierten Ports (P1–P4) aufweist, wobei jeder von den beiden Schaltern (406A, 406B) aufweist: eine Vielzahl von Schalterabschnitten (602, 604, 606, 608), die jeweils mit einem entsprechenden von den ersten Ports (D1–D4) und einem entsprechenden von den dritten Ports (P1–P4) verkoppelt sind,; wobei jeder der Schalterabschnitte (602, 604, 606, 608) aufweist: einen Puffer (432), der mit dem Entsprechenden von den dritten Ports (P1–P4) verkoppelt ist, um aufeinander folgende Befehle am entsprechenden von den dritten Ports (P1–P4) zu empfangen; einen Statusabschnitt (702) zum Ausgeben eines Fertig-Signals, das anzeigt, wann ein Befehl erfolgreich an den Speicher (220) übertragen wurde, und einen Controller (700), der mit dem Puffer (432) und dem Statusabschnitt (702) verkoppelt ist, wobei dieses Verfahren umfasst: Zulassen, dass als Antwort auf ein Fertig-Signal ein nächster von den Befehlen im Puffer (432) an den Speicher (220) übertragen wird.
DE602004012987T 2003-03-31 2004-02-26 Datenspeichersystem Expired - Lifetime DE602004012987T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/403,262 US7143306B2 (en) 2003-03-31 2003-03-31 Data storage system
US403262 2003-03-31
PCT/US2004/005731 WO2004095211A2 (en) 2003-03-31 2004-02-26 Data storage system

Publications (2)

Publication Number Publication Date
DE602004012987D1 DE602004012987D1 (de) 2008-05-21
DE602004012987T2 true DE602004012987T2 (de) 2009-05-20

Family

ID=32989895

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004012987T Expired - Lifetime DE602004012987T2 (de) 2003-03-31 2004-02-26 Datenspeichersystem

Country Status (4)

Country Link
US (1) US7143306B2 (de)
EP (1) EP1609071B1 (de)
DE (1) DE602004012987T2 (de)
WO (1) WO2004095211A2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6953392B2 (en) * 2001-01-05 2005-10-11 Asm Nutool, Inc. Integrated system for processing semiconductor wafers
JP4405277B2 (ja) * 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US7734839B1 (en) * 2005-08-25 2010-06-08 American Megatrends, Inc. Method and integrated circuit for providing enclosure management services utilizing multiple interfaces and protocols
US7685329B1 (en) 2007-08-10 2010-03-23 American Megatreads, Inc. Detecting the presence and activity of a mass storage device
US8078770B1 (en) 2007-08-10 2011-12-13 American Megatrends, Inc. Combining multiple SGPIO streams to provide device status indicators
US8260976B1 (en) 2009-01-30 2012-09-04 American Megatrends, Inc. Multiple frequency state detection for serial I/O interfaces
US8312138B2 (en) * 2010-09-22 2012-11-13 Blue Stripe Software, Inc. Methods and computer program products for identifying and monitoring related business application processes
US11151063B2 (en) 2019-04-19 2021-10-19 EMC IP Holding Company LLC Host system directly connected to internal switching fabric of storage system
US10698844B1 (en) 2019-04-19 2020-06-30 EMC IP Holding Company LLC Intelligent external storage system interface
US11500549B2 (en) 2019-04-19 2022-11-15 EMC IP Holding Company LLC Secure host access to storage system resources via storage system interface and internal switching fabric
US10698613B1 (en) * 2019-04-19 2020-06-30 EMC IP Holding Company LLC Host processing of I/O operations
US10740259B1 (en) 2019-04-19 2020-08-11 EMC IP Holding Company LLC Host mapping logical storage devices to physical storage devices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214768A (en) * 1989-11-01 1993-05-25 E-Systems, Inc. Mass data storage library
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 株式会社日立製作所 記憶システム
US5781717A (en) * 1996-09-19 1998-07-14 I-Cube, Inc. Dynamic spare column replacement memory system
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US5978889A (en) * 1997-11-05 1999-11-02 Timeplex, Inc. Multiple device data transfer utilizing a multiport memory with opposite oriented memory page rotation for transmission and reception
US6195770B1 (en) * 1998-03-31 2001-02-27 Emc Corporation Data storage system
US6301637B1 (en) 1998-06-08 2001-10-09 Storage Technology Corporation High performance data paths
US6260079B1 (en) * 1998-11-15 2001-07-10 Hewlett-Packard Company Method and system for enhancing fibre channel loop resiliency for a mass storage enclosure by increasing component redundancy and using shunt elements and intelligent bypass management
US6389494B1 (en) 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US6567890B1 (en) * 1999-06-30 2003-05-20 Emc Corporation Fibre channel port by-pass selector section for dual ported disk drives
US6467047B1 (en) * 1999-07-30 2002-10-15 Emc Corporation Computer storage system controller incorporating control store memory with primary and secondary data and parity areas
US6571355B1 (en) * 1999-12-29 2003-05-27 Emc Corporation Fibre channel data storage system fail-over mechanism
US6615315B1 (en) * 1999-12-29 2003-09-02 Emc Corporation Fibre channel data storage system having improved fro-end I/O adapted hub
US6779071B1 (en) * 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6535043B2 (en) * 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same
US6609164B1 (en) * 2000-10-05 2003-08-19 Emc Corporation Data storage system having separate data transfer section and message network with data pipe DMA
US6636933B1 (en) * 2000-12-21 2003-10-21 Emc Corporation Data storage system having crossbar switch with multi-staged routing
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US7185174B2 (en) * 2001-03-02 2007-02-27 Mtekvision Co., Ltd. Switch complex selectively coupling input and output of a node in two-dimensional array to four ports and using four switches coupling among ports
US7103322B2 (en) * 2001-08-17 2006-09-05 Adtran, Inc. Equipment shelf-resident network interface unit by-pass circuit
US6907483B1 (en) * 2002-03-28 2005-06-14 Emc Corporation Data storage system having dummy printed circuit boards with jumpers

Also Published As

Publication number Publication date
DE602004012987D1 (de) 2008-05-21
WO2004095211A2 (en) 2004-11-04
EP1609071A2 (de) 2005-12-28
US7143306B2 (en) 2006-11-28
US20040193973A1 (en) 2004-09-30
EP1609071B1 (de) 2008-04-09
WO2004095211A3 (en) 2005-06-23

Similar Documents

Publication Publication Date Title
DE602004012987T2 (de) Datenspeichersystem
DE602004012633T2 (de) Vorrichtung und Verfahren zur Integration von Mehrserverplattformen
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69919137T2 (de) Datenspeichersystem
DE69735921T2 (de) Vermittlungselement für Fibre-Channel unter Verwendung von verteilten Warteschlangen
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE69632424T2 (de) Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE60211730T2 (de) System und verfahren zur cachespeicherung von dram mittels eines ausgangsbuffers
DE10197179T5 (de) Fern-Spiegelung in einer geschalteten Umgebung
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE10297283T5 (de) Controller-Daten-Sharing mittels einer DMA-Architektur
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE2917441A1 (de) Multiprozessoranlage
DE10297284T5 (de) Modulare Architektur für einen Netzwerk-Speicher Controller
DE102015102692A1 (de) Verfahren zum Optimieren von Netzdatenströmen in einem eingeschränkten System
DE2854485A1 (de) Datenverarbeitungssystem mit speicherhierarchie
WO2014020032A2 (de) Hochverfügbares rechnersystem, arbeitsverfahren und dessen verwendung
DE10045915A1 (de) Verfahren und System zum Steuern von Datenübertragungen mit physikalischer Trennung der Datenfunktionalität von der Adressen- und Steuerfunktionalität in einem verteilten Multi-Bus-Mehrprozessorsystem
DE112011100564T5 (de) Einfügen eines Flash-Zwischenspeichers in große Speichersysteme
DE102004024130B4 (de) Speichersystem und Verfahren zum Betrieb eines Speichersystems
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE112018005121T5 (de) Speichersystem unter verwendung von cloud-speicher als eine speicherbank

Legal Events

Date Code Title Description
8364 No opposition during term of opposition