-
Die vorliegende Erfindung betrifft Verfahren zum Initialisieren oder Trainieren von Verbindungen in einer Speicheranordnung und entsprechend ausgestaltete Speicheranordnungen.
-
Unter dem Trainieren einer Verbindung ist dabei allgemein ein Abstimmen von Sender und Empfänger zueinander, insbesondere hinsichtlich des Timings, zu verstehen.
-
Mit zunehmender Geschwindigkeit von Mikroprozessoren, wie sie beispielsweise in Heimcomputern eingesetzt werden, u. a. durch zunehmende Taktfrequenz, wurde es auch nötig, entsprechend schnellere Speicher bereitzustellen, welche dem Mikroprozessor zu verarbeitende Daten entsprechend dessen gesteigerter Taktfrequenz auch schneller liefern können. Dies führte beispielsweise zur Entwicklung von so genannten DDR(Dual Data Rate)-Speicherbausteinen wie DDR-SDRAMs (Synchronous Dynamic Random Access Memory), bei welchem sowohl bei einer steigenden als auch bei einer fallenden Flanke eines Taktsignals Datenbits von oder zu dem Speicher übertragen werden. Im Gegensatz dazu wurden bei früheren SDR(Single Data Rate)-Speicherbausteinen nur bei steigenden Flanken des Taktsignals Daten übertragen.
-
Bei derartigen Speicherbausteinen wird der eigentliche Speicher üblicherweise von einer Steuereinheit, einem so genannten Memory Controller, gesteuert, welche über einen bidirektionalen Bus Adresssignale, Steuersignale und Datensignale separat zu dem Speicher gesendet bzw. von diesem empfängt.
-
Mit weiter steigenden Geschwindigkeitsanforderungen an Speicheranordnungen werden in Zukunft neue Konzepte mit schnelleren Datenverbindungen beispielsweise zwischen einer derartigen Steuereinheit und Speicherbausteinen nötig sein. Bei derartigen schnellen Verbindungen ist es allgemein nötig, diese zu initialisieren bzw. zu trainieren, z. B. um das Timingverhalten von Sender und Empfänger aufeinander abzustimmen.
-
Die
US 2006/0045031 A1 beschreibt Verfahren zum Trainieren von Kommunikationsverbindungen zwischen einem Speichercontroller und einer Speicherbank, wobei zuerst das Schreiben vom Speichercontroller auf die Speicherbank und dann das Lesen der Speicherbank durch den Speichercontroller trainiert wird.
-
Die
US 2006/0095646 A1 betrifft eine Speicheranordnung mit einem Speichercontroller und Speicherbänken.
-
Die
US 2006/0053328 A1 beschreibt das Trainieren von Read- und Write-Verbindungen zwischen einem Host und einem DIMM, wobei das gleiche Trainingsmuster für verschiedene Trainingszwecke eingesetzt werden kann. Ein Verbindungstraining wird weiter auch in der
US 2006/0092969 A1 und der
US 2005/0144242 A1 durchgeführt.
-
Aufgabe der Erfindung ist es, ein schnelles und zuverlässiges Trainieren der Datenverbindungen zwischen einem Speichercontroller und einer Speicherbank durchzuführen.
-
Die vorliegende Erfindung stellt ein Verfahren zum Trainieren von Verbindungen in einer Speicheranordnung nach Anspruch 1 sowie eine entsprechende Speicheranordnung nach Anspruch 11 bereit. Die abhängigen Ansprüche definieren weitere Ausführungsbeispiele der Verfahren bzw. der Speicheranordnungen.
-
Allgemein bezieht sich die vorliegende Erfindung auf Speicheranordnungen, welche Steuermittel zum Steuern der Speicheranordnung, einen Speicherabschnitt sowie eine Verbindung zum Übermitteln von Daten zwischen dem Speicherabschnitt und einem Empfangsteil der Steuermittel umfassen. Der Begriff „Daten” ist in diesem Zusammenhang allgemein zu verstehen und kann Nutzdaten, beispielsweise gespeicherte oder zu speichernde Daten, sowie Steuer- und Adressdaten umfassen.
-
Gemäß einem ersten Aspekt der vorliegenden Verbindung wird die diese Verbindung vor oder gleichzeitig mit weiteren zu trainierenden Verbindungen der Speicheranordnung trainiert.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindungen werden mindestens zwei Verbindungen in der Speicheranordnung gleichzeitig trainiert.
-
Unter einem Trainieren der Verbindung ist diesbezüglich generell sowohl ein Training der Verbindung während eines Hochfahrens und Initialisierens der Speicheranordnung als auch ein Trainieren während des Betriebs zum Beispiel bei auftretenden Verbindungsstörungen zu verstehen.
-
Die Erfindung wird im Folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf die beigefügte Zeichnung näher erläutert. Es zeigen:
-
1 ein Blockschema einer Speicheranordnung,
-
2 Stufen des Trainings einer Verbindung,
-
3 ein detailliertes Blockdiagramm eines Ausführungsbeispiels der vorliegenden Erfindung,
-
4 ein Flussdiagramm eines erfindungsgemäßen Ausführungsbeispiels zum Trainieren von Verbindungen in der Speicheranordnung von 3,
-
5 ein Beispiel für ein Statussignal in der Speicheranordnung von 3 bzw. dem Verfahren von 4,
-
6 eine Darstellung von Signalen zur Rahmensynchronisation,
-
7 ein detailliertes Blockdiagramm eines weiteren Ausführungsbeispiels einer erfindungsgemäßen Speicheranordnung,
-
8 ein Flussdiagramm eines Ausführungsbeispiels zum Trainieren von Verbindungen in der Speicheranordnung von 7,
-
9 ein Flussdiagramm eines weiteren Ausführungsbeispiels zum Trainieren von Verbindungen in der Speicheranordnung von 7,
-
10 ein Flussdiagramm noch eines weiteren Ausführungsbeispiels zum Trainieren von Verbindungen in der Schaltungsanordnung von 7, und
-
11 ein weiteres detailliertes Blockdiagramm eines Ausführungsbeispiels einer erfindungsgemäßen Speicheranordnung.
-
Die Erfindung wird im Folgenden anhand bevorzugter Ausführungsbeispiele näher erläutert. Dabei werden zunächst unter Bezugnahme auf 1 und 2 der allgemeine Kontext und allgemeine bei der Erfindung zur Anwendung kommende Prinzipien erläutert, bevor unter Bezugnahme auf 3–11 konkrete Ausführungsbeispiele dargestellt werden.
-
In 1 ist ein Blockschaltbild einer Speicheranordnung dargestellt, welche in so genannter Loop-Forward-Technologie realisiert ist. Die in 1 dargestellte Speicheranordnung umfasst eine Steuereinheit 1, 2 mit einem Sendeteil 1 zum Senden von Daten c an einen Speicherabschnitt 3 und einen Empfangsteil 2 zum Empfangen von Daten d von dem Speicherabschnitt 3. Die Daten c und d können in dem dargestellten Ausführungsbeispiel paket- und/oder rahmenbasiert übertragen werden, wobei einzelne Datenrahmen oder einzelne Datenpakete sowohl Nutzdaten, das heißt in dem Speicherabschnitt 3 zu speichernde Daten oder aus dem Speicherabschnitt 3 ausgelesene Daten, als auch Steuer- und Adressdaten umfassen können.
-
Bei dem dargestellten Ausführungsbeispiel ist die Verbindung zum Übertragen der Daten c von der Verbindung zum Übertragen der Daten d getrennt, es handelt sich um zwei unidirektionale Verbindungen, insbesondere serielle Datenverbindungen. Es sind jedoch auch parallele Verbindungen, bei denen Daten parallel übertragen werden, oder Mischformen denkbar.
-
Der Speicherabschnitt 3 kann ein oder mehrere Speicherbänke (Memory Ranks) enthalten. In dem in 1 dargestellten Beispiel umfasst der Speicherabschnitt 3 zwei Speicherbänke 4, 5, es sind jedoch auch Ausführungen mit nur einer Speicherbank oder mehr als zwei Speicherbänken möglich, wie später näher erläutert werden wird.
-
Bei der dargestellten Speicheranordnung sind die Speicherbänke 4, 5 hintereinander geschaltet, wobei der Sendeteil 1 mit der ersten Speicherbank 4 verbunden ist, während der Empfangsteil 2 mit der letzten Speicherbank, beispielsweise der Speicherbank 5 im Fall von zwei Speicherbänken, verbunden ist. Werden zum Beispiel für die zweite Speicherbank 5 bestimmte Daten c gesendet, werden diese von der ersten Speicherbank 4 an die zweite Speicherbank 5 weitergegeben. Wie bereits erwähnt, können die Verbindungen für die Daten c und d serielle oder parallele Verbindungen sein, Gleiches gilt für die Verbindungen zwischen den Speicherbänken.
-
Innerhalb der Speicherbänke werden die einzelnen Speicherzellen dann beispielsweise parallel ausgelesen oder beschrieben, wozu eine entsprechende Wandlung der Daten zwischen dem innerhalb der Speicherbänke 4, 5 benutzten Format und dem zur Kommunikation zwischen den Speicherbänken 4, 5 und der Steuereinheit benutzten Format, z. B. eine seriell/parallel-Umsetzung, stattfindet.
-
Jede Speicherbank enthält also beispielsweise Schnittstellen zum Empfangen von seriellen Daten hoher Geschwindigkeit und zum Umsetzen dieser Daten auf interne parallele Daten und zum Umsetzen interner paralleler Daten auf serielle Hochgeschwindigkeitsdaten. Zudem umfasst jede Speicherbank 4, 5 eine Repeater-Funktion, um serielle Hochgeschwindigkeitsdaten an eine drauf folgende Speicherbank weiterzugeben. Dies wird später anhand detaillierterer Ausführungsbeispiele noch näher dargestellt.
-
Bei derartigen Hochgeschwindigkeitsverbindungen ist beispielsweise beim Hochfahren des Systems nach dem Einschalten eine Initialisierung bzw. ein Training nötig, um das Timingverhalten von Sendern und Empfängern aufeinander abzustimmen. Verschiedene Schritte einer derartigen Initialisierung sind in 2 schematisch dargestellt.
-
Das Training wird in einem Schritt 10 gestartet. Dies kann beispielsweise durch ein Hochfahren des Systems oder ein Rücksetzsignal (Reset) erfolgen. Ein Pfeil 12 symbolisiert den Verlauf des Trainings.
-
In einem ersten Schritt 6 erfolgt eine Frequenzsynchronisation zwischen den jeweiligen Sendern und Empfängern. Sender sind dabei beispielsweise das Sendeteil 1 der Steuereinheit aus 1, aber ebenso Sender zum Weiterleiten der Daten in den Speicherbänken 4 und 5. Entsprechend sind unter Empfängern sowohl das Empfangsteil 2 als auch entsprechende Empfänger in den Speicherbänken 4 und 5 zu verstehen. Diese Frequenzsynchronisation erfolgt beispielsweise durch Phasenregelschleifen (PLL, Phase-Locked Loop), Frequenzregelschleifen (FLL, Frequency-Locked Loop) oder Verzögerungsregelschleifen (DLL, Delay-Locked Loop). Hierbei kann so genanntes Source Synchronous Clocking, bei welchem das Taktsignal senderseitig erzeugt wird und von jeweiligen Empfänger übernommen wird, Mesosynchronous Clocking, bei welchem ein Taktsignal zentral erzeugt wird und von Sender und Empfänger übernommen wird, oder prinzipiell auch Verfahren, bei welchen ein Taktsignal im Empfänger erzeugt und vom Sender übernommen wird, verwendet werden.
-
Im nächsten Schritt 7 erfolgt dann die Symbolsynchronisation, das heißt die Phasenlage des Taktsignals wird auf die Phasenlage des empfangenen Datensignals angepasst, so dass die Abtastung der Symbole des empfangenen Datensignals zu den passenden Zeitpunkten erfolgt. Ein Beispiel für derartige Symbole sind einzelne Bits bei binären Signalen. Zu den im Rahmen der vorliegenden Erfindung anwendbaren Verfahren gehören beispielsweise herkömmliche Clock-and-Data-Recovery(CDR)-Verfahren.
-
In einem weiteren Schritt 8 wird dann der Versatz zwischen verschiedenen Leitungen ausgeglichen (Lane to Lane Deskew). Dies ist insbesondere dann relevant, wenn beispielsweise die Daten c nicht über eine einzige serielle Leitung, sondern auf zwei oder mehr Leitungen mit zwei oder mehr seriellen Datenströmen gesendet werden. In diesem Fall muss das Timing der verschiedenen Verbindungen so abgestimmt werden, dass zusammengehörige Daten, beispielsweise Daten, welche zu einem Rahmen gehören, korrekt zusammengefügt werden.
-
Schließlich erfolgt in Schritt 9 das so genannte Frame Alignment bzw. die Rahmensynchronisation, das heißt, es wird festgestellt, wo die einzelnen gesendeten Rahmen, welche beispielsweise acht einzelne Symbole umfassen können, beginnen und enden. Nach diesem Schritt wird das Training der Verbindung in Schritt 11 beendet.
-
Die Schritte 7, 8 und 9 erfolgen dabei üblicherweise mittels bekannter Trainingssequenzen, welche vom jeweiligen Sender gesendet und dann empfängerseitig ausgewertet werden. Die Auswertung kann dabei direkt im jeweiligen Empfänger oder zentral erfolgen, wie später näher erläutert werden wird.
-
Wie ebenfalls später detaillierter erläutert werden wird, ist es im Rahmen der vorliegenden Erfindung möglich, die Schritte 7 und 9 zusammenzufassen oder auch auszutauschen, so dass die Rahmensynchronisation gleichzeitig oder vor der Symbolsynchronisation erfolgen kann.
-
Im Folgenden sollen nun das Training von Verbindungen anhand detaillierterer Ausführungsbeispiele näher erläutert werden.
-
Ein erstes detailliertes Ausführungsbeispiel ist in 3 dargestellt. Bei der in 3 dargestellten Speicheranordnung handelt es sich um eine Anordnung, bei welcher der Speicherabschnitt 3 eine einzige Speicherbank 4 enthält (so genanntes Single Rank System). Der Sendeteil 1 und der Empfangsteil 2 der Steuereinheit sind aus Gründen der Übersichtlichkeit getrennt dargestellt. Sie können jedoch in einem einzigen Chip integriert sein.
-
Bei der in 3 dargestellten Speicheranordnung werden die unter Bezugnahme auf 1 bereits erläuterten Daten c, d parallel über zwei Verbindungen übertragen. Diese Verbindungen können wiederum eine oder mehrere Leitungen zum Übertragen der Daten aufweisen. Hierzu umfasst der Sendeteil 1 der Steuereinheit einen ersten Sender 12 und einen zweiten Sender 14, wobei der erste Sender 12 Daten c1 und der zweite Sender 14 Daten c2 an die Speicherbank 4 des Speicherabschnitts 3 sendet. Des Weiteren weist der Sendeteil 1 einen Taktgeber 13 auf, welcher den Takt für das Senden der Daten c1 und c2 vorgibt, wobei ein entsprechendes Taktsignal ebenfalls an die Speicherbank 4 übertragen wird. Dies muss nicht wie in 3 dargestellt über eine separate Verbindung erfolgen, sondern kann auch über die zur Übertragung der Daten c1 und c2 genutzten Verbindungen erfolgen.
-
Die Verbindungen zwischen der Steuereinheit und dem Speicherabschnitt 3 in dem dargestellten Ausführungsbeispiel sind differenzielle Verbindungen, das heißt auf den entsprechenden Leitungen werden differenzielle Signale übertragen. Die Erfindung ist jedoch ebenso auf Single-Ended-Signale anwendbar.
-
Wie bereits erläutert, handelt es sich bei den Daten c1, c2 um kombinierte Steuer-, Adress- und Nutzdaten. Nutzdaten sind in diesem Fall beispielsweise Daten, welche in dem Speicherabschnitt 3 gespeichert werden sollen, Adressdaten sind Daten, welche ein Adresse in dem Speicherabschnitt angeben, an dem Daten gespeichert werden sollen bzw. aus der Daten abgerufen werden sollen, und Steuerdaten geben beispielsweise an, ob in den Speicherabschnitt 3 geschrieben oder aus dem Speicherabschnitt 3 ausgelesen werden soll.
-
Die Daten c1 werden in der Speicherbank 4 von einem primären Empfänger 17 empfangen, während die Daten c2 von einem primären Empfänger 20 empfangen werden.
-
Im Normalbetrieb der Speicheranordnung, das heißt nach der Initialisierung bzw. dem Training der Verbindungen, werden abhängig von den empfangenen Daten c1, c2 Nutzdaten in einen (in 3 nicht dargestellten) Speicher der Speicherbank 4 geschrieben bzw. aus dem Speicher ausgelesen. Dies wird durch einen (in 3 ebenfalls nicht dargestellte) Speicher-Controller der Speicherbank 4 gesteuert. Diese weiteren Komponenten der Speicherbank 4 sind in 3 aus Gründen der Übersichtlichkeit nicht dargestellt, werden aber später im Zusammenhang mit 11 nochmals erläutert.
-
Aus dem Speicher der Speicherbank 4 ausgelesene Nutzdaten werden im Normalbetrieb des Speichers durch primäre Sender 16, 23 als Daten d1, d2 an Empfänger 24, 25 des Empfangsteils 2 gesendet.
-
Die Bezeichnungen „primärer Sender” bzw. „primärer Empfänger” deuten dabei darauf hin, dass dies die Empfänger und Sender sind, welche zum Empfangen von Daten, welche in dem Sendeteil 1 generiert wurden, bzw. zum Senden von Daten, welche in der Speicherbank 4 generiert wurden, dienen.
-
Weiterhin sind in der Speicherbank 4 sekundäre Empfänge 15 und 22 vorgesehen, welche direkt mit den primären Sendern 16 und 23 wie in 3 dargestellt verbunden sind. Auf der anderen Seite sind auch sekundäre Sender 18 und 21 vorgesehen, welche in 3 dargestellt mit den primären Empfängern 17 bzw. 20 verbunden sind. Hierdurch werden Repeater realisiert, mit welchen empfangene Daten unmittelbar weitergegeben werden können. Diese werden bei der in 3 dargestellten Realisierung der Speicheranordnung mit nur einer Speicherbank prinzipiell nicht benötigt und können daher grundsätzlich auch weggelassen werden. Wie später detailliert erläutert werden wird, ermöglichen sie jedoch die Realisierung von Speicheranordnungen mit mehr als einer Speicherbank. Produktionstechnisch kann es vorteilhaft sein, die sekundären Empfänger 15, 22 und die sekundären Sender 18, 21 generell vorzusehen, so dass mit denselben Bausteinen sowohl Speicheranordnungen mit einer Speicherbank als auch Speicheranordnungen mit mehreren Speicherbänken realisiert werden können.
-
Wie bereits erwähnt, umfasst der Sendeteil 1 einen Taktgeber 13. Dieser liefert zum einen ein Taktsignal für die Sender 12 und 14, zum anderen auch ein Taktsignal für die primären Empfänger 17 und 20 wie in 3 dargestellt. Somit arbeiten die Sender 12, 13 und die Empfänger 17, 20 mit der gleichen Taktfrequenz, so dass hier eine Frequenzsynchronisation (Schritt 6 aus 2) vorliegt.
-
Die Speicherbank 4 umfasst weiterhin eine Phasenregelschleife (PLL) 19, welche ein Taktsignal an die primären und sekundären Sender 16, 18, 21 und 23 sowie an die Empfänger 24 und 25 des Empfangsteils 2 der Steuereinheit liefert. Somit liegt auch hier eine Frequenzsynchronisation vor. Die Phasenregelschleife 19 kann ein Referenztaktsignal ebenfalls von dem Taktgeber 13 erhalten, während in einem derartigen Fall der Taktgeber 13 selbst ein Taktsignal, beispielsweise mittels eines Quarzoszillators, erzeugt. Es ist jedoch auch möglich, durch eine Phasenregelschleife 30 beispielsweise in Kombination mit einem Quarzoszillator ein zentrales Taktsignal zu erzeugen und an die Takterzeugungseinrichtung 13 sowie die Phasenregelschleife 19 jeweils als Referenztaktsignal zu liefern. Nach dem Einschwingen der Phasenregelschleifen 19, 30 ist dann die Frequenzsynchronisation der Speicheranordnung erfolgt.
-
Die Phasenregelschleife 30 kann in einem Steuerabschnitt 26 untergebracht sein, welcher zusammen mit dem Sendeteil 1 und dem Empfangsteil 2 in der Steuereinheit der Speicheranordnung integriert ist.
-
Der Steuerabschnitt 26 umfasst weiterhin eine Logikeinheit 29 für das Trainieren der Verbindungen zwischen dem Sendeteil 1 und der Speicherbank 4 bzw. der Speicherbank 4 und dem Empfangsteil 2. Die Logikeinheit 29 kann dabei als Zustandsautomat realisiert sein. Das Training selbst erfolgt dabei wie später näher erläutert werden wird mithilfe von vorgegebenen Trainingssequenzen, beispielsweise Bitmustern.
-
Diese Trainingssequenzen werden gesteuert durch die Logikeinheit 29 oder eine interne Logikeinheit 37 gesendet, wobei ein Statussignal den Stand des Trainings an die Logikeinheit 29 zurückmeldet. Für diese Rückkopplung sind in dem in 3 dargestellten Ausführungsbeispiel zusätzliche Verbindungen zwischen dem primären Empfänger 17 und dem primären Sender 16 sowie dem primären Empfänger 20 und dem primären Sender 23 wie durch Pfeile 31 und 32 symbolisiert vorgesehen. Diese zusätzlichen Verbindungen werden nur während des Trainings benötigt und sind dementsprechend beispielsweise durch Transistoren oder andere Schaltmittel schaltbar ausgestaltet.
-
Damit das Statussignal der Logikeinheit 29 fehlerfrei zugeführt werden kann, wird bei dem in 3 dargestellten Ausführungsbeispiel der Erfindung die Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2 vor oder gleichzeitig mit der Verbindung zwischen dem Sendeteil 1 und der Speicherbank 4 trainiert. Zum Training der Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2, das heißt den Verbindungen, über welche im Normalbetrieb die Daten d1 und d2 gesendet werden, senden beispielsweise beim Hochfahren des Systems die primären Sender 16 und 23 selbstständig entsprechende Trainingssequenzen, welche im Empfangsteil ausgewertet werden, um die nötigen Synchronisierungen entsprechend den Schritten 7–9 von 2 vorzunehmen, nachdem die Frequenzsynchronisation wie bereits beschrieben erfolgt ist. Das Senden dieser Trainingssequenzen kann auch durch die interne Logikeinheit 37 gesteuert werden.
-
Auf der anderen Seite steuert die Logikeinheit 29 den Sender 12 und den Sender 14 ebenfalls zum Senden einer bekannten Trainingssequenz beim Hochfahren des Systems an, welche in der Speicherbank 4 und insbesondere in den primären Empfängern 17 und 20 ausgewertet wird, um die entsprechenden Synchronisationen vorzunehmen. Bei dieser Auswertung kann ebenfalls die interne Logikeinheit 37 benutzt werden.
-
Durch die interne Logikeinheit 37 kann insbesondere ein paralleles Training der Verbindungen zwischen dem Sendeteil 1 und der Speicherbank 4 auf der einen Seite und der Speicherbank 4 und dem Empfangsteil 2 auf der anderen Seite erfolgen. Während dieses Trainings arbeitet also die Speicherbank 4 als Master für die Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2, während die Logikeinheit 29 das Training der Verbindung zwischen dem Sendeteil 1 und der Speicherbank 4 steuert. Über ein Statussignal wird dann der Logikeinheit 29 gemeldet, wenn das Training abgeschlossen ist.
-
Ist es dann später während des Betriebs der Speicheranordnung nötig, einzelne Verbindungen neu zu trainieren, kann die Logikeinheit 29 hier in jedem Fall die Steuerung übernehmen, beispielsweise durch Ansteuerung der primären Sender 16 und 23 der Speicherbank 4 zum Trainieren der Verbindungen zwischen der Speicherbank 4 und dem Empfangsteil 2.
-
Die Kommunikation des Empfangsteils 2 mit der Logikeinheit 29 geschieht über eine Schnittstelle 28 des Steuerabschnitts 26, während die Kommunikation der Logikeinheit 29 mit dem Sendeteil 1 über eine Schnittstelle 27 des Steuerabschnitts abgewickelt wird.
-
Der oben erläuterte Ablauf des Trainings der Verbindungen ist in 4 zusammenfassend in einem Flussdiagramm dargestellt.
-
Das Verfahren beginnt in Schritt 21 beim Hochfahren des Systems oder beim Auslösen eines Rücksetzens des Systems durch ein Reset-Signal, wobei ein Training sowohl durch einen so genannten „Hard Reset”, welcher im Allgemeinen gleichsam einem Aus- und Einschalten des Systems gleichkommt, als auch durch einen „Soft Reset”, bei welchem nur bestimmte Teile des Systems neu gestartet werden, ausgelöst werden kann.
-
In Schritt 39 steuert dann die Logikeinheit 29 den Speicherabschnitt 3 und insbesondere die Speicherbank 4 an, in den Rückkopplungsmodus zu schalten, das heißt die durch die Pfeile 31 und 32 markierten Verbindungen zu aktivieren, um so das Training durchführen zu können.
-
Als nächstes wird in Schritt 40 die Frequenzsynchronisation durchgeführt, was wie bereits beschrieben im Wesentlichen dem Einschwingen der Phasenregelschleifen 19 und 30 entspricht. Schritt 39 und 40 können dabei auch in umgekehrter Reihenfolge durchgeführt werden.
-
Darauffolgend werden bei dem in 4 dargestellten Ausführungsbeispiel des erfindungsgemäßen Verfahrens in Schritt 41 das Training der Verbindung zwischen dem Sendeteil 1 und der Speicherbank 4 und parallel, das heißt zeitlich gleichzeitig hierzu, in Schritt 42 das Training der Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2 vorgenommen.
-
Die Schritte 41 und 42 umfassen dabei wie beschrieben das Senden von Trainingssequenzen, um eine Symbolsynchronisation und eine Rahmensynchronisation sowie eine Korrektur des Versatzes zwischen verschiedenen Leitungen (Deskew) vorzunehmen. Je nach Anzahl und Aufteilung der vorhandenen Leitungen kann dabei unterschieden werden zwischen Korrektur des Versatzes zwischen Leitungen eines einzelnen Halbbytes (Nibbles) und der Korrektur des Versatzes zwischen verschiedenen Halbbytes. Beispielsweise können die Daten c1 aus 3 ein erstes Halbbyte und die Daten c2 aus 3 ein zweites Halbbyte darstellen, wobei die entsprechenden Verbindungen in 3 jeweils eine Mehrzahl von Leitungen aufweisen können.
-
Wie bereits erläutert, wird ein Statussignal über die Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2 gesendet und in der Logikeinheit 29 ausgewertet, was in Schritt 43 geschieht. Ein Beispiel für ein derartiges Statussymbol ist in 5 dargestellt. Dabei ist in der oberen Zeile schematisch ein Trainingssignal dargestellt, welches beispielsweise anstelle der Daten c (c1 und c2) zum Training der Verbindung zwischen dem Sendeteil 1 und der Speicherbank 4 gesendet wird. Dieses Trainingssignal umfasst einen Abschnitt 33 mit einer Testsequenz zur Symbolsynchronisation und einen Abschnitt 34 mit einer Testsequenz zur Einstellung der Rahmensynchronisation.
-
Ein Statussignal s kann dann beispielsweise bei erfolgter Symbolsynchronisation wie durch Bezugszeichen 35 gekennzeichnet von 0 auf 1 springen und nach erfolgter Rahmensynchronisation wie durch Bezugszeichen 36 angezeigt wieder auf 0 zurückgehen. Nach erfolgten Wechseln von 0 zu 1 und 1 zu 0 des Statussignals s weiß die Logikeinheit 29 dementsprechend, dass das Training der entsprechenden Verbindung erfolgreich abgeschlossen wurde.
-
Wurde das Training erfolgreich abgeschlossen, wird in Schritt 45 wie durch einen gestrichelten Pfeil angedeutet entweder in einen Normalbetrieb übergegangen, oder es werden weitere nötige Initialisierungsschritte der Speicheranordnung vorgenommen. Erfolgt keine Bestätigung eines erfolgreichen Trainings durch das Statussignal, wird in Schritt 44 festgestellt, dass ein erneutes Training erforderlich ist, und beispielsweise wie durch den Pfeil dargestellt nochmals zu den Schritten 41 und 42 gesprungen. Es ist jedoch ebenso denkbar, das neuerliche Training beispielsweise im Schritt 40 zu beginnen.
-
Bei dem Ausführungsbeispiel von 4 werden die Schritte 41 und 42 parallel durchgeführt. Es ist jedoch ebenso möglich, zunächst den Schritt 42 und dann den Schritt 41 durchzuführen. In diesem Fall dauert das Training etwas länger, auf der anderen Seite kann jedoch auf die interne Logikeinheit 37 im Wesentlichen verzichtet werden, da es in diesem Fall nur nötig ist, dass beim Hochfahren des Systems die primären Sender 16 und 23 vordefinierte Testsequenzen senden. Wird auf diese Weise die Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2 trainiert, kann dann auch das Training der Verbindung zwischen dem Sendeteil 1 und der Speicherbank 4 durch die Logikeinheit 29 erfolgen, da dann die erforderliche Auswertung in der Logikeinheit 29 über die bereits trainierte Verbindung zwischen der Speicherbank 4 und dem Empfangsteil 2 abgewickelt wird.
-
Hinsichtlich des parallelen oder sequenziellen Trainings mehrerer Verbindungen ist anzumerken, dass diesbezüglich auch hinsichtlich des Trainings parallel verlaufender Leitungen verschiedene Varianten möglich sind. Dies soll im Folgenden anhand eines Beispiels erläutert werden.
-
Beispielhaft soll hierfür davon ausgegangen werden, dass die in 3 dargestellten Verbindungen zur Übertragung der Daten c1 und c2 jeweils vier Einzelleitungen umfassen, wofür die Sender 12 und 14 sowie die primären Empfänger 17 und 20 dann auch eine entsprechende Anzahl von Einzelsendern bzw. Einzelempfängern für die einzelnen Leitungen aufweisen. Die vier zur Übertragung der Daten c1 verwendeten Leitungen dienen dabei zur Übertragung eines ersten Halbbytes (Nibble), während die Leitungen zur Übertragung der Daten c2 Daten eines zweiten Halbbytes bilden. Für dieses Beispiel sind dann unter anderem folgende Trainingsabfolgen möglich:
- – Alle Leitungen werden hintereinander trainiert, beispielsweise werden zuerst nacheinander die vier Leitungen des ersten Halbbytes und dann nacheinander die vier Leitungen des zweiten Halbbytes trainiert, wobei auch andere Reihenfolgen möglich sind.
- – Die Leitungen eines Halbbytes werden parallel trainiert, während die beiden Halbbytes hintereinander trainiert werden. Beispielsweise werden zunächst die vier Leitungen des ersten Halbbytes zeitlich parallel trainiert und dann die vier Leitungen des zweiten Halbbytes zeitlich parallel trainiert.
- – Alle Leitungen werden parallel trainiert, das heißt die vier Leitungen des ersten Halbbytes werden gleichzeitig mit den vier Leitungen des zweiten Halbbytes trainiert.
-
Selbstverständlich sind auch andere Kombinationen möglich.
-
Im Folgenden soll nun das Training einer Leitung und hierfür verwendete Trainingssequenzen anhand von Beispielen näher erläutert werden. Diesbezüglich zeigt 6 eine Möglichkeit für eine Rahmensynchronisation. Ein Rahmen kann dabei generell aus einer geraden oder aus einer ungeraden Anzahl von Symbolen bestehen, wobei bei dem dargestellten Beispiel die Symbole einzelne Bits sind, welche einen Wert von 1 oder einen Wert von 0 annehmen können. Die Erfindung ist jedoch auch auf Symbole, welche mehr als zwei Werte annehmen können, anwendbar.
-
Mit dem Bezugszeichen 46 ist in 6 eine Trainingssequenz zur Rahmensynchronisation bezeichnet, wobei in diesem Fall ein Rahmen 9 Bits umfasst. Die verwendete Trainingssequenz 1 1 0 0 0 0 0 0 0 wird dabei wiederholt gesendet.
-
Mit dem Bezugszeichen 47 ist ein der Trainingssequenz entsprechendes differenzielles Testsignal bezeichnet, welches beispielsweise zum Training der Verbindung zwischen Sendeteil 1 und Speicherbank 4 von dem Sendeteil 1 zu der Speicherbank 4 gesendet wird. Mit UI ist in der Zeichnung ein Einheitsintervall (englisch Unit Interval) bezeichnet, das heißt die Dauer eines Symbols, im vorliegenden Fall eines Bits. Durch die beiden aufeinanderfolgenden Einsen der Testsignalfolge wird das Signal 47 für eine Zeit Teye von etwa 1,34 Einheitsintervallen auf einem Wert von 1 gehalten, die übrige Zeit wird zum Übergang zu dem Wert 0 benötigt. Während dieser Übergangszeit Tt ist im Allgemeinen kein zuverlässiges Abtasten möglich.
-
Zur Rahmensynchronisation wird das Signal 47 nun mit vier jeweils um 90° versetzten Taktsignalen abgetastet, von welchen zwei Taktsignale 48, 49 dargestellt sind. Diese Taktsignale können dabei auch zum Abtasttasten von eingehenden Signalen im Normalbetrieb eingesetzt werden, eine derartige Verwendung von zueinander versetzten Signalen wird in Hochgeschwindigkeitskommunikationssystemen eingesetzt, um höhere Datenraten zu erzielen. Es ist jedoch ebenso moglich, dass nur das Signal 48 dem während des Normalbetriebs verwendeten Taktsignal entspricht und das Taktsignal 49 und die weiteren (nicht dargestellten) Taktsignale zur Einstellung der Rahmensynchronisation beispielsweise durch eine Verzögerungseinrichtung erzeugt wird.
-
Wie aus 6 zu erkennen, wird durch zumindest eines der Taktsignale eine „1” korrekt abgetastet, im dargestellten Beispiel durch das Taktsignal 49. Denn selbst wenn ein Taktsignal, wie im dargestellten Fall das Taktsignal 48, genau auf dem Übergang zwischen „1” und „0”, das heißt maximal ungünstig, liegt, trifft das darauffolgende Taktsignal genau in den eingezeichneten Zeitraum Teye, während dem die Abtastung einer „1” möglich ist. Das Taktsignal 49 liefert also wie durch Pfeil 50 angedeutet das Signal 51 als Ergebnis des Abtastens, wenn nur mit den steigenden Flanken abgetastet wird.
-
Zu bemerken ist in diesem Fall noch, dass prinzipiell auch nur die dargestellten Taktsignale 48 und 49 verwendet werden, wenn entsprechend sowohl steigende als auch fallende Flanken zur Abtastung verwendet werden. Auch in diesem Fall liegen vier um jeweils 90° versetzte Abtastzeitpunkte vor, mit welchen in jedem Fall mindestens eine 1 abgetastet wird.
-
Durch die abgetastete „1” kann somit der Beginn des Rahmens bestimmt werden. Zur genaueren Bestimmung des Rahmens können dann die Abtastsignale so lange in eine Richtung phasenverschoben werden, bis tatsächlich die zwei Einsen bzw. die gesamte Testsignalfolge korrekt abgetastet wird.
-
Mit dem in 6 dargestellten Verfahren ist es möglich, die Rahmensynchronisation vor der Symbolsynchronisation vorzunehmen, das heißt die in 2 dargestellte Reihenfolge entsprechend zu ändern.
-
Wenn hingegen wie in 2 dargestellt die Symbolsynchronisation vor der Rahmensynchronisation durchgeführt wird, das heißt die Taktsignale zunächst so in Bezug auf die im jeweiligen Empfänger eingehenden Signale ausgerichtet werden, dass die eingehenden Symbole, im vorliegenden Beispiel die einzelnen Bits, korrekt abgetastet werden, kann ebenso die in 6 dargestellte Trainingssequenz zur Rahmensynchronisation verwendet werden. Da in diesem Fall die einzelnen Bits korrekt abgetastet werden, markieren die abgetasteten zwei aufeinanderfolgenden „1”-Werte in diesem Fall den Beginn des Rahmens.
-
Es sind jedoch selbstverständlich auch andere Symbolfolgen als Trainingssequenz zur Rahmensynchronisation möglich. Allgemein sind zur Rahmensynchronisation Trainingssequenzen besonders geeignet, welche eine Folge von zyklischen Mustern (Pattern) mit nicht zu hoher Flankendichte, das heißt mit nicht zu großer Anzahl von Wechseln von 1 zu 0 und umgekehrt, aufweisen. Weitere Beispiele für derartige Rahmen in einer Trainingssequenz zur Rahmensynchronisation sind „1 1 0 0 0 0 1 1” oder „1 1 1 0 0 0 0 0” für 8-Bit-Rahmen. Grund hierfür ist, dass, wie unter Bezugnahme auf 6 erläutert, bei zwei aufeinanderfolgenden Bits mit gleichem Wert zumindest ein Abtastsignal den entsprechenden Wert korrekt abtastet.
-
Für die Symbolsynchronisation ist es hingegen hilfreich, wenn eine hierfür verwendete Trainingssequenz eine möglichst hohe Flankendichte, das heißt viele Wechsel von 0 auf 1 und umgekehrt, aufweist (beispielsweise Bitfolgen wie 1 0 1 0 1 0 1 0 1 0 oder 1 1 0 0 1 1 0 0 1 1 0 0), da bei derartigen Bitfolgen die Grenzen zwischen den Symbolen bzw. einzelnen Bits schneller zu erkennen ist. Dies wird deutlich, wenn das Signal 47 aus 6 betrachtet wird: Zu erkennen sind Symbolgrenzen hier nur beim Übergang zwischen 1 und 0, während beispielsweise während der sieben „0”-Symbole keine Änderung des Signals 47 und somit auch keine Symbolgrenzen erkennbar sind.
-
Die Symbolsynchronisation kann dann beispielsweise mit aus der Kommunikationstechnik bekannten Mechanismen der Clock and Data Recovery (CDR) arbeiten.
-
Durch Wahl geeigneter Trainingssequenzen ist es im Rahmen der vorliegenden Erfindung auch möglich, die Rahmensynchronisation und die Symbolsynchronisation gleichzeitig durchzuführen, was eine Zeitersparnis beim Initialisieren der Speicheranordnung bedeutet. Geeignete Testsequenzen sind hierfür beispielsweise für 8-Bit-Rahmen 1 1 0 1 0 0 1 1 oder 1 0 1 1 1 1 0 1 und für 9-Bit-Rahmen 1 0 0 0 0 0 0 1 1 oder 0 1 1 0 1 0 1 1 0. Diese Testsequenzen weisen eine hinreichende Dichte an Flankenwechseln für eine effiziente Symbolsynchronisierung auf, sind aber auch für die Rahmensynchronisation entsprechend dem in 6 erläuterten Prinzip zu verwenden.
-
Die vorliegende Erfindung ist nicht auf Speicheranordnungen mit einer Speicherbank begrenzt. Diesbezüglich zeigt 7 ein detailliertes Blockschaltbild eines weiteren Ausführungsbeispiels, bei welchem der Speicherabschnitt 3 zwei Speicherbänke 4 und 5 umfasst.
-
Der grundsätzliche Aufbau der Speicheranordnung von 7 entspricht demjenigen aus 3, und gleiche oder einander entsprechende Bestandteile sind mit denselben Bezugszeichen gekennzeichnet. Insbesondere entspricht die Steuereinheit mit Sendeteil 1, Empfangsteil 2 und Steuerabschnitt 26 in 7 der Steuereinheit von 3, und die Speicherbank 4 aus 7 ist wie die Speicherbank 4 aus 3 aufgebaut. Diese Elemente werden daher nicht nochmals detailliert erläutert.
-
Die Speicherbank 5 aus 7 ist ebenfalls wie die Speicherbank 4 aus 3 aufgebaut. Entsprechende Elemente der Speicherbank 5 tragen das gleiche Bezugszeichen wie entsprechende Elemente der Speicherbank 4, ergänzt durch ein „A”.
-
Durch die sekundären Sender 18, 21 der Speicherbank 4 sowie durch die sekundären Empfänger 15A, 22A der Speicherbank 5 werden die bereits unter Bezugnahme auf 1 erwähnte Repeater-Funktionen realisiert. Insbesondere werden Daten c1, welche für die zweite Speicherbank 5 bestimmt sind, durch den primären Empfänger 17 und den sekundären Sender 18 an den primären Empfänger 17A der zweiten Speicherbank 5 weitergeleitet. Entsprechend werden für die Speicherbank 5 bestimmte Daten c2 durch den primären Empfänger 20 und den sekundären Sender 21 an den primären Empfänger 20A der Speicherbank 5 weitergeleitet.
-
Auf der anderen Seite werden Daten, welche von dem primären Sender 16 der Speicherbank 4 gesendet werden und für den Empfangsteil 2 bestimmt sind, über einen sekundären Empfänger 15A und den primären 16A der Speicherbank 5 weitergeleitet. In entsprechender Weise werden von dem primären Sender 23 gesendete Daten durch den sekundären Empfänger 22A und den primären Sender 23A weitergeleitet.
-
Wie bereits für die Phasenregelschleife 19 der Speicherbank 4 unter Bezugnahme auf 3 beschrieben, kann auch die Phasenregelschleife 19A der Speicherbank 5 ein Referenztaktsignal von einer zentralen Takterzeugung, beispielsweise der Phasenregelschleife 30, oder auch von der Phasenregelschleife 19 erhalten.
-
Um ein paralleles Training mehrerer Verbindungen zu ermöglichen, kann auch in der Speicherbank 5 eine interne Logikeinheit 37A vorgesehen sein.
-
Zu bemerken ist wiederum, dass bei der Speicheranordnung von 7 die sekundären Empfänger 15 und 22 sowie die sekundären Sender 18A und 21A nicht nötig sind und daher auch weggelassen werden könnten. Bei dem dargestellten Ausführungsbeispiel sind jedoch die Speicherbänke 4 und 5 gleich aufgebaut, was Vorteile bei der Massenproduktion bieten kann, da keine verschiedenen Speicherbänke gefertigt werden müssen.
-
Bei der Speicheranordnung von 7 müssen neben den Verbindungen zwischen dem Sendeteil 1 und der Speicherbank 4 und der Speicherbank 5 und dem Empfangsteil 2 auch die Verbindungen zwischen der Speicherbank 4 und der Speicherbank 5 trainiert werden. Hierfür ist es ähnlich dem Fall von 3 nötig, wie durch Pfeile 87 und 88 angedeutet, Verbindungen zwischen den primären Empfängern und primären Sendern jeder Speicherbank vorzusehen.
-
Die Verfahren zum Trainieren der einzelnen Verbindungen entsprechen den bereits bezüglich der 3 erläuterten, das heißt es werden entsprechende Trainingssequenzen gesendet und ausgewertet. Auch die bereits erläuterten Möglichkeiten zum parallelen oder sequenziellen Training mehrerer Halbbytes bzw. mehrerer Leitungen sind auch für die Speicheranordnung von 7 anwendbar.
-
Wie bereits wie bei 3 erläutert, wird bei den dargestellten Ausführungsbeispielen die Verbindung zu dem Empfangsteil 2 hin, das heißt die Verbindung zwischen der Speicherbank 5 und dem Empfangsteil 2, zuerst oder mit zuerst trainiert, um eine Rückmeldung zu der Logikeinheit 29 zu ermöglichen.
-
Im Folgenden sollen nun verschiedene Verfahren zum Trainieren der Verbindungen ähnlich dem Flussdiagramm von 4 erläutert werden.
-
8 zeigt dabei ein erstes Ausführungsbeispiel eines Verfahrens zum Trainieren der Verbindungen. Wie bei dem Ausführungsbeispiel von 5 wird das Verfahren in Schritt 52 gestartet, beispielsweise beim Hochfahren der Speicheranordnung oder einem Rücksetzen des Systems.
-
In Schritt 53 erfolgt die Frequenzsynchronisation, das heißt die Phasenregelschleifen 19, 19A und 30 schwingen sich ein.
-
In Schritt 54 wird dann zunächst die Verbindung zwischen der Speicherbank 5 und dem Empfangsteil 2, das heißt die Verbindung zwischen dem primären Sender 16A und dem Empfänger 24 sowie die Verbindung zwischen dem primären Sender 23A und dem Empfänger 25 trainiert. In Schritt 55 wird in der Logikeinheit 29 anhand eines Statussignals überprüft, ob das Training erfolgreich war. Als Statussignal kann dabei ein Statussignal wie unter Bezugnahme auf 5 diskutiert verwendet werden. Falls das Training nicht erfolgreich war, muss es wie durch einen gestrichelten Pfeil in 8 angedeutet wiederholt werden, ansonsten wird zu Schritt 56 übergegangen.
-
In Schritt 56 wird die Verbindung zwischen den sekundären Sendern der Speicherbank 4 und den primären Empfängern der Speicherbank 5 trainiert, das heißt die Verbindung zwischen dem sekundären Sender 18 und dem primären Empfänger 17A sowie die Verbindung zwischen dem sekundären Sender 21 und dem primären Empfänger 20A. in Schritt 57 wird ähnlich Schritt 55 der Status dieses Trainings ausgewertet. Dies kann wiederum in der Logikeinheit 29 erfolgen, da die Weiterleitung des Statussignals aufgrund der bereits trainierten Verbindung zwischen der Speicherbank 5 und dem Empfangsteil 2 ohne Probleme möglich ist. Hierfür muss der primäre Empfänger 17A mit dem primären Sender 16A und der primäre Empfänger 20A mit dem primären Sender 23A wie durch die Pfeile 87 und 88 angedeutet verbunden sein.
-
War das Training nicht erfolgreich, muss es wiederum wie durch einen gestrichelten Pfeil angedeutet wiederholt werden, wobei hier sowohl nur Schritt 56 wiederholt werden kann als auch das komplette bisherige Training wiederholt werden kann. War das Training erfolgreich, wird zu Schritt 58 übergegangen.
-
In Schritt 58 wird dann die Verbindung zwischen dem Sendeteil 1 und der Speicherbank 4 trainiert, das heißt die Verbindung zwischen dem Sender 12 und dem primären Empfänger 17 sowie zwischen dem Sender 14 und dem primären Empfänger 20. Über die aus den primären Empfängern 17, 20 und den sekundären Sendern 18, 21 gebildeten Repeater kann auch der Status dieses Trainings über die Logikeinheit 29 ausgewertet werden. War das Training wiederum nicht erfolgreich, muss es wiederholt werden, ansonsten wird in Schritt 60 schließlich die Verbindung zwischen den primären Sendern 16, 23 der Speicherbank 4 und den sekundären Empfängern 15A, 22A der Speicherbank 5 trainiert. Hierzu müssen wie ebenfalls durch die Pfeile 87, 88 angedeutet die primären Empfänger 17, 20 mit den primären Sendern 16, 23 der Speicherbank 4 verbunden werden. Auch dieses Training kann dann durch die Logikeinheit 29 in Schritt 61 ausgewertet werden. War das Training nicht erfolgreich, wird es wiederum wie durch einen gestrichelten Pfeil angedeutet wiederholt, ansonsten wird in Schritt 62 das Training beendet und wie durch einen gestrichelten Teil angedeutet der Normalbetrieb aufgenommen bzw. andere Initialisierungsschritte durchgeführt.
-
Bei dem in 8 dargestellten Verfahren werden die Verbindungen sequenziell vom Empfangsteil 2 zum Sendeteil 1 hin trainiert. Dies ermöglicht es, dass die Logikeinheit 29 sämtliche Auswertungen übernimmt und das Training steuert. Daher müssen in diesem Fall keine internen Logikeinheiten 37, 37A vorgesehen sein. Auf der anderen Seite ist es mithilfe dieser internen Logikeinheiten möglich, verschiedene Trainingsschritte parallel durchzuführen, was eine Zeitersparnis bedeutet. Möglichkeiten zu einem derartigen parallelen Training werden im Folgenden unter Bezugnahme auf 9 und 10 dargestellt.
-
9 zeigt dabei ein Flussdiagramm eines weiteren Ausführungsbeispiels eines erfindungsgemäßen Verfahrens zum Trainieren von Verbindungen in der Speicheranordnung von 7, wobei nunmehr eine größere Parallelisierung des Trainings erreicht wird. Schritte 63 und 64 in 9 entsprechen Schritten 52 und 53 in 8, das heißt in Schritt 63 wird das Verfahren gestartet, und in Schritt 64 erfolgt die Frequenzsynchronisation durch Einschwingen der Phasenregelschleife 19, 19A und 30.
-
Die Schritte 65 und 66 entsprechen den Schritten 54 und 56. Im Unterschied zu 8 werden diese Schritte jedoch nun zeitlich parallel durchgeführt. Insbesondere werden in Schritt 65 die Verbindungen zwischen dem primären Sender 16A und dem Empfänger 24 sowie dem primären Sender 23A und dem Empfänger 25 trainiert, und parallel hierzu werden in Schritt 56 die Verbindungen zwischen dem sekundären Sender 18 und dem primären Empfänger 17A sowie dem sekundären Sender 21 und dem primären Empfänger 20A trainiert, wobei die Auswertung der Trainingssequenzen mithilfe der internen Logikeinheit 37A vorgenommen werden kann.
-
In Schritt 67 wird dann wiederum der Status des Trainings überprüft, was in dem dargestellten Ausführungsbeispiel mit einem gemeinsamen Statussymbol über die Logikeinheit 29 erfolgt. War das Training nicht erfolgreich, muss es wiederum wiederholt werden, ansonsten werden parallel die Schritte 68 und 69 durchgeführt, welche den Schritten 58 und 60 aus 8 entsprechen.
-
Insbesondere werden in Schritt 68 die Verbindungen zwischen dem Sender 12 und dem primären Empfänger 17 sowie dem Sender 14 und dem primären Empfänger 20 trainiert, während parallel hierzu in Schritt 69 die Verbindung zwischen dem primären Sender 16 und dem sekundären Empfänger 15A sowie dem primären Sender 23 und dem sekundären Empfänger 22A trainiert werden. Zur Auswertung der Trainingssequenzen in Schritt 68 kann dabei die interne Logikeinheit 37 herangezogen werden. Der Status dieses Trainings wird wiederum in dem Ausführungsbeispiel von 9 mit einem gemeinsamen Statussignal durch die Logikeinheit 29 überprüft. Es ist jedoch auch eine getrennte Überprüfung durch die interne Logikeinheit 37 für das Training von Schritt 68 und die Logikeinheit 29 für das Training von Schritt 69 denkbar. Ergibt sich bei dieser Überprüfung in Schritt 70, dass das Training nicht erfolgreich war, wird es wiederum wiederholt, ansonsten wird in Schritt 71 das Verfahren beendet und wie bei dem Verfahren von 8 in den Normalbetrieb übergegangen oder auch weitere Schritte beim Hochfahren der Speicheranordnung durchgeführt.
-
Ähnlich wie bei dem Ausführungsbeispiel aus 8 sind auch für das in 9 dargestellte Training Verbindungen zwischen den primären Empfängern und primären Sendern jeder Speicherbank 4, 5 nötig. Insbesondere ist während der parallelen Abarbeitung der Schritte 65 und 66 der primäre Empfänger 17A mit dem primären Sender 16A und der primäre Empfänger 20A mit dem primären Sender 23A verbunden, während während der parallelen Abarbeitung der Schritte 68 und 69 der primäre Empfänger 17 mit dem primären Sender 16 und der primäre Empfänger 20 mit dem primären Sender 23 verbunden sind.
-
Eine weitere Möglichkeit des parallelen Trainings ist in 10 dargestellt. Schritte 72 und 73 aus 10 entsprechen wiederum Schritten 63 und 64 aus 9, das heißt in Schritt 72 wird das Verfahren gestartet, und in Schritt 73 erfolgt die Frequenzsynchronisation.
-
Im Verfahren von 10 werden nunmehr drei Schritte parallel durchgeführt. Schritte 75 und 76 entsprechen dabei Schritten 65 und 66 aus 9, das heißt in Schritt 75 werden die Verbindungen zwischen den primären Sendern 16A, 23A und den Empfängern 24 und 25 trainiert, und in Schritt 76 werden parallel hierzu die Verbindungen zwischen den sekundären Sender 18, 21 und den primären Empfängern 17A, 20A trainiert. Parallel hierzu wird in Schritt 74, welcher Schritt 68 aus 9 entspricht, die Verbindungen zwischen den Sendern 12 und 14 und den primären Empfänger 17 und 20 trainiert. Für diese drei parallelen Schritte 74, 75 und 76 ist der primäre Empfänger 17A mit dem primären Sender 16A und der primäre Empfänger 20A mit dem primären Sender 23A verbunden.
-
Die Auswertung der Trainingssequenzen in Schritt 74 kann dabei mithilfe der internen Logikeinheit 37 erfolgen, während die Auswertung der Trainingssequenzen in Schritt 76 mithilfe der internen Logikeinheit 37A erfolgen können.
-
In Schritt 77 wird dann zunächst gemeinsam der Status der in Schritten 75 und 76 durchgeführten Trainingsvorgänge über prüft, beispielsweise durch die Logikeinheit 29, und bei Bedarf das Training wiederholt. Darauffolgend wird in Schritt 78 zusätzlich noch der Status des Trainings aus Schritt 74 überprüft und dieses Training ebenfalls bei Bedarf wiederholt. Bei der in 10 dargestellten Reihenfolge der Statusüberprüfungen kann der Status stets durch die Logikeinheit 29 überprüft werden. Es sind jedoch auch getrennte Überprüfungen des Status durch die internen Logikeinheiten 37, 37A für die Schritte 74 bzw. 76 und durch die Logikeinheit 29 für Schritt 75 denkbar. Ergeben die Statusabfragen 77 und 78, dass die Trainingsvorgänge der Schritte 74–76 erfolgreich waren, wird schließlich in Schritt 79 entsprechend Schritt 69 aus 9 die Verbindungen zwischen den primären Sendern 16, 23 und den sekundären Empfängern 15A, 22A trainiert. Hierfür werden wiederum die primären Empfänger 17, 20 mit den primären Sendern 16, 23 verbunden.
-
Der Status dieses Trainings wird in Schritt 80 durch die Logikeinheit 29 überprüft. War das Training nicht erfolgreich, so wird es wiederholt, ansonsten wird in Schritt 82 entsprechend Schritt 71 aus 9 das Verfahren beendet und zum Normalbetrieb oder zu weiteren Initialisierungsroutinen übergegangen.
-
Selbstverständlich ist das erfindungsgemäße Verfahren nicht auf die dargestellten Ausführungsbeispiele beschränkt, und die verschiedenen Trainingsschritte können auch anders angeordnet oder parallelisiert werden. Auch ist das Verfahren ohne weiteres auf mehr als zwei Speicherbänke, welche wie die Speicherbänke 4 und 5 aus 7 verschaltet sind, übertragbar. In einem derartigen Fall können entsprechend 8 sämtliche Verbindungen ausgehend von dem Empfangsteil 2 sequenziell trainiert werden, oder geeignete Verbindungen können wie in 9 und 10 dargestellt zeitlich parallel trainiert werden.
-
Zudem ist anzumerken, dass die vorliegende Erfindung nicht nur auf Speicheranordnungen anwendbar ist, bei welchen mehrere Speicherbänke sequenziell hintereinander geschaltet sind und wobei die Speicherbänke jeweils zwei primare und sekundäre Sender und Empfänger umfassen. Ein Ausführungsbeispiel einer Speicheranordnung, bei welcher der Aufbau gegenüber den 3 und 7 modifiziert ist und welche sich ebenfalls zur Implementierung der vorliegenden Erfindung eignet, ist in 11 dargestellt.
-
Bei der Speicheranordnung von 11 sind der Sendeteil 1 und der Empfangsteil 2 gemeinsam dargestellt. Des Weiteren umfasst die Speicheranordnung aus 11 vier Speicherbänke 4, 5, 82 und 85, welche jeweils gleich aufgebaut sind und im Aufbau jeweils der oberen Hälfte der Speicherbänke 4 und 5 aus 7 entsprechen. Die Elemente der Speicherbänke 5, 82 und 85 aus 11, welche den Elementen der Speicherbank 4 aus 11 entsprechen, tragen die gleichen Bezugszechen, jeweils ergänzt durch A, B bzw. C. Dementsprechend wird im Folgenden nur die Speicherbank 4 nochmals kurz beschrieben.
-
Der sekundäre Empfänger 15, der primäre Sender 16, der primäre Empfänger 17 sowie der sekundäre Sender 18 der Speicherbank 4 aus 11 entspricht den entsprechenden Elementen der Speicherbank 4 aus 7. Gleiches gilt für die Phasenregelschleife 19.
-
In 11 ist zusätzlich ein Speicher-Controller 83 sowie eine Speicherkern 84 dargestellt. Diese Elemente sind im Allgemeinen ebenso bei den Ausführungsbeispielen von 3 und 7 vorhanden, wurden dort jedoch aus Gründen der Übersicht lichkeit weggelassen.
-
Insbesondere wird der Speicher-Controller 83 durch die von dem primären Empfänger 17 empfangenen Daten c angesteuert, Daten in den Speicherkern 84 zu schreiben bzw. aus diesem auszulesen. Die ausgelesenen Daten werden dann wie bereits beschrieben durch den primären Sender 16 übertragen.
-
Des Weiteren sind in 11 die Pfade dargestellt, mit denen die Phasenregelschleifen 19, 19A, 19B und 19C ein Referenztaktsignal von der Phasenregelschleife 30 erhalten.
-
Die Speicherbänke 4 und 5 in 11 sind wie die Speicherbänke 4 und 5 aus 7 seriell hintereinander angeordnet, ein Signal d2 in 11 wird dem Empfangsteil 2 zugeführt und entspricht dem Signal d1 aus 7.
-
Die Speicherbänke 81 und 85 sind ebenso wie die Speicherbänke 4 und 5 seriell hintereinander geschaltet. Ein Eingangssignal c für die Speicherbank 81 wird wie in 11 dargestellt zwischen der Speicherbank 4 und der Speicherbank 5 „abgezweigt”, was ein schnelleres Zuführen der Daten zu den Speicherbänken 81 und 85 und somit eine geringere Latenzzeit der Anordnung bewirkt. Ein Signal d3 wird dem Empfangsteil 2 zugeführt, welches im Wesentlichen dem Signal d2 der Speicherbänke 4 und 5 entspricht.
-
Das von der Takterzeugungseinheit 13 (in 11 nicht dargestellt) der Steuereinheit an die Speicherbank 4 gelieferte Taktsignal ist in 11 mit clk bezeichnet.
-
Bei der Speicheranordnung von 11 können im Wesentlichen die gleichen Trainingsverfahren wie für die Speicheranordnung aus 7 verwendet werden, wobei hier insbesondere die Verbindung zwischen der Speicherbank 85 mit dem Empfangsteil 2 und der Speicherbank 5 mit dem Empfangsteil 2 parallel trainiert werden können. Insbesondere sind auch bei der Speicheranordnung aus 11 sowohl sequenzielle Trainingsverfahren als auch paralleles Training möglich. Beispielsweise können die Verbindungen ausgehend von dem Empfangsteil 2 sequenziell trainiert werden, beispielsweise beginnend mit den Verbindungen zwischen der Speicherbank 85 und dem Empfangsteil und der Speicherbank 5 und dem Empfangsteil 2. Wie bei 7 ist jedoch auch bei 11 das parallele Training verschiedener Verbindungen möglich, wobei beispielsweise die Verfahren aus 9 und 10 jeweils angewendet auf die Speicherbänke 4 und 5 und auf die Speicherbänke 81 und 85 aus 11 angewendet werden.
-
Auch bei der Speicheranordnung von 11 können die verschiedenen Verbindungen mehrere Einzelleitungen aufweisen, welche wie bereits unter Bezugnahme auf 3 beschrieben parallel oder sequenziell trainiert werden können.
-
Wie bereits beschrieben, ist die vorliegende Erfindung nicht auf die dargestellten Ausführungsbeispiele beschränkt. Vielmehr kann die Erfindung auch auf andere Anordnung von Speicherbänken in Speicheranordnungen angewendet werden, und es sind andere Trainingssequenzen als die dargestellten Trainingssequenzen möglich.