-
HINTERGRUND
-
1 veranschaulicht
ein informell als RamLink bekanntes Speichersystem des Stands der Technik,
das durch das Institute of Electrical and Electronics Engineers
(IEEE) als Standard vorgeschlagen wurde. Der Standard wurde als
IEEE-Standard 1596.4-1996 bezeichnet und ist formell als IEEE Standard
for High-Bandwith Memory Interface Based on Scalable Coherent Interface
(SCI) Signaling Technology (RamLink) bekannt. Das System von 1 beinhaltet
eine Speichersteuerung 10 und ein oder mehrere Speichermodule 12.
Die Speichersteuerung 10 ist typischerweise entweder in
einen Prozessor eingebaut oder auf einem Begleitchipsatz für einen Prozessor
hergestellt. Jedes Speichermodul weist eine Slave-Schnittstelle 14 auf,
die einen Verbindungseingang und einen Verbindungsausgang aufweist.
Die Bestandteile sind in einer als RingLink bekannten RamLink-Signalisierungstopologie
mit einseitig gerichteten Verbindungen 16 zwischen den
Bestandteilen angeordnet. Eine Steuerschnittstelle 18 an
jedem Modul koppelt die Slave-Schnittstelle 14 mit Speichervorrichtungen 20.
Im System, das in 1 gezeigt ist, wird zwischen
den Slave-Schnittstellen und den Speichervorrichtungen eine andere
RamLink-Signalisierungstopologie
verwendet, die als SyncLink bekannt ist.
-
Der
Zweck des RamLink-Systems ist, einen Prozessor mit Hochgeschwindigkeitszugriff
auf die Speichervorrichtungen bereitzustellen. Zwischen der Speichersteuerung
und den Modulen werden Daten in Paketen übertragen, die entlang des
RingLink zirkulieren. Die Steuerung ist für die Erzeugung aller Anforderungspakete
und die Planung der Rückführung von
Slave-Antwortpaketen
verantwortlich.
-
Ein
Schreibvorgang wird begonnen, wenn die Steuerung ein Anforderungspaket,
das einen Befehl, eine Adresse, eine Zeit und Daten beinhaltet,
zu einem bestimmten Modul sendet. Das Paket wird von Modul zu Modul
weitergegeben, bis es den vorgesehenen Slave erreicht, der die Daten
dann zur Speicherung zu einer der Speichervorrichtungen weitergibt.
Der Slave sendet dann ein Antwortpaket, das von Modul zu Modul weitergegeben
wird, bis es die Steuerung erreicht, um zu bestätigen, daß der Schreibvorgang abgeschlossen
wurde.
-
Ein
Lesevorgang wird begonnen, wenn die Steuerung ein Anforderungspaket,
das einen Befehl, eine Adresse und eine Zeit beinhaltet, zu einem
Modul sendet. Der Slave an diesem Modul ruft die angeforderten Daten
aus einer der Speichervorrichtungen ab und sendet sie in einem Antwortpaket,
das erneut von Modul zu Modul weitergegeben wird, bis es die Steuerung
erreicht, zur Steuerung zurück.
-
2 veranschaulicht
eine RamLink-Slave-Schnittstellenschaltung. In der Schaltung von 2 wird
quellensynchrones Auftasten verwendet, um die ankommenden Datensignale
zu takten. Das heißt,
es wird ein Auftastsignal, das die ankommenden Datensignale begleitet,
verwendet, um die ankommenden Daten abzutasten. Die Schaltung von 2 verwendet
einen Phasenregelkreis (PLL), um aus einem Bezugstaktsignal, das
zu anderen Slave-Schnittstellenschaltungen
verteilt wird, einen stabilen lokalen Takt zu erzeugen. Das lokale
Taktsignal wird verwendet, um das abgehende Datensignal neu zu takten,
um kumulatives Jittern zu vermeiden, wenn die Daten stromabwärts weitergegeben
werden.
-
Das
Dokument US2002/0,144,173 offenbart eine Speichersteuerung, die
durch das Senden einer Startabfolge an serielle Anwesenheitsfeststellungs-EEPROMs
die Anwesenheit von Speichermodulen prüft.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 veranschaulicht
ein RamLink-Speichersystem des Stands der Technik.
-
2 veranschaulicht
eine RamLink-Slave-Schnittstellenschaltung des Stands der Technik.
-
3 veranschaulicht
eine Ausführungsform
eines Speicherschnittstellensystems nach den erfinderischen Grundsätzen dieses
Patents.
-
4 veranschaulicht
eine Ausführung
eines Speichermoduls nach den erfinderischen Grundsätzen dieses
Patents.
-
5 veranschaulicht
eine andere Ausführungsform
eines Speichermoduls und eine Ausführungsform eines Speicherpuffers
nach den erfinderischen Grundsätzen
dieses Patents.
-
6 veranschaulicht
zusätzliche
beispielhafte Ausführungsformen
eines Speichersystems, von Speichermodulen, und von Speicherpuffern
nach den erfinderischen Grundsätzen
dieses Patents.
-
7 veranschaulicht
eine andere beispielhafte Ausführungsform
eines Speicherpuffers nach den erfinderischen Grundsätzen dieses
Patents.
-
8 veranschaulicht
eine Ausführungsform
einer Weitertreibeschaltung nach den erfinderischen Grundsätzen dieses
Patents.
-
9 veranschaulicht
eine Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents.
-
10 veranschaulicht
eine andere Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents.
-
11 veranschaulicht
eine andere Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents.
-
12 veranschaulicht
eine andere Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents.
-
13 veranschaulicht
eine Ausführungsform
einer Failover-Schaltung nach den erfinderischen Grundsätzen dieses
Patents.
-
14 veranschaulicht
eine andere Ausführungsform
einer Failover-Schaltung, die in einer normalen Betriebsart tätig ist,
nach den erfinderischen Grundsätzen
dieses Patents.
-
15 veranschaulicht
eine andere Ausführungsform
einer Failover-Schaltung, die in einer Failover-Betriebsart tätig ist,
nach den erfinderischen Grundsätzen
dieses Patents.
-
16 veranschaulicht
eine Ausführungsform
eines Speicherpuffers mit Bitspuren-Failover-Fähigkeit
nach den erfinderischen Grundsätzen dieses
Patents.
-
17 veranschaulicht
eine Ausführungsform
einer Speichersteuerung mit Bitspuren-Failover-Fähigkeit
nach den erfinderischen Grundsätzen dieses
Patents.
-
18 veranschaulicht
eine Ausführungsform
eines Verfahrens zur Ausführung
permutierender Zustandsmuster nach den erfinderischen Grundsätzen dieses
Patents.
-
19 veranschaulicht
eine Ausführungsform
eines Permutationsmustergenerators nach den erfinderischen Grundsätzen dieses
Patents.
-
20 bis 23 veranschaulichen
beispielhafte Ausführungsformen
von Zustandsmustern nach den erfinderischen Grundsätzen dieses
Patents.
-
24 veranschaulicht
eine Ausführungsform
eines Speicheragenten nach den erfinderischen Grundsätzen dieses
Patents.
-
25 veranschaulicht
eine Ausführungsform
einer Abfragetätigkeit
nach den erfinderischen Grundsätzen
dieses Patents.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Dieses
Patent umfasst zahlreiche Erfindungen, die unabhängige Nützlichkeit aufweisen. In einigen
Fällen
werden zusätzliche
Vorteile verwirklicht, wenn einige der Grundsätze in verschiedensten Kombinationen
miteinander benutzt werden und dadurch zusätzliche Erfindungen zur Folge
haben. Diese Grundsätze
können
in unzähligen
Ausführungsformen
verwirklicht werden. Obwohl zum Zweck der Erläuterung der erfinderischen
Grundsätze
einige bestimmte Einzelheiten gezeigt sind, können nach den erfinderischen
Grundsätzen
dieses Patents zahlreiche andere Anordnungen erdacht werden. Daher sind
die erfinderischen Grundsätze
nicht auf die hierin offenbarten bestimmten Einzelheiten beschränkt.
-
3 veranschaulicht
eine Ausführungsform
eines Speicherschnittstellensystems nach den erfinderischen Grundsätzen dieses
Patents. Das System von 3 beinhaltet eine Speichersteuerung 50 und
ein oder mehrere Speichermodule 52, die durch einen Kanal,
der aus einseitig gerichteten Verbindungen aufgebaut ist, kommunizieren.
Der Kanal weist einen ausgehenden Pfad, der eine oder mehrere ausgehende
Verbindungen 54 beinhaltet, und einen eingehenden Pfad,
der eine oder mehrere eingehende Verbindungen 56 beinhaltet,
auf. Jedes Modul kann fähig
sein, Signale auf dem ausgehenden Pfad von Verbindung zu Verbindung
und auf dem eingehenden Pfad von Verbindung zu Verbindung weiterzutreiben.
Jedes Modul kann auch fähig
sein, jegliche Weitertreibemerkmale zu deaktivieren, zum Beispiel, wenn
das Modul feststellt, daß es
das äußerste Modul
ist, oder als Reaktion auf einen Befehl von der Speichersteuerung.
-
Jedes
Modul beinhaltet eine oder mehrere Speichervorrichtungen 58,
die dazu eingerichtet sind, Daten zu und/oder von einem oder mehreren
der Pfade zu übertragen.
Zum Beispiel kann das Modul derart eingerichtet sein, daß Daten
vom ausgehenden Pfad zu einer Speichervorrichtung übertragen
werden, und Daten von der Speichervorrichtung zum eingehenden Pfad übertragen
werden. Zwischen einer oder mehreren Speichervorrichtungen und einem oder
mehreren der Pfade können
ein oder mehrere Puffer angeordnet sein. Die Module und die Steuerung
sind nicht auf irgendeine bestimmte mechanische Anordnung beschränkt. Zum
Beispiel können die
Module vom Rest des Systems gesondert auf Substraten hergestellt
sein, können
sie auf einem gemeinsamen Substrat mit der Steuerung und den Verbindungen
hergestellt sein, oder können
sie in jeder belieben anderen mechanischen Einrichtung verwirklich
sein. Die Module sind auch nicht auf irgendeine bestimmte Art von
Speichervorrichtung, z.B. Nurlesespeicher (ROM), dynamische Direktzugriffsspeicher (DRAM),
Flash-Speicher, usw., beschränkt.
-
4 veranschaulicht
eine Ausführungsform
eines Speichermoduls nach den erfinderischen Grundsätzen dieses
Patents. Das Modul von 4 beinhaltet zwei Weitertreibeschaltungen 60 und 62, um
Signale auf einseitig gerichteten Verbindungen 54A und 56A zu
empfangen bzw. die Signale auf einseitig gerichteten Verbindungen 54B bzw. 56B weiterzutreiben.
Eine oder mehrere Speichervorrichtungen 58 sind eingerichtet,
um Daten zu und/oder von einer oder mehreren der Weitertreibeschaltungen
zu übertragen.
-
Das
Modul von 4 ist nicht auf irgendeine bestimmte
Anordnung von einseitig gerichteten Verbindungen oder irgendeine
bestimmte Anordnung zum Übertragen
von Daten zu und/oder von den Weitertreibeschaltungen beschränkt. Wenn
das Modul von 4 in einem Speichersystem wie
dem in 3 gezeigten verwendet werden soll, könnte die Weitertreibeschaltung 60 als
eine ausgehende Weitertreibeschaltung bestimmt sein und dazu eingerichtet
sein, Signale auf einem ausgehenden Pfad, der die Verbindungen 54A und 54B beinhaltet,
zu empfangen und weiterzutreiben, und könnte die andere Weitertreibeschaltung 62 als
eine eingehende Weitertreibeschaltung bestimmt sein und dazu eingerichtet
sein, Signale auf einem eingehenden Pfad, der die Verbindungen 56A und 56B beinhaltet,
zu empfangen und weiterzutreiben. In diesem Beispiel können eine
oder mehrere Speichervorrichtungen 58 so eingerichtet sein,
daß Daten
von der ausgehenden Weitertreibeschaltung 60 zur Speichervorrichtung
(zu den Speichervorrichtungen) und von der Speichervorrichtung (den
Speichervorrichtungen) zur eingehenden Weitertreibeschaltung 62 übertragen
werden.
-
Das
Modul kann fähig
sein, festzustellen, ob es das äusserste
Modul auf einem Kanal ist, und demgemäß selektiv jegliche Weitertreibemerkmale zu
deaktivieren. Wenn das Modul von 4 zum Beispiel
in einem Speichersystem wie dem in 3 gezeigten
verwendet werden soll, und das Modul feststellt, daß es das äußerste Modul
ist, empfängt
die ausgehende Weitertreibeschaltung ankommende Signale auf der
Verbindung 54A, doch treibt es diese nicht weiter. In der
gleichen Weise betreibt die eingehende Weitertreibeschaltung die
Verbindung 56B nur mit Signalen, die Daten entsprechen,
welche von der Speichervorrichtung (den Speichervorrichtungen) empfangen
wurden, und/oder anderen Signalen, die durch das Modul intern erzeugt
werden können.
Alternativ kann das Modul so aufgebaut sein, daß es auch dann, wenn das Modul
feststellt, daß es
nicht das äußerste Modul
ist, fähig
ist, so tätig
zu sein, als ob es das äußerste Modul
wäre (zum
Beispiel als Reaktion auf einen Befehl von einer Speichersteuerung),
in welchem Fall es möglicherweise
Signale, die auf der eingehenden Verbindung 56A empfangen werden,
ignorieren kann und Signale möglicherweise nicht
zur ausgehenden Verbindung 54B weitertreiben kann.
-
5 veranschaulicht
eine andere Ausführungsform
eines Speichermoduls und eine Ausführungsform eines Speicherpuffers
nach den erfinderischen Grundsätzen
dieses Patents. Das Modul von 5 beinhaltet
einen Speicherpuffer 64, der zwei Weitertreibeschaltungen 60 und 62 aufweist,
um Signale auf einseitig gerichteten Verbindungen 54A und 56A zu
empfangen, und die Signale auf einseitig gerichteten Verbindungen 54B bzw. 56B weiterzutreiben.
Der Speicherpuffer beinhaltet auch eine Speicherschnittstelle 66,
die dazu eingerichtet ist, Daten zu und von einer oder mehreren
Speichervorrichtungen 58 zu übertragen. Der Puffer kann
fähig sein, festzustellen,
ob er der letzte Agent auf einem Kanal ist, und demgemäß jegliche
Weitertreibemerkmale selektiv zu deaktivieren. Der Puffer kann,
zum Beispiel als Reaktion auf einen Befehl von einer Speichersteuerung,
fähig sein,
so tätig
zu sein, als ob er der letzte Agent auf einem Kanal wäre, selbst
wenn er dies nicht ist. Wie hierin verwendet bezieht sich „Agent" auf jede beliebige
Speichersteuerung (auch als „Host" bezeichnet), jedes
beliebige Modul, jeden beliebigen Puffer, usw. die, das bzw. der
mit dem Kanal gekoppelt ist.
-
Das
Modul und der Puffer von 5 sind nicht auf irgendeine
bestimmte Anordnung von einseitig gerichteten Verbindungen und irgendeine
bestimmte Anordnung zur Übertragung
zwischen der Speicherschnittstelle und den Weitertreibeschaltungen
beschränkt.
Wenn das Modul 5 in einem Speichersystem wie dem in 3 gezeigten
verwendet werden soll, könnte
die Weitertreibeschaltung 60 als eine ausgehende Weitertreibeschaltung
bestimmt sein und dazu eingerichtet sein, Signale auf einem ausgehenden
Pfad, der die Verbindungen 54A und 54B beinhaltet,
zu empfangen und weiterzutreiben, und könnte die andere Weitertreibeschaltung 62 als eine
eingehende Weitertreibeschaltung bestimmt sein und dazu eingerichtet
sein, Signale auf einem eingehenden Pfad, der die Verbindungen 56A und 56B beinhaltet,
zu empfangen und weiterzutreiben. In diesem Beispiel kann die Speicherschnittstelle dazu
konfiguriert sein, Daten von der ausgehenden Weitertreibeschaltung 60 zu
empfangen und Daten zur eingehenden Weitertreibeschaltung 62 zu
senden.
-
Es
können
verschiedenste mechanische Anordnungen verwendet werden, um die
Speichermodule und/oder Puffer von 4 und 5 auszuführen. Zum
Beispiel können
die Speichervorrichtungen 58, die Weitertreibeschaltungen 60 und 62,
und der Puffer 64 alle als gesonderte integrierte Schaltungen auf
einer gemeinsamen Schaltplatte oder auf gesonderten Schaltplatten
verwirklicht werden. Verschiedenste Kombinationen der Bestandteile
können
zusammen in einer gemeinsamen integrierten Schaltung hergestellt
werden, oder sie können
alle in einer einzelnen integrierten Schaltung hergestellt werden. Die
Schaltplatte oder -platten, falls vorhanden, kann bzw. können fähig sein,
in eine Steckstelle an einer Hauptplatine eingesteckt zu werden,
kann bzw. können
einstückig
mit einer Hauptplatine hergestellt werden, oder auf irgendeine andere
Weise angeordnet werden. Es kann möglicherweise keine Schaltplatte vorhanden
sein, zum Beispiel, wenn die Bestandteile als Teil eines Mehrfachchipmoduls
hergestellt sind. Ein Speicherpuffer nach den erfinderischen Grundsätzen dieses
Patents kann verwendet werden, um andere Vorrichtungen als Speichervorrichtungen
mit einem Kanal zu koppeln. Zum Beispiel kann ein Speicherpuffer
nach den erfinderischen Grundsätzen
dieses Patents verwendet werden, um eine E/A-Steuerung oder eine
Brücke
mit einem Kanal zu koppeln.
-
Zusätzliche
Ausführungsformen
von Vorrichtungen nach den erfinderischen Grundsätzen dieses Patents werden
unter Bezugnahme auf „eingehende" und „ausgehende" Pfade, Verbindungen,
Weitertreibeschaltungen, usw. beschrieben, um das Verständnis, wie
die Vorrichtung in einem Speichersystem wie etwa der in 3 gezeigten
Ausführungsform
benutzt werden kann, zu erleichtern. Diese Vorrichtungen sind jedoch
nicht auf irgendeine bestimmte Anordnung von einseitig gerichteten
Verbindungen, auf die bestimmten Anordnungen, die zum Übertragen von
Daten zwischen den Verbindungen und anderen Schaltsystemen gezeigt
sind, oder auf irgendeine der gezeigten Ausführungseinzelheiten beschränkt.
-
6 veranschaulicht
zusätzliche
beispielhafte Ausführungsformen
eines Speichersystems, von Speichermodulen, und von Speicherpuffern
nach den erfinderischen Grundsätzen
dieses Patents. Unter Bezugnahme auf 6 beruhen
ein oder mehrere Speichermodule 52 auf gedruckten Schaltplatten,
die entlang beider Seiten eines Rands Kontaktfinger aufweisen, um
ein Dual-Inline-Speichermodul (DIMM) zu schaffen, das in einen Steckverbinder
an einer anderen Schaltplatte, die andere Bestandteile des Systems
hält, eingesteckt
werden kann. Für
das Modul kann ein bestehender Formfaktor eingesetzt werden, zum
Beispiel der DIMM-Formfaktor, der für dynamische Double-Data-Rate-II(DDR2)-Direktzugriffsspeicher(DRAM)-Module
verwendet wird.
-
Diese
Module sind mit Speichervorrichtungen 58, zum Beispiel
Massenwaren-DRAM wie etwa DDR2-DRAM bestückt. Ein Speicherpuffer 64 an
jedem Modul isoliert die Speichervorrichtungen von einem Kanal,
der die Module mit der Speichersteuerung 50, die auch als
Host bezeichnet wird, koppelt. Der Kanal ist in einer Punkt-zu-Punkt-Anordnung
mit einem ausgehenden Pfad, der ausgehende Verbindungen 54 beinhaltet,
und einem eingehenden Pfad, der eingehende Verbindungen 56 beinhaltet,
verdrahtet. Die Verbindungen können
mit parallelen einseitig gerichteten Bitspuren, die Niederspannungsdifferenzsignale
verwenden, ausgeführt
sein.
-
In
der Ausführungsform
von 6 werden für
Funktionen wie etwa „Befehl", „Rückstellung", „Initialisierung" und dergleichen
keine zusätzlichen
Signalleitungen verwendet. Stattdessen sind diese Funktionen direkt
in die Daten, die über
den Kanal gesendet werden, codiert. Alternativ kann jedoch jede
beliebige Anzahl von zusätzlichen
Signalleitungen verwendet werden, um derartige Funktionen auszuführen.
-
Ein
Bezugstaktsignal REF CLK wird durch einen Taktsynthetisierer 76 erzeugt
und, möglicherweise
durch einen Taktpuffer 78, zum Host und zu den Modulen
verteilt. Dies erleichtert ein quasi asynchrones Taktungsschema,
in dem lokal erzeugte Taktsignale verwendet werden, um ankommende
Daten abzutasten und weiterzutreiben. Da an jedem Agenten ein gemeinsamer
Bezugstakt verfügbar
ist, können Datensignale
ohne jegliche Frequenzverfolgung getaktet werden. Alternativ kann
ein lokales Taktsignal unabhängig
von jeglichem Bezugstakt erzeugt werden. Als andere Alternative
kann ein synchrones Taktungsschema wie etwa ein quellensynchrones
Auftasten verwendet werden.
-
In
einer möglichen
Ausführungsform
beginnt der Host Datenübertragungen
durch das Senden von Daten, möglicherweise
in Paketen oder Rahmen (die Ausdrücke werden hier austauschbar
verwendet), zum innersten Modul auf dem ausgehenden Pfad. Das innerste
Modul empfängt
die Daten und treibt sie zum nächsten
Modul auf dem ausgehenden Pfad weiter. Jedes Modul empfängt die
ausgehenden Daten und treibt sie weiter, bis sie das äußerste Modul erreichen.
Obwohl das äußerste Modul
versuchen könnte,
die Daten zu einer „nichtexistierenden" ausgehenden Verbindung
weiterzutreiben, kann jedes Modul fähig sein, festzustellen (oder
angewiesen zu werden), daß es
das äußerste Modul
ist, und jegliches Weitertreibeschaltungssystem zu deaktivieren, um
einen unnötigen
Leistungsverbrauch, Rauschen, usw. zu verringern. In dieser Ausführungsform
werden Datenübertragungen
in der Richtung des Hosts, d.h., eingehende Datenübertragungen,
durch das äußerste Modul
begonnen. Jedes Modul empfängt
eingehende Daten und treibt sie entlang des eingehenden Pfads weiter,
bis sie den Host erreichen.
-
Über den
physikalischen Kanal kann jedes beliebige geeignete Kommunikationsprotokoll
verwendet werden. Zum Beispiel kann der Host dazu bestimmt sein,
alle eingehenden und ausgehenden Datenübertragungen zu beginnen und
zu planen. Alternativ kann jedem beliebigen Agenten gestattet sein, Datenübertragungen
zu beginnen. Rahmen von Daten können
dazu konfiguriert sein, Befehle, Lesedaten, Schreibdaten, Zustandsinformationen,
Fehlerinformationen, Initialisierungsdaten, Leermuster, usw. oder
jede beliebige Kombination davon zu tragen. Ein Protokoll kann so
ausgeführt
sein, daß das
Zielmodul dann, wenn der Host einen Befehlsrahmen entlang des ausgehenden
Pfads zu einem Zielmodul sendet, durch sofortiges Zurücksenden
eines Antwortrahmens entlang des eingehenden Pfads zum Host reagiert.
In einer derartigen Ausführungsform
treibt das Zielmodul den Befehlsrahmen nicht auf dem ausgehenden
Pfad weiter.
-
In
einer alternativen Ausführungsform
empfängt
das Zielmodul den Befehlsrahmen und treibt es dann den Befehlsrahmen
auf dem ausgehenden Pfad weiter. Wenn das äußerste Modul den Befehlsrahmen
empfängt,
löst es
einen Antwortrahmen (möglicherweise
nichts anderes als ein leerer Rahmen) auf dem eingehenden Pfad aus.
Das Zielmodul wartet, bis der Antwortrahmen seinen einwärtigen Empfänger erreicht.
Das Zielmodul mischt dann seine Antwort in den eingehenden Datenstrom,
z.B. indem es den Antwortrahmen, der durch das äußerste Modul gesendet wurde,
durch den wirklichen Antwortrahmen des Zielmoduls ersetzt.
-
7 veranschaulicht
eine andere beispielhafte Ausführungsform
eines Speicherpuffers nach den erfinderischen Grundsätzen dieses
Patents. Der Speicherpuffer von 7 beinhaltet
eine ausgehende Weitertreibeschaltung 60, um Signale auf
einem ausgehenden Pfad, der Verbindungen 54A und 54B beinhaltet,
zu empfangen und weiterzutreiben, und eine eingehende Weitertreibeschaltung 62,
um Signale auf einem eingehende Pfad, der Verbindungen 56A und 56B beinhaltet,
zu empfangen und weiterzutreiben. Eine Speicherschnittstelle 66 koppelt
den Puffer mit einer oder mehreren Speichervorrichtungen, was durch
einen Speicherbus 68 erfolgen kann. Die Speicherschnittstelle
kann Lese- und/oder Schreibpuffer wie etwa FIFO-Puffer beinhalten.
Daten vom ausgehenden Pfad werden mit der Speicherschnittstelle
gekoppelt, was durch eine Entzerrungsschaltung 70 erfolgen
kann, die einen Versatz zwischen Bits von Daten beseitigt, wenn
der ausgehende Pfad mehr als eine Bitspur aufweist. Ein Mustergenerator 72 kann
verwendet werden, um Zustandsmuster zur Sendung auf den eingehenden
Pfad zu erzeugen, zum Beispiel, wenn der Puffer zufällig der äusserste
Agent auf einem Kanal ist, in welchem Fall möglicherweise kein Signal auf
der ankommenden eingehenden Verbindung 56A empfangen wird.
Ein Multiplexer 74 koppelt selektiv Daten von der Speicherschnittstelle
oder vom Mustergenerator mit der eingehenden Weitertreibeschaltung.
-
Die
Speicherschnittstelle ist nicht auf irgendeine bestimmte Anordnung
beschränkt,
und sie kann mit Standardspeichervorrichtungen, insbesondere Massenwaren-Speichervorrichtungen
wie etwa DDR2-DRAM kompatibel sein. Der gesamte Speicherpuffer kann
in einer einzelnen integrierten Schaltung integriert sein, er kann
in eine oder mehrere Speichervorrichtungen integriert sein, seine
bildenden Elemente können
in gesonderte Bestandteile integriert sein, oder es kann jede beliebige
andere mechanische Anordnung eingesetzt werden. Die in 7 gezeigte
Ausführungsform
ist nur beispielhaft, und nach den erfinderischen Grundsätzen dieses
Patents sind andere Ausführungsformen
möglich.
Zum Beispiel ist die Ausführungsform
von 7 mit einseitig gerichteten Daten gezeigt, die
von der ausgehenden Weitertreibeschaltung zur Speicherschnittstelle
und von der Speicherschnittstelle zur eingehenden Weitertreibeschaltung
fließen.
Dieser Datenfluß kann
jedoch zweiseitig gerichtet sein, und andere Anordnungen sind ins
Auge gefaßt.
Selbst wenn die Ausführungsform
von 7 in einem Kanalsystem verwendet werden soll,
in dem Daten für
die Speicherschnittstelle nur wie in 7 gezeigt
fließen müssen, kann
sie dennoch mit Weitertreibeschaltungen verwirklicht werden, die über einen
vollständigen zweiseitig
gerichteten Datenzugriff verfügen,
da dies zum Beispiel die Ausführung
von eingebauten Selbstprüfungs(BIST)funktionen
erleichtern kann, in welchem Fall eine zweite Entzerrungsschaltung
zum Entzerren von Daten vom eingehenden Pfad hilfreich sein kann.
-
8 veranschaulicht
eine Ausführungsform
einer Weitertreibeschaltung nach den erfinderischen Grundsätzen dieses
Patents. Die Schaltung von 8 beinhaltet
eine oder mehrere Eingangs/Ausgangs-Zellen (E/A-Zellen) 74,
wovon jede ein Eingangsdatensignal RX empfängt, das als ein Augangsdatensignal
TX weitergetrieben werden kann. Alternativ kann eine E/A-Zelle ein
Lesedatensignal RDX durch das Augangsdatensignal ersetzen oder in
dieses mischen. Ein Schreibdatensignal WDX kann vom Eingangsdatensignal
genommen werden, entweder vor oder nachdem dieses als das Augangsdatensignal
weitergetrieben wird.
-
Das „X" in jeder der obigen
Signalbezeichnungen gibt an, daß es
sich abhängig
von der Anzahl der E/A-Zellen in der Weitertreibeschaltung um eines vom
mehreren ähnlichen
Signalen handeln könnte. Zum
Beispiel würde
eine Weitertreibeschaltung, die neun Bitspuren aufweist, neun E/A-Zellen mit Eingangsdatensignalen
aufweisen, die als R0, R1 ... R8 bezeichnet sind. In einer Weitertreibeschaltung
mit nur einer einzelnen E/A-Zelle wäre das Dateneingangssignal
R0 oder einfach R. Der Ausdruck RX wird verwendet, um generisch
auf jedes beliebige oder alle Eingangsdatensignale zu verweisen.
-
Der
Ausdruck „Schreibdaten" wird zur Bequemlichkeit
verwendet, um jegliche Daten anzugeben, die vom Datenstrom, der
sich durch die E/A-Zelle bewegt, genommen werden. Dies besagt jedoch nicht,
daß Schreibdaten
an eine Speicherschnittstelle oder an eine Speichervorrichtung gerichtet
sein müssen.
In der gleichen Weise bezieht sich „Lesedaten" auf jegliche Daten, die in die E/A-Zelle
eingegeben werden, wobei Lesedaten von jeder beliebigen Quelle,
nicht nur einer Speichervorrichtung oder einer Speicherschnittstelle,
kommen können.
-
Unter
erneuter Bezugnahme auf 8 erzeugt ein Taktgenerator 80 als
Reaktion auf ein Bezugstaktsignal REF CLK eine Anzahl von Phasentaktsignalen
PCX und ein Sendetaktsignal TC. Der Taktgenerator beinhaltet einen
Phasenregelkreis (PLL) 82, der den Sendetakt TC als ein
Vielfaches des Bezugstaktsignals REF CLK erzeugt, und einen Phasentaktgenerator 84.
In einer möglichen
Ausführungsform
gibt es vier Phasentaktsignale PC0, PC1, PC2 und PC3, die um 90
Grad beabstandet sind und vom Sendetakt TC erlangt werden. Jede
der E/A-Zellen kann eines oder mehrere der TC- und PCX-Signale verwenden,
um Datensignale abzutasten und/oder weiterzutreiben, und/oder um
zusätzliche lokale
Taktsignale zu erzeugen. In dieser Ausführungsform sind das Phasentakt-
und das Sendetaktsignal in dem Sinn stabile Signale, als sie nicht
als Reaktion auf die Phase eines jeglichen der Eingangsdatensignale
RX reguliert werden.
-
9 veranschaulicht
eine Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents. Ein Empfänger 86 ist
dazu eingerichtet, ein Datensignal RX zu empfangen und dieses als
Reaktion auf ein Abtasttaktsignal SC als Datensignal TX weiterzutreiben.
Das Abtasttaktsignal wird durch einen Abtasttaktgenerator 88 erzeugt, der
fähig ist,
das Abtasttaktsignal als Reaktion auf das Datensignal RX zu regulieren.
Ein Schreibdatensignal WDX kann vom Eingang oder vom Ausgang des
Empfängers 86 genommen
werden. Wenn es wie in 9 gezeigt vom Ausgang des Empfängers genommen
wird, kann das Abtasttaktsignal SC als Auftastsignal für die Schreibdaten
oder zur Erlangung des Auftastsignals verwendet werden. Der Eingang
an den Abtasttaktgenerator kann von anderen Punkten als vom Eingang
des Empfängers,
wie dies in 9 gezeigt ist, genommen werden.
Zum Beispiel kann er auch vom Ausgang des Empfängers genommen werden.
-
10 veranschaulicht
eine andere Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents. In der
Ausführungsform von 10 ist
der Abtasttaktgenerator 88 mit einem Interpolator 90 und
einer Empfängerverfolgungseinheit
(RTU) 92 ausgeführt.
Der Interpolator erzeugt das Abtasttaktsignal als Reaktion auf ein
Verfolgungssignal von der Empfängerverfolgungseinheit durch
Interpolieren zwischen einer Anzahl von Phasentaktsignalen PCX (in
diesem Fall vier Signalen, die um 90° phasenverschoben sind). Die
Empfängerverfolgungseinheit
beobachtet das Datensignal RX und reguliert das Verfolgungssignal
derart, daß das
Abtasttaktsignal den Empfänger
veranlaßt, das
Datensignal zu einer passenden Zeit abzutasten und weiterzutreiben.
-
Somit
kann das Abtasttaktsignal das Datensignal dynamisch verfolgen.
-
In
einer möglichen
Ausführungsform
beobachtet die Empfängerverfolgungseinheit Übergänge im Datensignal
RX, indem sie das Datensignal überabtastet
und den Abtasttakt reguliert, damit das Datensignal in der Mitte
des Datenauges, d.h., am Mittelpunkt zwischen Übergängen im Datensignal, abgetastet
und weitergetrieben wird. Der Abtasttaktgenerator 88 kann
ein Schleifenfilter beinhalten, das mehrere Bitzellen mißt und schließlich bestimmten kann,
daß es
die Phase des Abtasttaktsignals regulieren sollte, um die Daten
näher an
der Mitte der Stelle des Datenauges einzufangen. Der Eingang an den
Abtasttaktgenerator kann von anderen Punkten als dem Eingang des
Empfängers,
wie dies in 10 gezeigt ist, genommen werden.
Zum Beispiel kann er auch vom Ausgang des Empfängers genommen werden.
-
Eine
Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patent kann mit
einem Schema verwendet werden, das die E/A-Zellen schult, das Datensignal
dynamisch zu verfolgen. Wenn zum Beispiel die E/A-Zelle von 10 als
eines der in 3 gezeigten Speichermodule verwendet
wird, kann der Host periodisch Schulungsrahmen auf den ausgehenden
Pfad senden. Diese Schulungsrahmen weisen eine Randdichte auf, die
angemessen ist, um sicherzustellen, daß die Empfängerverfolgungseinheit genug Übergänge im Datensignal
beobachtet, um fähig
zu sein, das Abtasttaktsignal zu regulieren. In der gleichen Weise kann
das äußerste Modul
in 3 periodisch Schulungsrahmen auf den eingehenden
Pfad senden.
-
11 veranschaulicht
eine andere Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen dieses Patents. Die Ausführungsform von 11 ist
der von 9 ähnlich, doch ist im Datensignalweg
ein Puffer 94 hinzugefügt.
Der Puffer 94 kann ein Jittervermeidungs- oder ein Abwanderungsausgleichspuffer
sein, der spannungs- und temperaturbedingte Auswirkungen ausgleicht.
Der Puffer resynchronisiert das Datensignal TX zu einem Sendetaktsignal
TC. Das Sendetaktsignal ist in dem Sinn stabil, als es nicht in
der Weise, wie dies beim Abtasttaktsignal SC der Fall ist, als Reaktion
auf das Datensignal reguliert wird.
-
In
der Ausführungsform
von 11 ist der Puffer als Reaktion auf ein Betriebsartsignal
fähig, entweder
in einer Durchführungsbetriebsart
oder in einer Weitertreibebetriebsart tätig zu sein. In der Durchführungsbetriebsart
wird das Signal als Reaktion auf das Taktsignal abgetastet und weitergetrieben.
Dies ermöglicht
es der E/A-Zelle, in unterschiedlichen Weitertreibebetriebsarten
tätig zu
sein. In einer möglichen
Ausführungsform
ist der Puffer in einer Durchführungsbetriebsart
tätig,
wenn das Betriebsartsignal geltend gemacht wird. Dies wird als Wiederabtastungsbetriebsart
bezeichnet und kann zu einer kürzeren
Wartezeit führen,
da das Datensignal durch den gleichen Takt, der zum Abtasten der
Daten verwendet wird, weitergetrieben wird. Wenn das Betriebsartsignal
nicht geltend gemacht wird, ist der Puffer in der Weitertreibebetriebsart
tätig,
so dass die Daten mit dem Sendetakt resynchronisiert werden. Dies
wird als Resync-Betriebsart bezeichnet und kann zu einer längeren Wartezeit
führen,
kann aber das Jittern verringern. Die E/A-Zelle kann in einen Speicherpuffer
oder in ein Modul gestaltet sein, der bzw. das einen Eingang zum
Empfang des Betriebsartsignals aufweist. Wenn der Speicherpuffer
oder das Modul in einem System verwendet werden soll, in dem ein
verhältnismäßig kurzer
Signalpfad zum nächsten
Agenten vorhanden ist, kann der Eingang geltend gemacht werden (oder
abhängig
von der Polarität
nicht geltend gemacht werden), um zu verursachen, dass die E/A-Zelle
in der Wiederabtastungsbetriebsart tätig ist, da auf einem kurzen
Signalpfad mehr Jittern toleriert werden kann. Wenn der Speicherpuffer
oder das Modul andererseits in einem System verwendet werden soll,
in dem ein verhältnismäßig langer
Signalpfad zum nächsten
Agenten vorhanden ist, kann der Eingang nicht geltend gemacht werden,
um zu verursachen, dass die E/A-Zelle in der Resync-Betriebsart
tätig ist,
da dies das Jittern verringert, wenn auch auf mögliche Kosten einer längeren Wartezeit.
Alternativ kann am Speicherpuffer oder am Modul, oder in einer Weitertreibeschaltung,
oder in der E/A-Zelle selbst eine registrierte Markierung verwendet
werden, um das Betriebsartsignal zu steuern.
-
12 veranschaulicht
eine andere Ausführungsform
einer E/A-Zelle nach den erfinderischen Grundsätzen des Patents. In der Ausführungsform von 12 sind
die empfangenen und gesendeten Datensignale RX und TX Differenzsignale
und ist gezeigt, daß sie
den Rand eines Chips mit integrierter Schaltung, auf dem die E/A-Zelle
hergestellt werden kann, überschreiten.
Der Empfänger 86 beinhaltet eine
Abtasteinheit 96 und eine Abschlußeinheit 98. Die Abtasteinheit
tastet das ankommende Datensignal als Reaktion auf ein Abtasttaktsignal
SC, welches durch den Interpolator 90 als Reaktion auf
Phasentaktsignale vom Abtasttaktgenerator erzeugt wird, ab. Die
Abschlußeinheit
stellt einen Differenzabschluß bereit
und wandelt das Differenzdatensignal in ein unsymmetrisches Signal
um. Ein Jittervermeidungs- oder Abwanderungsausgleichspuffer 94 taktet
Daten als Reaktion entweder auf das Abtasttaktsignal SC oder ein
stabiles Sendetaktsignal TC. Ein Multiplexer 100 koppelt
Datensignale entweder vom Puffer 94 oder von einem Parallel-Serien-Umsetzer 102 selektiv
mit einem Sendezwischenspeicher 104. Lesedatensignale RDX[0
... n] werden an der E/A-Zelle am Parallel-Serien-Umsetzer 102 empfangen.
Zwischen dem Puffer 94 und dem Sendezwischenspeicher 104 kann
ein anderer Multiplexer angeordnet sein, wobei ein Eingang an den
Puffer und ein anderer Eingang an einen Ausgang des Interpolators
angeschlossen ist.
-
Wenn
die E/A-Zelle Lesedaten in den Datenstrom mischen muß, wählt der
Multiplexer seinen Eingang, der mit dem Parallel-Serien-Umsetzer
gekoppelt ist, so, daß der
Sendezwischenspeicher die Lesedaten als Reaktion auf das Sendetaktsignal
TC aus der E/O-Zelle taktet. Andernfalls wählt der Multiplexer das Datensignal
vom Puffer, das dann durch den Sendezwischenspeicher weitergetrieben
wird. Das Sendedatensignal wird durch den Sender 106 in ein
Differenzsignal zurückgewandelt,
bevor es auf die nächste
einseitig gerichtete Verbindung getrieben wird. Schreibdaten werden
vom Ausgang des Sendezwischenspeichers genommen, in einem Serien-Parallel-Umsetzer 108 gesammelt,
und dann zu einer Entzerrungsschaltung, einem Bit-Lane-Failover-Mechanismus
oder einem anderen Schaltsystem geroutet. Der Serien-Parallel-Umsetzer kann auch
ein Bitleitungstaktsignal BLC bereitstellen, das vom Abtasttaktsignal
erlangt werden kann, um anzugeben, wann die Schreibdaten WDX[0 ...
n] gültig
sind.
-
Einige
der erfinderischen Grundsätze
dieses Patent betreffen das von Weitertreibepfaden gesonderte Entzerren
von Signalen. Ein Weitertreibepfad ist durch einen oder mehrere
Bestandteile, durch die sich ein Signal ausbreitet, wenn es empfangen
und weitergetrieben wird, definiert. Zum Beispiel beinhaltet der
Weitertreibepfad in den Ausführungsformen von 9 und 10 den
Empfänger 86.
In der Ausführungsform
von 11 beinhaltet der Weitertreibepfad den Empfänger 86 und
den Puffer 94. In der Ausführungsform von 12 beinhaltet
der Weitertreibepfad die Abtasteinheit 96, die Abschlußeinheit 98,
den Puffer 94, den Multiplexer 100, den Sendezwischenspeicher 104 und
den Sender 106.
-
Nach
einigen der erfinderischen Grundsätze dieses Patents kann eine
Entzerrungsschaltung so in eine Weitertreibeschaltung eingegliedert
werden, daß die
einzelnen Bitspuren der Entzerrungsschaltung in den Weitertreibepfaden
beinhaltet sind. Somit können
die Signale auf den Bitspuren in jeder Weitertreibeschaltung entzerrt
werden, während
sie einen Pfad entlang weitergetrieben werden. Alternativ kann eine
Entzerrungsschaltung nach den erfinderischen Grundsätzen dieses
Patents jedoch von den Weitertreibepfaden gesondert sein. Zum Beispiel
ist in der Ausführungsform
von 7 eine Entzerrungsschaltung nicht nur von den
Weitertreibepfaden in der Weitertreibeschaltung 60, sondern
auch von der gesamten Weitertreibeschaltung gesondert gezeigt. Alternativ
kann eine Entzerrungsschaltung nach den erfinderischen Grundsätzen dieses
Patents in die Weitertreibeschaltung eingegliedert werden, aber
dennoch von den Weitertreibepfaden gesondert sein. Zum Beispiel
können
in der Ausführungsform
von 12 ein oder mehrere Entzerrungszwischenspeicher
am Ausgang des Parallel-Serien-Umsetzers 102 und/oder am
Eingang des Serien-Parallel-Umsetzers 108 angeordnet sein.
-
Die
wie oben beschriebenen Ausführungsformen
der Verfahren und Vorrichtungen, um Signale gesondert von Weitertreibepfaden
zu entzerren, sind nur beispielhaft und nicht auf diese bestimmten
Beispiele beschränkt. Überdies
sind die Grundsätze,
die das von Weitertreibepfaden gesonderte Entzerren von Signalen
nach diesem Patent betreffen, von anderen erfinderischen Grundsätzen dieses
Patents unabhängig.
Beispielsweise können
so wie die Ausführungsformen
der Weitertreibeschaltungen, die in 9 bis 12 veranschaulicht
sind, nicht auf die Verwendung in Speichersystemen beschränkt sind, welche
gesonderte ausgehende und eingehende Pfade aufweisen, auch die Grundsätze, die
das von Weitertreibepfaden gesonderte Entzerren von Signalen nach
diesem Patent betreffen, mit anderen Arten von Speicherarchitekturen,
die einseitig gerichtete Verbindungen benutzen, verwendet werden,
z.B. einer Architektur, die eine ringartige Anordnung von Verbindungen
wie etwa RamLink benutzt.
-
Einige
der erfinderischen Grundsätze
dieses Patents betreffen das Bewältigen
von ausgefallenen Bitspuren. Zum Beispiel kann jede beliebige der
einseitig gerichteten Verbindungen zwischen beliebigen der in den
Ausführungsformen
von 3, 4, 5, 6 oder 7 gezeigten
Agenten mehr als eine Bitspur aufweisen. Nach den erfinderischen Grundsätzen dieses
Patents können
ein oder mehrere Signale auf den Bitspuren umgeleitet werden, um eine
schlechte Bitspur zu vermeiden. Jeder beliebige Agent wie etwa eine
Speichersteuerung (ein Host), ein Modul, ein Puffer, usw. kann fähig sein,
ein oder mehrere Signale auf einer Anzahl von Bitspuren umzuleiten.
Ein Signal kann an einem oder an beiden Enden einer Verbindung umgeleitet
werden. Jeder beliebige Agent kann fähig sein, eine ausgefallene Bitspur
entweder automatisch oder mit der Unterstützung eines anderen Agenten
festzustellen, und jeder beliebige Agent kann fähig sein, Signale als Reaktion auf
einen Befehl von einem anderen Agenten umzuleiten.
-
13 veranschaulicht
eine Ausführungsform
einer Failover-Schaltung nach den erfinderischen Grundsätzen dieses
Patents. Die Failover-Schaltung 110 von 13 ist
nur zum Zweck der Erläuterung
zusammen mit einer Ausführungsform einer
Weitertreibeschaltung 112 gezeigt, doch die erfinderischen
Grundsätze
sind weder auf die Verwendung mit irgendeiner bestimmten Weitertreibeschaltung
beschränkt,
noch ist die Failover-Schaltung auf die in 13 gezeigten
bestimmten Einzelheiten beschränkt.
Die Weitertreibeschaltung 112 beinhaltet eine Anzahl von
Bitspuren, die dazu eingerichtet sind, Signale auf einseitig gerichteten
Verbindungen zu empfangen und weiterzutreiben. Jede Bitspur ist als
eine E/A-Zelle 114 ausgeführt, die einen Empfänger 116 und
einen Sender 118 aufweist.
-
Eine
Failover-Schaltung bezieht sich auf eine Schaltung, die fähig ist,
ein oder mehrere Signale zu oder von mehreren Bitspuren umzuleiten.
In der Ausführungsform
von 13 ist die Failover-Schaltung als Multiplexer
ausgeführt,
der einen oder mehrere Multiplexerschalter 120 aufweist.
Jeder Schalter weist einen ersten Eingang, der mit einer Bitspur
gekoppelt ist, und einen zweiten Eingang, der mit einer benachbarten
Bitspur gekoppelt ist, auf, so daß er Signale von einer der
beiden Bitspuren zu seinem Ausgang umleiten kann. Die in 13 gezeigte
Ausführungsform
ist mit sechs Schaltern gezeigt, um sechs Bitspuren zu bedienen,
doch kann jede beliebige Anzahl von Schaltern und Bitspuren verwendet
werden, und können
die Schalter in verschiedensten anderen Gestaltungen als der wie
gezeigten Gestaltung der benachbarten Bitspuren angeordnet werden.
-
Während einer
normalen Betriebsart leitet jeder der Schalter wie in 14 gezeigt
das Signal von seinem ersten Eingang zu seinem Ausgang, so daß Schreibdatensignale
WD0, WD1, WD2, WD3, WD4 und WD5 zu Ausgängen OUT0, OUT1, OUT2, OUT3, OUT4
bzw. OUT5 geleitet werden. In einer derartigen Ausführungsform
kann eine der Bitspuren, zum Beispiel die WD5 entsprechende Bitspur,
zur Fehlerprüfung
der Daten auf den anderen Bitspuren verwendet werden.
-
Wenn
eine schlechte Bitspur festgestellt wird, kann der Multiplexer in
einer Failover-Betriebsart tätig
werden, in der einer oder mehrere der Schalter betätigt werden,
um die schlechte Bitleitung auszuplanen. Wenn zum Beispiel die WD3
zugehörige Bitspur
nicht richtig arbeitet, können
die Multiplexerschalter die Schreibdatensignale WD4 und WD5 wie in 15 gezeigt
zu den Ausgängen
OUT3 bzw. OUT4 umleiten. In dieser Betriebsart wird Signalkapazität im Wert
einer Bitspur verloren. Wenn eine der Bitspuren für die Fehlerprüfung bestimmt
wurde, können
Signale, die ursprünglich
für die
schlechte Bitspur bestimmt waren, über die Fehlerprüfungsbahn umgeleitet
werden und kann die Fehlerprüfungsfunktion
deaktiviert werden.
-
Die
Ausgänge
der Failover-Schaltung können
mit einer Speicherschnittstelle, mit einer Speichervorrichtung,
oder mit einem anderen Schaltungssystem gekoppelt sein. In der Ausführungsform
von 13 ist die Failover-Schaltung von der Weitertreibeschaltung gesondert
gezeigt, doch kann sie auch in die Weitertreibeschaltung eingegliedert
sein. Eine Failover-Schaltung nach den erfinderischen Grundsätzen dieses
Patents kann wie gezeigt mit einfachen Multiplexern verwirklicht
werden, doch sind auch andere Anordnungen wie etwa ein vollständiger Kreuzschienenschalter
möglich.
-
Die
in 13 gezeigte Ausführungsform einer Failover-Schaltung
ist dazu eingerichtet, Schreibdaten von den Bitspuren mit ihren
Ausgängen
zu koppeln. Alternativ kann eine Ausführungsform einer Failover-Schaltung
nach den erfinderischen Grundsätzen
dieses Patents dazu eingerichtet sein, Daten in die entgegengesetzte
Richtung zu übertragen,
in welchem Fall die Ausgänge
OUTX Eingänge
würden, die
Lesedaten empfangen, die Multiplexerschalter als Demultiplexerschalter
bezeichnet werden könnten,
und jede der E/A-Zellen zwischen dem Empfänger und dem Sender einen Multiplexer
aufweisen würde,
um die Lesedaten von der Failover-Schaltung in die Bitspur zu mischen.
Somit bezieht sich ein Multiplexer sowohl auf einen Multiplexer
als auch auf einen Demultimplexer. Als andere Alternative kann eine
Ausführungsform
einer Failover-Schaltung nach den erfinderischen Grundsätzen dieses
Patents für einen
zweiseitig gerichteten Datenfluß zwischen
den Bitspuren und der Speichervorrichtung, der Speicherschnittstelle,
oder einem anderen Schaltungssystem eingerichtet sein.
-
Ein
Speicherpuffer, ein Speichermodul, eine Speichersteuerung (Host)
oder ein anderer Agent, der eine Bitspur-Failover-Fähigkeit
aufweist, kann nach den erfinderischen Grundsätzen dieses Patents auch verschiedenste
Fähigkeiten
aufweisen, um ausgefallene Bitspuren festzustellen, Signale umzuleiten,
schlechte Bitspuren auszuplanen, und so weiter. Zum Beispiel kann
ein Agent, der die in 13 gezeigte Ausführungsform
einer Failover-Schaltung aufweist, so gestaltet sein, daß er eine
ausgefallene Bitspur z.B. durch Beobachten eines Prüfdatenmusters,
das durch einen anderen Agenten gesendet wird, feststellen kann
und Signale umleiten kann, um die ausgefallene Bitspur auszuplanen.
Alternativ kann der Agent so gestaltet sein, daß er eine ausgefallene Bitspur
als Reaktion auf einen Befehl von einem anderen Agenten, zum Beispiel
einer Speichersteuerung, die einen oder mehrere Agenten auf einem
Speicherkanal unterweist, ausplanen kann. Alternativ kann der Agent über beide
Fähigkeiten
verfügen.
-
16 veranschaulicht
eine Ausführungsform
eines Speicherpuffers mit Bitspur-Failover-Fähigkeit
nach den erfinderischen Grundsätzen
dieses Patents. Die Ausführungsform
von 16 ist der von 7 ähnlich,
beinhaltet aber auch eine Failover-Schaltung 122, die zwischen
die Entzerrungsschaltung 70 und die Speicherschnittstelle
gekoppelt ist. Alternative Ausführungsformen
sind möglich. Zum
Beispiel kann die Failover-Schaltung zwischen der Weitertreibeschaltung 60 und
der Entzerrungsschaltung angeordnet sein, oder kann sie in die Weitertreibeschaltung
eingegliedert sein. Die Ausführungsform
von 16 beinhaltet auch eine andere Failover-Schaltung 124,
die zwischen den Multiplexer 74 und die Weitertreibeschaltung 62 gekoppelt gezeigt
ist, aber auch in die Weitertreibeschaltung eingegliedert oder auf
andere Weisen eingerichtet sein kann. Der Speicherpuffer von 16 kann
alternativ als ein Speichermodul ausgeführt sein, in welchem Fall die
Speicherschnittstelle durch eine Speichervorrichtung ersetzt wird.
-
17 veranschaulicht
eine Ausführungsform
einer Speichersteuerung mit Bitspur-Failover-Fähigkeit
nach den erfinderischen Grundsätzen dieses
Patents. Die Steuerung von 17 beinhaltet ausgehende
und eingehende einseitig gerichtete Verbindungsschnittstellen 126 und 128,
die mehrere Bitspuren aufweisen, welche in dieser Ausführungsform
eine Anzahl von Sendern bzw. eine Anzahl von Empfängern aufweisen.
Failover-Schaltungen 130 und 132 sind mit den
Bitspuren in den Schnittstellen 126 bzw. 128 gekoppelt.
In der Ausführungsform
von 17 sind die Failover-Schaltungen von den Verbindungsschnittstellen
gesondert gezeigt, doch können
sie alternativ einstückig
mit den Schnittstellen ausgeführt
sein. Die Steuerung kann fähig
sein, eine ausgefallene Bitspur festzustellen, in welchem Fall die
Failover-Schaltungen die ausgefallene Bitspur ausplanen können. Zusätzlich oder
alternativ kann die Steuerung fähig
sein, einen Befehl auszugeben, der einen Agenten anweist, eine ausgefallene
Bitspur auszuplanen.
-
Nun
werden zusätzliche
Failover-Verfahren und -Vorrichtungen nach den erfinderischen Grundsätzen dieses
Patents im Kontext einer beispielhaften Ausführungsform eines vollständigen Speicherkanalsystems
beschrieben werden, welches zusätzliche
Ausführungsformen
einer Speichersteuerung (eines Hosts), von Speichermodulen, und
von Speicherpuffern nach den erfinderischen Grundsätzen dieses
Patents beinhaltet. Keiner der Bestandteile ist jedoch auf dieses
beispielhafte System oder jegliche der darin beschriebenen Einzelheiten
beschränkt.
-
Das
beispielhafte System beinhaltet eine Ausführungsform eines Hosts, der
Failover-Fähigkeiten
wie die unter Bezugnahme auf 17 beschriebenen
aufweist, und Ausführungsformen
eines oder mehrerer Speichermodule, die Puffer mit Failover-Fähigkeiten
wie die unter Bezugnahme auf 16 beschriebenen
aufweisen. In diesem Beispiel sind der Host und die Module in einer
Kanalkonfiguration angeordnet, die ausgehende und eingehende Pfade
wie die in 7 gezeigten aufweist, obwohl das
System nur ein Modul beinhalten kann.
-
In
diesem Beispiel sind der Host und die Module mit einem als „SMBus" bekannten Systemverwaltungsbus
verbunden, bei dem es sich um ein serielles Bussystem handelt, das
verwendet wird, um Bestandteile in einem System zu verwalten. Die
Verwendung des SMBus ist jedoch für die erfinderischen Grundsätze dieses
Patents nicht notwendig, und es können andere Formen der Kommunikation
zwischen Bestandteilen, einschließlich der Speicherkanalpfade
selbst, verwendet werden.
-
Eine
Ausführungsform
eines Verfahrens nach den erfinderischen Grundsätzen dieses Patents zur Feststellung
und Ausplanung einer ausgefallenen Bitspur im beispielhaften System
läuft wie
folgt ab. Der Host sendet auf jeder Bitspur des ausgehenden Pfads
ein Prüfmuster.
Das Prüfmuster
wird entlang des ausgehenden Pfads durch den Puffer an jedem Modul
empfangen und weitergetrieben, bis es das äußerste Modul erreicht. Das äußerste Modul
sendet dann auf jeder Bitspur des eingehenden Pfads ein Prüfmuster.
Das Prüfmuster
wird entlang des eingehenden Pfads durch den Puffer an jedem Modul
empfangen und weitergetrieben, bis es den Host erreicht. Der Host
und die Puffer an den Modulen beobachten das Prüfmuster auf jeder Bitspur des
eingehenden und/oder ausgehenden Pfads, um hinsichtlich des richtigen
Bitspurbetriebs zu prüfen.
Die Bitspuren in den eingehenden und ausgehenden Pfaden können gleichzeitig
geprüft
werden.
-
Ausgefallene
Bitspuren werden gemeldet, indem die Ergebnisse durch den SMBus
zum Host gesendet werden und/oder ein Ergebnisrahmen über den
Kanal zum Host gesendet wird. Ein derartiger Ergebnisrahmen kann
durch das äußerste Modul
auf dem eingehenden Pfad begonnen werden, und die anderen Module,
falls vorhanden, können
ihre Ergebnisinformationen in die Daten auf dem eingehenden Pfad
mischen. Wenn die Ergebnisse von jedem Modul redundant auf mehr
als einer Bitspur gesendet werden, ist es unwahrscheinlich, daß eine ausgefallene
Bitspur die Meldung der Ergebnisse beeinträchtigen wird.
-
Sobald
der Host die Ergebnisse empfängt, kann
er durch den SMBus, über
den Kanal, oder über jede
beliebige andere Form von Kommunikation einen Konfigurationsbefehl
an die Module ausgeben. Der Konfigurationsbefehl setzt die Module
davon in Kenntnis, welche Bitspuren, falls überhaupt, schlecht sind und
ausgeplant werden sollten. Die Module antworten auf den Konfigurationsbefehl,
indem sie eine oder mehrere Failover-Schaltungen so manipulieren, daß Signale
um schlechte Bitspuren, falls vorhanden, umgeleitet werden, und
jegliche interne Funktionalität
so rekonfigurieren, daß eine
Anpassung an den Verlust einer Bitspur erfolgt. Wenn zum Beispiel
eine Bitspur für
Fehlerprüfdaten
bestimmt war, kann der Puffer oder das Modul Fehlerprüfungsfunktionen deaktivieren.
-
Die
oben beschriebenen Ausführungsformen von
Failover-Verfahren und -Vorrichtungen sind nur beispielhaft, und
die erfinderischen Grundsätze
dieses Patents sind nicht auf diese bestimmten Beispiele beschränkt. Die
Grundsätze
von Failover-Verfahren und -Vorrichtungen nach diesem Patent wurden unter
Bezugnahme auf ein Speichersystem, das gesonderte eingehende und
ausgehende Pfade aufweist, wie etwa die Ausführungsform von 3 beschrieben,
doch die Grundsätze
können
auch auf jede beliebige Speicherarchitektur angewendet werden, die
einseitig gerichtete Verbindungen aufweist, zum Beispiel eine Architektur,
die eine ringartige Anordnung von Verbindungen wie etwa RamLink
benutzt.
-
Einige
der erfinderischen Grundsätze
dieses Patents betreffen das Permutieren von Zustandsmustern. In
Speichersystemen wie den oben unter Bezugnahme auf 1 und 3 beschriebenen,
in denen Speicherlese- und -schreibdaten zwischen Speicheragenten übertragen
werden, kann es auch nützlich
sein, Zustandsmuster wie etwa Leermuster, Alarmmuster, und andere
Zustandsmuster zwischen Speicheragenten zu senden. Dies kann durch
das Senden von Datenmustern und Zustandsmustern auf der gleichen
Verbindung oder auf den gleichen Verbindungen, die die Speicheragenten
verbindet bzw. verbinden, bewerkstelligt werden. Nach den erfinderischen
Grundsätzen
dieses Patents können
die Zustandsmuster im Zeitverlauf permutiert werden.
-
Zum
Beispiel kann die Speichersteuerung 50 unter Bezugnahme
auf 3 Rahmen, die Datenmuster wie etwa Lesebefehle
aufweisen, zu einem oder mehreren der Module 52 senden,
die antworten, indem sie Rahmen, die Datenmuster wie etwa Lesedaten
aufweisen, zur Steuerung zurücksenden.
Es kann für
das eine oder die mehreren der Module nützlich sein, einen Rahmen,
der ein Leermuster aufweist, zur Speichersteuerung zurückzusenden,
zum Beispiel, wenn das Modul nicht fähig war, schnell genug Lesedaten
von einer Speichervorrichtung 58 abzurufen. Ein vorbestimmtes
Datenmuster kann als ein Leermuster bestimmt werden, so daß die Speichersteuerung
dann, wenn sie das Leermuster empfängt, weiß, daß sie keine Lesedaten empfängt. Dies kann
jedoch Probleme verursachen, wenn das tatsächliche Lesedatenmuster zufällig mit
dem bestimmten Leermuster übereinstimmt.
-
Nach
den erfinderischen Grundsätzen
dieses Patents können
die Speichersteuerung und ein oder mehrere Module beide fähig sein,
das Leermuster auf eine vorhersagbare Weise zu permutieren, so daß sich das
Leermuster im Zeitverlauf verändert. Zum
Beispiel können
die Speichersteuerung und die Module das Leermuster jedes Mal, wenn
ein Leermuster gesendet und/oder empfangen wird, nach einer vorbestimmten
Abfolge verändern.
Eine Ausführungsform
eines derartigen Verfahrens nach den erfinderischen Grundsätzen dieses
Patents ist in 18 veranschaulicht. Daher kann
die Speichersteuerung, wenn sie einen Lesebefehlrahmen sendet (158)
und einen Antwortrahmen empfängt
(160), der das gegenwärtige
Leermuster aufweist, den gleichen Lesebefehl erneut senden (164).
Wenn der zweite Antwortrahmen (166) das gleiche Muster
wie der erste enthält
(168), interpretiert sie das Muster als tatsächliche
Lesedaten (170). Wenn das Muster im zweiten Antwortrahmen
jedoch dem permutierten Leermuster entspricht (168), weiß die Speichersteuerung,
daß der
erste Antwortrahmen ein Leerrahmen (172) war.
-
Nach
den erfinderischen Grundsätzen
dieses Patents können
die Zustandsinformationen, die in Zustandsmustern gesendet werden,
Leermuster, Alarmmuster, und andere Zustandsinformationen wie etwa
Befehlsfehlerinformationen von einem Modul, Wärmeüberlastungsinformationen von
einem Modul, und Informationen, die angeben, daß ein Modul die Anwesenheit
eines anderen Moduls auf dem ausgehenden Pfad des Speicherkanals
festgestellt hat, sein. Einige Arten von Zustandsmustern können als komplementäre Muster
ausgeführt
sein. Zum Beispiel kann ein Alarmmuster (das verwendet werden kann,
um einem Agenten eine Fehlerbedingung zu melden) als das logische
Komplement eines Leermusters ausgeführt sein. Dies kann die Ausführung vereinfachen,
indem zum Beispiel einem Speicheragenten gestattet wird, den gleichen
Mustergenerator für
Leer- und Alarmmuster zu verwenden. Die Verwendung von komplementären Zustandsmustern kann
selbst dann vorteilhaft sein, wenn keine permutierenden Muster verwendet
werden.
-
Ein
Speicheragent nach den erfinderischen Grundsätzen dieses Patents kann auch
fähig sein, absichtlich
einen Fehler wie etwa einen zyklischen Redundanzprüfungs(CSC)fehler
in einem Zustandsmuster zu erzeugen. Eine derartige Technik kann
als eine alternative oder ergänzende
Weise zur Unterscheidung eines Datenmusters von einem Zustandsmuster
nützlich
sein. Zum Beispiel wird in einigen Speichersystemen jeder Rahmen
zusammen mit einem CRC-Code gesendet, der verwendet wird, um die
Unversehrtheit der Daten im Rahmen zu prüfen.
-
Nach
den erfinderischen Grundsätzen
dieses Patents kann ein Speicheragent absichtlich den falschen CRC-Code
mit einem Rahmen senden, der ein Zustandsmuster enthält. Der
empfangende Agent kann dann den Rahmen anstatt als einen Datenrahmen
vielmehr als einen Zustandsrahmen interpretieren. Einige Speichersysteme
können
einen Pfad oder Pfade mit einer zusätzlichen Bitspur zum Tragen
von CRC-Daten benutzen. Wenn ein derartiges System fähig ist,
in einer Failover-Betriebsart tätig
zu sein, kann der Agent bzw. können
die Agenten einen absichtlichen CRC-Fehler möglicherweise nur dann benutzen,
wenn sie nicht in der Failover-Betriebsart
tätig ist
bzw. sind. Wie hierin benutzt bezieht sich der Ausdruck „CRC" nicht nur auf eine
zyklische Redundanzprüfung,
sonder auch auf jede beliebige andere Art von Fehlerprüfungsschema,
das verwendet wird, um die Unversehrtheit eines Rahmens oder Musters zu
verifizieren.
-
Obwohl
die Grundsätze
der Zustandsmusterpermutation- und handhabung nach den erfinderischen
Grundsätzen
dieses Patents auf jede beliebige Art von Speicheragenten anwendbar
sind und von anderen erfinderischen Grundsätzen dieses Patents unabhängig sind,
werden einige zusätzliche
Gesichtspunkte unter Bezugnahme auf einen Speicherpuffer wie die
in 7 gezeigte Ausführungsform und im Kontext eines
Systems wie der in 6 gezeigten Ausführungsform
beschrieben werden. Unter Bezugnahme auf 6 kann der
Speicherpuffer 64, wenn er der äußerste Agent auf einem Speicherkanal ist,
fähig sein,
auf der eingehenden Verbindung 56B konstant permutierende
Leerzustandsrahmen zu senden, wann immer er keine Daten sendet,
die der Host von beliebigen Speichervorrichtungen, die an der Speicherschnittstelle 68 angebracht
sind, angefordert hat.
-
19 veranschaulicht
eine Ausführungsform
eines Generators für
ein permutierendes Muster nach den erfinderischen Grundsätzen dieses
Patents. Die Ausführungsform
von 19 ist ein linear rückgekoppeltes Schieberegister
(LFSR) von 12 Bit mit einem Polynom von x12 + x7 + x4 + x3 + 1.
Der Anfangszustand kann auf 000000000001 gesetzt werden, und das
LFSR läuft
durch 212 – 1
Zustände (4095
Rahmen), bevor das Muster wiederholt wird. Jedes Bit des LFSR kann
auf eine Bitspur in einer Verbindung auf einem Datenpfad abgebildet
werden, und jedes Bit kann für
alle Übertragungen,
die während
eines gesamten Rahmens auf der entsprechenden Bitspur auftreten,
verwendet werden. Zum Beispiel kann der Ausgang von jeder Stufe
des LFSR in einem System, das einen Datenpfad mit 12 Bitspuren in
jeder Verbindung aufweist, auf eine der Bitspuren abgebildet werden.
Zusätzlichen
Bahnen, zum Beispiel einer dreizehnten Bitspur, kann durch Benutzen des
um einen Rahmen verzögerten
Werts des niederwertigsten Bits des LFSR entsprochen werden.
-
20 veranschaulicht
ein Beispiel des ersten Zustandsmusters, das durch den Generator
für ein
permutierendes Muster von 19 erzeugt
wird. In diesem Beispiel ist ein Rahmen 12 Übertragungen lang. 21 bis 23 veranschaulichen
das zweite, dritte bzw. vierte Zustandsmuster. Durch das Verwenden
des gleichen Werts auf jeder Bitspur während eines gesamten Rahmens
kann die elektromagnetische Interferenz (EMI oder Rauschen) verringert werden.
-
Der
hier veranschaulichte Rahmen von 13 Bitspuren bei 12 Bit Übertragung
ist beispielhaft, und die erfinderischen Grundsätze dieses Patents sind weder
auf diese Einzelheiten noch auf die oben beschriebene bestimmte
Ausführungsform
eines Generators für
ein permutierendes Muster beschränkt.
Zu Beispiel muß ein
Generator für
ein permutierendes Mustern nach den erfinderischen Grundsätzen dieses
Patents nicht mit einem fest zugeordneten Logikschaltsystem wie
dem oben beschriebenen LFSR ausgeführt sein.
-
Alternativ
kann er mit programmierbarer Logik oder als ein Algorithmus in einem
Prozessor oder einer anderen programmierbaren Zustandsmaschine,
die verwendet werden kann, um die Logik in der Speicherschnittstelle
oder eine andere Funktionalität eines
Puffers oder eines anderen Speicheragenten, der permutierende Zustandsmuster
verwendet, zu überwachen
und/oder auszuführen,
ausgeführt
sein.
-
Einige
zusätzliche
erfinderische Grundsätze dieses
Patents betreffen das Benutzen von mehr als einer Bitspur, um die
Anwesenheit eines Speicheragenten auf einer Speicherverbindung festzustellen. Zum
Beispiel kann der Puffer in der Ausführungsform eines Speicherpuffers,
die in 7 gezeigt ist, fähig sein, festzustellen, ob
ein anderer Speicheragent vorhanden ist, der mit der ausgehenden
Verbindung 54B gekoppelt ist. Dies kann bewerkstelligt
werden, indem eine einzelne Bitspur in der Verbindung benutzt wird,
um hinsichtlich der Anwesenheit eines anderen Speicheragenten zu
prüfen.
Wenn in der Verbindung jedoch mehr als eine Bitspur vorhanden ist, kann
nach den erfinderischen Grundsätzen
dieses Patents mehr als eine der Bitspuren verwendet werden, um
die Anwesenheit eines anderen Speicheragenten festzustellen. Dies
kann verhindern, daß das Vorhandensein
einer schlechten Bitspur die Tätigkeit zur
Feststellung der Anwesenheit beeinträchtigt.
-
Zur
Bequemlichkeit werden die erfinderischen Grundsätze dieses Patents, die das
Benutzen von mehr als einer Bitspur zur Feststellung der Anwesenheit
eines Speicheragenten betreffen, einzeln und gesammelt als redundante
Anwesenheitsfeststellung bezeichnet werden. Die redundante Anwesenheitsfeststellung
kann auf jede beliebige Art von Speicheragent angewendet werden,
der eine Verbindungsschnittstelle mit mehreren Bitspuren aufweist. Zum
Beispiel können
beliebige zwei oder mehr Sender 118, die in der Ausführungsform
von 13 gezeigt sind, als eine Verbindungsschnittstelle,
in diesem Fall eine Sendeverbindungsschnittstelle, betrachtet werden.
In der gleichen Weise können
beliebige zwei oder mehr der Empfänger 116, die in 13 gezeigt
sind, als eine Verbindungsschnittstelle, in diesem Fall eine Empfangsverbindungsschnittstelle,
betrachtet werden. Die redundante Anwesenheitsfeststellung kann
auf jede dieser Verbindungsschnittstellen wie auch auf jede der
Verbindungsschnittstellen 126 und 128, die in
der Ausführungsform
von 17 gezeigt sind, angewendet werden.
-
Unter
neuerlicher Rückkehr
zur Ausführungsform
von 7 als Beispiel kann der Speicherpuffer drei Bitspuren
auf seiner eingehenden Sendeverbindung 56B auf einen vorbestimmten
Anwesenheitsfeststellungslogikpegel, z.B. Eins, treiben, um einem
anderen Puffer seine Anwesenheit zu signalisieren, wenn ein Anwesenheitsfeststellungsereignis wie
etwa eine Rückstellung
eintritt. Ebenfalls während
eines Anwesenheitsfeststellungsereignisses kann ein zweiter derartiger
Speicherpuffer, der sich auf einem Kanal einwärts des ersten Puffers befindet, die
entsprechenden drei Bitspuren auf seiner eingehenden Empfangsverbindung 56A dazu
konfigurieren, die Anwesenheit des ersten Puffers festzustellen.
In diesem Beispiel wird der erste Speicherpuffer als ein äußerer Agent
bezeichnet werden, und wird der zweite Puffer als ein innerer Agent
bezeichnet werden.
-
Ein
Beispiel einer Technik, um eine Bitspur dazu zu konfigurieren, die
Anwesenheit eines anderen Agenten festzustellen, ist, den Empfänger für diese
Bitspur versuchen zu lassen, einen Vorspannungsstrom auf die Bitspur
zu stellen, um die Bitspur zum Gegenteil des Anwesenheitsfeststellungslogikpegels
zu zwingen. Wenn während
eines Anwesenheitsfeststellungsereignisses ein anderer Speicheragent
mit der Bitspur gekoppelt ist, wird sein Sender auf dieser Bitspur
die Bitspur auf den Anwesenheitsfeststellungslogikpegel zwingen.
-
Wenn
der innere Agent den Anwesenheitsfeststellungslogikpegel auf zwei
der drei Bitspuren feststellt, weiß er, daß der äußere Agent anwesend ist, und
kann er seinen gesamten äußeren Anschluß oder einen
Teil davon aktiviert lassen (in diesem Beispiel beinhaltet der äußere Anschluß die Verbindungsschnittstelle
für die
ausgehende Verbindung 54B und die Verbindungsschnittstelle
für die
eingehende Verbindung 56A). Wenn der innere Agent den Anwesenheitsfeststellungslogikpegels
nicht auf zumindest zwei der drei Bitspuren feststellen kann, kann
er entscheiden, daß kein äußerer Agent
anwesend ist, und kann er seinen gesamten äußeren Anschluß oder einen
Teil davon deaktivieren. Der innere Agent kann fähig sein, einem anderen Agenten,
zum Beispiel einer Speichersteuerung, die Anwesenheit oder die Abwesenheit
eines äußeren Agenten
als Reaktion auf einen Zustandsprüfungsbefehl zu melden.
-
Eine
agentenbenutzende redundante Anwesenheitsfeststellung kann auch
fähig sein,
einem anderen Agenten ein Anwesenheitsfeststellungsereignis zu signalisieren.
Zum Beispiel kann, wenn ein Rückstellungsereignis
durch einen Rückstellungsbefehl
auf dem ausgehenden Pfad zum Puffer von 7 kommuniziert
wird, dieser Befehl durch die Weitertreibeschaltung 60 zu
einem äußeren Agenten,
falls vorhanden, weitergegeben werden. Dies kann beide Agenten in
eine Anwesenheitsfeststellungsbetriebsart stellen.
-
Die
redundante Anwesenheitsfeststellung nach den erfinderischen Grundsätzen dieses
Patents ist nicht auf die oben besprochenen bestimmten Ausführungsformen
beschränkt.
Zum Beispiel können anstelle
von drei wie im obigen Beispiel nur zwei Bitspuren für die Anwesenheitsfeststellung
verwendet werden, in welchem Fall der innere Agent den Anwesenheitsfeststellungslogikpegel
nur auf einer Bitspur feststellen müßte, um zum Schluß zu kommen,
daß ein äußerer Agent
anwesend ist. In der gleichen Weise kann die redundante Anwesenheitsfeststellung auf
Systeme und Bestandteile angewendet werden, die verschiedenste andere
Arten von Speicherarchitekturen, z.B. eine Architektur, die eine
ringartige Anordnung von Verbindungen wie etwa RamLink benutzt,
verwenden.
-
Einige
zusätzliche
erfinderische Grundsätze nach
diesem Patent betreffen das Einbringen und/oder Entfernen von Bestandteilen
bei laufendem Betrieb in einen bzw. aus einem Speicherkanal – das heißt, das
Hinzufügen
und/oder Entfernen von Bestandteilen, während der Speicherkanal tätig ist. 24 veranschaulicht
eine Ausführungsform
eines Speicheragenten 134 nach den erfinderischen Grundsätzen dieses
Patents. Die Ausführungsform von 24 kann
ein Speichermodul, ein Speicherpuffer, eine Speichersteuerung usw.
sein. Der Agent beinhaltet einen ersten Anschluß 136 und einen zweiten
Anschluß 138.
Wenn, nur zu Erläuterungszwecken,
angenommen wird, daß der
Agent ein Speichermodul wie etwa eines der Module 52 in
der Ausführungsform
von 6 ist, kann der erste Anschluß als ein innerer Anschluß bestimmt
sein, da er dazu eingerichtet sein kann, mit anderen Agenten auf dem
Speicherkanal, die sich näher
an der Speichersteuerung befinden, zu kommunizieren. In der gleichen
Weise kann der zweite Anschluß als
ein äußerer Anschluß bestimmt
sein, da er dazu eingerichtet sein kann, mit Agenten auf dem Speicherkanal,
die sich von der Speichersteuerung weiter weg befinden, zu kommunizieren.
Diese Bestimmungen dienen nur Erläuterungszwecken, und die erfinderischen
Grundsätze
sind weder auf diese Einzelheiten des Speicheragenten noch auf die
in 6 gezeigten Einzelheiten des Speicherkanals beschränkt. Diese
Grundsätze
können
auch auf andere Speicherkanalarchitekturen wie etwa die in 1 gezeigte
RamLink-Architektur anwendbar sein.
-
Jeder
Anschluß eines
Speicheragenten nach den erfinderischen Grundsätzen dieses Patents weist eine
oder mehrere Verbindungsschnittstellen auf. In der Ausführungsform
von 24 weist jeder Anschluß sowohl eine Empfangsverbindungsschnittstelle
als auch eine Sendeverbindungsschnittstelle auf. Der innere Anschluß 136 verfügt über eine
Empfangsverbindungsschnittstelle 140, bei der es sich um
einen oder mehrere Empfänger
handeln kann, der bzw. die Teil einer Weitertreibeschaltung 60 sind, und über eine
Sendeverbindungsschnittstelle 142, bei der es sich um einen
oder mehrere Sender handeln kann, der bzw. die Teil einer anderen
Weitertreibeschaltung 62 sind. Der äußere Anschluß weist
eine Empfangs- und eine Sendeverbindungsschnittstelle 144 bzw. 146 auf,
die ebenfalls Teil von Weitertreibeschaltungen 62 bzw. 60 sind.
Die Verbindungsschnittstellen 140 und 146 können mit
ausgehenden Verbindungen 54A bzw. 54B gekoppelt
sein, und die Verbindungsschnittstellen 142 und 144 können mit eingehenden
Verbindungen 56B bzw. 56A gekoppelt sein. Jede
der Verbindungsschnittstellen kann eine oder mehrere Bitspuren aufweisen,
und die Bitspuren und Schnittstellen können unter Verwendung jeder beliebigen
Kombination dieser Terminologie bezeichnet werden. Zum Beispiel
können
die Bitspuren in der Schnittstelle 142 als die eingehenden
Sende- oder die eingehenden Tx-Bitspuren bezeichnet werden. Die
Bitspuren in der Schnittstelle 144 können als die eingehenden Empfangs-
oder die eingehenden Rx-Bitspuren bezeichnet werden.
-
Die
Ausführungsform
von 24 ist nur beispielhaft, und Speicheragenten und
Anschlüsse
können
auf unterschiedliche Weisen ausgeführt sein. Zum Beispiel sind
die Verbindungsschnittstellen nicht notwendigerweise Teil einer
Weitertreibeschaltung. Dies ist in der Ausführungsform einer Speichersteuerung,
die in 17 gezeigt ist, veranschaulicht,
bei der ein Anschluß die
Verbindungsschnittstellen 126 und 128 beinhalten
kann, die nicht Teil von Weitertreibeschaltungen sind. Die Verbindungsschnittstellen können nur
eine oder jede beliebige Anzahl von Bitspuren beinhalten, und ein
Anschluß kann
nur eine Empfangsverbindungsschnittstelle oder eine Sendeschnittstelle
aufweisen.
-
Ein
Speicheragent nach den erfinderischen Grundsätzen dieses Patents kann fähig sein,
die Anwesenheit eines anderen Speicheragenten an einem seiner Anschlüsse festzustellen,
und er kann fähig sein,
abhängig
von der Anwesenheit oder der Abwesenheit eines anderen Speicheragenten
verschiedenste Handlungen zu setzen. Zum Beispiel kann der Speicheragent
von 24 fähig
sein, seinen gesamten äußeren Anschluß oder einen
Teil davon zu deaktivieren, wenn am Anschluß kein anderer Speicheragent
anwesend ist. Er kann fähig
sein, einem anderen Agenten, zum Beispiel einer Speichersteuerung, die
Anwesenheit oder die Abwesenheit eines äußeren Agenten durch seinen
inneren Anschluß zu
berichten. Der Speicheragent von 24 kann
fähig sein,
eine Anwesenheitsfeststellungstätigkeit
durchzuführen,
die das Signalisieren eines Anwesenheitsfeststellungsereignisses
zu einem möglichen äußeren Agenten
am äußeren Anschluß beinhalten
kann. Er kann auch fähig
sein, eine schnelle Rückstellungstätigkeit
durchzuführen.
-
Einige
zusätzliche
erfinderische Grundsätze, die
das Hinzufügen/Entfernen
bei laufendem Betrieb nach dieser Patentanmeldung erleichtern können, werden
im Kontext einer beispielhaften Ausführungsform eines Speichersystems
beschrieben werden. Die beispielhafte Ausführungsform wird unter Bezugnahme
auf den Speicheragenten von 24 im
Kontext eines Speichersystems wie etwa der Ausführungsform von 6 beschrieben
werden. In dieser beispielhaften Ausführungsform wird angenommen werden,
daß der
Speicheragent von 24 verwendet wird, um einen
oder mehrere der Puffer in 6 auszuführen, die
wiederum Teil von Modulen sind, welche Speichervorrichtungen aufweisen.
Alle diese Einzelheiten dienen jedoch nur Erklärungszwecken, und die erfinderischen
Grundsätze
sind nicht auf diese Einzelheiten beschränkt.
-
Im
beispielhaften System können
die Speicheragenten fähig
sein, schnelle Rückstellungstätigkeiten,
vollständige
Rückstellungstätigkeiten, und/oder
verschiedenste Abfrage- oder Anwesenheitsfeststellungstätigkeiten
auszuführen.
Im beispielhaften System kann eine Mindestanzahl von Taktübergängen nötig sein,
um die erlangten Takte auf jeder Bitspur an den Datenstrom gesperrt
zu halten. Daher kann die Speichersteuerung (oder der Host) durch Senden
eines fortlaufenden Stroms von Einsen oder Nullen auf einer oder
mehreren der Bitspuren im ausgehenden Pfad für einen vorbestimmten Zeitraum
eine Rückstellungstätigkeit
beginnen. Da die Daten durch jeden Puffer auf dem Pfad weitergetrieben
werden, empfangen alle Puffer den Rückstellungsbefehl, oder das
-ereignis. Im beispielhaften System können die Bahnen der drei niederwertigsten Bits
(LSB) verwendet werden, um eine Rückstellungstätigkeit
zu signalisieren. Der empfangende Agent kann das Rückstellungsereignis
durch Erfassen des Stroms von Nullen oder Einsen auf zwei beliebigen
der drei LSBs feststellen. Dies kann sicherstellen, dass die Anwesenheit
einer ausgefallenen Bitspur eine Rückstellungstätigkeit
nicht beeinträchtigt,
doch sind die erfinderischen Grundsätze, die nicht einmal mehr
als eine Bitspur erfordern, nicht auf eine derartige Ausführung beschränkt.
-
Im
beispielhaften System kann der Host einen fortlaufenden Strom von
Nullen senden, um alle Agenten auf dem Kanal (in diesem Beispiel
Module, die Puffer aufweisen) unbegrenzt in einem ersten Rückstellungszustand
zu halten, zum Beispiel, während
der Host durch äußere Bedingungen
in Rückstellung
gehalten wird. Der Host kann dann für ein erstes Zeitausmaß, z.B.
zwei Rahmenperioden, einen Strom von Einsen senden und dann zu Nullen zurückkehren,
um den anderen Agenten zu signalisieren, eine schnelle Rückstellungstätigkeit
auszuführen.
-
Alternativ
kann der Host für
ein zweites Zeitausmaß,
z.B. mehr </RTI> als zwei Rahmenperioden,
einen Strom von Einsen senden, um den anderen Puffern zu signalisieren,
eine vollständige
Rückstellungstätigkeit
auszuführen.
Eine vollständige Rückstellung
kann verschiedenste interne Kalibrierungstätigkeiten wie etwa die Impedanzanpassung auf
den Verbindungen, eine Stromquellenkalibrierung in jedem beliebigen
Empfänger
oder jeder beliebigen Treiberschaltung, eine Empfängerversatzauslöschung,
und so weiter beinhalten. Nachdem die Kalibrierungstätigkeiten
durchgeführt
wurden, kann der Host den Puffern dann signalisieren, zur schnellen Rückstellungstätigkeit überzugehen.
-
Eine
schnelle Rückstellungstätigkeit
kann bestimmte Tätigkeiten,
die während
einer vollständigen
Rückstellung
durchgeführt
werden, wie etwa Kalibrierungstätigkeiten,
umgehen. Eine schnelle Rückstellungstätigkeit
kann mit einer Anwesenheitsfeststellungstätigkeit beginnen. Während einer
Anwesenheitsfeststellungstätigkeit
kann jeder Puffer auf dem Kanal einen Strom auf die eingehenden
Rx-Bitspuren der drei LSB stellen, um die Bits auf Null zu zwingen,
wenn sie nicht mit einem äußeren Agenten verbunden
sind. Ebenfalls während
einer Anwesenheitsfeststellungstätigkeit
kann jeder Puffer die eingehenden Tx-Bitspuren der drei LSB auf
Eins treiben. Jeder Puffer kann dann seine eingehenden Rx-Bitspuren
der drei LSB prüfen,
und wenn er auf zwei von den drei Bahnen Einsen feststellt, kann
er seinen äußeren Anschluß aktiviert
lassen und ein Zustandsregister entsprechend aktualisieren. Wenn
der Puffer keine zwei Einsen feststellt, kann er annehmen, daß kein äußerer Agent
vorhanden ist, seinen gesamten äußeren Anschluß oder einen
Teil davon deaktivieren, sich selbst konfigurieren, um die Funktionen
des äußersten
Agenten auf dem Kanal durchzuführen, und/oder
ein Zustandsregister entsprechend aktualisieren. Ein Host kann einer ähnlichen
Anwesenheitsfeststellungstätigkeit
folgen, um zu bestimmen, ob sich auf dem Kanal jegliche Agenten
befinden. Die Puffer können
die Zustandsinformationen als Reaktion auf Zustandsanforderungen
vom Host in Zustandsrahmen zum Host weiterleiten.
-
Nach
der Anwesenheitsfeststellungstätigkeit können die
Puffer im beispielhaften System verschiedenste andere Tätigkeiten
während
einer schnellen Rückstellung
wie etwa einen Taktschulungszustand, um die lokalen Takte an den
Puffern dahingehend zu schulen, sich an den Datenstrom zu sperren,
einen Rahmenschulungszustand, um Rahmen, die über den Kanal gesendet werden,
auszurichten, Bitspurprüfungen,
um den Betrieb aller Bitspuren zu prüfen und die Puffer in die Failover-Betriebsart
zu stellen, wenn sie über
eine derartige Fähigkeit
verfügen, usw.,
durchlaufen. Außerdem
kann der Host, sobald er weiß,
wieviele andere Agenten an den Kanal angeschlossen sind, die Rahmengröße, den
Zeittakt, usw. regulieren, um sich an alle Agenten anzupassen.
-
Im
beispielhaften System können
die Speicheragenten auch oder alternativ fähig sein, verschiedenste Abfragetätigkeiten
durchzuführen,
um die Anwesenheit von neu hinzugefügten Agenten auf dem Kanal
festzustellen. Zum Beispiel kann jeder Puffer fähig sein, eine Abfragetätigkeit
an seinem äußeren Anschluß durchzuführen, ob
er der äußerste Puffer
ist, um zu bestimmen, ob dem Kanal ein neuer Agent hinzugefügt wurde. 25 veranschaulicht eine
Ausführungsform
einer derartigen Abfragetätigkeit
nach den erfinderischen Grundsätzen
des Patents.
-
Bei 148 kann
der Agent seinen gesamten äußeren Anschluß oder einen
Teil davon deaktivieren. Wenn der Agent ein Puffer oder ein Modul
ist, kann er auf einen Abfragebefehl vom Host warten, um zu einer
Rückstellungstätigkeit
bei laufendem Betrieb bei 150 überzugehen. Wenn der Agent
ein Host ist, kann er seinen gesamten äußeren Anschluß oder einen Teil
davon deaktivieren und auf einen Aufwachbefehl von einer Systemumgebung
warten. Bei Erhalt des Aufwachbefehls kann er wiederum seinen gesamten äußeren Anschluß oder einen
Teil davon aktivieren und zu einem Rückstellungszustand übergehen.
-
Bei 150 kann
der Agent seinen äußeren Anschluß aktivieren
und Nullen auf die ausgehenden Tx-Bitspuren der drei LSB treiben, um eine
Rückstellung
zu einem möglichen
neuen Agenten an seinem äußeren Anschluß zu senden.
Der Agent kann dann zu einer Kalibrierungstätigkeit bei laufendem Betrieb bei 152 übergehen.
-
Bei 152 kann
der Agent Einsen auf die ausgehenden Tx-Bitspuren der drei LSB treiben,
um einen möglichen
neuen Agenten durch eine vollständige
Rückstellung
einschließlich
von Kalibrierungstätigkeiten
zu treiben, da ein neu festgestellter Agent vermutlich kalibriert
werden müßte. Der
Agent kann dann zu einer Feststelltätigkeit bei laufendem Betrieb bei 154 übergehen.
-
Bei 154 kann
der Agent Nullen auf die ausgehenden Tx-Bitspuren der drei LSB treiben
und einen Vorspannungsstrom auf die eingehenden Rx-Bitspuren der
drei LSB stellen, um die Bits auf Null zu zwingen, wenn sie nicht
an einen äußeren Agenten
angeschlossen sind. Der Agent kann dann die eingehenden Rx-Bitspuren
der drei LSB prüfen,
und wenn er zumindest zwei Einsen feststellt, kann er bei 155 entscheiden,
daß ein äußerer Agent
anwesend ist, und zu einer Agentenanwesenheitstätigkeit bei laufendem Betrieb
bei 156 übergehen.
Andernfalls kann der Agent bei 155 entscheiden, daß kein äußerer Agent anwesend
ist, und zur Schlaftätigkeit
bei 148 zurück übergehen.
-
Bei 156 kann
der Agent ein Zustandsregister aktualisieren, um anzugeben, daß er einen äußeren Agenten
festgestellt hat, und dann diese Information zum Beispiel als Reaktion
auf eine Zustandsanforderung zum Host weitergeben, oder irgendeine
andere Maßnahme
treffen, um die Information zum Host oder zu einem anderen Agenten
weiterzugeben. Der Agent kann auch darauf warten, eine Kanalrückstellung
zu erhalten.
-
Der
Host kann sich des neu festgestellten Agenten entweder durch periodische
Zustandsanforderungen oder durch andere Techniken bewußt werden
und eine schnelle Rückstellung
beginnen, um den gesamten Kanal mit dem neuen Agenten auf dem Kanal
und im Kanalzeittakt untergebracht neu zu initialisieren.
-
Das
Folgende sind einige zusätzliche
Ausführungsformen
von Abfolgen der Hinzufügung/Entfernung
bei laufendem Betrieb nach den erfinderischen Grundsätzen dieses
Patents. Diese zusätzlichen
Ausführungsformen
sind ebenfalls unter Bezugnahme auf die in 6 gezeigte
Ausführungsform des
Speichersystems im Kontext eines größeren Systems, wie etwa eines
Servers mit einer Benutzerschnittstelle und Systemfirmware, das
das Speichersystem vom 6 einsetzt, beschrieben. Die
erfinderischen Grundsätze,
die durch diese zusätzlichen Ausführungsformen
veranschaulicht sind, sind jedoch nicht auf die bestimmten Einzelheiten,
die hierin beschrieben sind, beschränkt.
-
Eine
Abfolge der Hinzufügung
bei laufendem Betrieb nach den erfinderischen Grundsätzen dieses Patents
kann beginnen, wenn ein Benutzer einen neuen Agenten an den Speicherkanal
anfügt,
zum Beispiel an den äußeren Anschluß des äußersten Agenten.
Der Benutzer kann die Systemfirmware darüber informieren, daß ein Agent
angefügt
wurde. Die Firmware kann dann veranlassen, daß Leistung an den angefügten Agenten
angelegt wird, und den Host durch einen Aufwachbefehl darüber informieren,
daß ein
Agent angefügt
wurde. Der Host kann dann einen Abfragebefehl zum früheren äußersten Agenten
senden, der dann eine Abfragetätigkeit
wie die oben unter Bezugnahme auf 25 beschriebene
durchlaufen kann. Nach der Abfragetätigkeit kann der frühere äußerste Agent
die Anwesenheit eines neuen äußeren Agenten
melden. Der Host kann dann die Anwesenheit des neuen Agenten feststellen und
einen Befehl zur schnellen Rückstellung
ausgeben, um den neuen Agenten in Betrieb zu bringen und den gesamten
Kanal zeitlich neu zu abzustimmen. Nachdem der neue Agent betriebsbereit
ist, kann der Host die Systemfirmware unterbrechen, um zu melden,
daß der
neue Agent betriebsbereit ist. Alternativ kann der Host darauf warten,
daß die
Systemfirmware den Host befragt, um zu bestimmen, ob der neue Agent
betriebsbereit ist. Die Systemfirmware kann dann den Host konfigurieren,
damit sich dieser an jegliche neue Hardware, die durch die neuen
Agenten geboten wird, wie etwa neue Speichervorrichtungen, die anwesend
sein können,
wenn der Agent ein Speichermodul oder ein Puffer ist, anpaßt.
-
Eine
Abfolge der Entfernung bei laufendem Betrieb nach den erfinderischen
Grundsätzen
dieses Patents kann beginnen, wenn ein Benutzer das System informiert,
daß ein
bestimmter Agent auf einem Speicherkanal entfernt werden soll. Das
System kann einen entsprechenden Hostadressenbereich aus einem Systemplan
entfernen. Wenn das System eine Spiegelung verwendet, kann das System
die Hostadressenbereiche auf Agentenspiegel neuabbilden. Das System
kann dann Daten vom Hostadressenbereich zu anderen Stellen kopieren
oder bewegen, wenn sie nicht bereits gespiegelt wurden. Das System
kann dann abfragen, bis alle ausstehenden Tätigkeiten abgeschlossen sind.
Das System kann dann den Host veranlassen, einen Befehl zu dem gerade
innerhalb des zu entfernenden Agenten befindlichen Agenten zu senden,
der diesen Agenten veranlaßt,
anzunehmen, daß er
der äußerste Agent
auf dem Kanal ist, wodurch er veranlaßt wird, seinen äußeren Anschluß zu deaktivieren
und während
anschließender
schneller Rückstellungen
die Funktionen des äußersten
Agenten zu übernehmen
(eine vollständige
Rückstellung
würde diesen
Befehl außer Kraft
setzen). Das System kann dann eine schnelle Rückstellung beginnen, um den
ausgewählten
Agenten und jegliche Schnittstellen für Bestandteile, die am ausgewählten Agenten
angebracht sind, stillzulegen. Das System kann dann die Leistung
zum ausgewählten
Agenten trennen und den Benutzer benachrichtigen, daß der Agent
entfernt werden kann.
-
Eine
Abfolge des Ersatzes bei laufendem Betrieb nach den erfinderischen
Grundsätzen
dieses Patents kann beginnen, wenn die oben beschriebene Abfolge
der Entfernung bei laufendem Betrieb abgeschlossen ist. Der Benutzer
kann anstelle des entfernten einen neuen Agenten hinzufügen und
dann die Systemfirmware informieren, daß der neue Agent hinzugefügt wurde.
Das laufende System kann dann den Host für den neu ersetzten Bestandteil
vorbereiten und Leistung zum neuen Bestandteil liefern. Die Systemfirmware
kann dann den Host veranlassen, einen Befehl zum früheren äußersten
Agenten zu senden, um ihn davon in Kenntnis zu setzen, daß er nicht
länger
annehmen sollte, daß er
der äußerste Agent
ist. Dies kann den früheren äußersten
Agenten veranlassen, seinen äußeren Anschluß als Reaktion auf
die nächste
Rückstellung
zu aktivieren, und auf einen Abfragebefehl zu warten. Die Firmware
kann den Host dann anweisen, einen Abfragebefehl zum früheren äußersten
Agenten zu senden, der dann eine Abfragetätigkeit wie die oben unter
Bezugnahme auf 25 beschriebene durchführen kann,
wodurch der neue Agent initialisiert wird. Der frühere äußerste Agent
kann dann die Anwesenheit eines neuen äußeren Agenten melden. Der Host
kann dann die Anwesenheit des neuen Agenten feststellen und einen
Befehl zur schnellen Rückstellung
ausgeben, um den neuen Agenten in Betrieb zu bringen und den gesamten
Kanal zeitlich neu zu abzustimmen. Nachdem der neue Agent betriebsbereit
ist, kann der Host die Systemfirmware unterbrechen, um zu melden, daß der neue
Agent betriebsbereit ist. Alternativ kann der Host darauf warten,
daß die
Systemfirmware den Host befragt, um zu bestimmen, ob der neue Agent betriebsbereit
ist.
-
Die
hierein beschriebenen Ausführungsformen
können
in der Anordnung und in Einzelheiten abgewandelt werden, ohne von
den erfinderischen Grundsätzen
abzuweichen. Demgemäß werden
derartige Änderungen
und Abwandlungen als in den Umfang der folgenden Ansprüche fallend
betrachtet.