-
Die
Erfindung betrifft ein Speichermodul, ein zugehöriges Speichersystem und zugehörige Betriebsverfahren.
-
Herkömmliche
Hostsysteme wie Server, Personalcomputer (PCs), Notebook-PCs und
persönliche
digitale Assistenten (PDAs) umfassen häufig eine Mehrzahl von Speicherbauelementen,
welche operativ in ein oder mehrere Speichermodule gruppiert werden.
Speichermodule werden typischerweise auf einer kleinen gedruckten
Leiterplatte (PCB) implementiert, z.B. auf einer Tochterplatine,
welche über
eine korrespondierende Mehrzahl von Schlitzverbindern zur mechanischen
und elektrischen Verbindung mit einer größeren gedruckten Leiterplatte (PCB),
z.B. einer Hauptplatine bzw. einem Motherboard, eingerichtet ist.
-
1 zeigt
eine allgemeine Anordnung von Speichermodulen MMO bis MMn auf einem
Motherboard mit einem korrespondierenden Chipsatz. Der Begriff „Chipsatz" wird in der vorliegenden
Beschreibung verwendet, um eine Ansammlung von herkömmlichen
Takt-, Steuer- und/oder Treiberschaltungen zu bezeichnen. Diese
Schaltungen können
in einer einzelnen integrierten Schaltungspackung, d.h. in einem
Chip, oder in einer Familie von zugehörigen Chips implementiert sein.
Diese Schaltungen können viele
verschiedene Formen annehmen. Ein Chipsatz kann beispielsweise eine
Speichersteuerschaltung, eine Buswiedertreiberschaltung, eine Phasen-
oder Verzögerungsregelkreisschaltung,
Leistungsversorgungsschaltungen und/oder eine Taktsignalgenerafior-
oder Taktsignalpufferschaltung umfassen. Der Begriff Chipsatz subsumiert
jedoch mindestens die Schaltungen, die ein externes Taktsignal ECLK
für die
Speichermodule und die verschiedenen Steuer-/Adressensignale (C/A-Signale) bereitstellen,
welche üblicherweise
Speicherbauelementen zur Verfügung
gestellt werden, die auf den Speichermodulen montiert sind.
-
In
praktischen Implementierungen können das
externe Taktsignal und potentiell einige oder alle der Steuer-/Adressensignale,
welche an die Speichermodule angelegt werden, entsprechende Differenzsignale
sein. Die Verwendung von Differenzsignalen innerhalb von Speichersystemen
mit Speichermodulen ist allgemein bekannt und braucht daher hier
nicht im Detail beschrieben werden, und in den Zeichnungen wird
eine Überfrachtung
mit einer Darstellung zahlreicher Differenzsignale vermieden. Die nachfolgende
Beschreibung von beispielhaften Takt- und Steuer/Adressen-/Datensignalen
umfasst die Verwendung von einem oder mehreren Differenzsignalen,
wie sie von einem Speichersystementwickler vorgesehen werden kann.
-
In ähnlicher
Weise ist die allgemeine Verwendung von Steuer/Adressensignalen
sowie von Dateneingabe-/Datenausgabesignalen (E/A- bzw. I/O-Signalen)
in Verbindung mit Speichersystemen bekannt, welche Speichermodule
umfassen. Dem Fachmann ist bekannt, dass die Festlegung von Adressensignalen,
Adressensignalleitungen, Steuersignalen, Steuersignalleitungen,
Datensignalen und/oder Datensignallei tungen getrennte Punkte bei der
Entwurfswahl sind. Die Adressen-, Steuer- und/oder Datensignale
können
auf gemeinsamen Datenleitungen gemultiplext und/oder eigens einem oder
mehreren Sätzen
von zugewiesenen Signalleitungen zugeordnet werden. Datenworte,
welche durch Adressensignale definiert und durch Datensignale bereitgestellt
werden, können
vom Systementwickler auf irgendeine passende Weise definiert werden.
-
Individuelle
Chipauswahlsignale (CS-Signale) werden normalerweise durch den Chipsatz
zur Verfügung
gestellt, um einen oder mehrere Vorgänge mit einem bestimmten Speichermodul
auszulösen oder
abzuschließen.
Jedes Speichermodul umfasst typischerweise eine Mehrzahl von Speicherbauelementen,
z.B. DRAM, SRAM, SDRAM usw. In älteren herkömmlichen
Implementierungen verwenden Speichermodule, welche auf DRAMs basieren,
eine Stichleitungsbustopologie, die erfordert, dass Datensignale
von einer zugeordneten Speichersteuerschaltung auf die Datensignalleitungen
von jedem auf dem Speichermodul angeordneten DRAM gegeben werden.
Diese Topologie resultiert in der Verwendung von sehr breiten Datenbussen.
-
Mit
der Entwicklung von Server- und PC-Entwürfen entstand ein zunehmender
Bedarf an immer mehr Signalleitungsverbindungen und mit der weiteren
Zunahme der Betriebsgeschwindigkeit von Speichersystemen mit Speichermodulen
haben sich herkömmliche
Verbindungsarchitekturen als unhandlich erwiesen und die Qualität der Datensignale
hat sich aufgrund von Problemen mit Signalleitungsimpedanzfehlanpassung,
Rauschen, reduzierten Signalschwellwerten und schwingenden Spannungen
verschlechtert. Daraus resultiert, dass Speichersystementwickler
mit der Wahl zwischen einer begrenzten Speicherdichte, um Datenfehler
bei hohen Betriebsgeschwindigkeiten zu reduzieren, oder dem Akzeptieren
von niedrigeren Betriebsgeschwindigkeiten konfrontiert waren, um
eine hohe Datendichte zu erreichen.
-
Um
diese schwierige Wahl zu vermeiden, haben Speichersystementwickler
alternative Speicherarchitekturen entwickelt, um die Stichleitungsbustopologie
zu ersetzen. Ein üblicher
Ansatz, welcher in vielen dieser alternativen Speicherarchitekturen
verwendet wird, besteht darin, ein Register, welches auch als Puffer
bezeichnet wird, zwischen jedem der Speichermodule und dem Chipsatz,
welcher z.B. eine Speichersteuerschaltung umfasst, zur Verfügung zu
stellen. Das Register reduziert elektrische Lasten des Chipsatzes,
um die Integrität
der assoziierten Datensignale zu verbessern, und es ermöglicht zudem,
dass jedes Speichermodul in einer Punkt-zu-Punkt-Weise Daten senden
und empfangen kann. In anderen Worten ausgedrückt, das verwendete Register
ermöglicht
eine serielle Kommunikation zwischen dem Speichermodul und dem Chipsatz.
-
Eine
serielle Kommunikation kann beispielsweise über eine paketbasierte Übertragung
zwischen dem Chipsatz und den entsprechenden Registern in den Speichermodulen
innerhalb des Speichersystems realisiert werden. Verschiedene herkömmliche Signalführungs-
oder Umschaltmechanismen können
verwendet werden, um die Pakete zu erzeugen, zu senden und/oder
zu empfangen.
-
Zusätzlich reduzieren
die Register, um Verzerrungs- und Rauschanteile in den vom Chipsatz gesendeten
und empfangenen Datensignalen zu reduzieren, auch die erforderliche
Anzahl von Anschlüssen,
z.B. der Signalleitungsverbindungen, für das Speichersystem und ermöglichen
eine höhere Übertragungsrate
zwischen dem Chipsatz und den einzelnen Speichermodulen.
-
2 zeigt
eine Speicherarchitektur, bei welcher jedes Speichermodul ein Register
umfasst, welches dafür
eingerichtet ist, wenigstens eine Mehrzahl von Steuer-/Adressensignalen
(C/A-Signale) vom Chipsatz und einer Mehrzahl von Speichermodulen
MMO bis MMn zu empfangen und/oder zum Chipsatz oder zur Mehrzahl
von Speichermodulen MMO bis MMn zu senden. Ein externes Taktsignal ECLK
wird jedem Speichermodul vom Chipsatz zur Verfügung gestellt und Datensignale
werden vom Chipsatz und der Mehrzahl von Speichermodulen MMO bis
MMn über
einen oder mehrere Datenbusse empfangen und/oder gesendet. Allgemein
ausgedrückt,
verwendet jedes Speichermodul die Steuer/Adressensignale (C/A-Signale),
um auf seine Speicherbauelemente zuzugreifen und so Daten zu speichern,
d.h. zu schreiben, oder abzurufen, d.h. zu lesen.
-
Eine
Anzahl von bekannten Speicherarchitekturen sehen Register in den
Speichermodulen vor. Diese umfassen vollständig gepufferte Dual-In-Line-Speichermodule
(FBDIMM), Register-Dual-In-Line-Speichermodule (RDIMM) und Register-In-Line-Speichermodule
(RIMM), um einige zu nennen. Zusammenfassend wird diese Klasse von Speicherarchitekturen,
in welchen wenigstens ein Speichermodul ein Register aufweist, welches
dafür ausgelegt
ist, mit einem Chipsatz zu kommunizieren, nachfolgend generisch
als „Registerspeicher" bezeichnet. Analog
wird nachfolgend ein Speichermodul, welches ein solches Register
umfasst, allgemein als „Register-Speichermodul" bezeichnet.
-
3 zeigt
ein Speichermodul 302 in einem herkömmlichen Register-Speichersystem 300.
Unter Bezugnahme auf 3 umfasst das Speichermodul 302 eine
Phasenregelkreisschaltung 303, welche ein externes Taktsignal
ECLK von einem Chipsatz 301 empfängt und ein erstes und zweites
internes Taktsignal ICLK1 und ICLK2 in Synchronisation mit dem externen
Taktsignal erzeugt. Es sei angemerkt, dass in bestimmten Ausführungsformen
das Taktsignal ICLK1 eine Mehrzahl von internen Takten umfassen kann,
welche jeweils für
entsprechende Anwendungen von einem oder mehreren Speicherbauelementen 305 konfiguriert
sind. Weiter umfasst das Speichermodul 302 ein Register 304,
welches ex terne Steuer-/Adressensignale EC/A vom Chipsatz 301 und
das zweite interne Taktsignal ICLK2 empfängt und in Reaktion auf das
zweite interne Taktsignal ICLK2 interne Steuer-/Adressensignale
IC/A erzeugt. Des Weiteren umfasst das Speichermodul 302 das oder
die Speicherbauelemente 305, welche die internen Steuer-/Adressensignale
und das erste interne Taktsignal ICLK1 empfangen und über einen
Datenbus gemäß den internen
Steuer-/Adressensignalen und dem ersten internen Taktsignal ICLK1
Daten zum Chipsatz 301 übertragen
oder vom Chipsatz 301 empfangen.
-
Damit
das Speichermodul 302 richtig funktioniert, sollten das
externe Taktsignal, das erste interne Taktsignal und das zweite
interne Taktsignal die gleiche Phase aufweisen, wenn sie jeweils
in der Phasenregelkreisschaltung 303, in einem oder mehreren der
Speicherbauelemente 305 oder im Register 304 abgetastet
werden, z.B. an den in 3 dargestellten Punkten P1,
P2 und P3. Entsprechend sollten eine Signalleitung L1, welche das
erste interne Taktsignal überträgt und eine
zweite Signalleitung L2, welche das zweite interne Taktsignal überträgt, im Wesentlichen
die gleichen Verzögerungseigenschaften
aufweisen, d.h. sie sollten die gleichen Signallaufzeiten aufweisen.
-
Die
internen Steuer-/Adressensignale sollten an jedem der Speicherbauelemente 305 im
Wesentlichen zum gleichen Zeitpunkt ankommen. In anderen Worten
ausgedrückt,
kein Speicherbauelement 305 sollte die internen Steuer-/Adressensignale
vor den anderen der Speicherbauelemente 305 empfangen.
Eine Umsetzungsmöglichkeit
besteht darin, eine Signalleitung L3, welche das Register 304 mit
den Speicherbauelementen 305 verbindet, in einer Signalleitungstopografie
vom H-Baum-Typ anzuordnen. Eine beispielhafte H-Baum-Topologie ist
in 4 dargestellt. Die H-Baum-Topologie umfasst eine
hierarchische Anordnung von Signalleitungen, welche erlaubt, dass
ein Signal grob zum selben Zeitpunkt auf eine Anzahl von verschiedenen
Zielpunkten verteilt wird. Zu dem versucht die H-Baum-Topologie,
die mit der Signalübertragung
verbundene Signalverzerrung durch Ausgleichen entsprechender Signalleitungsimpedanzen
zu minimieren.
-
Die
internen Steuer-/Adressensignale werden von den Speicherbauelementen 305 zu
Zeitpunkten periodisch abgetastet, welche vom ersten internen Taktsignal
bestimmt werden. Um die internen Steuer/Adressensignale verlässlich abzutasten,
sollten Aufbau- und Haltezeiten der internen Steuer-/Adressensignale
relativ zum ersten internen Taktsignal lang genug sein, um sicherzustellen,
dass die internen Steuer-/Adressensignale stabil sind, wenn die
Abtastung erfolgt. Hierbei ist die Aufbauzeit als Intervall zwischen
einem vorherigen Übergang
der internen Steuer-/Adressensignale und einem Abtastvorgang definiert,
und die Haltezeit ist als Intervall zwischen dem Abtastvorgang und
einem nächsten Übergang
der internen Steuer-/Adressensignale definiert.
-
Unter
Berücksichtigung
der bisherigen herkömmlichen
Ausführungsbeispiele
wird der Fluss von Steuer-/Adressensignalen vom Chipsatz über das Register
und weiter zu individuellen Speicherbauelementen näher betrachtet.
-
Idealerweise
sind die Aufbau- und Haltezeitperioden für die internen Steuer-/Adressensignale gleich.
Das bedeutet, dass die mit der Speicherung der externen Steuer-/Adressensignale
im Register assoziierte Aufbauzeitspanne und die Haltezeitspanne,
während
der die internen Steuer-/Adressensignale auf einem Signalleitungsbus
präsentiert
werden, welcher das Register mit den Speicherbauelementen verbindet,
ausgeglichen werden und daher jeweils gleich der halben Periodendauer
des externen Taktsignals sind. Dieses ausgeglichene Verhältnis zwischen
den Aufbau- und Haltzeitspannen ermöglicht, dass das interne Steuer/Adressensignal
während
der halben externen Taktsignalperiode stabilisiert wird, bevor es
von einem oder mehreren Speicherbauelementen abgetastet wird. Ist
entweder die Aufbauzeitspanne oder die Haltezeitspanne relativ zur
Frequenz des externen Taktsignals zu kurz, dann wird es wahrscheinlicher,
dass die internen Steuer-/Adressensignale falsche oder instabile
Steuer- und/oder Adresseninformationen an die Speicherbauelemente 305 kommunizieren.
-
Das
stabile Aufrechterhalten der Aufbau- und Haltezeitperioden wird
weiter durch die begleitenden Leistungsfähigkeitserwartungen kompliziert, welche
mit modernen Speichersystemen verbunden sind. Eine solche Erwartung
betrifft die Bereitstellung von verschiedenen Betriebsfrequenzen
innerhalb eines Speichersystems. Allgemein ist es wünschenswert,
dass ein Speichersystem in der Lage ist, mit verschiedenen Frequenzen
zu arbeiten, so dass es mit Prozessoren oder Hostgeräten verwendet
werden kann, die mit verschiedenen Frequenzen arbeiten. Als Beispiel
wird der Effekt eines Wechsels der Betriebsfrequenz auf die Steuer-/Adressensignaldynamik
eines typischen herkömmlichen
Speichersystems betrachtet. Die 5 und 6 zeigen
Signalverläufe
im Zeitablaufdiagramm, welche die Funktionsweise eines herkömmlichen
Registerspeichers 300 mit Betriebsfrequenzen von 400MHz
bzw. 200MHz darstellen. Durch Vergleichen der in den 5 und 6 dargestellten
Signalverläufe
kann der Effekt eines Wechsels der Betriebsfrequenz eines Speichersystems
auf die Signaldynamik der verwendeten Registerspeichermodule erkannt
werden.
-
5 zeigt
die Funktionsweise des beispielhaften Speichersystems bei einer
Betriebsfrequenz von 400MHz, was in einem externen Taktsignal mit einer
Periodendauer von 2,5ns resultiert. Da vorausgesetzt wird, dass
das beispielhafte Speichersystem auf den Betrieb mit 400MHz optimiert
ist, betragen die resultierenden Aufbau- und Haltezeiten jeweils 1,25ns.
-
In 5 zeigt
ein Signal C/A_Rin das Timing, das mit der Eingabe der externen
Steuer-/Adressensignale EC/A in das Register 304 assoziiert
ist. Die externen Steuer-/Adressensignale werden mit einer ansteigenden
Flanke des zweiten internen Taktsignals ICLK2 als Signal C/A_Rin
im Register 304 gespeichert. Ein Signal IC/A_Min zeigt
das Timing, das mit der Ausgabe des Signals C/A_Rin aus dem Register 304 als
interne Steuer-/Adressensignale IC/A und mit der Eingabe der internen
Steuer/Adressensignale in die Speicherbauelemente 305 assoziiert
ist. Die Speicherbauelemente 305 tasten das Signal IC/A_Min
an einer ansteigenden Flanke des ersten internen Taktsignals ICLK1
ab.
-
Daher
ist eine Verzögerungsperiode
tpdf erforderlich, um das Signal C/A_Rin als interne Steuer-/Adressensignale
auszugeben und an die Speicherbauelemente 305 anzulegen.
Diese Verzögerungsperiode
umfasst eine Verzögerung,
welche mit einem Intervallbetrieb des Registers 304 assoziiert
ist, wie z.B. mit einer Verzögerung
d_REG oder einer Zeitspanne, welche erforderlich ist, um die internen
Steuer/Adressensignale nach Empfang des Signals C/A_Rin auszugeben,
und eine weitere Verzögerung,
welche mit der Laufzeitverzögerung
der Signalleitung L3 assoziiert ist, wie z.B. mit einer Laufzeitverzögerung d_L3
oder der Signallaufzeit der internen Steuer-/Adressensignale vom
Register 304 zu den Speicherbauelementen 305.
-
Mit
der Optimierung des beispielhaften Speichersystembetriebs gemäß 5 auf
400MHz ist die Verzögerungsperiode
auf 1,25ns oder die halbe Periodendauer des externen Taktsignals
ausgelegt. Daraus resultiert, dass die Aufbauzeitspanne ts und die Haltezeitspanne
th ebenfalls beide gleich der halben Periodendauer des externen
Taktsignals sind. im dargestellten Beispiel wird die Verzögerungsperiode durch
Setzen der Registerverzögerung
d_REG des Registers 304 auf 0,5ns und der Laufzeitverzögerung d_L3
der Signalleitung L3 auf 0,75ns auf 1,25ns eingestellt. Alternativ
kann die Registerverzögerung
d REG auf 0,75ns und die Laufzeitverzögerung d_L3 der Signalleitung
d_L3 auf 0,5ns gesetzt werden. Auf beide Arten kann die Verzögerungsperiode
tpdf genau auf die gewünschte
Zeitdauer von einer halben Periodendauer des externen Taktsignals
von z.B. 1,25ns festgelegt werden.
-
Nun
sei ein Wechsel der Betriebsfrequenz des in 5 dargestellten
Betriebs des beispielhaften Systems von 400MHz auf 200MHz angenommen.
Die Ergebnisse dieses Wechsels sind in 6 dargestellt.
Wie aus 6 ersichtlich ist, bleibt die aufgebaute
Verzögerungsperiode
tpdf auf 1,25ns gesetzt. Daraus resultiert, dass die Aufbauzeitspanne
ts einen Wert von 3,75ns annimmt und die Haltezeitspanne th auf
1,25ns verbleibt. Da die Haltezeitspanne relativ zur Betriebsfrequenz,
welche durch das externe Taktsignal bestimmt wird, sehr kurz ist,
ist es möglich,
dass ein oder mehrere der Speicherbauelemente 305 die internen
Steuer-/Adressensignale, welche vom Register 304 ausgegeben
werden, nicht mehr richtig empfangen.
-
Eine
mögliche
Lösung
dieses Problems besteht darin, die Verzögerungsperiode so einzustellen, dass
die Aufbauzeitspanne und die Haltezeitspanne auf die halbe Periodendauer
des externen Taktsignals ausgeglichen sind. Da die Verzögerungsperiode durch
die Summe der Registerverzögerung
und der Laufzeitverzögerung
der Leitung L3 bestimmt wird, kann diese durch Modifizierung von
einem der beiden Werte verändert
werden. Die Registerverzögerung
ist jedoch eine intrinsische Eigenschaft des Registers 304,
welche nur durch eine physikalische Veränderung oder Neukonfigurierung
des Registers 304 modifiziert werden kann. Daher ist es
nicht möglich,
die Registerverzögerung
dynamisch zu verändern,
um zu ermöglichen,
dass das Registerspeichersystem 300 mit einer anderen Frequenz
arbeitet. Eine Änderung
der Registerverzögerung
erfordert die Einbindung des Herstellers des Registers 304.
Dies gestaltet sich praktisch sehr schwierig, da Speichermodulhersteller
viele verschiedene Register von verschiedenen Registerherstellern
beziehen.
-
Andererseits
kann die Laufzeitverzögerung dynamisch
verändert
werden, um die Verzögerungsperiode
einzustellen. Zwei herkömmliche
Lösungen zum
Einstellen der Verzögerungsperiode
durch Verändern
der Laufzeitleitungsverzögerung
sind in der Offenlegungsschrift US 2003/02211044 und der Patentschrift
US 6.754.112 beschrieben.
In beiden Dokumenten umfasst das Register
304 eine Verzögerungsschaltung,
z.B. einen Verzögerungsregelkreis, welcher
umprogrammiert werden kann, um die Laufzeitleitungsverzögerung einzustellen,
wenn die Betriebsfrequenz des Registerspeichers
300 geändert wird.
-
Leider
erzeugt die Einbindung einer umprogrammierbaren Verzögerungsschaltung
in das Register 304 wenigstens zwei Probleme. Erstens werden
die Herstellungskosten und möglicherweise
die Größe des Registers 304 erhöht. Zweitens
ist ein weiterer Schritt im Programmierprozess erforderlich, um
die Betriebsfrequenz des verwendeten Registerspeichersystems zu ändern. Dieser
zusätzliche Schritt
ist unerwünscht,
da die Betriebsfrequenzauswahl für
ein Speichersystem für
das Hostsystem so nahtlos und transparent wie möglich sein sollte.
-
Es
ist Aufgabe der Erfindung, ein Speichermodul, ein Speichersystem
und zugehörige
Betriebsverfahren anzugeben, welche in vorteilhafter Weise mit einer
Vielzahl von Prozessoren von Hostsystemen und mit mehreren Betriebsfrequenzen
verwendet werden können,
wobei sich bei einem Wechsel der Betriebsfrequenz die internen Signaldynamikeigenschaften
wenig oder gar nicht verschlechtern und kein zusätzlicher Programmieraufwand
erforderlich ist.
-
Die
Erfindung löst
diese Aufgabe durch ein Speichermodul mit den Merkmalen des Patentanspruchs
1, ein Speichersystem mit den Merkmalen des Patentanspruchs 13,
ein Speichermodul-Betriebsverfahren mit den Merkmalen des Patentanspruchs
14, 19 oder 21 und ein Speicher system-Betriebsverfahren mit den
Merkmalen des Patentanspruchs 24 oder 26.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte,
nachfolgend beschriebene Ausführungsformen
der Erfindung sowie die zu deren besserem Verständnis oben erläuterten,
herkömmlichen
Ausführungsbeispiele
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
Blockdiagramm einer herkömmlichen
Anordnung von Speichermodulen auf einem Motherboard mit einem korrespondierenden
Chipsatz,
-
2 ein
Blockdiagramm einer herkömmlichen
Anordnung von Registerspeichermodulen auf einem Motherboard mit
einem korrespondierenden Chipsatz,
-
3 ein
Blockdiagramm eines herkömmlichen
Registerspeichermoduls,
-
4 ein
Blockdiagramm eines herkömmlichen
Registerspeichermoduls mit einer Mehrzahl von Speicherbauelementen,
welche Steuer-/Adressensignale über
Leitungen empfangen, die in einer H-Baum-Topologie konfiguriert
sind,
-
5 ein
Zeitablaufdiagramm mit Signalverläufen, welche die Funktionsweise
des herkömmlichen
Registerspeichermoduls gemäß 4 bei
einer Frequenz von 400MHz darstellen,
-
6 ein
Zeitablaufdiagramm mit Signalverläufen, welche die Funktionsweise
des herkömmlichen
Registerspeichermoduls gemäß 4 bei
einer Frequenz von 200MHz darstellen,
-
7 ein
Blockdiagramm eines Ausführungsbeispiels
eines erfindungsgemäßen Registerspeichermoduls
und eines begleitenden Chipsatzes,
-
8 ein
Zeitablaufdiagramm von Signalverläufen, welche die Funktionsweise
des Registerspeichermoduls gemäß 7 bei
einer Frequenz von 400MHz darstellen,
-
9 ein
Zeitablaufdiagramm von Signalverläufen, welche die Funktionsweise
des Registerspeichermoduls gemäß 7 bei
einer Frequenz von 200MHz darstellen,
-
10 ein
Blockdiagramm eines weiteren Ausführungsbeispiels eines erfindungsgemäßen Registerspeichermoduls
und eines begleitenden Chipsatzes,
-
11 ein
Blockdiagramm eines weiteren Ausführungsbeispiels eines erfindungsgemäßen Registerspeichermoduls
und eines begleitenden Chipsatzes und
-
12 ein
Flussdiagramm eines Verfahrens zum Übertragen von internen Steuer-/Adressensignalen
von einem Register zu einer Mehrzahl von Speicherbauelementen, welche
in einem Speichermodul angeordnet sind, gemäß der Erfindung.
-
Neben
anderen Aspekten betreffen nachfolgend beschriebene Ausführungsformen
der Erfindung Speichersysteme mit Registerspeichermodulen. Diese
Speichersysteme steuern das Timing der Registerspeicher module, nachfolgend
auch einfach als Speichermodule bezeichnet, mit einem externen Taktsignal.
Im Gegensatz zu herkömmlichen
Speichermodulen ermöglichen
die nachfolgend beschriebenen Speichermodule der Erfindung, dass
die Frequenz des externen Taktsignals verändert werden kann, ohne ein
oder mehrere interne Register der Speichermodule auszutauschen oder
umzuprogrammieren, welche dafür
eingerichtet sind, die Verzögerung
der für
die verwendeten Speicherbauelemente bereitgestellten Steuer-/Adressensignale
zu steuern. In den Zeichnungen bezeichnen gleiche Bezugszeichen
Elemente, Komponenten bzw. Schritte, welche gleiche bzw. analoge
Funktionen ausführen.
-
Jedes
Speichermodul umfasst typischerweise einen internen Taktgenerator,
welcher ausgeführt ist,
eine Mehrzahl von internen Taktsignalen im Bezug auf das externe
Taktsignal zu erzeugen, das von einem begleitenden Chipsatz empfangen
wird. Dieser interne Taktgenerator kann unter Verwendung von herkömmlichen
Schaltungen auf verschiedene Arten implementiert werden. So kann
beispielsweise eine Phasenregelkreisschaltung (PLL), eine Verzögerungsregelkreisschaltung
(DLL) oder eine Taktpufferschaltung verwendet werden, um die internen Taktsignale
zu erzeugen.
-
Zudem
umfasst jedes Speichermodul typischerweise ein Register, welches
ausgeführt
ist, wenigstens eines der Mehrzahl von internen Taktsignalen zu
empfangen. Das Register ist weiter ausgeführt, die externen Steuer-/Adressensignale
zu empfangen und die internen Steuer/Adressensignale gemäß einer
zeitlichen Dynamik, die von einem oder mehreren der internen Taktsignale
gesteuert wird, einer Mehrzahl von Speicherbauelementen zur Verfügung zu
stellen. Wie bereits ausgeführt
wurde, kann das externe Taktsignal und/oder irgendeines der internen
Taktsignale ein Differenzpaar von Taktsignalen umfassen, wie die
herkömmlichen,
bei einer Hochgeschwindigkeits-Differenzsignaltechnik verwendeten
Signale.
-
Als
ein Ausführungsbeispiel
sei das in 7 dargestellte erfindungsgemäße Speichersystem 700 betrachtet.
Aus Gründen
der Klarheit ist das Speichersystem 700 nur mit einem Speichermodul 702 dargestellt,
welches mit einem Chipsatz 701 verbunden ist. Das Speichermodul 702 umfasst
einen Taktgenerator 703, ein Register 704 und
eine Mehrzahl von Speicherbauelementen 705. Wie das herkömmliche
Registerspeichermodul empfängt
das Speichermodul 702 das externe Taktsignal ECLK und externe Steuer-/Adressensignale
EC/A vom Chipsatz 701. Zusätzlich überträgt das Speichermodul 702 über einen
Datenbus Daten DATA an den Chipsatz 701 und empfängt Daten
vom Chipsatz 701.
-
Im
dargestellten Ausführungsbeispiel
empfängt
der Taktgenerator 703 das externe Taktsignal und erzeugt
in Bezug auf das externe Taktsignal ECLK ein erstes, zweites und
drittes internes Taktsignal ICLK1, ICLK2 und ICLK3 bzw. leitet diese
daraus ab. Diese Ableitung bzw. Erzeugung der internen Taktsignale,
z.B. der Eingabe- und Ausgabetaktsignale, kann durch die Verwendung
von zusätzlichen herkömmlichen
Komponenten und Elementen umgesetzt werden, welche mit dem Taktgenerator 703 assoziiert
sind. Als Minimum umfasst der Taktgenerator 703 allgemein
eine Schaltung, welche dafür
eingerichtet ist, das erste, zweite und dritte interne Taktsignal
mit dem externen Taktsignal zu synchronisieren. Das in 7 dargestellte
Ausführungsbeispiel
setzt voraus, dass der Taktgenerator 703 wenigstens eine Phasenregelkreisschaltung
(PLL) umfasst.
-
Im
dargestellten Ausführungsbeispiel
weist das externe Taktsignal die gleiche Phase wie das erste und
zweite interne Taktsignal auf, wenn an Punkten P1, P2 bzw. P3 abgetastet
wird. Die Phase des dritten internen Taktsignals, welches an einem
Punkt P4 abgetastet wird, eilt jedoch dem externen Taktsignal voraus.
Daraus resultiert, dass das dritte interne Taktsignal auch gegenüber dem
ersten und zweiten internen Takt signal um eine ähnliche Phasen- oder Verzögerungsbeziehung
voreilt. Da die in der Beschreibung verwendeten Taktsignale der
Ausführungsbeispiele
alle als regulär
periodisch vorausgesetzt werden, versteht sich für den Fachmann, dass ein relativer,
vorauseilender oder nacheilender Phasenunterschied zwischen verschiedenen
Taktsignalen durch Einführen
oder Beibehalten einer „Verzögerung" zwischen den verschiedenen
Taktsignalen entwickelt werden kann. Daher kann ein Taktsignal durch
einen berechneten Einbau einer definierten Verzögerung in eines oder beide
Taktsignale so eingestellt werden, dass es gegenüber einem anderen, vorher synchronen
Taktsignal voreilt.
-
Das
Register 704 empfängt
das zweite und dritte interne Taktsignal und die externen Steuer-/Adressensignale
und stellt den Speicherbauelementen 705 die internen Steuer-/Adressensignale zur
Verfügung.
Bei einem Beispiel werden die internen Steuer-/Adressensignale ausschließlich als
zwischengespeicherte oder gepufferte, d.h. als gespeicherte oder
nachfolgend ausgegebene, Versionen der externen Steuer/Adressensignale
vom Register 704 zur Verfügung gestellt. Bei einem anderen
Beispiel werden die externen Steuer-/Adressensignale hinsichtlich
ihrer Frequenz und/oder ihres Signalschwellwertes vom Register 704 konditioniert,
bevor diese als interne Steuer-/Adressensignale den Speicherbauelementen 705 zur
Verfügung
gestellt werden. In jedem dieser speziellen Beispiele sowie in vielen
anderen dem Fachmann bekannten Beispielen werden die internen Steuer-/Adressensignale
als aus den externen Steuer-/Adressensignalen „abgeleitet" beschrieben.
-
Im
Ausführungsbeispiel
gemäß 7 benutzt
das Register 704 das zweite und dritte interne Taktsignal,
um die Ableitung der internen Steuer-/Adressensignale aus den externen
Steuer-/Adressensignalen zu steuern. Wie oben allgemein beschrieben,
umfassen die externen und internen Steuer-/Adressensignale ein oder
mehrere Steuersignale und/oder ein oder mehrere Adressensignale
des Typs, welcher norma lerweise an Speicherbauelemente wie DRAMs,
SDRAMs, SRAMs usw. angelegt wird, um auf Daten zuzugreifen. Die
externen und internen Steuer-/Adressensignale können beispielsweise anzeigen,
dass ein Lese- oder Schreibvorgang auszuführen ist und/oder können eine Adresse
zur Verfügung
stellen, von welcher Daten zu lesen sind oder in die Daten zu schreiben
sind.
-
Die
Speicherbauelemente 705 empfangen die internen Steuer/Adressensignale
und das erste Taktsignal und übertragen
Daten entsprechend dieser empfangenen Signale an den Chipsatz 701 oder empfangen
Daten vom Chipsatz 701. Die Speicherbauelemente 705 können beispielsweise
die internen Steuer-/Adressensignale vom Register 704 abtasten und
die Daten in Intervallen übertragen,
welche vom ersten internen Taktsignal definiert werden.
-
Das
erste interne Taktsignal wird vom Taktgenerator 703 über eine
erste Signalleitung L11 an die Speicherbauelemente 705 übertragen.
Das zweite und dritte interne Taktsignal werden vom Taktgenerator 703 über entsprechende
Signalleitungen L12 und L13 an das Register 704 übertragen.
Die aktuelle Art und der Typ dieser „Signalleitungen" können mit dem
Speichersystemdesign und der Definition der zugehörigen, zu übertragenden
Signale variieren. Eine oder mehrere dieser Signalleitungen L11,
L12 und L13 können
z.B. duale Differenzsignalleitungen umfassen.
-
Die
implementierte erste, zweite und dritte Signalleitung sind im dargestellten
Ausführungsbeispiel
jedoch durch ihre Signalausbreitungsverzögerungen, d.h. durch ihre Signallaufzeiten,
charakterisiert, welche mit „d1", „d2" bzw. „d3" bezeichnet sind. Die
internen Steuer-/Adressensignale werden über eine Signalleitung L14,
welche eine Signalausbreitungsverzögerung von „d4" aufweist, zu den Speicherbauelementen 705 übertragen.
In vielen praktischen Implementierungen der dargestellten Ausführungsform
kann die „Signalleitung" L14 einen Signalleitungsbus umfassen,
welcher eine Mehrzahl von Adressen- und/oder Steuersignalen überträgt. In solchen
Fällen
kann die Signalausbreitungsverzögerung „d4" eine Gruppennäherung der
aktuellen Ausbreitungsverzögerungen
für individuelle
Signalleitungen sein, welche die Signalleitung L14 bilden.
-
Im
dargestellten Ausführungsbeispiel
ist ein einstellbarer Kondensator 706 mit der Signalleitung L13
assoziiert, z.B. zwischen der Signalleitung L13 und Masse eingeschleift,
um die Signalausbreitungsverzögerung „d3", d.h. die Signallaufzeit
der Signalleitung L13, einzustellen. Ein einstellbarer Kondensator
ist nur eine Möglichkeit
unter einer Anzahl von „Verzögerungsschaltungen", welche mit der
Signalleitung L13 und/oder mit der Signalleitung L12 assoziiert
sein können,
um die relativen Phaseneigenschaften des zweiten und dritten internen
Taktsignals zu modifizieren, z.B. die Verzögerungen „d2" und/oder „d3" zu steuern.
-
Damit
das Speichermodul 702 verlässlich arbeitet, sollte das
Timing der internen Steuer-/Adressensignale in Bezug auf wenigstens
eines der internen Taktsignale koordiniert werden, z.B. in Bezug
auf das erste interne Taktsignal. 8 zeigt
ein Zeitablaufdiagramm von Signalverläufen, welche die Funktionsweise
des beispielhaften Speichermoduls 702 gemäß 7 darstellen.
In 8 wird angenommen, dass das Speichermodul 702 mit
einer Frequenz von 400MHz betrieben wird.
-
Unter
Bezugnahme auf 8 sind die Verzögerungen „d1", „d2", „d3" und „d4" mit 0,7ms, 0,7ms, 0,2ns
bzw. 0,5ns eingerichtet. Die externen Steuer-/Adressensignale werden
im Register 704 als Registereingabesignal C/A_Rin an der
ansteigenden Flanke des zweiten internen Taktsignals ICLK2 gespeichert.
Entsprechend Kann das zweite interne Taktsignal in diesem speziellen
Ausführungsbeispiel als „Registereingabetaktsignal" bezeichnet werden. Das
Registereingabesignal C/A_Rin wird vom Register 704 an
der abfallenden Flanke des dritten internen Takt signals ICLK3 als
ein Registerausgabesignal C/A_Rout auf der Signalleitung L14 ausgegeben.
Daher kann das dritte interne Taktsignal ICLK3 in diesem speziellen
Ausführungsbeispiel
als ein „Registerausgabetaktsignal" bezeichnet werden.
-
Die
Registerverzögerung
d_REG, welche mit dem Register 704 assoziiert ist, kann
als Intervall zwischen der ansteigenden Flanke des zweiten internen Taktsignals
und einer nachfolgenden abfallenden Flanke des dritten internen
Taktsignals definiert werden. Nach der Verzögerung durch die Kombination der
Registerverzögerung
d_REG und der Signalausbreitungsverzögerung „d4", welche mit der Signalleitung L14 assoziiert
ist, wird das Registerausgabesignal C/A_Rout in die Speicherbauelemente 705 eingegeben,
beispielsweise als ein Speicherbankeingabesignal, d.h. als interne
Steuer-/Adressensignale IC/A_Min.
-
Durch
Setzen der Verzögerung „d3" so, dass das Registerausgabesignal
C/A_Rout eine halbe Taktperiode vor der ansteigenden Flanke des
ersten internen Taktsignals in die Speicherbauelemente 705 eingegeben
wird, sind die Aufbauzeitspanne ts und die Haltezeitspanne th für das Speicherbankeingabesignal
IC/A_Min beide gleich der halben Periode des externen Taktsignals
oder gleich 1,25ns. Entsprechend sind die Speicherbauelemente 705 in
der Lage, das interne Steuer/Adressensignal verlässlich abzutasten.
-
Im
Ausführungsbeispiel
gemäß 7 werden
die Aufbauzeitspanne und die Haltezeitspanne für das interne Steuer-/Adressensignal
durch Definieren der Verzögerung „d3" auf den Wert der
Verzögerung „d1" oder „d2", welche im dargestellten
Beispiel gleich sind, abzüglich
der Verzögerung „d4" (d.h. d3 = (d1 oder „d2") – d4), effektiv
auf die halbe Periodendauer des externen Taktsignals gesetzt. Unter
Verwendung der im Zusammenhang mit dem in den 7 und 8 beschriebenen
Ausführungsbeispiel
angenommenen Verzögerungen
ist die Verzögerung „d3" gleich der Verzögerung „d1" von 0,7ns minus
der Verzögerung „d4" von 0,5ns und somit gleich
0,2ns. Um diesen Punkt im Zusammenhang mit 8 weiter
darzustellen, bezeichne t0 die ansteigende Flanke des dritten internen
Taktsignals, t1 bezeichne die ansteigende Flanke des ersten internen
Taktsignals und t2 bezeichne die fallende Flanke des dritten internen
Taktsignals nach t1. Zudem bezeichne „P" die Periodendauer des externen Taktsignals
sowie wenigstens des ersten internen Taktsignals des dargestellten
Beispiels.
-
Entsprechend
den vorherigen anschaulichen Definitionen tritt die ansteigende
Flanke des ersten internen Taktsignals um den durch die Gleichung
t1 = t0 + (d1 – d3)
definierten Verzögerungswert
nach der ersten ansteigenden Flanke des dritten internen Taktsignals
auf. Die abfallende Flanke des dritten internen Taktsignals tritt
gemäß der Gleichung
t2 = t0 + ½(P)
eine halbe Periodendauer nach der ansteigenden Flanke des gleichen
Signals auf. Entsprechend kann die Registerverzögerung d_REG zwischen der ansteigenden
Flanke des ersten internen Taktsignals und dem dritten internen
Taktsignal durch die Gleichung d_REG = t2 – t1 repräsentiert werden. Nach entsprechenden
Substitutionen gilt d_REG = t0 + ½(P) – t0 – (d1 – d3) = ½(P) – d1 + d3. Durch Einsetzen
von d3 = d1 – d4
in die vorherige Gleichung erhält man
d_REG = ½(P) – d1 + d1 – d4 oder
d_REG + d4 = ½(P).
Entsprechend resultiert die Definition von d3 = di – d4 in
einem Datenübergang
des internen Steuer-/Adressensignals IC/A_MIN bei der halben Periodendauer
nach der ansteigenden Flanke des ersten internen Taktsignals. Daraus
resultiert, dass die Aufbauzeitspanne ts und die Haltezeitspanne
th für
die internen Steuer/Adressensignale, welche zu den Speicherbauelementen 705 übertragen
werden, beide auf die halbe Periodendauer des externen Taktsignals
gesetzt werden oder gemäß dem dargestellten Ausführungsbeispiel
auf die halbe Periodendauer des korrespondierenden ersten internen
Taktsignals.
-
9 zeigt
ein analoges Zeitablaufdiagramm mit Signalverläufen, welche die Funktionsweise
des beispielhaften Speichermoduls 702 gemäß 7 bei
einer Frequenz von 200MHz oder der halben Betriebsfrequenz des vorher
unter Bezugnahme auf 8 beschriebenen Beispiels darstellt.
In 9 wird aus Gründen
der einfachen Vergleichbarkeit angenommen, dass die Verzögerungen „d1" bis „d4" gleich denen sind,
wie sie im Zusammenhang mit 8 beschrieben
wurden. Aus der bisherigen Beschreibung ergibt sich jedoch, dass
die Registerverzögerung
d_REG gemäß der Gleichung
d_REG = ½(P) – d4 variiert.
Entsprechend bleiben die Aufbau- und Haltezeitspannen, welche mit
den internen Steuer-/Adressensignale assoziiert sind, ausgeglichen auf
der halben Periodendauer des externen Taktsignals oder des ersten
internen Taktsignals, auch wenn die Betriebsfrequenz des beispielhaften
Speichermoduls geändert
wurde.
-
10 veranschaulicht
im Schaltbild ein anderes Ausführungsbeispiel
eines erfindungsgemäßen Speichermoduls 1002 und
eines begleitenden Chipsatzes 701. Unter Bezugnahme auf 10 ist das
Speichermodul 1002 ähnlich
dem Speichermodul 702, außer dass kein separates drittes
internes Taktsignal vom Taktsignalgenerator 703 erzeugt
wird. Stattdessen wird ein drittes internes Taktsignal ICLK3 aus
dem zweiten internen Taktsignal ICLK2 abgeleitet. Wie aus 10 ersichtlich
ist, kann eine dritte Signalleitung L13 beispielsweise zwischen
der zweiten Signalleitung L12, welche an einen ersten Taktsignaleingang
P4 des Registers 704 angeschlossen ist, und einem zweiten
Taktsignaleingang P3 eingeschleift werden. Eine Verzögerungsschaltung,
z.B. 1003, kann mit der zweiten Signalleitung L12 und/oder
mit der dritten Signalleitung L13 assoziiert sein.
-
11 veranschaulicht
im Schaltbild ein weiteres Ausführungsbeispiel
eines erfindungsgemäßen Speichermoduls 1102.
Unter Bezugnahme auf 11 ist das Speichermodul 1102 ähnlich dem Speichermodul 702 gemäß 7,
außer
dass alle Signalleitungen im Speichermodul 1102 Differenzsignalpaare
umfassen. Das externe Taktsignal ECLK ist beispielsweise als differenzielles
externes Taktsignalpaar dargestellt, welches auf einem Differenztaktsignalleitungspaar übertragen
wird. Analog ist die Signalleitung L11 als „m" Differenztaktsignalleitungspaare ausgeführt, welche
m interne Taktsignalpaare übertragen,
wobei „m" der Anzahl der Speicherbauelemente
im Speichermodul 705 entspricht. Die Signalleitungen L12
und L13 sind als Differenztaktsignalleitungspaare dargestellt, welche
interne Taktsignalpaare übertragen.
Die Signalleitung L14 umfasst „n" Differenzsignalleitungspaare,
wobei „n" einer Busbreite
für die
Signalleitung L14 entspricht. Schließlich umfassen die Datenleitungen,
welche den Chipsatz 701 mit den Speicherbauelementen 705 verbinden, „k" Differenzsignalleitungen,
welche „k" Datensignalpaare übertragen,
wobei k der Busbreite der Datenleitungen entspricht. Eine Verzögerungsschaltung
kann mit den Signalleitungspaaren assoziiert sein, welche die differenziell
zur Verfügung gestellten
zweiten und/oder dritten internen Taktsignale übertragen. Ein Kondensator
kann beispielsweise zum Einstellen von Phaseneigenschaften oder zum
Reduzieren von Rauschen zwischen Leitungspaaren eingeschleift sein.
-
12 zeigt
ein Flussdiagramm eines Ausführungsbeispiels
eines Verfahrens zum Übertragen von
internen Steuer-/Adressensignalen von einem Register zu einer Mehrzahl
von Speicherbauelementen, welche in einem Speichermodul angeordnet sind.
Im Verfahren gemäß 12 werden
die internen Steuer-/Adressensignale IC/A aus externen Steuer/Adressensignalen
E/CA abgeleitet. Eine Mehrzahl von internen Taktsignalen, z.B. das
erste, zweite und dritte interne Taktsignal ICLK1, ICLK2 und ICLK3
oder das erste und zweite interne Taktsignal ICLK1 und ICLK2, werden
in einem Schritt 1201 aus dem externen Taktsignal ECLK
erzeugt oder abgeleitet. Dies wird typischerweise durch einen auf
dem Speichermodul angeordneten Taktgenerator umgesetzt, wie z.B.
von einem Phasenregelkreis (PLL).
-
In
einem Schritt 1202 wirkt eine ansteigende oder abfallende
Flanke eines der Mehrzahl von internen Taktsignalen als Steuerung
zum Speichern, z.B. Zwischenspeichern, der externen Steuer-/Adressensignale
in das Register. Eine ansteigende oder abfallende Flanke eines anderen
intern erzeugten Taktsignals wirkt als Steuerung für die Ausgabe
der internen Steuer-/Adressensignale vom Register an die Speicherbauelemente
in einem Schritt 1203.
-
In
Bezug auf das vorstehende Verfahren kann im Zusammenhang mit den
beispielhaften, oben beschriebenen Speichersystemen und Speichermodulen
entweder eine ansteigende oder eine abfallende Taktflanke verwendet
werden, um Daten zu übertragen
oder einen Schaltungsbetrieb zu initiieren. Die dargestellte Wahl
von ansteigenden und abfallenden Taktflanken ist beispielhaft und
der Fachmann bzw. Speichersystemdesigner kann das spezifische Design
der Taktsignale in Bezug auf Periodendauer, Frequenz, Flankendefinition
usw. Jeweils geeignet wählen.
-
Im
vorstehenden Verfahren mit den oben beschriebenen beispielhaften
Speichersystemen und Speichermodulen können die internen Taktsignale
in Bezug auf relevante Signallaufzeiten definiert oder eingestellt
werden, um eine gewünschte
Phasenbeziehung zwischen einem internen Taktsignal, das die Eingabe
von externen Steuer-/Adressensignalen in das Register steuert, und
einem anderen internen Taktsignal zur Verfügung zu stellen, welches z.B.
einer verzögerten
Version des vorherigen Taktsignals entspricht und die Ausgabe der
internen Steuer/Adressensignale steuert, die aus den externen Steuer-/Adressensignalen
abgeleitet werden.