-
Die
vorliegende Erfindung betrifft ein Speichermodul, eine Speichervorrichtung
und ein Verfahren zum Betreiben einer Speichervorrichtung. Die Erfindung
betrifft insbesondere Speichervorrichtungen vom Schreib-Lese-Typ,
welche beispielsweise in Computersystemen als RAM-Speicher (Random
Access Memory) eingesetzt werden.
-
Derzeit
ist es üblich,
bei Schreib-Lese-Speichern oder RAM-Speichern für Computersysteme Speichervorrichtungen
zu verwenden, welche ein oder mehrere Speichermodule umfassen und über eine
Speichersteuerung mit den übrigen
Komponenten des Computersystems kommunizieren. Beispielsweise können so
genannte DIMM-Speichermodule (Dual-In-Line Memory Modules) vom Fully-Buffered-Typ
verwendet werden. In diesem Fall besitzt jedes Speichermodul neben
einem Speicherkern einen so genannten Advanced Memory Buffer (AMB). Der
AMB stellt eine Verbindung zu einer Speichersteuerung bzw. zu einem
Memory-Controller
her. Der AMB dekodiert aus einem seriellen Datenstrom zwischen der
Speichersteuerung und dem Speichermodul Befehle und Schreibdaten
und leitet diese über eine
Speicherschnittstelle an den Speicherkern weiter. Umgekehrt kann
der AMB Daten aus dem Speicherkern in serielle Datenpakete umwandeln.
Weiterhin umfasst der AMB eine Durchleitungs-Logik oder Passthrough-Logik,
mittels welcher Schreib- oder Befehlsdaten durch das Speichermodul „hindurchgeleitet" werden können, welche
für ein
anderes Speichermodul bestimmt sind. Darüber hinaus ist bei Lesebefehlen
vorgesehen, mittels einer Einfügungs-Logik
bzw. Merging-Logik, Lesedaten aus dem Speicherkern des Speichermoduls
zu Datenpaketen zusammenzusetzen.
-
Für die Datenübertragung
wird ein spezielles Protokoll verwendet, welches auf zwei unterschiedlichen
Arten von Datenrahmen beruht: Über
eine 10 Bit Breite Southbound-Verbindung
(Southbound Link) gelangen Datenrahmen mit Schreib- oder Befehlsdaten
zu den Speichermodulen und über
eine 14 Bit Breite Northbound-Verbindung (Northbound Link) empfängt die
Speichersteuerung Antwort- bzw. Response-Datenrahmen von den Speichermodulen. Hierfür sind an
der Speichersteuerung und an den Speichermodulen jeweils spezielle
Eingangs- und Ausgangsschnittstellen vorgesehen. Die Southbound-Verbindung
dient der Übertragung
von Daten von der Speichersteuerung zu dem Speichermodul in einer
Vorwärtsrichtung,
während
die Northbound-Verbindung der Übertragung
von den Speichermodulen zu der Speichersteuerung in einer Rückwärtsrichtung
dient.
-
Wenn
die Speichervorrichtung mehrere Speichermodule umfasst, werden diese
kettenartig aneinandergereiht, wobei sowohl für die Southbound-Verbindung
als auch für
die Northbound-Verbindung
jeweils eine Eingangs- und eine Ausgangs-Schnittstelle von benachbarten Speichermodulen
miteinander verbunden sind. Auf diese Weise können Schreib- oder Befehlsdaten über die
Southbound-Verbindung in der Vorwärtsrichtung von einem Speichermodul
zu dem nächsten übertragen
werden, während
Lesedaten über
die Northbound-Verbindung
von einem Speichermodul zu dem nächsten übertragen
werden, jedoch in der umgekehrten Richtung wie bei der Southbound-Verbindung,
d. h. in der Rückwärtsrichtung.
-
Hierbei
ergibt sich als Problem, dass die Speichervorrichtung äußerst empfindlich
ist gegenüber
einer Funktionsstörung
des AMB eines der Speichermodule. Insbesondere versagt in diesem
Fall nicht nur die Datenübertragung
zu dem Speichermodul mit dem gestörten AMB, sondern auch zu allen Speichermodulen,
welche sich bezüglich
dieses Speichermoduls in der Vorwärtsrichtung befinden. In diesen
Speichermodulen gespeicherte Daten sind nicht mehr zugänglich und
damit praktisch verloren.
-
Darüber hinaus
besteht bei der bekannten kettenartigen Anordnung das Problem einer
hohen Latenzzeit für
diejenigen Speichermodule, welche von der Speichersteuerung am weitesten
entfernt sind. So addieren sich für ein Speichermodul, welches
in der Kette an n-ter Stelle angeordnet ist, die Latenzen von n
Punkt-zu-Punkt-Verbindungen. Weiterhin ist die Bandbreite für die Datenübertragung
begrenzt. Um eine bestimmte Bandbreite für die Datenübertragung zu gewährleisten,
sind bei einer Speichervorrichtung mit n Speichermodulen n Hochgeschwindigkeitsverbindungen
aktiv. In der Vorwärtsrichtung übertragene
Datenrahmen werden durch die gesamte Kette übertragen, auch wenn ihr Bestimmungsort
das erste Speichermodul der Kette ist. Hieraus ergibt sich eine
hohe Leistungsaufnahme.
-
Darüber hinaus
ist es bei den bekannten Speichervorrichtungen mit Fully-Buffered-DIMM-Speichermodulen
nur eingeschränkt
möglich,
ein Speichermodul während
des Betriebs der Speichervorrichtung zu entfernen oder zu ersetzen. Wenn
beispielsweise das erste Speichermodul der Kette, welches der Speichersteuerung
am nächsten ist,
ersetzt werden soll, müssen
alle Speichermodule der kettenartigen Anordnung deaktiviert werden
und die Daten anderweitig gespeichert werden.
-
Aufgabe
der vorliegenden Erfindung ist es daher, die Möglichkeit zu schaffen, die
oben beschriebenen Probleme zu vermeiden und die Zuverlässigkeit
für eine
Speichervorrichtung zu erhöhen.
-
Diese
Aufgabe wird gelöst
durch ein Speichermodul gemäß Anspruch
1, eine Speichervorrichtung gemäß Anspruch
8, durch ein Verfahren zum Betreiben einer Speichervorrichtung gemäß Anspruch
13 und durch eine Speichersteuerung gemäß Anspruch 25. Die abhängigen Ansprüche definieren bevorzugte
und vorteilhafte Ausführungsformen
der Erfindung.
-
Gemäß dem erfindungsgemäßen Ansatz
ist eine neuartige Speichertopologie vorgesehen, bei welcher eine
Speichersteuerung und mindestens ein Speichermodul eine geschlossene
Ringanordnung bilden, in welcher Daten sowohl in einer Vorwärtsrichtung
als auch in einer Rückwärtsrichtung übertragen werden
können.
-
Hierfür schlägt die Erfindung
ein Speichermodul vor, welches einen Speicherkern zum Lesen und
Schreiben von Daten, eine erste Eingangsschnittstelle, um Schreib-
oder Befehlsdaten aus einer Vorwärtsrichtung
zu empfangen, eine erste Ausgangsschnittstelle, um Lesedaten in
einer Rückwärtsrichtung
zu senden, eine zweite Eingangsschnittstelle, um Lesedaten aus der
Rückwärtsrichtung
zu empfangen, und eine zweite Ausgangsschnittstelle, um Schreib-
oder Befehlsdaten in der Vorwärtsrichtung
zu senden, umfasst. Somit ist das erfindungsgemäße Speichermodul in der Lage, Schreib-
oder Befehlsdaten von einer Speichersteuerung aus der Vorwärtsrichtung
zu empfangen und Lesedaten in der Rückwärtsrichtung an die Speichersteuerung
zu senden.
-
Erfindungsgemäß ist darüber hinaus
vorgesehen, dass das Speichermodul dazu ausgestaltet ist, über die
erste Eingangsschnittstelle Lesedaten aus der Vorwärtsrichtung
zu empfangen, über
die erste Ausgangsschnittstelle Schreib- oder Befehlsdaten in der
Rückwärtsrichtung
zu senden, über
die zweite Eingangsschnittstelle Schreib- oder Befehlsdaten aus
der Rückwärtsrichtung
zu empfangen und über
die zweite Ausgangsschnittstelle Lesedaten in der Vorwärtsrichtung
zu senden. Es ist daher möglich,
Schreib- oder Befehlsdaten und Lesedaten an das bzw. von dem Speichermodul
sowohl in der Vorwärts-
als auch in der Rückwärtsrichtung
zu übertragen.
-
Da über die
Eingangs- und Ausgangsschnittstellen sowohl Schreib- oder Befehlsdaten
als auch Lesedaten übertragen
werden, sind die beiden Eingangsschnittstellen sowie die beiden
Ausgangsschnittstellen vorzugsweise identisch ausgestaltet. Darüber hinaus
wird vorzugsweise für
die Schreib- oder Befehlsdaten und für die Lesedaten eine rahmenbasierte
Datenübertragung
mit einem einzigen identischen Rahmenformat verwendet.
-
Bei
dem erfindungsgemäßen Speichermodul können zwei
unterschiedliche Arten von Lesebefehl vorgesehen sein. Ein Lesebefehl
wird in dem Speichermodul entweder aus der Vorwärtsrichtung oder aus der Rückwärtsrichtung
empfangen. Das Speichermodul erzeugt dann abhängig von Speicherinhalten seines
Speicherkerns Lesedaten, welche vorzugsweise in einen von dem Speichermodul
empfangenen Datenrahmen eingefügt
werden, wobei in diesem Datenrahmen nicht mehr benötigte Daten überschrieben
werden können.
So können
in einem empfangenen Datenrahmen beispielsweise Schreibdaten enthalten
sein, welche bereits in einem anderen Speichermodul abgespeichert
wurden und daher mit den Lesedaten überschrieben werden können. Der Datenrahmen
mit den eingefügten
Lesedaten wird dann in der Richtung gesendet, aus welcher er empfangen
wurde.
-
Bei
einem ersten Typ von Lesebefehl werden die Lesedaten in derselben
Richtung gesendet, aus welcher der Lesebefehl in dem Speichermodul
empfangen wurde. Bei einem zweiten Typ von Lesebefehl werden die
Lesedaten in der anderen Richtung gesendet als diejenige, aus welcher
der Lesebefehl empfangen wurde. Während die zuletzt genannte
Variante des Lesebefehls eine Variable Latenzzeit aufweist, welche
mit dem Abstand des Speichermoduls von der Speichersteuerung, d.
h. mit der Anzahl von zwischen dem Speichermodul und der Speichersteuerung
angeordneten weiteren Speichermodulen, zunimmt, bietet die zuerst
genannte Variante eine von der Position des Speichermoduls unabhängige Latenzzeit.
-
Darüber hinaus
ist das erfindungsgemäße Speichermodul
vorzugsweise dazu ausgestaltet, bei Empfang eines entsprechenden
Konfigurationsbefehls entweder die erste Eingangsschnittstelle und die
erste Ausgangsschnittstelle oder die zweite Eingangsschnittstelle
und die zweite Ausgangsschnittstelle zu deaktivieren, so dass die Übertragung
von Schreib- oder Befehlsdaten entweder nur in der Vorwärts- oder
der Rückwärtsrichtung
möglich
ist und die Übertragung
von Lesedaten entweder nur in der Rückwärts- oder der Vorwärtsrichtung
möglich
ist. Diese Betriebsweise ist vorgesehen, wenn die Ringanordnung
unterbrochen wird, beispielsweise bei Ausfall eines Speichermoduls
oder bei Entfernen oder Ersetzen eines Speichermoduls.
-
Wie
bereits erwähnt,
sind bei der erfindungsgemäßen Speichervorrichtung
mindestens ein erfindungsgemäßes Speichermodul
und eine Speichersteuerung in einer geschlossenen Ringanordnung miteinander
gekoppelt, so dass Schreib- oder Befehlsdaten und Lesedaten sowohl
in der Vorwärtsrichtung
als auch in der Rückwärtsrichtung übertragen
werden können.
Auf diese Weise wird die Zuverlässigkeit
erhöht,
da bei einer Störung
oder Unterbrechung der Übertragung
für eine
der Richtungen eine Übertragung
nach wie vor über
die andere Richtung möglich
ist. Weiterhin wird eine erhöhte
Bandbreite gewährleistet,
da sowohl für
Schreib- oder Befehlsdaten als auch für Lesedaten jeweils zwei unterschiedliche Übertragungswege
zur Verfügung
stehen.
-
Besonders
vorteilhaft ist es, wenn die Speichervorrichtung mehrere der Speichermodule
umfasst, welche in einer Reihenanordnung gekoppelt sind. In diesem
Fall gewährleistet
die geschlossene Ringanordnung von Speichersteuerung und Speichermodulen,
dass im Normalbetrieb jedes der Speichermodule für Schreib- oder Befehlsdaten
und für Lesedaten
sowohl aus der Vorwärtsrichtung
als auch aus der Rückwärtsrichtung
zugänglich
ist. Daher bleiben auch dann, wenn für eines der Speichermodule eine
der Eingangsschnittstellen, eine der Ausgangsschnittstellen oder
alle Eingangs- und Ausgangsschnittstellen ausfällt oder wenn das gesamte Speichermodul
ausfällt,
die übrigen
Speichermodule für Lese-
und Schreibzugriffe zugänglich.
Weiterhin ist es möglich,
eines der Speichermodule in der Reihenanordnung während des
Betriebs der Speichervorrichtung zu entfernen, beispielsweise um
das Speichermodul zu ersetzen, oder ein Speichermodul in die Reihenanordnung
einzufügen,
ohne dass hierfür der
Betrieb der übrigen
Speichermodule unterbrochen werden müsste.
-
Darüber hinaus
gewährleistet
der erfindungsgemäße Ansatz
für eine
gegebene Bandbreite eine geringere Leistungsaufnahme. Wenn beispielsweise
eine Speichervorrichtung gemäß dem Stand der
Technik acht Speichermodule umfasst, wobei jede Punkt-zu-Punkt-Verbindung
zwischen benachbarten Speichermodulen eine bestimmte Leistungsaufnahme
verursacht, beträgt
die gesamte Leistungsaufnahme für
die Speichervorrichtung das Achtfache dieser Leistungsaufnahme.
Bei dem erfindungsgemäßen Ansatz
ist lediglich eine zusätzliche Punkt-zu-Punkt-Verbindung
(bestehend aus einer Verbindung für die Vorwärtsrichtung und einer Verbindung
für die
Rückwärtsrichtung)
erforderlich, um die Ringanordnung zu schließen. Die Leistungsaufnahme
würde somit
das Neunfache der Leistungsaufnahme für eine Punkt-zu-Punkt-Verbindung
betragen. Da sich wie bereits erwähnt jedoch gleichzeitig die
Bandbreite verdoppelt, wird eine erheblich geringere bandbreitenbezogene
Leistungsaufnahme erreicht. Bei dem oben dargestellten Beispiel
mit acht Speichermodulen würde
die Reduktion der bandbreitenbezogenen Leistungsaufnahme ca. 44%
betragen.
-
Unter
Bezugnahme auf die beigefügten Zeichnungen
wird die vorliegende Erfindung nun anhand eines bevorzugten Ausführungsbeispiels
näher erläutert.
-
1 zeigt
schematisch eine Speichervorrichtung gemäß einem Ausführungsbeispiel
der Erfindung.
-
2 veranschaulicht
einen ersten Typ von Lesevorgang bei der in 1 dargestellten
Speichervorrichtung.
-
3 veranschaulicht
einen zweiten Typ von Lesevorgang bei der in 1 dargestellten
Speichervorrichtung.
-
4 veranschaulicht
einen Schreibvorgang bei der in 1 dargestellten
Speichervorrichtung.
-
5 veranschaulicht
ein Entfernen oder Ersetzen eines Speichermoduls bei der in 1 dargestellten
Speichervorrichtung.
-
Nachfolgend
wird eine Speichervorrichtung beschrieben, welche beispielsweise
in einem Computersystem als Schreib-Lese-Speicher bzw. RAM-Speicher einsetzbar
ist. 1 zeigt eine schematische Darstellung der Speichervorrichtung.
-
Die
Speichervorrichtung umfasst mehrere Speichermodule 100a, 100b, 100c, 100d,
welche in einer Reihenanordnung miteinander gekoppelt sind. Ein
erstes Speichermodul 100a und ein letztes Speichermodul 100d der
Reihenanordnung sind jeweils mit einer Speichersteuerung 200 gekoppelt,
so dass eine geschlossene Ringanordnung ausgebildet ist.
-
Nachfolgend
soll zunächst
der Aufbau der Speichermodule 100a, 100b, 100c, 100d erläutert werden.
Dies geschieht anhand des Speichermoduls 100a, wobei die
Speichermodule 100b, 100c und 100d identisch
zu dem Speichermodul 100a aufgebaut sind.
-
Das
Speichermodul 100a umfasst einen Speicherkern 120 zum
Lesen und Schreiben von Daten. Es kann sich beispielsweise um einen
oder mehrere Speicherbausteine vom Double-Data-Rate-Typ (DDR-Typ)
handeln. Speziell können
Speicherbausteine vom so genannten DDR2-Typ oder DDR3-Typ oder vergleichbare
Speicherbausteine verwendet werden. In dem Speicherkern 120 können Daten
wiederholt gespeichert und ausgelesen werden, d. h. es handelt sich
um einen Speicher vom so genannten RAM-Typ.
-
Weiterhin
umfasst das Speichermodul einen Schnittstellenblock 110,
welcher eine erste Eingangsschnittstelle 111, eine erste
Ausgangsschnittstelle 112, eine zweite Eingangsschnittstelle 114 und eine
zweite Ausgangsschnittstelle 115 bereitstellt. Die erste
Eingangsschnittstelle 111 dient dazu, Schreib- oder Befehlsdaten
aus einer Vorwärtsrichtung
von der Speichersteuerung 200 zu empfangen. Die erste Ausgangsschnittstelle 112 dient
dazu, Lesedaten in einer Rückwärtsrichtung
an die Speichersteuerung 200 zu senden. Die zweite Eingangsschnittstelle 114 dient
dazu, Lesedaten aus der Rückwärtsrichtung
empfangen und die zweite Ausgangsschnittstelle 115 dient
dazu, Schreib- oder Befehlsdaten in der Vorwärtsrichtung zu senden.
-
Die
Eingangs- und Ausgangsschnittstellen 111, 112, 114, 115 sind
jedoch nicht auf einen speziellen Datentyp beschränkt sondern
sowohl für Schreib-
oder Befehlsdaten als auch für
Lesedaten einsetzbar. So können über die
erste Eingangsschnittstelle 111 auch Lesedaten von einem
in der Rückwärtsrichtung
benachbarten Speichermodul empfangen werden und mittels der ersten
Ausgangsschnittstelle 112 Schreib- oder Befehlsdaten an ein in der Rückwärtsrichtung
benachbartes Speichermodul gesendet werden. Ebenso können über die
zweite Eingangsschnittstelle 114 Schreib- und Befehlsdaten von
einem in der Vorwärtsrichtung
benachbarten Speichermodul oder von der Speichersteuerung 200 empfangen
werden und über
die zweite Ausgangsschnittstelle 115 Lesedaten an ein in
der Vorwärtsrichtung
benachbartes Speichermodul oder die Speichersteuerung 200 gesendet
werden.
-
Die
erste und die zweite Ausgangsschnittstelle umfassen jeweils einen
Leitungstreiber 113 bzw. 116, welcher die Daten,
d. h. die Schreib- oder Befehlsdaten oder die Lesedaten, in einem
rahmenbasierten Übertragungsformat
ausgibt. Für
die Schreib- oder Befehlsdaten und für die Lesedaten werden dabei
Datenrahmen mit demselben Rahmenformat verwendet. Abgesehen von
der Richtung der Datenübertragung
sind die erste Eingangsschnittstelle 111 und die zweite
Eingangsschnittstelle 114 sowie die erste Ausgangsschnittstelle 112 und
die zweite Ausgangsschnittstelle 115 identisch ausgestaltet.
-
Mittels
eines Multiplexers 118 können entweder Schreib- oder
Befehlsdaten von der ersten Eingangsschnittstelle 111 oder
Schreib- oder Befehlsdaten von der zweiten Eingangsschnittstelle 114 an
den Speicherkern 120 weitergeleitet werden. Weiterhin werden über die
erste Eingangsschnittstelle 111 empfangene Datenrahmen
an die zweite Ausgangsschnittstelle 116 weitergeleitet
und über
die zweite Eingangsschnittstelle 114 empfangene Datenrahmen werden
an die erste Ausgangsschnittstelle 112 weitergeleitet.
In den Leitungstreibern 113 und 116 werden abhängig von
Speicherinhalten des Speicherkerns 120 erzeugte Lesedaten
in die Datenrahmen eingefügt,
bevor diese in der Rückwärtsrichtung
bzw. in der Vorwärtsrichtung
gesendet werden. Dabei wird sichergestellt, dass keine noch benötigten Daten
versehentlich überschrieben
werden.
-
Bei
der in 1 dargestellten Speichervorrichtung umfasst die
Speichersteuerung 200 eine erste Eingangsschnittstelle 201,
um Lesedaten aus der Rückwärtsrichtung
von den Speichermodulen 100a, 100b, 100c, 100d zu
empfangen, und eine erste Ausgangsschnittstelle 202, um
Schreib- oder Befehlsdaten in der Vorwärtsrichtung an die Speichermodule 100a, 100b, 100c, 100d zu
senden. Weiterhin umfasst die Speichersteuerung 200 eine
zweite Eingangsschnittstelle 104, um Lesedaten aus der Vorwärtsrichtung
von den Speichermodulen 100a, 100b, 100c, 100d zu
empfangen, und eine zweite Ausgangsschnittstelle, um Schreib- oder
Befehlsdaten in der Rückwärtsrichtung
an die Speichermodule 100a, 100b, 100c, 100d zu
senden.
-
Die
erste Eingangsschnittstelle 111 des ersten Speichermoduls 100a ist
mit der ersten Ausgangsschnittstelle 202 der Speichersteuerung 200 gekoppelt,
um Daten in der Vorwärtsrichtung
zu übertragen.
Die erste Ausgangsschnittstelle 112 des ersten Speichermoduls 100a ist
mit der ersten Eingangsschnittstelle der Speichersteuerung 200 gekoppelt,
um Daten in der Rückwärtsrichtung
zu übertragen.
Das Speichermodul 100d ist das letzte Speichermodul der
Reihenanordnung von Speichermodulen. Die zweite Eingangsschnittstelle
des letzten Speichermoduls 100d ist mit der zweiten Ausgangsschnittstelle 205 der
Speichersteuerung 200 gekoppelt, um Daten in der Rückwärtsrichtung
zu übertragen.
Die zweite Ausgangsschnittstelle des letzten Speichermoduls 100d ist
mit der zweiten Eingangsschnittstelle 204 der Speichersteuerung 200 gekoppelt,
um Daten in der Vorwärtsrichtung
zu übertragen. Für die übrigen Speichermodule 100b, 100c ist
die erste Eingangsschnittstelle 111 mit der zweiten Ausgangsschnittstelle 115 eines
in der Rückwärtsrichtung
benachbarten Speichermoduls 100a, 100b gekoppelt,
um Daten in der Vorwärtsrichtung
zu übertragen,
die erste Ausgangsschnittstelle 112 mit der zweiten Eingangsschnittstelle 114 des
in der Rückwärtsrichtung
benachbarten Speichermoduls 100a, 100b gekoppelt,
um Daten in der Rückwärtsrichtung zu übertragen,
die zweite Eingangsschnittstelle 114 mit der ersten Ausgangsschnittstelle 112 eines
in der Vorwärtsrichtung
benachbarten Speichermoduls 100c, 100d gekoppelt,
um Daten in der Rückwärtsrichtung
zu übertragen,
und die zweite Ausgangsschnittstelle 115 mit der ersten
Eingangsschnittstelle 111 des in der Vorwärtsrichtung
benachbarten Speichermoduls 100c, 100d gekoppelt,
um Daten in der Vorwärtsrichtung
zu übertragen.
Die Speichersteuerung 200 und die Speichermodule 100a, 100b, 100c, 100d bilden
somit eine geschlossene Ringanordnung, in welcher Schreib- oder
Befehlsdaten und Lesedaten sowohl in der Vorwärtsrichtung als auch in der
Rückwärtsrichtung
zwischen der Speichersteuerung 200 und jedem der Speichermodule 100a, 100b, 100c, 100d übertragen
werden können.
-
Der
in 1 dargestellte Aufbau für die Speichervorrichtung mit
der entsprechenden Struktur der Speichermodule 100a, 100b, 100c, 100d und
der Speichersteuerung 200 bietet die folgenden Vorteile: – Eine Funktionsstörung oder
ein Ausfall des Schnittstellenblocks 110 bei einem der
Speichermodule 100a, 100b, 100c, 100d bewirkt
keinen Ausfall der gesamten Speichervorrichtung. Vielmehr bleiben
bezüglich
des gestörten
Speichermoduls in der Rückwärtsrichtung
angeordnete Speichermodule für
die Speichersteuerung 200 nach wie vor aus der Vorwärtsrichtung
zugänglich.
Gleichermaßen
bleiben bezüglich
des gestörten
Speichermoduls in der Vorwärtsrichtung
angeordnete Speichermodule für
die Speichersteuerung 200 aus der Rückwärtsrichtung zugänglich.
- – Ferner
wird die Latenzzeit im Vergleich zu einer herkömmlichen kettenförmigen Anordnung
von Speichermodulen begrenzt. So kann für den Zugriff auf eines der
Speichermodule 100a, 100b, 100c, 100d der
jeweils kürzere
Datenpfad von der Speichersteuerung 200 ausgewählt werden.
Da für
Schreib- oder Befehlsdaten und für
Lesedaten jeweils zwei Datenpfade zur Verfügung stehen, wird die Bandbreite
für die
Datenübertragung
effektiv verdoppelt.
- – Die
Anzahl von Punkt-zu-Punkt-Verbindungen, welche für die geschlossene Ringanordnung
erforderlich ist, ist im Vergleich zu einer herkömmlichen kettenartigen Anordnung
nur um eine zusätzliche
Punkt-zu-Punkt-Verbindung zwischen dem letzten Speichermodul 100d der
Reihenanordnung und der Speichersteuerung 200 erhöht, so dass
die Verdoppelung der Bandbreite keine entsprechend erhöhte Leistungsaufnahme
bedeutet oder umgekehrt bei gleicher Bandbreite die Leistungsaufnahme
deutlich reduziert ist.
- – Weiterhin
ist es möglich,
während
des Betriebs der Speichervorrichtung eines der Speichermodule 100a, 100b, 100c, 100d zu
entfernen, ohne dass hierfür
der Betrieb der übrigen
Speichermodule ausgesetzt werden müsste. Es ist somit zum Ersetzen
eines der Speichermodule 100a, 100b, 100c, 100d nicht
erforderlich, die gesamte Speichervorrichtung zu deaktivieren. Es
genügt,
ein einzelnes Ersatz-Speichermodul bereitzustellen, um während des
Ersetzungsvorgangs die Funktion des zu ersetzenden Speichermoduls
zu übernehmen,
so dass die Kapazität
der Speichervorrichtung nicht beeinträchtigt wird. Beispielsweise können die
Daten des zu ersetzenden Speichermoduls vorübergehend in den übrigen Speichermodulen
der Speichervorrichtung gespeichert werden. Eine vollständige Ersatz-Speichervorrichtung
ist nicht erforderlich. Hierdurch werden die Kosten für das System,
die Leistungsaufnahme und der Platzbedarf auf einer Systemplatine reduziert.
-
Nachfolgend
sollen die wesentlichen Vorgänge
beim Betreiben der Speichervorrichtung beispielhaft erläutert werden.
-
2 veranschaulicht
einen Lesevorgang eines ersten Typs bei der in 1 dargestellten
Speichervorrichtung. Bei dem Lesevorgang sendet die Speichersteuerung 200 mit
den Schreib- oder
Befehlsdaten einen ersten Typ von Lesebefehl an das für den Lesevorgang
vorgesehene Speichermodul, bei diesem Beispiel das Speichermodul 100a.
Der Schnittstellenblock 110 des Speichermoduls 100a leitet
den empfangenen Lesebefehl an den Speicherkern 120, welcher
abhängig
von darin gespeicherten Speicherinhalten Lesedaten erzeugt, welche
von dem Speichermodul 100a in derselben Richtung gesendet
werden, aus welcher auch der Lesebefehl empfangen wurde. Der entsprechende
Datenfluss ist in 2 durch hervorgehobene Pfeile
mit größerer Linienbreite
veranschaulicht, wobei gestrichelte Pfeile Befehlsdaten CMD veranschaulichen
und geschlossen dargestellte Peile die erzeugten Lesedaten RD veranschaulichen.
-
Bei
dem ersten Typ von Lesebefehl werden die erzeugten Lesedaten RD
so schnell wie möglich in
einen Datenrahmen eingefügt,
welcher in derselben Richtung durch das Speichermodul 100a übertragen
wird, wie der Datenrahmen, in welchem der Lesebefehl enthalten war.
Der Schnittstellenblock 110 gewährleistet dabei, dass keine
in diesem Datenrahmen übertragenen
Daten versehentlich überschrieben
werden. Die Möglichkeit,
Daten in dem Datenrahmen zu überschreiben,
kann jedoch auch verwendet werden, um die Lesedaten RD mit einer
höheren
Priorität
zu übertragen.
-
3 veranschaulicht
einen zweiten Typ von Lesevorgang bei der in 1 dargestellten
Speichervorrichtung. Der Datenfluss ist wiederum durch hervorgehobene
Pfeile veranschaulicht, wobei gestrichelte Pfeile die Befehlsdaten
CMD veranschaulichen, während
durchgezogene Pfeile die Lesedaten RD veranschaulichen.
-
Bei
dem zweiten Typ von Lesevorgang sendet die Speichersteuerung 200 einen
zweiten Typ von Lesebefehl an das für den Lesevorgang vorgesehene
Speichermodul, bei dem in 3 dargestellten Beispiel
das Speichermodul 100d. Der Lesebefehl wird an den Speicherkern 120 weitergeleitet,
welcher abhängig
von darin gespeicherten Speicherdaten Lesedaten RD erzeugt, welche
von dem Speichermodul 100d in der anderen Richtung gesendet
werden als diejenige, aus welcher der Lesebefehl empfangen wurde.
-
Bei
Empfang des zweiten Typs von Lesebefehl fügt der Schnittstellenblock 110 die
erzeugten Lesedaten RD so schnell wie möglich in einen Datenrahmen
ein, welcher von dem Speichermodul 100d aus der anderen
Richtung empfangen wurde als derjenige Datenrahmen, mit welchem
der Lesebefehl übertragen
wurde. Auch hier gewährleistet
der Schnittstellenblock 110, dass in dem Datenrahmen keine
Daten versehentlich überschrieben
werden. Die Möglichkeit,
Daten zu überschreiben,
kann jedoch auch verwendet werden, um die Lesedaten RD mit einer
höheren
Priorität
zu übertragen.
-
Die
in 2 und 3 dargestellten Lesevorgänge sind
lediglich beispielhaft angegeben. Es versteht sich, dass für jeden
der beiden Typen von Lesevorgängen,
der Lesebefehl sowohl in der Vorwärtsrichtung als auch in der
Rückwärtsrichtung
an das für
den Lesevorgang vorgesehene Speichermodul übertragen werden kann. Weiterhin
kann jedes der Speichermodule 100a, 100b, 100c, 100d durch beide
Typen von Lesebefehlen ausgelesen werden.
-
Bei
dem in 3 veranschaulichten zweiten Typ von Lesebefehl
ist es aus Gründen
einer kürzeren
Latenzzeit jedoch bevorzugt, die Speichermodule 100a, 100b der
in der Vorwärtsrichtung
ersten Hälfte der
Reihenanordnung mit einem Lesebefehl auszulesen, welcher in der
Vorwärtsrichtung übertragen
wird, während
die Speichermodule 100c, 100d der in der Vorwärtsrichtung
zweiten Hälfte
der Reihenanordnung bevorzugt durch einen Lesebefehl ausgelesen werden,
welcher in der Rückwärtsrichtung übertragen
wird.
-
Bei
dem in 2 veranschaulichten ersten Typ von Lesebefehl
ist die Latenzzeit hingegen unabhängig von der Position des ausgelesenen
Speichermoduls in der Reihenanordnung und von der zur Übertragung
des Lesebefehls verwendeten Richtung.
-
4 veranschaulicht
einen Schreibvorgang bei der in 1 dargestellten
Speichervorrichtung. Der Datenfluss ist wiederum durch hervorgehobene Pfeile
veranschaulicht. Bei dem Schreibvorgang werden Schreibdaten WRT
einschließlich
eines Schreibbefehls von der Speichersteuerung 200 an das
für den
Schreibvorgang vorgesehene Speichermodul 100b übertragen.
-
Sobald
der Datenrahmen mit den Schreibdaten WRT den Schnittstellenblock 110 des
für den Schreibvorgang
vorgesehenen Speichermoduls 100b erreicht, werden die Schreibdaten
aus dem Datenrahmen an den Speicherkern 120 weitergeleitet und
darin gespeichert. Der Datenrahmen wird an das nächste Speichermodul in der
Ringanordnung weitergeleitet und kann dort mit Lesedaten überschrieben
werden.
-
Auch
für den
in 4 veranschaulichten Schreibvorgang versteht es
sich, dass die Schreibdaten WRT entweder in der Vorwärtsrichtung
oder in der Rückwärtsrichtung
an das für
den Schreibvorgang vorgesehene Speichermodul übertragen werden können. Aus
Gründen
einer kürzeren
Latenzzeit ist es bevorzugt, bei Speichermodulen 100a, 100b, welche
sich in der Vorwärtsrichtung
in der ersten Hälfte
der Reihenanordnung befinden, die Schreibdaten WRT in der Vorwärtsrichtung
zu übertragen, während es
für die
Speichermodule 100c, 100d, welche sich in der
Vorwärtsrichtung
in der zweiten Hälfte der
Reihenanordnung befinden, bevorzugt ist, die Schreibdaten WRT in
der Rückwärtsrichtung
zu übertragen.
-
5 veranschaulicht
die Vorgehensweise beim Entfernen oder Ersetzen eines der Speichermodule 100a, 100b, 100c, 100d.
In 5 ist beispielhaft eine Situation dargestellt,
bei welcher das Speichermodul 100c entfernt bzw. ersetzt
wird (veranschaulicht durch eine gepunktete Umfassung des Speichermoduls 100c).
Beispielsweise kann zuvor von der Speichersteuerung 200 erfasst
worden sein, dass für
das Speichermodul 100c eine Funktionsstörung vorliegt. Eine Datenübertragung
von dem Speichermodul 100b über das Speichermodul 100c an das
Speichermodul 100d und umgekehrt ist in diesem Fall nicht
mehr möglich.
-
In
diesem Fall wird das Speichermodul 100b durch einen entsprechenden
Konfigurationsbefehl, welcher von der Speichersteuerung 200 in
der Vorwärtsrichtung
an das Speichermodul 100b gesendet wird, in eine alternative Betriebsweise
versetzt, bei welcher die Eingangs- und Ausgangsschnittstelle, welcher
dem zu entfernenden bzw. zu ersetzenden Speichermodul 100c benachbart
sind, deaktiviert sind. Dies ist in 5 durch
gepunktete Strukturen innerhalb des Speichermoduls 100b veranschaulicht.
-
Entsprechend
wird das Speichermodul 100d, welches in der Vorwärtsrichtung
benachbart zu dem zu entfernenden bzw. zu ersetzenden Speichermodul 100c ist,
von der Speichersteuerung 200 durch einen entsprechenden
Konfigurationsbefehl in eine alternative Betriebsweise versetzt,
bei welcher ebenfalls die Eingangsschnittstelle und die Ausgangsschnittstelle,
welche dem zu entfernenden bzw. zu ersetzenden Speichermodul 100c benachbart
sind, deaktiviert sind. Dies ist wiederum durch gepunktete Strukturen
innerhalb des Speichermoduls 100d veranschaulicht.
-
In
diesem Zustand kann dann das Speichermodul 100c entfernt
bzw. ersetzt werden. Wie es aus 5 erkennbar
ist, teilt das Entfernen des Speichermoduls 100c die geschlossene
Ringanordnung in zwei kettenartige Anordnungen, in welchen nur Lesevorgänge des
anhand von 3 beschriebenen zweiten Typs
möglich
sind.
-
Bei
Speichervorrichtungen des oben beschriebenen Typs für Computersysteme
ist es üblich, dass
für die
Speichermodule 100a, 100b, 100c, 100d entsprechende
Steckplätze
auf einer Systemplatine des Computersystems vorgesehen sind. Die
Speichersteuerung 200 ist üblicherweise als Bestandteil der
Systemplatine vorgesehen. Die anhand von 1 beschriebenen
Verbindungen zwischen der Speichersteuerung 200 und den
Speichermodulen 100a, 100b, 100c, 100d würden somit über entsprechende
Verbindungen auf der Systemplatine bereitgestellt werden. Die geschlossene
Ringanordnung kann dann einerseits gewährleistet werden, indem alle
für die
Ringanordnung vorgesehenen Steckplätze mit Speichermodulen besetzt
werden. Andererseits ist es möglich,
eine geringere Anzahl von Speichermodulen zu verwenden, indem nicht
benutzte Steckplätze
mit einem „Blindmodul" bestückt werden. Ein
Blindmodul kann beispielsweise durch eine Leiterplatte gebildet
sein, welche den Speichermodulen entsprechende Anschlüsse aufweist
und die Anschlüsse,
welche der ersten Eingangsschnittstelle entsprechen, mit den Anschlüssen, welche
der zweiten Ausgangsschnittstelle entsprechen, verbindet sowie die
Anschlüsse,
welche der zweiten Eingangsschnittstelle entsprechen, mit den Anschlüssen, welche
der ersten Ausgangsschnittstelle entsprechen, verbindet, um die
Ringanordnung sowohl in der Vorwärtsrichtung
als auch in der Rückwärtsrichtung
zu schließen.
-
Wenn
wie anhand von 5 erläutert die geschlossene Ringanordnung
geöffnet
wurde, und ein Speichermodul entfernt, ersetzt oder hinzugefügt wurde,
so dass die Ringanordnung physikalisch nunmehr wieder geschlossen
ist, sendet die Speichersteuerung 200 einen weiteren Konfigurationsbefehl an
diejenigen Speichermodule, welche der Position des entfernten, ersetzten
oder eingefügten
Speichermoduls benachbart sind, d. h. bei dem Beispiel von 5 an
die Speichermodule 100b und 100d, um die Eingangsschnittstelle
und die Ausgangsschnittstelle, welche jeweils dem entfernten, ersetzten
oder eingefügten
Speichermodul benachbart sind, wieder zu aktivieren. Anschließend wird
eine Trainingsprozedur für
die Datenübertragung
zwischen diesen Speichermodulen und dem neuen benachbarten Speichermodul
durchgeführt.
Es versteht sich dabei, dass es sich bei dem neuen benachbarten
Speichermodul sowohl um ein ersetztes oder neu hinzugefügtes Speichermodul
handeln kann oder um ein Speichermodul, welches bereits in der Ringanordnung
enthalten war, wenn anstelle des entfernten wie oben beschriebenen
Speichermoduls ein Blindmodul verwendet wird.
-
Es
wurde im Vorangegangenen somit eine Speichervorrichtung sowie ein
Verfahren zum Betreiben dieser Speichervorrichtung beschrieben,
bei welcher durch Verwendung einer geschlossenen Ringanordnung,
in welcher Daten sowohl in der Vorwärtsrichtung als auch in der
Rückwärtsrichtung übertragen
werden können,
eine hohe Zuverlässigkeit
gewährleistet
wird. Insbesondere kann die Speichervorrichtung weiter betrieben
werden, auch wenn bei einem der Speichermodule der Schnittstellenblock 110 ausfällt. Im
Falle eines Ausfalls oder zu Wartungszwecken kann die Ringanordnung
in zwei kettenartige Anordnungen aufgespalten werden und es ist möglich, jedes
einzelne der Speichermodule zu ersetzen, während die anderen Speichermodule
in Betrieb bleiben.