-
Hintergrund
-
Die
vorliegende Erfindung bezieht sich auf Schnittstellen für eine Datenkommunikation
und insbesondere auf das Kalibrieren der Schnittstellen.
-
Die
Anforderungen an die Datenübertragungsgeschwindigkeit
von Systemen wächst
ständig.
Dabei wird in digitalen Systemen die zeitliche Abstimmung von, beispielsweise,
Lese- und Schreiboperationen zwischen den einzelnen Komponenten
eines Datenübertragungssystems
und den sie miteinander verbindenden Bussystemen, oder allgemein Übertragungswegen,
immer wichtiger, um die Daten korrekt zu übernehmen bzw. zu übergeben.
Diese Abstimmung der Komponenten beziehungsweise der Schnittstellen
derselben für
die Datenübertragung untereinander
wird auch als Kalibrieren bezeichnet.
-
Beispielsweise
kommuniziert in herkömmlichen
Speichersystemen eine Speichersteuerung (Memory Controller) typischerweise
mit einer Vielzahl von Speicherkomponenten, beispielsweise DRAM-Komponenten (DRAN – Dynamic
Random Access Memory). Dabei sind die Speichersteuerung und die
Speicherkomponenten über
ein gemeinsames Bussystem derart miteinander verbunden, dass die
Speichersteuerung mit jeder der Speicherkomponenten direkt kommuniziert.
-
In
herkömmlichen
Speichersystemen kalibriert die Speichersteuerung die Schnittstelle
zu den einzelnen Speicherkomponenten. Die Datenübertragungsanforderungen der
Schnittstelle erlaubt jedoch nur eine bestimmte Anzahl von Datenleitungen.
Dies begrenzt die Anzahl der Speicherkomponenten, die an den Datenbus
angeschlossen werden können. Der
Einsatz eines Buffer Chip (Puffer-Chip) zwischen Speichersteuerung
auf der einen Seite und einer Vielzahl von Speicherkomponenten auf
der anderen Seite, kann die Datenübertragungsrate zwischen der Speichersteuerung
und den einzelnen Speicherkomponenten erhöhen. Dies führt jedoch dazu, dass die Speichersteuerung
nur die Schnittstelle zwischen der Speichersteuerung und dem Buffer
Chip kalibriert, während
die Schnittstellen zwischen dem Buffer Chip und den einzelnen Speicherkomponenten
unkalibriert bleiben, da der Buffer Chip gegenüber der Speichersteuerung transparent
agiert, und damit kein Zeitabschnitt in dem standardisierten Protokoll
bzw. der Schnittstelle vorgesehen ist, in der der Buffer Chip die
Schnittstellen zu den Speicherkomponenten kalibrieren kann.
-
Eine
Kalibrierung möglichst
aller Schnittstellen ist jedoch wünschenswert, um eine korrekte
Datenübertragung
bei hoher Datenübertragungsrate
zu erreichen.
-
Zusammenfassung
-
Ein
Ausführungsbeispiel
der vorliegenden Erfindung schafft eine Schnittstellenvorrichtung,
die eine Datenkommunikation zwischen einer Steuerung und einer Mehrzahl
von Schaltungseinheiten ermöglicht,
mit folgenden Merkmalen: einer ersten Schnittstelle für eine Verbindung
mit der Steuerung; einer zweiten Schnittstelle für eine Verbindung mit einer ersten
Steuerungseinheit; einer dritten Schnittstelle für eine Verbindung mit einer
zweiten Steuerungseinheit; einer Schnittstellenkalibrierungseinheit,
die mit der zweiten und dritten Schnittstelle gekoppelt ist; und
einem nichtflüchtigen
Kalibrierungsparameterspeicher, der in der Schnittstellenkalibrierungseinheit angeordnet
oder mit der Kalibrierungseinheit gekoppelt ist, und angepasst ist,
Kalibrierungsparameter für
die zweite und dritte Schnittstelle zu speichern.
-
Kurzbeschreibung der Figuren
-
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf beiliegende
Zeichnungen näher
erläutert.
-
1 zeigt
ein Blockschaltbild eines Ausführungsbeispiels
einer Schnittstellenvorrichtung mit einer Schnittstellenkalibrierungseinheit.
-
2 zeigt
ein Blockschaltbild eines weiteren Ausführungsbeispiels einer Schnittstellenvorrichtung
mit einer Schnittstellenkalibrierungseinheit, einem Kalibrierungsparameterspeicher
und einem Statusmerkerspeicher.
-
3 zeigt
ein Blockschaltbild eines weiteren Ausführungsbeispiels einer Schnittstellenvorrichtung
mit einer Schnittstellensteuerung und einer Schnittstellenkalibrierungseinheit.
-
4 zeigt
einen Ablauf eines Ausführungsbeispiels
für eine
Kalibrierung einer Schnittstellenvorrichtung.
-
5 zeigt
ein Blockschaltbild eines herkömmlichen
Speichersystems mit einer Speichersteuerung und einer Mehrzahl von
Speichermodulen.
-
6 zeigt
ein Blockschaltbild eines Ausführungsbeispiels
eines Speichermoduls bzw. Speichersystems mit einer Schnittstellenvorrichtung.
-
7 zeigt
eine perspektivische Darstellung eines Ausführungsbeispiels eines Speichersystems, bei
dem ein Speichermodul auf einem Speichermodulplatine implementiert
ist und dieses Speichermodul auf einer Hauptplatine aufgebracht
ist.
-
In
der vorliegenden Anmeldung werden für Objekte und Funktionseinheiten,
die gleiche oder ähnliche
funktionelle Eigen schaften aufweisen, gleiche Bezugszeichen verwenden.
In diesem Zusammenhang wird darauf hingewiesen, dass einerseits, sofern
es nicht explizit anders angegeben ist, Abschnitte, die sich auf
Objekte mit ähnlichen
oder gleichen funktionalen Eigenschaften beziehen, zwischen den
Beschreibungen der verschiedenen Ausführungsbeispiele austauschbar
sind. Andererseits wird darauf hingewiesen, dass durch eine gemeinsame Verwendung
eines Bezugszeichens für
ein Objekt, das in mehr als einem Ausführungsbeispiel auftritt, nicht
gesagt ist, dass diese in den verschiedenen Ausführungsbeispielen oder dem betreffenden
Ausführungsbeispiel
identische Merkmale und Eigenschaften aufweisen. Gemeinsame oder ähnliche
Bezugszeichen stellen also keine Aussage bezüglich der konkreten Auslegung
und Dimensionierung dar.
-
Ein
weiteres Ausführungsbeispiel
der vorliegenden Erfindung schafft ein Schaltungsmodul für eine Datenkommunikation
mit einer Steuerung, wobei das Schaltungsmodul folgende Merkmale
aufweist: eine erste und eine zweite Schaltungseinheit; undeine
Schnittstellenvorrichtung mit einer ersten Schnittstelle für eine Verbindung
mit der Steuerung; einer zweiten Schnittstelle, die mit der ersten
Schaltungseinheit verbunden ist; einer dritten Schnittstelle, die
mit der zweiten Schaltungseinheit verbunden ist; und einer Schnittstellenkalibrierungseinheit,
die mit der zweiten und dritten Schnittstelle gekoppelt ist; und
einen nichtflüchtigen
Kalibrierungsparameterspeicher, der mit der Schnittstellenkalibrierungseinheit
gekoppelt ist, und der angepasst ist, Kalibrierungsparameter für die zweite
und dritte Schnittstelle zu speichern.
-
Ein
anderes Ausführungsbeispiel
der vorliegenden Erfindung schafft ein Schaltungssystem, mit folgenden
Merkmalen: einer Schaltungssteuerung; und einem Schaltungsmodul
mit einer ersten und einer zweiten Schaltungseinheit; und einer
Schnittstellenvorrichtung mit einer ersten Schnittstelle für eine Verbindung
mit der Schaltungssteuerung; einer zweiten Schnittstelle, die mit
der ersten Schaltungseinheit verbunden ist; einer dritten Schnittstelle,
die mit der zweiten Schaltungseinheit verbunden ist; und einer Schnittstellenkalibrierungseinheit,
die mit der zweiten und dritten Schnittstelle gekoppelt ist, und
einem nichtflüchtigen
Kalibrierungsparameterspeicher, der mit der Schnittstellenkalibrierungseinheit
gekoppelt ist, und der angepasst ist, Kalibrierungsparameter für die zweite
und dritte Schnittstelle zu speichern.
-
Ein
zusätzliches
Ausführungsbeispiel
schafft eine Vorrichtung für
eine Datenkommunikation zwischen einer Vorrichtung zum Steuern und
einer Mehrzahl von Einrichtungen für eine Datenhandhabung mit
folgenden Merkmalen: einer ersten Einrichtung zum Kommunizieren
von Daten mit der Vorrichtung zum Steuern; einer zweiten Einrichtung
zum Kommunizieren von Daten mit einer ersten Einrichtung für eine Datenhandhabung;
einer dritten Einrichtung zum Kommunizieren von Daten mit einer
zweiten Einrichtung für
eine Datenhandhabung; und einer Einrichtung zum Durchführen eines
Kalibrierungsalgorithmus, der Kalibrierungsparameter für die zweite und
dritte Schnittstelle erzeugt ; und einer Einrichtung zum nichtflüchtigen
Speichern der Kalibrierungsparameter, wobei die Einrichtung zum
Durchführen
eines Kalibrierungsalgorithmus ausgebildet ist, die durch den Kalibrierungsalgorithmus
erzeugten Kalibrierungsparameter in der Einrichtung zum Speichern
zu speichern.
-
Ferner
schafft ein Ausführungsbeispiel
der vorliegenden Erfindung ein Verfahren zum Kalibrieren eines Schaltungsmoduls
für eine
Datenkommunikation mit einer Schaltungssteuerung, mit den folgenden
Schritten: Bereitstellen des Schaltungsmoduls mit einer ersten und
zweiten Schaltungseinheit und einer Schnittstellenvorrichtung, wobei
die Schnittstellenvorrichtung mit einer ersten Schnittstelle für eine Verbindung
mit der Steuerung, einer zweiten Schnittstelle, die mit der ersten
Schaltungseinheit verbunden ist, und einer dritten Schnittstelle,
die mit der zweiten Schaltungseinheit verbunden ist; und Durchführen eines
Kalibrierungsalgorithmus, um Kalibrierungsparameter für die zweite
und dritte Schnittstel le zu erzeugen; und nichtflüchtigem
Speichern der erzeugten Kalibrierungsparameter.
-
Bei
Ausführungsbeispielen
der vorliegenden Erfindung können
die zweite und dritte Schnittstelle für eine Verbindung zwischen
der Schnittstellenvorrichtung und der ersten bzw. zweiten Schaltungseinheit
kalibriert werden, ohne die erste Schnittstelle anpassen oder ändern zu
müssen.
-
Ausführungsbeispiele
der vorliegenden Erfindung können
mit herkömmlichen
Steuerungen und/oder Schaltungseinheiten bzw. mit standardisierten
Schnittstellen für
eine Kommunikation zwischen einer Steuerung und einer Mehrzahl von
Schaltungseinheiten eingesetzt werden.
-
Ausführungsbeispiele
eines Schaltungsmoduls können
losgelöst
von dem Zielsystem, d. h. dem Schaltungssystem mit der Steuerung,
kalibriert werden, d. h. Ausführungsbeispiele
des Schaltungsmoduls können
vorkalibriert werden.
-
1 zeigt
ein Ausführungsbeispiel
einer Schnittstellenvorrichtung 100, die eine erste Schnittstelle 110 für eine Verbindung
mit einer Steuerung aufweist, eine zweite Schnittstelle 120 für eine Verbindung
mit einer ersten Schaltungseinheit aufweist, eine dritte Schnittstelle 130 für eine Verbindung
mit einer zweiten Schaltungseinheit aufweist, und die eine Schnittstellenkalibrierungseinheit 140 aufweist, die
mit der zweiten und dritten Schnittstelle gekoppelt ist, wie dies
durch die gestrichelten Linien dargestellt ist. Die Schnittstellenkalibrierungseinheit 140 ist
ausgebildet, einen Kalibrierungsalgorithmus durchzuführen, der
Kalibrierungsparameter für
die zweite und dritte Schnittstelle erzeugt.
-
Dabei
kann die Schnittstellenkalibrierungseinheit 140 ausgebildet
sein, jede Schnittstelle, d. h. die zweite Schnittstelle 120 und
die dritte Schnittstelle 130 separat zu bestimmen, indem
ein erster Kalibrierungsalgorithmus für die Erzeugung der Kalibrierungsparameter
der zweiten Schnittstelle 120 ausgeführt wird, und ein zweiter Kalibrierungsalgorithmus für die Erzeugung
der Kalibrierungsparameter der dritten Schnittstelle 130 ausgeführt wird,
oder zweimal derselbe Kalibrierungsalgorithmus aber getrennt für beide
Schnittstellen ausgeführt
wird, die jeweiligen Kalibrierungsalgorithmen nacheinander oder gleichzeitig
bzw. zeitlich versetzt parallel durchgeführt werden.
-
Ausführungsbeispiele
können über die
zweite und dritte Schnittstelle hinaus noch weitere Schnittstellen,
beispielsweise Schnittstellen zu weiteren Schaltungseinheiten aufweisen.
-
Von
einer Schnittstelle (interface) wird allgemein gesprochen, wenn
zwei Geräte
oder Einheiten für
eine Signalübertragung
miteinander verbunden werden. Eine Schnittstelle bzw. die Verbindung
wird dabei typischerweise durch ihre physikalischen Eigenschaften
und das entsprechende Schnittstellenprotokoll für die Daten- und Steuersignalübertragung zwischen
den zwei Einheiten definiert.
-
Eine
Schnittstelle kann standardisiert sein. Wobei Standardisierung bzw.
standardisierte Schnittstelle in diesem Dokument dahingehend zu
verstehen ist, dass die Schnittstelle gemäß einem Standard beispielsweise
einer Standardisierungsorganisation realisiert ist, dass die Schnittstelle
gemäß einer
zwischen Herstellern abgestimmten Spezifikation realisiert ist,
und/oder dass die Schnittstelle eine firmenintern gegebene Schnittstelle
für ein
Produkt oder eine Produktfamilie ist, die nicht geändert werden soll.
Ziel der Standardisierung von Schnittstellen ist es, dass verschiedene
Einheiten und insbesondere Einheiten verschiedener Hersteller über eine
gemeinsame, einheitliche Schnittstelle miteinander kommunizieren
können.
-
Der
Kalibrierungsalgorithmus enthält
beispielsweise das Erzeugen einer definierten Folge von Signalen
und das Messen beispielsweise der Laufzeiten, um die Kalibrierungsparameter
zu bestimmen.
-
Die
Funktionen der einzelnen Elemente bzw. deren Zusammenwirken werden
anhand von 4 später näher erläutert.
-
2 zeigt
ein Blockschaltbild eines weiteren Ausführungsbeispiels der Schnittstellenvorrichtung,
das zusätzlich
zu dem Ausführungsbeispiel
gemäß 1 einen
Kalibrierungsparameterspeicher 150, einen Statusmerkerspeicher 160,
eine Stromversorgungsschnittstelle 170 und eine optionale
Aktivierungsschnittstelle 180 aufweist. Der Kalibrierungsparameterspeicher 150 ist über die
Kalibrierungsparameterspeicherschnittstelle 152 mit der
Schnittstellenkalibrierungseinheit 140 gekoppelt, der Statusmerkerspeicher 160 über die
Statusmerkerspeicherschnittstelle 162 mit der Schnittstellenkalibrierungseinheit 140 gekoppelt.
-
Alternativ
können
der Kalibrierungsparameterspeicherschnittstelle 152 und/oder
der Statusmerkerspeicher 160 in der Schnittstellenkalibrierungseinheit 140 integriert
sein.
-
In
weiteren alternativen Ausführungsbeispielen
weist die Schnittstellenvorrichtung 100 keinen Kalibrierungsparameterspeicher 150 auf,
sondern eine vierte Schnittstelle bzw. Kalibrierungsparameterspeicherschnittstelle 152' auf, so dass
die Kalibrierungsparameter extern gespeichert werden können.
-
Die
Schnittstellenkalibrierungseinheit 140 wird über die
Stromversorgungsschnittstelle bzw. den Stromversorgungseingang 170 der
Schnittstellenvorrichtung mit Strom versorgt (siehe gestrichelte Linie).
Ferner ist die Schnittstellenkalibrierungseinheit 140 mit
einer Aktivierungsschnittstelle 180 der Schnittstellenvorrichtung
gekoppelt (siehe gestrichelte Linie).
-
3 zeigt
ein Blockdiagramm eines weiteren Ausführungsbeispiels, das gegenüber dem
Ausführungsbeispiel
gemäß 2 eine
Schnittstellensteuerungseinheit 190 aufweist bzw. zeigt,
wobei die Schnittstellensteuerungseinheit 190 ausgebildet
ist, die erste Schnittstelle 110 mit der zweiten und dritten Schnittstelle 120 bzw. 130 für eine Datenkommunikation
zwischen der Steuerung, die über
die Schnittstelle 110 mit der Schnittstellenvorrichtung 100 gekoppelt
ist, und den zwei Schaltungseinheiten, die über die zweite bzw. dritte
Schnittstelle 120, 130 mit der Schnittstellenvorrichtung
gekoppelt sind, zu verbinden, um eine Datenübertragung zwischen der Steuerung
und den Schaltungskomponenten zu ermöglichen (siehe durchgezogene
Linien zwischen den Schnittstellen 110, 120 und 130 und
der Schnittstellensteuerungseinheit 190). Dabei umfasst
die Datenkommunikation allgemein die Übertragung von Nutzdaten und
die Übertragung
von Steuersignalen für die
Datenkommunikation. Die Durchführung
des Kalibrierungsalgorithmus mittels der Schnittstellenkalibrierungseinheit 140 dient
der Kalibrierung der zweiten und dritten Schnittstelle 120, 130 für eine Datenkommunikation
zwischen der Steuerung und die Schaltungseinheiten.
-
In
dem in 3 gezeigten Ausführungsbeispiel ist die Schnittstellenkalibrierungseinheit 140 in Bezug
auf die zweite und dritte Schnittstelle 120 bzw. 130 parallel
zu der Schnittstellensteuerungseinheit 190 geschaltet,
wie dies durch die gestrichelten Linien 142 und 143 dargestellt
ist.
-
Die
Schnittstellensteuerungseinheit 190 ist ferner über die
Schnittstelle 154 mit dem Kalibrierungsparameterspeicher 150 gekoppelt.
-
Die
Schnittstellensteuerungseinheit ist über eine zweite Kalibrierungsparameterspeicherschnittstelle 154 mit
dem Kalibrierungsparameterspeicher 150 gekoppelt.
-
In
einem weiteren Ausführungsbeispiel
sind der Kalibrierungsparameterspeicher 150 und der Statusmerkerspeicher 160 in
einem physikalischen Speicher integriert, der wiederum in der Schnittstellenkalibrierungseinheit 140 und/oder
der Schnittstellensteuerungseinheit 190 integriert sein
kann.
-
In
einem alternativen Ausführungsbeispiel sind
die Schnittstellenkalibrierungseinheit 140 und die Schnittstellensteuerungseinheit 190 in
einer einzigen Einheit integriert, die ausgebildet ist, z. B. wahlweise
in einem Kalibrierungsmodus die Kalibrierung bzw. den Kalibrierungsalgorithmus
auszuführen,
und in einem Datenkommunikationsmodus die Steuerung der Kommunikation über die
erste, zweite oder dritte Schnittstelle 110, 120, 130 durchzuführen.
-
Die
Schnittstellensteuerung 190, die Kalibrierungseinheit 140 und/oder
eine entsprechende beide Funktionen 140, 190 integrierende
Einheit kann beispielsweise eine programmgesteuerte Prozesseinheit
sein, die gemäß einem
Kalibrierungsprogramm die Funktionen der Schnittstellenkalibrierungseinheit
ausführt,
und gemäß einem
Schnittstellensteuerungsprogramm die Funktionalitäten der Schnittstellensteuerungseinheit 190 ausführt.
-
Dabei
ist in weiteren Ausführungsbeispielen die
Schnittstelle 110 eine standardisierte Schnittstelle für eine direkte
Datenkommunikation zwischen der Steuerung und den Schaltungseinheiten,
und die Schnittstellenvorrichtung 100 transparent für die Steuerung,
d. h. der Steuerung auf der Schnittstellenprotokollebene beziehungsweise
logischen Ebene bleibt verborgen, dass die Schnittstellenvorrichtung 100 physikalisch
zwischen die Steuerung und die Schaltungseinheiten geschaltet ist.
-
4 zeigt
ein Flussdiagramm für
ein Ausführungsbeispiel
der Durchführung
einer Kalibrierung der zweiten und dritten Schnittstelle gemäß den 1 bis 3.
-
In
Schritt 410 wird geprüft,
ob ein Aktivierungsereignis eingetreten ist. Ein Aktivierungsereignis
kann beispielsweise das Aktivieren bzw. Einschalten der Schnittstellenvorrichtung
sein. Insbesondere kann das erste Aktivieren der Schnittstellenvorrichtung
nach dessen Herstellung, beispielsweise, in einer Produktionstestumgebung
oder allgemein Testumgebung sein. In diesen Fällen spricht man auch von einer
selbstinitiierten Aktivierung. In einem anderen Beispiel kann das
Aktivierungsereignis auch durch ein externes Aktivierungssignal
erfolgen, das beispielsweise wie in den 2 und 3 dargestellt über die
Aktivierungsschnittstelle 180 empfangen wird.
-
Ist
kein Aktivierungsereignis eingetreten, siehe Pfeil 414,
so wird das Verfahren hier abgebrochen und der Kalibrierungsalgorithmus
nicht durchgeführt.
-
Ist
ein Aktivierungsereignis eingetreten, siehe Pfeil 412,
so wird in dem in 4 dargestellten Ausführungsbeispiel
in Schritt 420 geprüft,
ob der Statusmerker gesetzt ist. Ist der Statusmerker gesetzt, siehe
Pfeil 424, so wird das Verfahren hier abgebrochen und kein
Kalibrierungsalgorithmus durchgeführt. Ein gesetzter Statusmerker
bedeutet in diesem Fall, dass keine Kalibrierung durchgeführt werden
soll, z. B., weil eine Kalibrierung schon zuvor durchgeführt wurde
und die entsprechenden Kalibrierungsparameter schon vorliegen bzw.
schon gespeichert sind.
-
Ist
der Statusmerker nicht gesetzt, siehe Pfeil 422, so wird
als nächstes
der Kalibrierungsalgorithmus durchgeführt, siehe Schnitt 430.
Mit Hilfe des Kalibrierungsalgorithmus werden die für die zweite und
dritte Schnittstelle benötigten
Kalibrierungsparameter erzeugt.
-
Im
Schritt 440 werden die Kalibrierungsparameter für die zweite
und dritte Schnittstelle gespeichert.
-
In
Schritt 450 wird der Statusmerker gesetzt, um anzuzeigen,
dass die Kalibrierungsparameter erzeugt und gespeichert wurden.
-
Dabei
ist der Schritt 430 des Durchführens des Kalibrierungsalgorithmus
und des Erzeugens der Kalibrierungsparameter (Schritt 430)
für die
zweite und dritte Schnittstelle wesentlich, während die Schritte „Prüfen, ob
ein Aktivierungsereignis eingetreten ist" (Schritt 410) und/oder der
Schritt „Prüfen, ob
der Statusmerker gesetzt ist" (Schritt 420)
optional sind.
-
In
alternativen Ausführungsbeispielen
können
die Schritte auch in anderer Reihenfolge und/oder gleichzeitig durchgeführt werden.
So kann beispielsweise der Schritt 420 vor dem Schritt 430 oder
auch gleichzeitig durchgeführt
werden, und der Schritte 430 und der Schritt 440 gleichzeitig
durchgeführt
werden, indem beispielsweise einzelne Kalibrierungsparameter schon
gespeichert werden, bevor der Kalibrierungsalgorithmus abgeschlossen
ist.
-
In
einem Ausführungsbeispiel
kann der Statusmerker nur einmal gesetzt werden, und bleibt dann
gesetzt, d. h. der Statusmerker wird z. B. mittels Nur-Lese-Speichern
(ROM – Read-Only-Memory), Flash- oder
sicherungsbasierten Speichern (fuses) gespeichert..
-
In
einem weiteren Ausführungsbeispiel
können
die Kalibrierungsparameter nur einmal gespeichert werden, d. h.
die Kalibrierungsparameter werden z. B. mittels Nur-Lese-Speichern
(ROM – Read-Only-Memory),
Flash- oder sicherungsbasierten Speichern (fuses) gespeichert. In
bestimmten Ausführungsbeispielen
können
die Kalibrierungsparameter dann ferner nicht mehr verändert werden.
-
Die
Kalibrierungsparameter und/oder der Statusmerker können somit,
z. B. nach der Herstellung eines Schaltungsmoduls, dass die Schnittstellenkalibrierungseinheit
und die zwei oder mehr Schaltungseinheiten aufweist, einmal erzeugt
und gespeichert werden, und z. B. gelagert werden, ohne dass die
Kalibrierungsparameter und/oder Statusmerkerinformation verloren
gehen. In anderen Worten, das Schaltungsmodul bleibt vorkalibriert.
-
Dabei
kann das Setzen des Statusmerkers bedeuten, dass der Statusmerker
den logischen Wert „1" annimmt, und ein
Rücksetzen
bedeuten, dass der Statusmerker den logischen Wert "0" annimmt. Den Stati „gesetzt" und „nicht gesetzt" können jedoch auch
beliebige andere, unterschiedlichen Werte zugeordnet werden.
-
Im
folgenden wird auf die Ausführungsbeispiele,
die anhand der 1 bis 3 beschrieben wurden,
in Verbindung mit den anhand der 4 beschriebenen
Ausführungsbeispielen
des Verfahrens bzw. auf deren Funktionalitäten näher eingegangen.
-
1 zeigt
demnach ein Ausführungsbeispiel,
bei dem die Schnittstellenkalibrierungseinheit 140 ausgebildet
ist, den Kalibrierungsalgorithmus durchzuführen und die Kalibrierungsparameter
zu erzeugen (siehe Schritt 430).
-
2 beschreibt
in Verbindung mit 4 ein Ausführungsbeispiel, bei dem, z.
B., die Schnittstellenkalibrierungseinheit 140 ausgebildet
ist, um zu prüfen,
ob ein Aktivierungsereignis eingetreten ist. Dieses Aktivierungsereignis
kann, wie zuvor dargestellt, das Anlegen einer Versorgungsspannung über den
Stromversorgungseingang 170 sein, in diesem Fall kann das
Anlegen der Stromversorgung auch als eine Art Aktivierungssignal
angesehen werden, oder das Empfangen eines Aktivierungssignals über die Aktivierungsschnittstelle 180 sein.
-
Die
Schnittstellenkalibrierungseinheit 140 in 2 ist
ferner ausgebildet, beispielsweise über die Statusmerkerschnittstelle 162 zu
prüfen,
ob der Statusmerker, der in dem Statusmerkerspeicher 160 gespeichert
ist, gesetzt ist oder nicht. Ist der Statusmerker nicht gesetzt,
so ist die Schnittstellenkalibrierungseinheit 140 ausgebildet,
den Kalibrierungsalgorithmus durchzuführen, um die Kalibrierungsparameter
für die
zweite und dritte Schnittstelle 120, 130 zu erzeugen.
Ferner ist die Schnittstellenkalibrierungseinheit 140 ausgebildet,
die erzeugten Kalibrierungsparameter für die zweite und dritte Schnittstelle
beispielsweise über
die Kalibrierungsparameterspeicherschnittstelle 152 in
dem Kalibrierungsparameterspeicher 150 zu speichern.
-
Wie
in 3 dargestellt, können die erzeugten Kalibrierungsparameter,
die in dem Kalibrierungsparameterspeicher 150 gespeichert
sind, dann über
die zweite Kalibrierungsparameterspeicherschnittstelle 154 der
Schnittstellensteuerungseinheit 190 zur Verfügung gestellt
werden, um die Datenübertragung über die
erste, zweite und/oder dritte Schnittstelle 110, 120, 130 zu
kalibrieren bzw. entsprechend einzustellen. In anderen Ausführungsbeispielen
kann diese Einstellung für
die Datenübertragung
auch durch die Kalibrierungseinheit erfolgen.
-
Im
Folgenden wird ein Anwendungsbeispiel aus dem Bereich der Speichertechnologie
näher beschrieben,
ohne die Erfindung oder Ausführungsbeispiele
der Erfindung auf diese Anwendung einzuschränken.
-
5 zeigt
ein Blockdiagramm eines herkömmlichen
Speichersystems 500 mit DRAM-Speicherkomponenten, die über eine
Standardschnittstelle (Standard Interface) 510 mit einer
Speichersteuerung (Memory Controller) 512 mit einer Mehrzahl
von DRAN-Speicherkomponenten 502 verbunden ist. In derartigen
Systemen kalibriert die Speichersteuerung die Schnittstelle zu den
DRAM-Komponenten eines „unbuffered" und „registered" DIMM (Dual In-line
Memory Module) für
jede DRAM Komponente. Dabei bedeutet „unbuffered", dass die Speichersteuerung
und die Speicherkomponenten direkt verbunden sind, also kein Buffer-Chip
zwischengeschaltet ist. „Registered" bedeutet, dass der
Befehlsbus und der Adressbus (CA-Bus – command and adress bus) auf
dem „registered
DIMM" gepuffert
werden, die Datenleitungen hingegen weiterhin direkt mit dem Controller
verbunden sind. Da die Signale am CA-Bus resynchronisiert werden
(durch den Register-Baustein auf dem DIMM), kann man sehr abstrakt
diesen Baustein als simples Register betrachten, daher die entsprechenden
Bezeichnung.
-
Die
Geschwindigkeits- bzw. Datenübertragungsratenanforderungen
dieser Art von Schnittstelle erlauben jedoch nur eine bestimmte
maximale Auslastung der Datenleitungen (Data Lines), so dass die
Anzahl der Komponenten, die an den Datenbus angeschlossen werden
können,
begrenzt ist. Die Speicherschnittstelle (Memory Interface) 510,
bei der die Speichersteuerung eine definierte elektrische Schnittstelle
und ein entsprechendes Protokoll gegenüber den Speicherkomponenten
hat, wird während
des Systemstarts trainiert und kalibriert.
-
6 zeigt
ein Blockschaltbild mit Ausführungsbeispielen
verschiedener Ausprägung,
bei denen ein Buffer-Chip bzw. die Schnittstellenvorrichtung 600,
beispielsweise gemäß den in
Bezug auf die 1 bis 3 beschriebenen
Ausführungsbeispielen
ausgebildet sein kann, und bei denen Schnittstellen 620, 630 die
Schnittstellenvorrichtung 600 mit den Speicherkomponenten 622, 632 verbindet.
Die Schnittstellen 620, 630 können proprietär sein,
können
aber auch Standardschnittstellen sein, z. B. nach JEDEC standardisierte
DRAM-Schnittstellen.
-
Dabei
zeigt 6 ein Ausführungsbeispiel einer
Schnittstellenvorrichtung 600 als Buffer-Chip 600,
ein Ausführungsbeispiel
eines Schaltungsmoduls 650 als Speichermodul 650 und ein
Ausführungsbeispiel
eines Schaltungssystems 660 als Speichersystem 660.
-
Das
Speichersystem 660 gemäß 6 umfasst
dabei eine Speichersteuerung (Memory Controller) 512 als
Steuerung 512, die über
eine Standardschnittstelle (Standard Interface) 510 mit
dem Buffer-Chip 600 und über diesen mit einem oder mehreren
Speichermodulen (Memory Modules) 650 verbunden ist.
-
7 zeigt
eine perspektivische Darstellung eines Ausführungsbeispiels eines Speichersystems, das
dem wie es in 6 „funktional" dargestellt ist, entspricht.
Das Speichermodul 650 weist eine Speichermodulplatine 652 auf,
auf der die funktionalen Komponenten des Speichermoduls, die Schnittstellenvorrichtung 600 und
die Speicherkomponenten 622, 632 angeordnet sind.
Die Speichersteuerung 510 ist in 7 auf einer
Hauptplatine (mother-board) 662 angeordnet. Das Speichermodul kann,
wie oben beschrieben, beispielsweise ein DIMM sein, das dann beispielsweise
auf die Hauptplatine gesteckt werden kann, während die Speicherkomponenten
des Speichermoduls einzelne Speicher-Chips 622, 632 sind
und die Schnittstellenvorrichtung ein Buffer-Chip 600 ist.
-
In
alternativen Ausführungsbeispielen
können
die funktionalen Komponenten des Speichermoduls und die Speichersteuerung
auf ein und derselben Platine montiert sein.
-
Ein
Speichermodul 650 gemäß 6 oder 7 weist
eine Schnittstellenvorrichtung 600 auf, die beispielsweise
gemäß den Ausführungsbeispielen
in den 1 bis 3 ausgebildet sein kann, und eine
Mehrzahl von Speicherkomponenten bzw. Speicher-Chips aufweist, von
denen zwei beispielhaft mit den Bezugszeichen 622 und 632 gekennzeichnet sind.
Die Schnittstellenvorrichtung 600 ist über Schnittstellen 620 bzw. 630 mit
den Speichermodulen 622 bzw. 632 verbunden. Dabei
entspricht die Schnittstelle 620 der zweiten Schnittstelle 120,
die Speicherkomponente 622 der ersten Schaltungseinheit,
die Schnittstelle 630 der dritten Schnittstelle 130 und
die Speicherkomponente 632 der zweiten Schaltungseinheit.
Die Schnittstellen 620, 630 können proprietär sein,
können
aber auch Standardschnittstellen sein, z. B. nach JEDEC standardisierte DRAN-Schnittstellen.
-
Wie
zuvor erläutert,
kann das Zwischenschalten eines Buffer-Chip (Puffer-Chip), der nur eine geringe
Last auf der Schnittstellenseite 510 zu der Speichersteuerung
erzeugt und das Verbinden von mehreren Speicherkomponenten mit dem
Buffer-Chip auf der anderen Seite 622, 632 (buffering) das
Auslastungsproblem signifikant reduzieren. Dies wird auch als „Buffering" bezeichnet.
-
Allerdings
funktioniert dann das Training und die Kalibrierung durch die Speichersteuerung
nur bis zu der Schnittstellenvorrichtung bzw. dem Buffer-Chip, da
die Schnittstellenvorrichtung logisch transparent für die Speichersteuerung
ist, aber elektrisch zwischen die Speichersteuerung und die Speicherkomponenten
geschaltet ist.
-
Damit
wird die Kalibrierung nur für
die Schnittstelle zwischen der Speichersteuerung und der Schnittstellenvorrichtung
durchgeführt.
Die andere Schnittstelle zwischen der Schnittstellenvorrichtung
und den Speicherkomponenten bleibt unkalibriert. Die Standards bzw.
die standardisierten Protokolle der Standardschnittstelle 510 erlauben
es der Schnittstellenvorrichtung 600 nicht, eine eigene
Kalibrierung durchzuführen,
da die Kalibrierung den Inhalt des Speichers zerstört, da ein
typischer Kalibrierungsalgorithmus eine bestimmte Folge von Lese- und
Schreibzugriffen durchführt,
die sich von normalen Lese- und Schreibzugriffen ansonsten nicht
unterscheiden.
-
In
einer typischen Speicherschaltung regelt die Speicherschaltung (memory
controller) die Auswahl beziehungsweise Adressierung der Speicher-Chips
und der Speicherbereiche auf die durch Lese- und Schreiboperationen
zugegriffen werden soll, sowie die Durchführung der Lese- und Schreiboperationen.
Ferner steuert die Speicherschaltung bei DRAM-Speicher-Chips auch die Auffrischung
(Refresh) der Speicherzellen. Herkömmliche Standardschnittstellen 510 sind
darauf optimiert worden, die Datenübertragungsrate zu optimieren
aber gleichzeitig auch die rechtzeitige Auffrischung der Datenzelleninhalte
zu gewährleisten.
Dies führt
dazu, dass die Speichersteuerung permanent mit einem oder mehreren
Speicher-Chips kommuniziert, so dass für eine zwischengeschaltete
transparente Schnittstellenvorrichtung kein Zeitabschnitt verbleibt,
in dem die Schnittstellenvorrichtung eine Kalibrierung ihrer Schnittstellen
zu den Speicher-Chips durchführen könnte, ohne
die Standardschnittstelle zu ändern.
-
Da
Komponentenvariationen und Variationen bzw. Unabgestimmtheiten (mismatches)
des Datenpfads zwischen der Schnittstellenvorrichtung und den Speicherkomponenten
Auswirkungen auf die erreichbare Geschwindigkeit der Schnittstelle
haben, ist es wünschenswert,
eine Kalibrierung der Schnittstellen zwischen dem Buffer-Chip 600 und
den Speicherkomponenten 620, 630 zu ermöglichen,
um die gewünschten
Datenübertragungsraten
zu erreichen.
-
Das
Subsystem bzw. Speichermodul 650 (z. B. ein DIMM) kann
beispielsweise während
des Produktionstests kalibriert werden, wobei die Kalibrationsdaten
bzw. Kalibrationsparameter in einem nichtflüchtigen Speicher gespeichert
werden. Der nichtflüchtige
Speicher kann entweder eine externe Speicherkomponente, die über die
Schnittstelle 152' mit der
Schnittstellenvorrichtung gekoppelt ist (z. B. ein Flash-Speicher)
oder integriert in den Buffer-Chip bzw. in die Schnittstellenvorrichtung 600 sein,
wie dies anhand der 1 bis 3 in Bezug
auf den Kalibrierungsparameterspeicher 150 beschreiben wurde.
Für die
integrierte Speicherlösung
können beispielsweise
eingebettete Flash-Speicher (embedded flash) oder sicherungsbasierte
Speicher (fuses) verwendet werden.
-
Wenn
das komplette Subsystem bzw. das komplette Speichermodul 650 das
erste Mal in der Testumgebung mit Strom versorgt wird, kann der
Buffer-Chip bzw. die Schnittstellenvorrichtung ausgebildet sein,
einen Kalibrierungsalgorithmus selbst zu beginnen, um die Schnittstelle
zu den angeschlossenen Speicherkomponenten zu trainieren. Der Beginn der
Kalibrierung kann entweder selbst ausgelöst bzw. selbst initiiert durch
die Buffer-Chips erfolgen oder durch externes Gerät, z. B.
Testgeräte.
Bei der selbstinitiierten Kalibrierung kann die Schnittstellenvorrichtung
beispielsweise ausgebildet sein, bei dem Anschalten einen Statusmerker
(status flag) zu lesen, der anzeigt, dass keine bzw. ob eine Kalibrierung
in der Vergangenheit durchgeführt
wurde. Bei der externen Initiierung kann die Ausführung des
Kalibrierungsalgorithmus durch das externe Testgerät initiiert
werden, indem beispielsweise, in ein Register der Schnittstellenvorrichtung
geschrieben wird.
-
Nachdem
der Kalibrierungsalgorithmus erfolgreich ausgeführt wurde, schreibt die Schnittstellenvorrichtung
die Ergebnisse, z. B. die internen Zeitparameter (Zeitverzögerung)
in den zuvor genannten nichtflüchtigen
Speicher und setzt den Statusmerker, um zu zeigen, dass eine Kalibrierung
durchgeführt worden
ist. Das Setzen des Statusmerkers wird verhindern, dass die Schnittstellenvorrichtung
die Kalibrierungsroutine aufgrund einer Selbst-Initiierung in Zukunft
ausführt,
z. B. wenn das Speichermodul in das endgültige Speichersystem integriert
wird. Das Ausführen
der Kalibrierung innerhalb des endgültigen Speichersystems ist
nicht möglich,
da die Schnittstellenvorrichtung bzw. der Buffer-Chip logisch transparent
arbeitet und es keine Zeitperiode in dem endgültigen Speichersystem gibt,
um von den Speichermodulen zu lesen bzw. in diese zu schreiben ohne
Interaktion mit der Speichersteuerung 510.
-
Das
kalibrierte Subsystem bzw. Speichermodul 650 wird dann
in das Hauptsystem bzw. das Speichersystem 660 integriert.
Dort führt
die Speichersteuerung 510 bei jedem Systemstart eine Kalibrierung
ihrer Schnittstelle zu der Schnittstellenvorrichtung 600 durch,
wohingegen die proprietären
Schnittstellen 620, 630 des Speichermoduls schon über die in
dem nichtflüchtigen
Speicher gespeicherte Information konfiguriert bzw. kalibriert sind,
oder in anderen Worten vorkalibriert sind.
-
Alternative
Ausführungsbeispiele
können ausgebildet
sein, bei einer Integration in ein Speichersystem beziehungsweise
der Zusammenschaltung mit der Speichersteuerung 512 die
Schnittstelle 510 von den Schnittstellen 622, 632 zu
entkoppeln, die Kalibrierung durchzuführen und erst dann auf einen
transparenten Betriebsmodus zu schalten, d. h. der Speichersteuerung 510 die
Kontrolle über
die Speicherkomponenten 622, 632 zu übergeben.
Dies ist aus den zuvor genannten Gründen nur zu einem Zeitpunkt
möglich,
zu dem das Speichermodul mit der Speichersteuerung zusammengeschaltet
wird.
-
Weitere
alternative Ausführungsbeispiele können ausgebildet
sein, den Kalibrierungsalgorithmus selbst-initiiert vor oder bei
dem Zusammenschalten mit einer Speichersteuerung, einmalig oder bei
jedem erneuten Zusammenschalten mit einer Speichersteuerung, mit
oder ohne Überprüfung des Statusmerkers
durchzuführen.
Insbesondere kann eine erneute Kalibrierung dann sinnvoll sein,
wenn ein Speichermodul, beispielsweise ein DIMM, von einer Hauptplatine
entfernt wird und erneut auf diese oder eine andere Hauptplatine
gesteckt wird, um beispielsweise Effekte der Alterung zu berücksichtigen.
-
Allgemein
können
Ausführungsbeispiele
der Schnittstellenkalibrierungseinheit ausgebildet sein, die Kalibrierung
selbstständig
auszuführen,
dass heißt
insbesondere ohne einen Befehl der Speichersteuerung auszuführen. Dabei
kann das Aktivierungsereignis, wie zuvor erläutert, z. B. das erstmalige
Aktivieren der Schnittstellenvorrichtung nach dessen Herstel lung
bzw. nach dem erstmaligen Verbinden der Schnittstellenkalibrierungseinheit
mit den Schaltungseinheiten sein.
-
Es
sei darauf hingewiesen, dass Ausführungsbeispiele der vorliegenden
Erfindung nicht auf Speichermodule bzw. Speichersysteme beschränkt sind,
sondern dass Ausführungsbeispiele
der erfindungsgemäßen Schnittstellenvorrichtung
in jedem kalibrierten Subsystem eingesetzt werden können.
-
Weitere
Ausführungsbeispiele
der Erfindung bestehen aus einem vorkalibrierten komplexen und proprietären Subsystem,
das gegenüber
dem System als ein wohldefiniertes Standardsystem bzw. ein dem Standard
entsprechendes System erscheint, indem es die proprietären Erweiterungen
vor diesem versteckt bzw. diese für das System nicht ersichtlich sind
bzw. transparent sind.
-
Ausführungsbeispiele
der vorliegenden Erfindung können
ein erweitertes Subsystem umfassen, das aus Standard und Nichtstandardkomponenten
besteht, die innerhalb des Subsystems trainiert und kalibriert werden.
Das Subsystem hat eine definierte Schnittstelle zu der Speichersteuerung,
das wie eine Standardspeicherkomponente erscheint.
-
Abhängig von
dem Gegebenheiten können die
Ausführungsbeispiele
der erfindungsgemäßen Verfahren
in Hardware oder in Software implementiert werden. Die Implementierung
kann auf einem digitalen Speichermedium, insbesondere einer Diskette,
CD oder DVD mit elektronisch auslesbaren Steuersignalen erfolgen,
die so mit einem programmierbaren Computersystem zusammenwirken,
dass eines der Ausführungsbeispiele
der erfindungsgemäßen Verfahren
ausgeführt
wird. Allgemein bestehen die Ausführungsbeispiele der vorliegenden
Erfindung somit auch in Software-Programm-Produkten bzw. Computer-Programm-Produkten
bzw. Programm-Produkt mit einem auf einen maschinenlesbaren Träger gespeicherten
Programmcode zur Durchführung
eines der Ausführungsbeispiele
der erfindungsgemäßen Verfahren,
wenn eines der Software-Programm-Produkte auf einem Rechner oder auf
einem Prozessor abläuft.
In anderen Worten ausgedrückt,
kann ein Ausführungsbeispiel
der vorliegenden Erfindung somit als ein Computer-Programm bzw.
Software-Programm bzw. Programm mit einem Programmcode zur Durchführung eines
Ausführungsbeispiels
eines erfindungsgemäßen Verfahrens realisiert
werden, wenn das Programm auf einem Prozessor abläuft.
-
Der
Prozessor kann hierbei von einem Computer, einer Chipkarte, einem
digitalen Signalprozessor oder einem anderen integrierten Schaltkreis
gebildet sein.
-
- 100
- Schnittstellenvorrichtung
- 110
- erste
Schnittstelle
- 120
- zweite
Schnittstelle
- 130
- dritte
Schnittstelle
- 140
- Schnittstellenkalibrierungseinheit
- 150
- Kalibrierungsparameterspeicher
- 152
- Kalibrierungsparameterspeicherschnittstelle
- 152'
- vierte
Schnittstelle bzw. zweite Kalibrierungsparameter-speicherschnittstelle
- 160
- Statusmerkerspeicher
- 162
- Statusmerkerspeicherschnittstelle
- 170
- Stromversorgungsschnittstelle,
minus Eingang
- 180
- Aktivierungsschnittstelle
- 190
- Schnittstellensteuerungseinheit
- 142
- Kopplung
zwischen Schnittstellenkalibrierungseinheit und zweiter Schnittstelle
- 143
- Kopplung
zwischen Schnittstellenkalibrierungseinheit und dritter Schnittstelle
- 154
- zweite
Kalibrierungsparameterspeicherschnittstelle
- 410
- Schritt
des Prüfens,
ob Aktivierungsereignis eingetreten
- 420
- Schritt
des Prüfens,
ob Statusmerker gesetzt
- 430
- Schritt
des Durchführens
des Kalibrierungsalgorithmus und Erzeugen der Kalibrierungsparameter
- 440
- Schritt
des Speicherns der Kalibrierungsparameter
- 450
- Setz
Schritt des Setzens des Statusmerkers
- 510
- Standardschnittstelle
- 512
- Speichersteuerung
bzw. Steuerung
- 650
- Schaltungsmodul
bzw. Speichermodul
- 660
- Schaltungssystem
bzw. Speichersystem
- 502
- Speicherkomponente
- 662
- Hauptplatine
- 652
- Speichermodulplatine