PatentDe  


Dokumentenidentifikation DE102004032402B4 27.12.2007
Titel Speichercontroller mit mehreren parallelen Transferblöcken
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Jakobs, Andreas, 81673 München, DE;
Gregorius, Peter, 81476 München, DE
Vertreter Wilhelm & Beck, 80639 München
DE-Anmeldedatum 03.07.2004
DE-Aktenzeichen 102004032402
Offenlegungstag 26.01.2006
Veröffentlichungstag der Patenterteilung 27.12.2007
Veröffentlichungstag im Patentblatt 27.12.2007
IPC-Hauptklasse G11C 7/22(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]

Die Erfindung betrifft einen Speichercontroller für den Datenaustausch zwischen einer digitalen Speicheranordnung und einem Partner, gemäß dem Oberbegriff des Patentanspruchs 1 oder des Patentanspruchs 5.

Digitale Schreib-Lese-Speicher, wie sie allgemein unter dem Akronym RAM (Random Access Memory) bekannt sind, werden üblicherweise als integrierte Bausteine auf Halbleiterchips hergestellt. Solche RAM-Bausteine enthalten eine Vielzahl von Speicherzellen, die selektiv adressierbar sind, um Speicherdaten an ihnen wahlweise einzuschreiben oder auszulesen. Um die erforderliche Kommunikation mit anderen Schaltungen herstellen zu können, verfügt ein RAM-Baustein über mehrere Gruppen äußerer Anschlüsse. Hierzu zählen neben den Datenanschlüssen, über welche die Speicherdaten ein- und ausgegeben werden, eine Mehrzahl Steueranschlüssen. Letztere umfassen u.a. Adressanschlüsse zum Empfang der Information für die Adressierung der Speicherzellen und Befehlsanschlüsse zum Empfang von Befehlen für die Einleitung der verschiedenen Operationen des RAM-Bausteins. Hinzu kommen Takt- und Zeitsteueranschlüsse zur Synchronisierung der Kommunikation.

Die Anzahl der benutzten Datenanschlüsse an einem RAM-Baustein hängt davon ab, wie viele Datenbits jeweils in Parallelform pro Zyklus der Datenrate am Baustein ein- oder ausgegeben werden. Diese Zahl, im Folgenden auch als "Wortbreite" bezeichnet, ist einer der Spezifikations-Parameter des RAM-Bausteins; derzeit gebräuchlich sind Wortbreiten von 4, 8 und 16. Insbesondere bei schnell zu betreibenden Speichern (hohe Datenraten) ist es erforderlich, der Menge der bidirektionalen Datenanschlüsse zusätzlich noch einen bidirektionalen "Strobe"-Anschluss zuzuordnen, um simultan mit den Datenwörtern ein begleitendes Daten-Strobesignal empfangen bzw. senden zu können, dessen Flanken die Zeitreferenz für die Abtastung der Daten bilden. Des weiteren kann es erwünscht sein, der Menge der bidirektionalen Datenanschlüsse einen (unidirektionalen) Anschluss zum Empfang eines Maskierungssignals zuzuordnen, um ausgewählte empfangene Datenwörter aus einem ankommenden Burst von Datenwörtern ausblenden zu können, so dass die betreffenden Datenbits ohne Wirkung bleiben, also den Inhalt der gleichzeitig mit diesem Wort adressierten Speicherzellen unverändert lassen.

Im Betrieb erfolgt der Datenaustausch zwischen einem RAM und dem zugeordneten Partner (z.B. einer Datenverarbeitungs-Einrichtung wie etwa einer Recheneinheit) über eine Vermittlungsschaltung, den so genannten Speicher-"Controller". Dieser Controller sendet und empfängt die Speicherdaten zusammen mit dem Strobesignal an entsprechenden bidirektionalen Datenanschlüssen auf der dem RAM zugewandten Seite; ferner erzeugt und sendet er an entsprechenden unidirektionalen Ausgangsanschlüssen auf dieser Seite die oben erwähnten Steuersignale für das RAM (u.a. die Befehls- und Adresssignale und das Taktsignal) und gegebenenfalls auch das Maskierungssignal für die gesendeten Datenwörter. Auf der anderen Seite, die dem Partner zugewandt ist, befinden sich Anschlüsse zum Empfangen und Senden der Daten und diverser Steuersignale für die Kommunikation mit dem Partner.

In der Praxis werden häufig mehrere RAM-Bausteine zu einem Modul zusammengefasst und simultan betrieben, um ein Speichersystem mit hoher Speicherkapazität und hohem Datendurchsatz zu schaffen. Hierbei wird ein gemeinsamer Controller benutzt, der eine entsprechend vervielfachte Anzahl von Datenanschlüssen hat, um mit den Datenschlüssen aller RAMs des Moduls gleichzeitig und parallel zu kommunizieren. Wie dies in herkömmlicher Weise realisiert wird, sei nachstehend kurz erläutert. Hierzu zeigt die

1 ein Beispiel für den Aufbau eines herkömmlichen Controllers in Verbindung mit mehreren RAM-Bausteinen gemäß dem Stand der Technik.

Der in 1 schematisch und fragmentarisch dargestellte Controller 100 hat eine Mehrzahl m gleichartiger Abteilungen 110-i, wobei der Kleinbuchstabe "i" die laufende Nummer 1...m angibt. Diese Abteilungen werden im Folgenden jeweils als "Transferblock" bezeichnet. Jeder Transferblock 110-i ist zuständig für den Datenaustausch mit einem individuell zugeordneten RAM-Baustein RAM-i. Die Gesamtheit der Transferblöcke 110-1...m bildet also die Datenschnittstelle des Controllers zur Kommunikation mit der Anordnung der RAM-Bausteine. Jeder Transferblock ist innerhalb des Controllers 100 über eine zugeordnete Menge von internen Daten- und Steuerleitungen mit einer Seite einer internen Schaltungsanordnung 120 verbunden. Diese Schaltungsanordnung ist nur fragmentarisch dargestellt, ihre andere (nicht gezeigte) Seite hat Daten- und Steueranschlüsse zur Kommunikation mit einem Partner (nicht gezeigt), der die Quelle der in die RAM-Bausteine zu schreibenden Daten und die Senke der aus den RAM-Bausteinen gelesenen Daten ist.

Die interne Schaltungsanordnung 120 des Controllers 100, von manchen Herstellern auch "Kern" des Controllers genannt, erzeugt selbst diverse Steuer- und Befehlssignale sowohl für die Transferblöcke 110-1...m als auch die RAM-Bausteine und sorgt für die Zuordnung der Datenströme und der begleitenden Steuersignale zwischen dem Partner und den Transferblöcken. Sie hat neben einer Zeitsteuerfunktion auch die Funktion, die Aufteilung der Daten und diverser Steuersignale auf die verschiedenen Transferblöcke zu organisieren und wird deswegen hier kurz als "Verteilerschaltung" bezeichnet.

Die m RAM-Bausteine RAM-1...m sind von gleicher Bauart. Jeder RAM-Baustein RAM-i hat jeweils eine Mehrzahl bidirektionaler Datenanschlüsse für Daten DQ-i der Wortbreite "n", einen bidirektionalen Strobeanschluss für das zugeordnete Strobesignal DS-i und einen unidirektionalen Anschluss für den Empfang des zugeordneten Maskierungssignals DM-i. Bei hohen Datenraten ist ein zweipoliger Strobeanschluss notwendig oder zumindest erwünscht, um das Strobesignal DS auch in komplementärer Form zu übertragen, so dass die Zeitreferenz für die Datenabtastung durch die Überschneidungspunkte der komplementären Strobesignalflanken definiert werden kann. Die DQ-, DS- und DM-Anschlüsse jedes RAM-i sind über Verbindungsleitungen mit entsprechenden Anschlüssen des zugeordneten Transferblockes 110-i verbunden.

Die erwähnten Befehls- und Adresssignale C/A und ein zugeordnetes Taktsignal CLK für die RAM-Bausteine werden von der internen Verteilerschaltung 120 des Controllers 100 erzeugt, wobei sich die von dort ausgehenden Steuerleitungen derart verzweigen, dass alle RAM-Bausteine RAM-1...m die selben C/A- und CLK-Signale an ihren diesbezüglichen Anschlüssen empfangen.

Um m RAM-Bausteine mit der Möglichkeit von Datenmaskierungen parallel zu betreiben, muss der Controller 100 allein für die Bestückung der Transferblöcke 110-1...m auf der den RAM-Bausteinen zugewandten Seite insgesamt m·n externe Datenanschlüsse, 2·m externe Strobeanschlüsse und m externe Maskierungsanschlüsse aufweisen. Ein herkömmlicher Controller für m = 16 parallele RAMs der Wortbreite 4 (x4-RAMs) benötigt also 16·(4 + 3) = 112 externe Anschlüsse für den Datentransfer auf der den RAM-Bausteinen zugewandten Seite und entsprechend viele Verbindungsleitungen zu den RAM-Bausteinen. Wenn auf die Datenmaskierung verzichtet wird, reduziert sich die Anzahl der Anschlüsse auf 16·(4 + 2) = 96. Mit weniger Anschlüssen bei gleichem Datendurchsatz kommt man aus, wenn man n verdoppelt und m halbiert: für m = 8 parallele RAMs der Wortbreite n = 8 (x8-RAMs) benötigt man 8·(8 + 3) = 88 Anschlüsse bei Option auf Datenmaskierung, bzw. 8·(8 + 2) = 80 Datenanschlüsse bei Verzicht auf Datenmaskierung.

Bei herkömmlichen Speicher-Controllern muss die Wortbreite der Datenanschlüsse an jedem Transferblock 110-i gleich der Wortbreite der Datenanschlüsse an den einzelnen RAM-Bausteinen sein. Demnach erfordern Speichermodul-Typen, die sich hinsichtlich der Wortbreite der enthaltenen RAMs unterscheiden, unterschiedliche Controller-Typen.

Aus der US 2002/0147898 A1 ist ein Speichercontroller für den Datenaustausch zwischen einer digitalen Speicheranordnung und einem Partner bekannt, der mit einer an den Partner anzuschließenden Verteilerschaltung und einer Mehrzahl paralleler Transferblöcke zur Übertragung von Datenwörtern, welche jeweils aus n parallelen Datenbits bestehen versehen ist. Jeder Transferblock enthält dabei eine erste Schnittstelle, die Datenanschlüsse zum Senden und Empfangen von Datenwörtern auffasst, eine zweite Schnittstelle, die Datenanschlüsse und Strobe-Anschlüsse zum Übertragen von Datenwörtern und begleitenden Strobe-Signalen, welches die Zeitdifferenz für die Abtastung der Datenwörter vorgibt, zwischen dem Transferblock und der Verteilerschaltung zu übertragen und interne Datenkanäle von Datenwörtern zwischen den Datenanschlüssen der ersten Schnittstelle und den Datenanschlüssen der zweiten Schnittstelle.

Die Aufgabe der Erfindung besteht darin, einen Speichercontroller mit mehreren parallelen Transferblöcken so auszubilden, dass er das Anschließen mindestens eines Speicherbausteins erlaubt, dessen Wortbreite ein Mehrfaches p ≥ 2 der Wortbreite n der Transferblöcke ist. Diese Aufgabe wird erfindungsgemäß durch die im Patentanspruch 1 angegeben Merkmale gelöst.

Demnach wird die Erfindung realisiert in einem Speichercontroller, welcher für den Datenaustausch zwischen einer digitalen Speicheranordnung und einem Partner eine an den Partner anzuschließende Verteilerschaltung und eine Mehrzahl m ≥ 2 paralleler Transferblöcke aufweist, deren jeder ausgebildet ist zur Übertragung von Datenwörtern, welche jeweils aus n parallelen Datenbits bestehen, und deren jeder folgendes enthält: eine erste Schnittstellenseite, die Datenanschlüsse aufweist zum Senden und Empfangen von Datenwörtern, die jeweils aus n parallelen Datenbits bestehen, an bzw. von der Speicheranordnung; eine zweite Schnittstellenseite, die Datenanschlüsse und Strobeanschlüsse enthält, um die Datenwörter und ein jeweils begleitendes Strobesignal, welches die Zeitreferenz für die Abtastung der Datenwörter vorgibt, zwischen dem Transferblock und der Verteilerschaltung zu übertragen; interne Datenkanäle zum Übertragen der Datenwörter zwischen den Datenanschlüssen der ersten Schnittstellenseite und den Datenanschlüssen der zweiten Schnittstellenseite. Erfindungsgemäß ist in mindestens einer Gruppe von p ≥ 2 Transferblöcken nur einer der Transferblöcke als ein Master konfiguriert zum Übertragen der Strobesignale zwischen den Strobeanschlüssen der beiden Schnittstellenseiten dieses Transferblockes, und alle anderen Transferblöcke der Gruppe sind jeweils als ein Slave konfiguriert, indem die zum Senden des Strobesignals an die Verteilerschaltung vorgesehenen Strobeanschlüsse mit den betreffenden Strobeanschlüssen des Master verbunden sind.

Die gestellte Aufgabe wird auch durch die im Patentanspruch 5 beschriebenen Merkmale gelöst. Ausgegangen wird dabei von einem Speichercontroller, in welchem jeder der parallelen Transferblöcke folgendes enthält: einen Schreibdatenkanal, der einen Eingang für die von der Verteilerschaltung gelieferten Schreibdatenwörter und einen Ausgang zum Senden dieser Datenwörter an die Speicheranordnung hat; einen Lesedatenkanal, der einen Eingang für die aus der Speicheranordnung empfangenen Lesedatenwörter und einen Ausgang zum Senden dieser Datenwörter an die Verteilerschaltung hat; einen Schreibstrobekanal mit einem Eingang zum Empfang eines Schreibstrobesignals, welches die Zeitreferenz für die Abtastung der Schreibdatenwörter vorgibt; eine Lesedaten-Abtasteinrichtung mit einem Abtasteingang zur Abtastung der Lesedatenwörter durch ein Lesestrobesignal.

Hierbei enthält erfindungsgemäß jeder Transferblock Konfigurationsmittel, um den Transferblock wahlweise in einer Master-Konfiguration oder in einer Slave-Konfiguration einzustellen. In der Master-Konfiguration ist der Eingang des Schreibstrobekanals eingestellt zum Empfang des von der Verteilerschaltung gelieferten Schreibstrobesignals, der Ausgang des Schreibstrobekanals ist eingestellt zum Senden eines Schreibstrobesignals an die Speicheranordnung, der Abtasteingang der Lesedaten-Abtasteinrichtung ist eingestellt zum Empfang eines von der Speicheranordnung gelieferten Lesestrobesignals, und es ist ein Lesestrobe-Ausgangsweg eingerichtet zum Senden des Lesestrobesignals an die Verteilerschaltung. Die Slave-Konfiguration unterscheidet sich von der Master-Konfiguration dadurch, dass der Abtasteingang der Lesedaten-Abtasteinrichtung eingestellt ist zum Empfang des Lesestrobesignals, das über den Lesestrobe-Ausgangsweg eines in der Master-Konfiguration eingestellten Transferblockes läuft.

Ein wesentlicher Vorteil der Erfindung besteht darin, dass die Konfiguration des Controllers für das Anschließen von Speicherbausteinen einer gewählten Datenwortbreite hergestellt werden kann, ohne den Grundaufbau der einzelnen Transferblöcke ändern zu müssen: RAMs mit großer (doppelter) Wortbreite können jeweils die Datenanschlüsse zweier Transfer-blöcke des Controllers parallel nutzen, während für das Strobesignal nur der Strobeanschluss eines der beiden Transferblöcke gebraucht wird. Somit verringert sich auch bei einem erfindungsgemäßen Controller die Zahl der zu nutzenden Anschlüsse, wenn die halbe Anzahl von RAMs mit jeweils doppelter Wortbreite angeschlossen wird.

Besondere Ausführungsformen der Erfindung sind jeweils in Unteransprüchen gekennzeichnet. Die Erfindung wird nachstehend an Ausführungsbeispielen anhand weiterer Zeichnungsfiguren näher erläutert:

2 zeigt das Schaltschema eines Transferblockes in einem Controller ohne Datenmaskierung nach dem Stand der Technik;

3 zeigt das Schaltschema eines Transferblockes für einen erfindungsgemäßen Controller ohne Datenmaskierung;

4 zeigt ein Beispiel für die Verbindung eines erfindungsgemäßen Controllers ohne Datenmaskierung mit mehreren RAM-Bausteinen, deren Wortbreite doppelt so groß wie die Wortbreite der Transferblöcke des Controllers ist;

5 zeigt das Schaltschema eines Transferblockes für einen erfindungsgemäßen Controller mit Datenmaskierung;

6 zeigt ein Beispiel für die Verbindung eines erfindungsgemäßen Controllers mit Datenmaskierung mit mehreren RAM-Bausteinen, deren Wortbreite doppelt so groß wie die Wortbreite der Transferblöcke des Controllers ist

Der in 2 gezeigte Transferblock 110 entspricht jedem der Transferblöcke 110-1...m des herkömmlichen Controllers 100 nach 1, allerdings ohne Schaltungsteile und Anschlüsse zur Datenmaskierung. Der Transferblock 110 hat am rechten Rand eine erste Schnittstellenseite, welche die "externen" Anschlüsse zur Kommunikation mit einem individuell zugeordneten RAM-Baustein enthält. Hierbei handelt es sich um den bidirektionalen n-Bit-Anschluss DQ zum Senden der in den RAM-Baustein zu schreibenden n-Bit-Datenwörter (Schreibdaten) an diesen Baustein und zum Empfangen der aus diesem Baustein ausgelesenen n-Bit-Wörter (Lesedaten) und um den zweipoligen Strobeanschluss DS zum Senden und Empfangen der komplementären Phasen des die Daten begleitenden Strobesignals an den bzw. vom RAM-Baustein. Die Kommunikation mit der internen Verteilerschaltung 120 erfolgt über eine zweite Schnittstellenseite, deren Anschlüsse am linken Rand in 2 dargestellt sind.

Der Transferblock 110 nach 2 ist ausgelegt zum Betreiben eines angeschlossenen RAM-Bausteins im so genannten "DDR"-Modus (doppelte Datenrate). Bei diesem Modus werden die Daten sowohl bei steigenden als auch bei fallenden Flanken einer Takt- bzw. Strobesignalwelle der Frequenz fc abgetastet. Die Periodendauer 1/fc dieser Frequenz wird im Folgenden mit &tgr; bezeichnet.

Zunächst sei der Schreibbetrieb des Transferblockes 110 nach 2 beschrieben, also der Transfer der Schreibdaten von der Verteilerschaltung 120 zum zugeordneten RAM-Baustein.

Im Schreibbetrieb des Transferblockes 110 sendet die interne Verteilerschaltung 120 mit jeder steigenden Flanke eines Datentaktes CLK_DQ der Frequenz fc gleichzeitig zwei n-Bit-Schreibdatenwörter DQ'w(A) und DQ'w(B). Der Transferblock 110 empfängt also die Schreibdaten als parallele Wortpaare mit "einfacher Datenrate" ("SDR" = Single Data Rate) fc und konvertiert sie im Schreibkanal des Transferblockes in eine Einzelwort-Sequenz mit doppelter Datenrate 2fc. Hierzu dient ein SDR/DDR-Konverter 31 mit zwei Eingängen XA und XB zum Empfang der parallelen Datenwörter DQ'w(A) und DQ'w(B), einem Taktanschluss C zum Empfang des Datentaktes CLK_DQ und einem Ausgang Y. Der Konverter 31 besteht aus einer Schaltung, welche die beiden Eingangssignale, die mit jedem Takt (bei der steigenden Flanke der Taktwelle) an XA und XB gleichzeitig eingeschleust werden, zeitlich nacheinander im Abstand einer halben Taktperiode (also im Abstand &tgr;/2) zum Ausgang Y überträgt. Dies kann z.B. dadurch erfolgen, dass das Eingangssignalpaar an den beiden Eingängen eines 2:1-Multiplexers im Konverter 31 gelatcht (also bis zum Einschleusen des nächsten Signalpaares gehalten) wird und dass dieser Multiplexer durch die abwechselnden Halbperioden (abwechselnde Logikwerte "0" und "1") der Taktwelle umgeschaltet wird.

Die mit doppelter Datenrate aufeinander folgenden n-Bit-Datenwörter vom Ausgang Y des Konverters 31 werden über einen Daten-Sendetreiber 32 zu den DQ-Anschlüssen gegeben, um von dort an die DQ-Anschlüsse des zugeordneten RAM-Bausteins übertragen zu werden. Die Einschaltung des Daten-Sendetreibers 32 erfolgt abhängig von einem Schreibbetriebssignal WRE, welches die Sequenz ("Burst") der Schreibdatenwörter DQ'w(A) und DQ'w(B) von der Verteilerschaltung 120 begleitet und nur für die Dauer dieser Sequenz auf dem aktiven "1"-Pegel gehalten wird. Die Einschaltung des Daten-Sendetreibers 32 darf jedoch erst dann erfolgen, wenn das erste Datenwort der Sequenz am Treibereingang erscheint, und sie muss beendet werden, unmittelbar nachdem das letzte Datenwort der Sequenz am Treibereingang erschienen ist. Wegen der SDR/DDR-Konvertierung im Konverter 31 ist die DDR-Sequenz am Treibereingang um eine Periode &tgr; des Datentaktes CLK_DQ verzögert gegenüber der SDR-Sequenz am Konverter-Eingang. Deswegen muss das Einschaltintervall des Treibers 32 um dieses Maß &tgr; entsprechend verzögert werden.

Diese Verzögerung erfolgt mittels einer Verzögerungslogik 33, die im dargestellten Fall eine Kaskade zweier D-Flipflops (Datenflipflops) 33a und 33b enthält, die beide durch die steigenden Flanken des Signals CLK_DQ an ihren Takteingängen CP getaktet werden und deren erstes das Schreibbetriebssignal WRE an seinem D-Eingang empfängt. Somit geht der Q-Ausgang dieses Flipflops 33a auf "1", sobald die erste "1"-Halbwelle des Datentaktsignals CLK_DQ nach Aktivierung des Signals WRE erscheint, und bleibt auf diesem Pegel, bis die erste "1"-Halbwelle des Datentaktsignals CLK_DQ nach Deaktivierung des Signals WRE erscheint. Der Q-Ausgang des ersten D-Flipflops 33a wird in einem UND-Gatter 33c mit dem Schreibbetriebssignal WRE verknüpft, und das Ergebnis dieser Verknüpfung wird dem D-Eingang des zweiten D-Flipflops 33b angelegt, dessen Q-Ausgang den Sendeverstärker 32 steuert. Somit wird der Sendetreiber 32 erst mit Beginn der zweiten "1"-Halbwelle des Datentaktsignals CLK_DQ nach Aktivierung des Signals WRE eingeschaltet und bleibt eingeschaltet, bis die erste "1"-Halbwelle des Datentaktsignals CLK_DQ nach Deaktivierung des Signals WRE erscheint.

Zusammen mit den parallelen Datenwortpaaren DQ'w(A) und DQ'w(B), dem Datentaktsignal CLK_DQ und dem Schreibbetriebssignal WRE empfängt der Transferblock 110 auch ein Strobetaktsignal CLK_DS, das die gleiche Frequenz wie CLK_DQ hat, jedoch mit einer solchen Phase erscheint, dass seine steigenden Flanken jeweils mitten zwischen die Bitgrenzen der parallelen Datenwortpaare fallen. Aus diesem Strobetaktsignal CLK_DS wird im Schreibstrobekanal des Transferblockes das Schreibstrobesignal abgeleitet, welches an den DS-Anschluss gelegt wird und zusammen mit den DDR-Schreibdaten DQ an den RAM-Baustein übertragen wird und dessen Flanken mitten zwischen die Bitgrenzen dieser DDR-Schreibdaten fallen sollen, um diese Daten im RAM-Baustein zuverlässig abtasten zu können. Die Ableitung und Sendung des Schreibstrobesignals erfolgt im dargestellten Fall in ähnlicher Weise mittels einer Schaltungsanordnung, die einen SDR/DDR-Konverter 41, einen Strobe-Sendetreiber 42 und eine Verzögerungslogik 43 mit zwei D-Flipflops 43a und 43b und einem UND-Gatter 43c enthält. Die Schaltungen 41 und 43 gleichen den Schaltungen 31 und 33 des Schreibdatenkanals und arbeiten nach dem gleichen Prinzip unter Steuerung durch das Schreibbetriebssignal WRE. Der Unterschied besteht nur darin, dass der XA-Eingang des Konverters 41 permanent auf dem Logikwert "0" gehalten wird (durch feste Verbindung mit dem "0"-Potential) und dass sein XB-Eingang mit dem Ausgang des UND-Gatters 43a der Verzögerungslogik 43 verbunden ist und dass die Taktsteuerung aller Elemente durch das Strobetaktsignal CLK_DS erfolgt. Wie leicht einzusehen ist, führt dies dazu, dass der Ausgang Y des Konverters 41 ab der ersten "1"-Halbwelle des Signals CLK_DS nach Aktivierung des Schreibbetriebssignals WRE periodisch zwischen "1" und "0" wechselt, und zwar im Gleichtakt mit CLK_DS. Der Strobe-Sendetreiber 42 wird erst mit Beginn der zweiten "1"-Halbwelle des Strobetaktsignals CLK_DS nach Aktivierung des Signals WRE eingeschaltet und bleibt eingeschaltet, bis die erste "1"-Halbwelle des Strobetaktsignals CLK_DS nach Deaktivierung des Signals WRE erscheint. Der Strobe-Sendetreiber 42 sendet sein Ausgangssignal in symmetrischer bzw. komplementärer Form, also nicht-invertiert auf einer ersten Leitung und invertiert auf einer zweiten Leitung.

Im Lesebetrieb des Transferblockes 110, also zum Transfer der Lesedaten vom RAM-Baustein zur internen Verteilerschaltung 120, ist das Schreibbetriebssignal deaktiviert (Logikpegel "0"), so dass der Daten-Sendetreiber 32 und der Strobe-Sendetreiber ausgeschaltet sind. Stattdessen ist ein von der Verteilerschaltung 120 geliefertes Lesebetriebssignal RDE aktiviert (Logikpegel "1"), so dass ein mit den bidirektionalen DQ-Anschlüssen verbundener Daten-Empfangstreiber 52 und ein mit dem bidirektionalen DS-Anschluss verbundener Strobe-Empfangstreiber 54 eingeschaltet sind. Der Strobe-Empfangstreiber 54 hat einen symmetrischen Eingang und einen unsymmetrischen Ausgang, um das vom RAM gelieferte komlementär-symmetrische Lesestrobesignal in die einphasige Form zu bringen. Der RAM-Baustein liefert die Lesedatenwörter mit doppelter Datenrate und das begleitende Lesestrobesignal an die zugeordneten Anschlüsse DQ bzw. DS des Transferblockes 110.

Im Lesebetrieb ist die Phasenbeziehung zwischen den im DDR-Format empfangenen Lesedaten und dem begleitenden Lesestrobesignal üblicherweise so, dass die steigenden und fallenden Flanken des Strobesignals koinzident mit den Bitgrenzen der Daten DQ erscheinen, und die Verlagerung dieser Flanken in die Mitte zwischen den Bitgrenzen zur Abtastung der Lesedaten erfolgt im Transferblock, zusammen mit der Rück-Konvertierung (Demultiplexierung) der Lesedaten aus dem DDR-Format in das SDR-Format. Hierzu wird das vom Strobe-Empfangstreiber 54 kommende Lesestrobesignal einer Phasensteuerschaltung 53 zugeführt, die zwei neue Versionen des Lesestrobesignals erzeugt: eine erste Version DS'(A) zur Abtastung der Datenwörter gerader Ordnungszahl in der DDR-Datensequenz, und eine zweite Version DS'(B) zur Abtastung der Datenwörter ungerader Ordnungszahl in der DDR-Datensequenz. DS'(A) ist gegenüber DS um eine Viertelperiode &tgr;/4 der Taktfrequenz fc verzögert (also um eine halbe Periode der doppelten Datenrate), und DS'(B) ist gegenüber DS um eine Dreiviertelperiode 3&tgr;/4 der Taktfrequenz fc verzögert (also um anderthalb Perioden der doppelten Datenrate). Üblicherweise sind die in der Schaltung 53 bewirkten Verzögerungen mittels eines Justiersignals ADJ trimmbar, das von der Verteilerschaltung 120 über einen zugeordneten Anschluss angelegt werden kann.

Die über den Daten-Empfangstreiber 52 im DDR-Format empfangene Sequenz von Lesedatenwörtern DQ wird in einem Lesedatenkanal phasengleich auf die Dateneingänge zweier D-Flipflops 55a und 55b gegeben, die eine Lesedaten-Abtasteinrichtung bilden. Das erste D-Flipflop 55a wird durch die steigenden Flanken des Signals DS'(A) getaktet, so dass sein Q-Ausgang eine Lesedatenwortfolge DQ'r(A) liefert, die nur die "geraden" Lesedatenwörter enthält und über ein zugeordnetes erstes Lesedaten-Leitungsbündel zur Verteilerschaltung 120 übertragen wird. Das zweite D-Flipflop 55b wird durch die steigenden Flanken des Signals DS'(B) getaktet, so dass sein Q-Ausgang eine Lesedatenwortfolge DQ'r(B) liefert, die nur die "ungeraden" Lesedatenwörter enthält und über ein zugeordnetes zweites Lesedaten-Leitungsbündel zur Verteilerschaltung 120 übertragen wird. In der Schaltung 120 werden die beiden Datenwortfolgen DQ'r(A) und DQ'r(B) in zugeordnete Empfangsregister getaktet, unter Steuerung durch die Signale DS'(A) und DS'(B), die zu diesem Zweck über zugeordnete Anschlüsse an die Schaltung 120 übertragen werden.

Die in 3 dargestellte Ausführungsform eines erfindungsgemäßen Transferblockes, der insgesamt mit der Bezugszahl 210 bezeichnet wird, soll es ermöglichen, eine Gruppe von zwei (oder mehr) Transferblöcken parallel zur Kommunikation mit einem einzigen "verbreiterten" RAM-Baustein zu benutzen, dessen Datenwortbreite zweifach (oder mehrfach) so groß wie die Datenwortbreite n jedes Transferblockes ist. Bei einer solchen Nutzung soll, gemäß der Erfindung, für die Strobesignal-Übertragung zum und vom verbreiterten RAM-Baustein nur eine einzige bidirektionale Strobesignalverbindung ausreichen, um die Anzahl der Verbindungsleitungen und somit auch die Anzahl der externen Anschlüsse zu minimieren.

Der erfindungsgemäße Transferblock 210 nach 3 unterscheidet sich vom herkömmlichen Transferblock 110 nach 2 dadurch, dass zusätzliche Schaltmittel vorgesehen sind, um die Taktsteuerung zur Weiterleitung der empfangenen Lesedatenwörter an die Verteilerschaltung 120 wahlweise zwischen zwei Betriebsarten auszuwählen. Beim der ersten Betriebsart, im folgenden als "Master"-Modus bezeichnet, erfolgt die besagte Taktsteuerung abhängig von dem Lesestrobesignal DS, das über den Strobe-Empfangstreiber 54 vom RAM-Baustein kommt, wie es als Stand der Technik anhand des Transferblockes 110 nach 2 beschrieben wurde. Bei der zweiten Betriebsart, im Folgenden als "Slave"-Modus bezeichnet, soll die besagte Taktsteuerung abhängig von demjenigen Lesestrobesignal erfolgen, das vom RAM-Baustein über den im Master-Modus konfigurierten Transferblock derselben Gruppe kommt.

Die besagten zusätzlichen Schaltmittel zur Auswahl zwischen Master- und Slave-Modus enthalten eine zwischen den Ausgängen der Strobe-Phasensteuereinrichtung 53 und den Takteingängen CP der D-Flipflops 55a und 55b eingefügte Umschaltvorrichtung, bestehend aus zwei Multiplexern 56a und 56b, die durch ein Master/Slave-Modussignal MS_MOD gesteuert werden, und zwei Transmissionsgattern 57a und 57b, die über einen Inverter 58 durch das Komplement des Master/Slave-Modussignals MS_MOD gesteuert werden. Das Modussignal MS_MOD, das von der Verteilerschaltung 120 über einen zugeordneten Anschluss angelegt wird, wird für den Master-Modus auf dem Logikwert "0" gehalten. Hierdurch gelangt das von der Phasensteuereinrichtung 53 gelieferte Strobesignal DS'(A) über den Multiplexer 56a zum Takteingang des D-Flipflops 55a und über das Transmissionsgatter 57a zum DS'(A)-Anschluss, und das von der Phasensteuereinrichtung 53 gelieferte Strobesignal DS'(B) gelangt über den Multiplexer 56b zum Takteingang des D-Flipflops 55b und über das Transmissionsgatter 57b zum DS'(B)-Anschluss. Somit ergibt sich im Master-Modus die gleiche Konfiguration wie im herkömmlichen Transferblock 110 nach 2.

Für den Slave-Modus wird das Modussignal MS_MOD auf "1" gehalten. Hierdurch werden die Transmissionsgatter 57a und 57b gesperrt, und der Takteingang des D-Flipflops 55a wird von der Phasensteuereinrichtung 53 abgetrennt und stattdessen mit dem DS'(A)-Anschluss verbunden. In ähnlicher Weise wird der Takteingang des D-Flipflops 55b von der Phasensteuereinrichtung 53 abgetrennt und stattdessen mit dem DS'(B)-Anschluss verbunden.

In bevorzugter Ausführungsform sind im Transferblock 210 weitere zusätzliche Maßnahmen getroffen, um die internen Verbindungen zum und vom bidirektionalen DS-Anschluss zu deaktivieren, wenn der Transferblock im Slave-Modus betrieben wird. Hierzu ist zwischen dem WRE-Anschluss und dem Eingang des UND-Gatters 43c der Schreibstrobe-Verzögerungslogik 43 ein UND-Gatter 44 vorgesehen, welches die logische "1" des aktiven Schreibbetriebssignals nur dann weitergibt, wenn der Transferblock im Master-Modus ist. Des weiteren ist zwischen dem RDE-Anschluss und dem Steuereingang des Strobe-Empfangstreibers 54 ein UND-Gatter 45 vorgesehen, welches die logische "1" des aktiven Lesebetriebssignals nur dann weitergibt, wenn der Transferblock im Master-Modus ist. Dies wird erreicht durch Steuerung der beiden UND-Gatter 44 und 45 mit der in einem Inverter 46 invertierten Version des Modussignals MS_MOD. Der Inverter 46 ist vorzugsweise durch ein NAND-Gatter gebildet, dessen zweiter Eingang permanent auf dem Logikwert "1" gehalten wird.

Die 4 zeigt den Aufbau und die Anschlussweise eines erfindungsgemäßen Controllers 200, der mit Transferblöcken 210 der in 3 gezeigten Art ausgestattet ist, um RAM-Bausteine zu betreiben, deren Wortbreite das Doppelte der Wortbreite n der Transferblöcke ist. Jeder dieser Bausteine, die in der 4 jeweils mit 2*n_RAM bezeichnet sind, ist einer Gruppe zweier benachbarter Transferblöcke 210 des Controllers 200 zugeordnet, von denen einer durch den Logikwert "0" am MS_MODE-Anschluss als "Master" konfiguriert ist und der andere durch den Logikwert "1" am MS_MODE-Anschluss als "Slave" konfiguriert ist. Die DS'(A)- und DS'(B)-Anschlüsse jedes Slave (z.B. des Blockes 210-2) sind mit den gleichnamigen Anschlüssen des Master (z.B. des Blockes 210-1) der betreffenden Gruppe verbunden.

Die n bidirektionalen Datenanschlüsse (DQ-Anschlüsse) jedes Master sind mit n ersten Datenanschlüssen des zugeordneten 2*n_RAM-Bausteins verbunden, und die n bidirektionalen DQ-Anschlüsse des zugeordneten Slave sind mit n zweiten Datenanschlüssen dieses Bausteins verbunden. Der Strobeanschluss jedes 2*n_RAM-Bausteins ist mit dem bidirektionalen Strobeanschluss (DS-Anschluss) nur des zugeordneten Master verbunden.

Eine direkte Strobesignal-Verbindung zwischen dem 2*n_RAM und dem Slave kann entfallen. Das vom Master gesendete Schreibstrobesignal dient im 2*n_RAM dazu, sowohl die vom Master gesendeten Schreibdaten als auch die vom Slave gesendeten Schreibdaten zuverlässig abzutasten. Das am Master aus dem 2*n_RAM direkt empfangene Lesestrobesignal dient im Master als Zeitreferenz für die Erzeugung der Taktsteuersignale DS'(A) und DS'(B), mit denen die am Master empfangenen Lesedaten zur internen Verteilerschaltung 120 weitergeschleust werden. Dieselben Taktsteuersignale erreichen über die erwähnte Master-Slave-Verbindung der DS'(A, B)-Anschlüsse auch den Slave, wo sie dazu dienen, die am Slave empfangenen Lesedaten zur Verteilerschaltung 120 zu schleusen. Der bidirektionale DS-Anschluss am Slave kann somit ungenutzt bleiben, und die Anzahl der Verbindungen zwischen dem Controller und den RAM-Bausteinen ist entsprechend reduziert.

Die Signalverbindungen zwischen den DS'-Anschlüssen der Transferblöcke, die zur selben Gruppe gehören, sind in der 4 (und auch in der noch zu beschreibenden 6) aus Gründen der Übersichtlichkeit der Zeichnung an den Verbindungsleitungen außerhalb der Verteilerschaltung 120 gezeichnet. Diese Verbindungen können natürlich auch innerhalb der Verteilerschaltung 120 liegen.

Die in 5 dargestellte Ausführungsform eines erfindungsgemäßen Transferblockes, der insgesamt mit der Bezugszahl 310 bezeichnet ist, soll es ebenso wie die Ausführungsform nach 3 ermöglichen, eine Gruppe von zwei (oder mehr) Transferblöcken parallel zur Kommunikation mit einem einzigen "verbreiterten" RAM-Baustein zu benutzen, dessen Datenwortbreite zweifach (oder mehrfach) so groß wie die Datenwortbreite n jedes Transferblockes ist. Der Transferblock 310 nach 5 macht es zusätzlich möglich, Daten-Maskierungssignale zum RAM-Baustein zu übertragen, und zwar über nur einen einzigen Verbindungsweg zwischen der betreffenden Gruppe von Transferblöcken und dem RAM-Baustein.

Der erfindungsgemäße Transferblock 310 nach 5 unterscheidet sich vom Transferblock 210 nach 3 dadurch, dass zusätzliche Schaltmittel vorgesehen sind, um den Schreibstrobekanal mit den Schaltungen 41, 42 und 43 sowie den DS-Anschluss, die im Slave-Modus ungenutzt sind, im Slave-Modus für die Übertragung der Daten-Maskierungssignale DM umzuwidmen. Hierzu ist jedem der Eingänge XA, XB und C des im Schreibstrobekanal enthaltenen Konverters 41 jeweils ein Umschalter in Form eines 2:1-Multiplexers 48a bzw. 48b bzw. 48c vorgesetzt, und dem Steuereingang des Strobe-Sendetreibers 42 ist ein Umschalter in Form eines 2:1-Multiplexers 49 vorgesetzt. Alle diese Multiplexer werden durch ein Maskierungs-Modussignal DM_MOD gesteuert, das von der Verteilerschaltung 120 über einen zugeordneten Anschluss geliefert wird und außerdem in invertierter Form an den zweiten Eingang des NAND-Gatters 46 gelegt wird. Die Maskierungssignale DM'(A) und DM'(B) für die geraden und ungeraden Schreibdatenwörter DQ'w(A) und DQ'w(B) werden zusammen und synchron mit diesen Datenwörtern von der Verteilerschaltung 120 an zugeordnete Eingangsanschlüsse des Transferblockes 310 nach 5 gesendet, also im Gleichtakt mit dem Datentaktsignal CLK_DQ.

Wenn das Modussignal DM_MOD auf "0" ist, stellen die Multiplexer 48a, 48b, 48c und 49 die gleichen Verbindungen her, wie sie im Transferblock 210 nach 3 existieren. Um den Maskierungs-Modus einzustellen, wird das Modussignal MS_MOD auf "1" gesetzt, so dass das NAND-Gatter 46 eine "0" liefert, wodurch die Multiplexer 48a, 48b, 48c und 49 so eingestellt werden, dass die Eingänge XA und XB des SDR/DDR-Konverters 41 die Maskierungssignale DM'(A) bzw. DM'(B) empfangen, der Takteingang C des Konverters 41 das Datentaktsignal CLK_DQ empfängt und der Steuereingang des Strobe-Sendetreibers 42 das selbe Signal wie der Steuereingang des Daten-Sendetreibers 32 empfängt. Somit arbeitet der Schreibstrobekanal als Maskierungssignal-Transferkanal; er konvertiert die 1-Bit-Maskierungssignale DM'(A) und DM'(B), welche die Schreibdatenwörter DQ'w(A) und DQ'w(B) aus der Verteilerschaltung 120 begleiten, aus dem SDR-Format in das DDR-Format, so dass sie, genau phasengleich mit den ins DDR-Format konvertierten Schreibdatenwörtern an den bidirektionalen DQ-Parallelanschlüssen, am DS-Anschluss erscheinen.

Natürlich kann und darf der beschriebene Maskierungs-Modus nur in einem Transferblock eingestellt werden, der als Slave konfiguriert ist, weil nur dann der Schreibstrobekanal nicht zur Strobe-Übertragung gebraucht wird. Deswegen muss dafür gesorgt werden, dass im Maskierungs-Modus eines als Slave konfigurierten Transferblockes die Ansprache des Schreibstrobekanals auf das Schreibbetriebssignal WRE erhalten bleibt. Dies wird im Transferblock 310 nach 5 dadurch sichergestellt, dass der zweite Eingang des NAND-Gatters 46 das Maskierungs-Modussignal MS_MOD in invertierter Form empfängt, so dass dieses Gatter im Maskierungs-Modus des Transferblockes immer eine "1" liefert, um das UND-Gatter 44 zu konditionieren für die Weitergabe des Schreibbetriebssignals WRE an den Schreibstrobekanal.

Der Transferblock 310 nach 5 ist universell verwendbar: Beim Logikwert "0" sowohl des Master/Slave-Modussignals MS_MOD als auch des Maskierungs-Modussignals DM_MOD ist er wie der Transferblock 110 nach 2 konfiguriert, kann also als Master in einem Controller ohne Datenmaskierung verwendet werden. Bei MS_MOD = "0" und DM_MOD = "1" kann der Transferblock 310 als Master in einem Controller mit Datenmaskierung verwendet werden. Bei MS_MOD = "1" und DM_MOD = "1" kann Transferblock 310 als Slave in einem Controller mit Datenmaskierung verwendet werden.

Die 6 zeigt den Aufbau und die Anschlussweise eines erfindungsgemäßen Controllers 300, der mit Transferblöcken 310 der in 5 gezeigten Art ausgestattet ist, um RAM-Bausteine, deren Wortbreite das Doppelte der Wortbreite n der Transferblöcke ist, mit der Möglichkeit von Datenmaskierungen zu betreiben. Jeder dieser Bausteine, die in der 6 jeweils mit 2*n_RAM bezeichnet sind, ist einer Gruppe zweier benachbarter Transferblöcke 310 des Controllers 300 zugeordnet, von denen einer durch den Logikwert "0" am MS_MODE-Anschluss als "Master" konfiguriert ist und der andere durch den Logikwert "1" am MS_MODE-Anschluss als "Slave" konfiguriert ist. Dies und auch die Anschlussweise für die Datenübertragung und die Strobe-Übertragung entspricht der bereits beschriebenen Anordnung nach 4 und braucht deswegen hier nicht noch einmal erläutert zu werden.

Die in 6 gezeigte Anschlussweise hat die zusätzliche Besonderheit, dass der zum Senden des Maskierungssignals DM benutzte Slave in jeder Gruppe durch eine "1" an seinem DM_MOD-Anschluss entsprechend konditioniert ist (der Master jeder Gruppe empfängt eine "0" an diesem Anschluss) und dass der im Falle der 4 ungenutzte Strobeanschluss der besagten Slaves nunmehr verwendet wird zur Übertragung des Maskierungssignals DM an den der betreffenden Master-Slave-Gruppe zugeordneten 2*n_RAM. Am 2*n_RAM dient das Bit dieses Signals dazu, alle Bits des gleichzeitig ankommenden 2n-Bit-Datenwortes gewünschtenfalls zu maskieren. Der Logikwert des Maskierungssignalbits gibt an, ob das betreffende Datenwort maskiert werden soll oder nicht.

Die Verbindung zum Übertragen des Maskierungssignals DM von einem Slave zum 2*n_RAM braucht nur einadrig zu sein und ist unidirektional. Somit kann am Sendetreiber 42 in jedem als Slave betriebenen Transferblock 310 die Komplementbildung abgeschaltet werden. Das heißt der betreffende Treiber kann von symmetrischem Ausgang auf unsymmetrischen Ausgang konfiguriert werden, in Ansprache auf das Maskierungsmodus-Signal DM_MOD.

Die vorstehend anhand der 3 bis 6 beschriebenen Schaltungsanordnungen sind nur Beispiele zur Realisierung und Nutzung der Erfindung. Natürlich gibt es eine Menge weiterer Anwendungsformen, Ausgestaltungen, Modifikationen und Alternativen innerhalb des Erfindungsgedankens. Einige davon werden im Folgenden kurz angedeutet:

Vorzugsweise sind die erfindungsgemäßen Controller jeweils als integrierter Baustein auf einem Halbleiterchip gebildet. Hierbei ist die mit der Erfindung erzielbare Verminderung externer Anschlüsse von besonderem Vorteil.

Im Falle der Gruppierung jeweils zweier Transferblöcke, deren einer als Master und deren anderer als Slave konfiguriert ist, wie in den obigen Beispielen gezeigt, können die zur Strobe-Kopplung vom Master zum Slave gezogenen Verbindungen kurz gehalten werden, indem man dafür sorgt, dass die Lesedaten-Abtasteinrichtung und die zu dieser Einrichtung führenden Kanäle möglichst nahe an den einander zugewandten Rändern der Blöcke verlaufen. Hierzu kann es günstig sein, das Layout von Master und Slave spiegelbildlich zueinander auszulegen. Kurze Master/Strobe-Koppelverbindungen vermindern den Aufwand für einen eventuell notwendigen Laufzeitausgleich zwischen dem Betrieb der beiden Blöcke.

Statt der Gruppierung jeweils zweier Transferblöcke, deren einer als Master und deren anderer als Slave konfiguriert ist, können auch Gruppen mit jeweils mehr als zwei Transferblöcken organisiert werden, von denen einer als Master und alle anderen als Slave konfiguriert sind. So lässt sich mit einer Gruppe von p Transferblöcken, deren jeder eine Wortbreite n hat, ein RAM-Baustein der Wortbreite p·n betreiben, wobei nur eine einzige Strobesignal-Verbindung erforderlich ist. Falls die Möglichkeit der Datenmaskierung geschaffen werden soll, braucht nur einer der Slaves in der Gruppe zur Datenmaskierung konfiguriert zu werden.

Die Konfiguration der Transferblöcke und die Gruppeneinteilung können vom Hersteller des Controllers durch feste Verdrahtung oder festes Design erfolgen. Hierbei gibt es verschiedene Möglichkeiten:

Eine erste Möglichkeit ist, für jeden Master-Transferblock eine herkömmliche Schaltung z.B. gemäß der 2 zu verwenden, und für die Slaves jeweils eine Schaltung vorzusehen, die fest für den Slave-Modus und gewünschtenfalls auch für den Maskierungs-Modus konfiguriert ist, ohne entsprechende Modussignale zu benötigen. Dies reduziert zwar die Anzahl der notwendigen internen Anschlüsse und Verbindungen auf der Seite, die der internen Verteilerschaltung zugewandt ist, geht aber auf Kosten der Flexibilität des hergestellten Controllers. Es bleibt jedoch der Vorteil, dass ein Vorrat von nur drei verschiedenen Transferblock-Layouts ausreicht, um Controller für eine beliebige Anzahl von RAMs beliebiger Wortbreite mit oder ohne Datenmaskierung zusammenzustellen.

Eine zweite Möglichkeit ist, wie anhand der obigen Beispiele beschrieben, für die Master und die Slaves jeweils die gleiche, aber mittels Modussignalen konfigurierbare Grundschaltung zu verwenden, z.B. eine Schaltung gemäß 3 (wenn keine Datenmaskierung gewünscht wird) oder gemäß 5 (wenn Datenmaskierung gewünscht wird). Die jeweils gewünschte Konfigurierung eines solchen "universellen" Controllers, also seine Anpassung an die Wortbreite der zu steuernden RAMs, kann dann nachträglich erfolgen, nämlich durch Schaffung entsprechender Signalverbindungen an den Modus-Anschlüssen in den Blöcken und zwischen den Blöcken, wie es die 4 und die 6 zeigen. Diese Signalverbindungen können vom Hersteller in einem späten Stadium des Herstellungsprozesses vorgenommen werden, so dass sich Kundenwünsche kurzfristig erfüllen lassen. Die besagten Signalverbindungen könnten aber auch vom Kunden selbst vorgenommen werden.

Die Konfigurierung eines "universellen" Controllers kann sogar im Betrieb erfolgen, genauer gesagt während der Initialisierungsphase des Betriebs. Hierzu kann eine übergeordnete Instanz wie z.B. das BIOS eines PC festlegen, welche Datenwortbreite die RAM-Bausteine des benutzten Speichermoduls haben, und bei der Initialisierung ein Modusregister in der Verteilerschaltung des Controllers derart programmieren, dass die passenden konfigurierenden Steuersignale für die Transferblöcke des Controllers bzw. die konfigurierenden Signalverbindungen zwischen den Transferblöcken eingestellt werden. In einem derart konfigurierbaren "universellen" Controller können besagte Signalverbindungen eingestellt werden durch vom Modusregister steuerbare Schaltglieder an eingebauten Verbindungsleitungen innerhalb der Verteilerschaltung 120.

Eine "universelle" Version des Controllers kann sogar gewünschtenfalls verwendet werden, um in herkömmlicher Weise mehrere RAMs zu betreiben, welche die gleiche Wortbreite n wie die Transferblöcke haben, so wie es in 1 veranschaulicht ist. Die hierzu notwendige Anpassung kann z.B, erfolgen durch festes Setzen aller Modussignale an allen Transferblöcken auf "0" und Weglassen der Signalverbindungen zwischen den Blöcken. Allerdings muss hierbei auf die Möglichkeit der Datenmaskierung verzichtet werden, weil es hierbei keinen Slave und somit auch keinen unbelegten Schreibstrobekanal gibt, der für die Übertragung der Maskierungssignale umgewidmet werden könnte.

Die Erfindung ist besonders geeignet in Verbindung mit RAM-Bausteinen, die als dynamische RAMs (DRAMS), vorzugsweise als "synchrone" DRAMs (SDRAMS), ausgebildet sind, wie es bei den beschriebenen Ausführungsbeispielen vorausgesetzt wurde. Die Verwendung in Kombination mit anderen RAM-Gattungen (z.B. statischen RAMs) liegt jedoch ebenfalls im Bereich der Erfindung.

Die Erfindung ist nicht auf Controller für doppelte Datenrate (DDR) beschränkt, sondern ist mit den gleichen Vorteilen auch für Controller anwendbar, die RAMs mit einfacher Datenrate (SDR) oder mit vierfacher oder noch höherer Datenrate steuern. Im Falle einfacher Datenrate ist der Aufbau der Daten- und Strobe-Kanäle innerhalb der Transferblöcke wesentlich simpler als in den Figuren gezeigt, weil eine SDR/DDR-Multiplexierung der Schreibdaten in den Schreibkanälen und eine DDR/SDR-Demultiplexierung der Lesedaten entfallen. Auf eine nähere Beschreibung dieser vereinfachten Schaltungstechnik kann verzichtet werden, denn jeder Fachmann wird die oben in Verbindung mit komplizierten Signalkanälen beschriebene Technik ohne weiteres auf einfacher ausgebildete Signalkanäle übertragen können.

Bei den Beispielen, die in 4 und 6 gezeigt sind, ist die interne Verteilerschaltung 120 ebenfalls in Blöcke aufgeteilt, entsprechend den Transferblöcken des Controllers. Die interne Verteilerschaltung kann aber auch anders organisiert sein, z.B. derart, dass für jede Gruppe von Transferblöcken, die gemeinsam einem einzelnen p·n-RAM zugeordnet sind, jeweils ein Block dieser Schaltung für jeweils eine Datenwortbreite 2p·n vorgesehen ist (im Falle eines Controllers mit SDR/DDR-Konversion), oder für eine Wortbreite p·n (im Falle eines SDR-Controllers). Bei einer solchen Organisation der internen Verteilerschaltung reduzieren sich die internen Verbindungsleitungen für die Steuersignale (Strobe-, Takt- und andere Steuersignale) zwischen der Verteilerschaltung und den Transferblöcken, weil hierbei allen Transferblöcken der jeweils selben Gruppe dieselben Steuersignale angelegt werden. Die interne Verteilerschaltung kann sogar in Blöcken (oder als ein einziger Block) für noch größere Datenwortbreite organisiert sein, wobei jeder dieser Blöcke einem Ensemble von einer Mehrzahl ganzer Transferblock-Gruppen zugeordnet ist. Bei einer derartigen Organisation reduzieren sich die internen Verbindungsleitungen noch weiter, weil hierbei allen Transferblöcken dem jeweils selben Ensemble von Transferblock-Gruppen dieselben Steuersignale angelegt werden.

Schließlich sei noch erwähnt, dass die Übertragung der Daten und Strobesignale zwischen den Transferblöcken und der Verteilerschaltung innerhalb des Controllers auch über bidirektionale Kanäle laufen kann. Hierbei reduziert sich die Anzahl der betreffenden Anschlüsse und Verbindungsleitungen auf die Hälfte. Natürlich muss in diesem Fall für jeden Anschluss eine Umschalteinrichtung (z.B. selektiv einschaltbare Sende- und Empfangstreiber) vorgesehen werden, um die Anschlüsse zwischen den internen Schreib- und Lesekanälen umzuschalten.


Anspruch[de]
Speichercontroller (200; 300) für den Datenaustausch zwischen einer digitalen Speicheranordnung (RAMs) und einem Partner, mit einer an den Partner anzuschließenden Verteilerschaltung (120) und einer Mehrzahl m ≥ 2 paralleler Transferblöcke (210; 310), deren jeder ausgebildet ist zur Übertragung von Datenwörtern, welche jeweils aus n parallelen Datenbits bestehen, und deren jeder enthält:

eine erste Schnittstellenseite, die Datenanschlüsse aufweist zum Senden und Empfangen von Datenwörtern (DQ bzw. DQ'), die jeweils aus n parallelen Datenbits bestehen, an die bzw. von der Speicheranordnung;

eine zweite Schnittstellenseite, die Datenanschlüsse und Strobeanschlüsse enthält, um die Datenwörter und ein jeweils begleitendes Strobesignal (DS bzw. DS'), welches die Zeitreferenz für die Abtastung der Datenwörter vorgibt, zwischen dem Transferblock und der Verteilerschaltung (120) zu übertragen;

interne Datenkanäle (31 bzw. 55a, 55b) zum Übertragen der Datenwörter zwischen den Datenanschlüssen der ersten Schnittstellenseite und den Datenanschlüssen der zweiten Schnittstellenseite,

dadurch gekennzeichnet,

dass in mindestens einer Gruppe von p ≥ 2 Transferblöcken (210-1, 210-2; 310-1, 310-2) nur einer der Transferblöcke als ein Master (210-1; 310-1) konfiguriert ist zum Übertragen der Strobesignale zwischen den Strobeanschlüssen der beiden Schnittstellenseiten dieses Transferblockes,

und dass alle anderen Transferblöcke der Gruppe jeweils als Slave (210-2; 310-2) konfiguriert sind, indem die zum Senden des Strobesignals an die Verteilerschaltung (120) vorgesehenen Strobeanschlüsse mit den betreffenden Strobeanschlüssen des Master verbunden sind.
Speichercontroller nach Anspruch 1, dadurch gekennzeichnet, dass in mindestens einem der Slaves (310-2) jeder Gruppe der Transferblöcke ein Maskierungssignal-Kanal gebildet ist zum Übertragen eines Datenmaskierungs-Signals (DM) von einem Maskierungssignal-Empfangsanschluss in der zweiten Schnittstellenseite zu einem Maskierungssignal-Sendeanschluss in der ersten Schnittstellenseite. Speichercontroller nach Anspruch 1, dadurch gekennzeichnet

dass die Gruppe von p ≥ 2 Transferblöcken (210-1, 210-2) mit einem Speicherbaustein (2*n_RAM-1) verbunden ist, der Datenanschlüsse zum Empfang und Senden von breiten Datenwörtern hat, die aus p·n parallelen Bits bestehen, und der einen Strobeanschluss hat,

wobei jeweils n Datenanschlüsse des Speicherbausteins verbunden sind mit n zugeordneten Datenanschlüssen der ersten Schnittstellenseite eines jeweils zugeordneten Transferblockes der Gruppe

und wobei der Strobeanschluss des Speicherbausteins verbunden ist mit einem Strobeanschluss der ersten Schnittstellenseite des als Master konfigurierten Transferblockes (210-1) der Gruppe.
Speichercontroller nach Anspruch 2, dadurch gekennzeichnet

dass die Gruppe von p ≥ 2 Transferblöcken (310-1, 310-2) mit einem Speicherbaustein (2*n_RAM-1) verbunden ist, der Datenanschlüsse zum Empfang und Senden von breiten Datenwörtern hat, die aus p·n parallelen Bits bestehen, und der einen Strobeanschluss und einen Maskierungsanschluss hat,

wobei jeweils n Datenanschlüsse des Speicherbausteins verbunden sind mit n zugeordneten Datenanschlüssen der ersten Schnittstellenseite eines jeweils zugeordneten Transferblockes

und wobei der Strobeanschluss des Speicherbausteins verbunden ist mit einem Strobeanschluss der ersten Schnittstellenseite des als Master konfigurierten Transferblockes (210-1) der Gruppe

und wobei der Maskierungsanschluss des Speicherbausteins verbunden ist mit dem Maskierungssignal-Sendeanschluss zum Empfangen des das Maskierungssignal übertragenden Transferblockes (310-2) der Gruppe.
Speichercontroller (200; 300) für den Datenaustausch zwischen einer digitalen Speicheranordnung (RAMs) und einem Partner, mit einer an den Partner anzuschließenden Verteilerschaltung (120) und einer Mehrzahl m ≥ 2 paralleler Transferblöcke (210; 310), deren jeder ausgebildet ist zur Übertragung von Datenwörtern, welche jeweils aus n parallelen Datenbits bestehen, und deren jeder enthält:

einen Schreibdatenkanal (31), der einen Eingang für die von der Verteilerschaltung (120) gelieferten Schreibdatenwörter (DQ'w) und einen Ausgang zum Senden dieser Datenwörter an die Speicheranordnung hat;

einen Lesedatenkanal (55a, 55b), der einen Eingang für die aus der Speicheranordnung empfangenen Lesedatenwörter und einen Ausgang zum Senden dieser Datenwörter (DQ'r) an die Verteilerschaltung (120) hat;

einen Schreibstrobekanal (41) mit einem Eingang zum Empfang eines Schreibstrobesignals (CLK_DS), welches die Zeitreferenz für die Abtastung der Schreibdatenwörter vorgibt;

eine Lesedaten-Abtasteinrichtung (55a, 55b) mit einem Abtasteingang (CP) zur Abtastung der Lesedatenwörter (DQ) durch ein Lesestrobesignal,

dadurch gekennzeichnet,

dass jeder Transferblock (210; 310) erste Konfigurationsmittel (44, 45, 46, 56a, 56b, 57a, 57b, 58) enthält, um den Transferblock wahlweise einzustellen

(a) in einer Master-Konfiguration, in welcher der Eingang des Schreibstrobekanals (41) eingestellt ist zum Empfang des von der Verteilerschaltung (120) gelieferten Schreibstrobesignals (CLK_DS), der Ausgang des Schreibstrobekanals eingestellt ist zum Senden eines Schreibstrobesignals (DS) an die Speicheranordnung, der Abtasteingang der Lesedaten-Abtasteinrichtung eingestellt ist zum Empfang eines von der Speicheranordnung gelieferten Lesestrobesignals (DS), und ein Lesestrobe-Ausgangsweg eingerichtet ist zum Senden des Lesestrobesignals (DS') an die Verteilerschaltung, oder

(b) in einer Slave-Konfiguration, die sich von der Master-Konfiguration dadurch unterscheidet, dass der Abtasteingang der Lesedaten-Abtasteinrichtung eingestellt ist zum Empfang des Lesestrobesignals, das über den Lesestrobe-Ausgangsweg eines in der Master-Konfiguration eingestellten Transferblockes läuft.
Speichercontroller nach Anspruch 5, dadurch gekennzeichnet, dass die ersten Konfigurationsmittel (44, 45, 46, 56a, 56b, 57a, 57b, 58) aus einer ersten Umschalteinrichtung bestehen, deren Schaltzustand durch den Logikwert eines ersten Modussignals (MS_MOD) einstellbar ist. Speichercontroller nach Anspruch 5 oder 6, dadurch gekennzeichnet,

dass jeder Transferblock (310) zweite Konfigurationsmittel (48a, 48b, 48c, 49) enthält, um die Slave-Konfiguration wahlweise einzustellen

(b1) in einer ersten Slave-Konfiguration, in welcher der Schreibstrobekanal (41) unwirksam ist, oder

(b2) in einer zweiten Slave-Konfiguration, in welcher der Eingang des Schreibstrobekanals (41) eingestellt ist zum Empfang eines die Schreibdatenwörter begleitenden Datenmaskierungssignals (DM') von der Verteilerschaltung (120) und der Ausgang des Schreibstrobekanals eingestellt ist zum Senden des Datenmaskierungssignals an die Speicheranordnung.
Speichercontroller nach Anspruch 7, dadurch gekennzeichnet, dass die zweiten Konfigurationsmittel (48a, 48b, 48c, 49) aus einer zweiten Umschalteinrichtung bestehen, deren Schaltzustand durch den Logikwert eines zweiten Modussignals (DM_MOD) einstellbar ist. Speichercontroller nach Anspruch 5 oder 6, dadurch gekennzeichnet,

dass in mindestens einer Gruppe von p ≥ 2 Transferblöcken nur einer der Transferblöcke als Master (210-1; 310-1) konfiguriert ist

und dass alle anderen Transferblöcke der Gruppe jeweils als Slave (210-2; 310-2) konfiguriert sind.
Speichercontroller nach Anspruch 6 oder 7, dadurch gekennzeichnet,

dass innerhalb der Gruppe von p ≥ 2 Transferblöcken nur einer der Transferblöcke in der zweiten Slave-Konfiguration eingestellt ist

und dass alle anderen als Slave konfigurierten Transferblöcke in der ersten Slave-Konfiguration eingestellt sind.
Speichercontroller nach Anspruch 9, dadurch gekennzeichnet

dass die Gruppe von p ≥ 2 Transferblöcken (210-1, 210-2) mit einem Speicherbaustein (2*n_RAM-1) verbunden ist, der Datenanschlüsse zum Empfang und Senden von breiten Datenwörtern hat, die aus p·n parallelen Bits bestehen, und der einen Strobeanschluss hat,

wobei die Datenanschlüsse des Speicherbausteins verbunden sind zum Empfangen und Senden von jeweils n parallelen Bits der breiten Datenwörter von jedem bzw. an jeden der p Transferblöcke

und wobei der Strobeanschluss verbunden ist zum Empfangen des Schreibstrobesignals (DS) vom Ausgang des Schreibstrobekanals (41) des als Master konfigurierten Transferblockes (210-1) und Senden des Lesestrobesignals an den Eingang des Lesestrobekanals (57a, 57b) dieses Transferblockes.
Speichercontroller nach Anspruch 10, dadurch gekennzeichnet

dass die Gruppe von p ≥ 2 Transferblöcken (310-1, 310-2) mit einem Speicherbaustein (2*n_RAM-1) verbunden ist, der Datenanschlüsse zum Empfang und Senden von breiten Datenwörtern hat, die aus p·n parallelen Bits bestehen, und der einen Strobeanschluss hat,

wobei die Datenanschlüsse des Speicherbausteins verbunden sind zum Empfangen und Senden von jeweils n parallelen Bits der breiten Datenwörter von jedem bzw. an jeden der p Transferblöcke

und wobei der Strobeanschluss verbunden ist zum Empfangen des Schreibstrobesignals (DS) vom Ausgang des Schreibstrobekanals (41) des als Master konfigurierten Transferblockes (310-1) und Senden des Lesestrobesignals an den Eingang des Lesestrobekanals (57a, 57b) dieses Transferblockes.

und wobei der Maskierungsanschluss verbunden ist zum Empfangen des Datenmaskierungssignals (DM) von dem dieses Signal übertragenden Transferblock (310-2).






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com