-
TECHNISCHES GEBIET
-
Erfindungsgemäße Ausführungsformen
betreffen im Allgemeinen das Gebiet von Datenverarbeitungssystemen
und spezieller Systeme, Verfahren und Vorrichtungen zum aktiven
Training von Speicherbefehl-Timing.
-
HINTERGRUND
-
Bei
einigen Speicherarchitekturen kommuniziert ein Memory-Controller
durch einen Befehls/Steuer-(command/control, CMD/CTL)-Bus sowie
einen Datenbus mit einem Speichermodul. Die schnellen Übertragungsgeschwindigkeiten
auf dem CMD/CTL-Bus treiben die Notwendigkeit einer straffen Timing-Steuerung
zwischen den CMD/CTL-Signalen und dem Takt (CLK) voran. Bei herkömmlichen Systemen
ist die relative Beabstandung zwischen den CMD/CTL-Signalen und
dem CLK statisch programmiert, basierend auf einer Kombination von Richtlinien
zum Hauptplatinen-Routing,
Systemsimulationen und empirischen Daten.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen
der Erfindung werden exemplarisch und in keiner Weise einschränkend in den
Figuren der begleitenden Zeichnungen dargestellt, wobei Bezugsnummern
zum Verweis auf ähnliche
Elemente verwendet werden.
-
1 ist
ein Blockdiagramm auf höchster Ebene,
das ausgewählte
Aspekte eines Computersystems veranschaulicht, das gemäß einer
erfindungsgemäßen Ausführungsform
implementiert ist.
-
2 ist
ein Blockdiagramm, das ausgewählte
Aspekte aktiven CMD/CTL-Trainings
gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht.
-
3 ist
ein Blockdiagramm, das ausgewählte
Aspekte einer Schaltung zum Bestimmen von Signalverzögerung gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht.
-
4 ist
ein Graph, der die Beziehung zwischen Verzögerungseinstellungen und Signalverzögerungen
gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht.
-
5 ist
ein Ablaufdiagramm, das ausgewählte
Aspekte eines Verfahrens zum CMD/CTL-Training gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht.
-
6 ist
ein Ablaufdiagramm, das ausgewählte
Aspekte eines Verfahrens zum Lese-DQ-DQS-Training veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Erfindungsgemäße Ausführungsformen
sind im Allgemeinen auf Systeme, Verfahren und Vorrichtungen zum
aktiven Training von Speicherbefehl-Timing ausgerichtet. Wie vorstehend
erwähnt,
ist bei herkömmlichen
Systemen ein CMD/CTL-Timing
statisch eingestellt, basierend auf Simulationsergebnissen, Sammlung
empirischer Daten und dergleichen. Dieser Ansatz berücksichtigt
keine Geräte-Variabilität, Platinen-Variabilität oder Spezifikationsverletzungen
(die bei einem dynamischen Direktzugriffsspeicher oder DRAM üblich sind).
Zusätzlich
erfordert der herkömmliche
Ansatz bedeutenden Aufwand, um das beste Timing über einen breiten Lösungsraum
zu kennzeichnen. Erfindungsgemäße Ausführungsformen
stellen aktives Training zum CMD/CTL-Timing bereit. Aktives Training
für CMD/CTL
ist eine schwierige Herausforderung, da jegliches eindeutiges Rückkopplungssignal
von dem DRAM fehlt, und aufgrund der Tatsache, dass jegliche Verletzung
des Timings den DRAM veranlasst, in einen unbekannten Zustand einzutreten.
Wie nachstehend weiter mit Bezug auf 1–5 erörtert ist,
kann ein bereits bestehender Mechanismus in dem Speichersystem angepasst
werden, um eine aktive Rückkopplung
zwischen den Speichermodulen und dem Memory-Controller bereitzustellen.
-
1 ist
ein Blockdiagramm auf höchster Ebene,
das ausgewählte
Aspekte eines Computersystems veranschaulicht, das gemäß einer
erfindungsgemäßen Ausführungsform
implementiert ist. System 100 beinhaltet integrierte Schaltung 102, DRAM
Subsystem 104 und Speicherkopplungsstruktur 106.
Bei alternativen Ausführungsformen
kann System 100 mehr Elemente, weniger Elemente und/oder
unterschiedliche Elemente beinhalten.
-
Integrierte
Schaltung 102 beinhaltet Prozessorkerne 108 und
Logik 110. Prozessorkerne 108 können irgendwelche
einer großen
Auswahl an Prozessorkernen sein, einschließlich allgemeiner Prozessorkerne,
Grafikprozessorkerne und dergleichen. Logik 110 stellt
allgemein eine breite Anordnung von Logik dar, einschließlich beispielsweise eines
Memory-Controller, weiterer Eingangs/Ausgangs-(I/O-Input/Output)-Schnittstellen
und dergleichen. Während 1 eine
Ausführungsform
veranschaulicht, bei der der Memory-Controller mit den Prozessorkernen
integriert ist, ist es selbstverständlich, dass sich bei einer
alternativen Ausführungsform
der Memory-Controller und die Prozessorkerne in getrennten integrierten
Schaltungen befinden können.
-
Speicherkopplungsstruktur 106 koppelt
integrierte Schaltung 102 mit DRAM-Subsystem 104. Bei einigen
Ausführungsformen
ist Kopplungsstruktur 106 eine quellensynchrone Kopplungsstruktur.
Der Begriff „quellensynchron” bezieht
sich darauf, dass ein Signal und ein CLK über die gleiche Kopplungsstruktur übertragen
werden, und dass der CLK verwendet wird, um das Signal an dem Empfänger abzutasten.
Bei den nachstehend beschriebenen Ausführungsformen wird der CLK unter
Verwendung einer Verzögerungsregelschleife/eines
Phaseninterpolators (DLL/PI) erzeugt, die/der den Taktzyklus in
128 gleich beabstandete Phasen teilt. Bei alternativen Ausführungsformen
können
unterschiedliche Mechanismen verwendet werden, um den CLK zu teilen
und der CLK kann in unterschiedlich viele Phasen geteilt werden.
Wie nachstehend weiter beschrieben wird, kann der CLK unter Verwendung
eines digitalen Steuercodes (z. B. eines Auswahlcodes) irgendwo
in einem Zyklus platziert werden.
-
Bei
einigen Ausführungsformen
beinhaltet Speicherkopplungsstruktur 106 eine Datenkopplungsstruktur
und eine CMD/CTL-Kopplungsstruktur. Die Datenkopplungsstruktur kann
eine Mehrpunkt-Topologie aufweisen und die CMD/CTL-Kopplungsstruktur
kann eine Daisy-Chain-Topologie aufweisen. Der Begriff „Bus” wird in
diesem Patent als Synonym für „Kopplungsstruktur” verwendet.
-
DRAM-Subsystem 104 stellt
zumindest einen Teil des Hauptspeichers für System 100 bereit. Bei
der veranschaulichten Ausführungsform
beinhaltet DRAM-Subsystem 104 ein oder mehr Speichermodule 112.
Module 112 können
irgendwelche einer großen
Auswahl an Speichermodulen sein, einschließlich doppelreihiger Speichermodule
(dual inline memory modules, DIMMs), registrierte DIMMs (registered
DIMMs, RDIMMs), unregistrierte DIMMs (unregistered DIMMs, UDIMMs),
Small Outline DIMMs (SODIMMs) und dergleichen. Jedes Modul 112 kann
einen oder mehr DRAMs 114 (und eventuell weitere Elemente
wie z. B. Register, Puffer und dergleichen) aufweisen. DRAMs 114 können irgendwelche
einer großen
Auswahl an Geräten
sein, einschließlich beinahe
jeder Generation Doppel-Datenraten-(double data rate, DDR)-DRAMs.
Bei einigen Ausführungsformen
ist DRAM 114 (sowie weitere Komponenten von System 100)
(zumindest teilweise) konform mit einer oder mehr der DDR 3 definierenden
Spezifikationen.
-
Basic
Input/Output System (BIOS) 116 stellt unter anderem Logik
bereit, um ausgewählte
Aspekte von System 100 zu initialisieren. Bei einigen Ausführungsformen
beinhaltet BIOS 116 Logik 118. Wie nachstehend
mit Bezug auf 2–5 weiter
erörtert
wird, verwendet Logik 118 einen Rückkopplungsmechanismus, um
den CMD/CTL-Bus von Kopplungsstruktur 106 aktiv zu trainieren.
Beispielsweise kann Logik 118 Rückkopplungsmechanismus 111 verwenden,
um den CMD/CTL-Bus aktiv zu trainieren. Wie nachstehend weiter erörtert wird,
beinhaltet Mechanismus 111 den endlichen Automaten (finite state
machine, FSM) zum RX DQ/DQS-Training. Bei alternativen Ausführungsformen
kann Mechanismus 111 unterschiedliche oder zusätzliche
Logik beinhalten. Bei noch weiteren Ausführungsformen kann der Mechanismus
in Firmware (z. B. in BIOS 116) implementiert (oder teilweise
implementiert) sein.
-
2 ist
ein Blockdiagramm, das ausgewählte
Aspekte aktiven CMD/CTL-Trainings
gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht. Computersystem 200 beinhaltet integrierte
Schaltung 202, die mit Speichermodulen 204 über Kopplungsstruktur 220 gekoppelt
ist. Bei weiteren Ausführungsformen
kann System 200 mehr Elemente, weniger Elemente und/oder
unterschiedliche Elemente beinhalten. System 200 kann irgendeines
einer großen
Auswahl von Computersystemen sein, einschließlich eines Desktop-Computers,
eines Laptops, eines Servers, eines Unterhaltungselektronikgeräts (z. B.
ein Spielsystem), eines mobilen Internetgerätes und dergleichen.
-
Bei
einigen Ausführungsformen
beinhaltet integrierte Schaltung 202 einen oder mehr Prozessorkerne
und einen integrierten Memory-Controller. Bei weiteren Ausführungsformen
ist integrierte Schaltung 202 ein Element eines Chipsatzes.
Bei der veranschaulichten Ausführungsform
beinhaltet Kopplungsstruktur 220 einen Datenbus und einen CMD/CTL-Bus.
Der Datenbus kann eine Mehrpunkt-Topologie aufweisen und der CMD/CTL-Bus kann
eine Daisy-Chain-Topologie aufweisen. Die CMD-Signale können Speicheradresse
(memory address, MA), Bankadresse (bank address, BA), Reihenadress-Strobe
(row address strobe, RAS), Spaltenadress-Strobe (column address
strobe, CAS), Schreibfreigabe (write enable, WE) und dergleichen beinhalten.
Die Steuersignale können
On-Die-Terminierung (ODT), Chipauswahl (chip select, CS), Taktfreigabe
(clock enable, CE) und dergleichen beinhalten. Die CMD-Leitungen
können über Ebenen
gemeinsam benutzt werden und es kann getrennte CTL-Leitungen für jede Ebene
geben. Bei alternativen Ausführungsformen
kann Kopplungsstruktur 220 mehr Elemente, weniger Elemente
und/oder unterschiedliche Elemente aufweisen.
-
Module 204 können irgendwelche
einer großen
Auswahl an Speichermodulen sein, einschließlich DIMMs, Small Outline
DIMMs (SO-DIMMs), RDIMMs, UDIMMs und dergleichen. Jedes Modul beinhaltet
eine Vielzahl an DRAMs. Bei einigen Ausführungsformen sind die DRAMs
(und weitere Elemente von System 200) zumindest teilweise
konform mit einer oder mehr der DDR3-Spezifikationen.
-
System 200 beinhaltet
Merkmale, um das aktive Training von CMD-Timing unter Verwendung
von Rückkopplung
zwischen Modulen 204 und integrierter Schaltung 202 zu
ermöglichen.
Diese Merkmale beinhalten Logik, um das Training zu steuern (z.
B. 224), Hardware, um unterschiedlich lange Verzögerungen
an Signale weiterzugeben (z. B. 214, 216 und 218),
und Logik, um einen Rückkopplungsmechanismus
bereitzustellen (z. B. 208 und 210). Bei alternativen
Ausführungsformen
kann System 200 mehr Merkmale und/oder unterschiedliche
Merkmale beinhalten, um das CMD-Timing aktiv zu trainieren.
-
Es
gibt zahlreiche Ansätze,
die verfolgt werden können,
um ein CMD-Timing aktiv zu trainieren. Zuerst kann eine Verzögerungseinstellung
für CMD und
CTL statisch programmiert werden und dann kann CLK mit Bezug auf
CMD und CTL bewegt werden, um zu bestimmen, welche Ausrichtungen
gültig sind.
Ein zweiter Ansatz ist, CTL gegen CLK statisch zu programmieren,
und dann CLK und CTL gemeinsam zu bewegen, um zu bestimmen, welche
Ausrichtungen gültig
sind. Ein dritter Ansatz ist, einen zweistufigen Trainingsablauf
zu verwenden, bei dem der erste und dann der zweite Ansatz in aufeinanderfolgenden
Stufen durchgeführt
werden. Zusätzlich
sind weitere Kombinationen ebenfalls möglich. Beispielsweise kann
der CLK unveränderlich
sein und entweder der CMD oder CTL oder beide können mit Bezug auf den CLK
bewegt werden.
-
Die
nachstehend beschriebenen Ausführungsformen
sind auf den ersten Ansatz zum aktiven CMD-Training ausgerichtet.
Dieser Ansatz richtet sich an das Einstellen eines Timings und das
Halten von Timing-Ausgaben, um die CMDs abzutasten. Es ist jedoch
selbstverständlich,
dass alternative erfindungsgemäße Ausführungsformen
beinahe jede Kombination des ersten, zweiten und dritten Ansatzes
verwenden können.
-
BIOS 222 beinhaltet
Logik 224. Bei einigen Ausführungsformen initiiert und
steuert Logik 224 den Vorgang eines Trainings des CMD-Timings.
Beispielsweise kann Logik 224 Ausgangswerte für CMD und
CTL einstellen und den Rückkopplungsmechanismus
(208 und 210) verwenden, um Pass/Fail-Ergebnisse
für zahlreiche
CLK-Verzögerungseinstellungen
zu bestimmen. Logik 224 kann dann eine geeignete CLK-Verzögerungseinstellung
basierend auf den Pass/Fail-Ergebnissen bestimmen. Logik 224 ist nachstehend
weiter mit Bezug auf 5.
-
Bei
der veranschaulichten Ausführungsform verwendet
Logik 224 einen bereits bestehenden Mechanismus, um eine
Rückkopplung
zum Training des CMD-Timings bereitzustellen. Insbesondere kann Logik 224 den
endlichen Automaten (finite state machine, FSM) zum RX DQ/DQS-Training
als einen Rückkopplungsmechanismus
verwenden. Zur leichteren Veranschaulichung ist der FSM zum RX DQ/DQS-Training
in zwei getrennten Teilen gezeigt: FSM 208 und DATA 210.
FSM 208 und DATA 210 arbeiten zusammen, um Signale
an DRAMs 206 zu senden und Information von den DRAMs 206 zu empfangen.
Beispielsweise kann FSM 208 verschiedene CMDs aussenden,
die eine Ausrichtung mit einem CLK haben. Wenn der DRAM 206 die
CMDs empfängt
und richtig interpretiert, dann haben die CMDs und der CLK eine
richtige Ausrichtung. Wenn dies geschieht, antwortet der DRAM 206,
indem er ein Muster (z. B. ein Umschaltmuster) über den DQ/DQS-Bus an die integrierte
Schaltung 202 überträgt. Wenn
DATA 210 das Muster für
eine vorgegebene Ausrichtung zwischen CMDs und einem CLK empfängt, dann
besteht der Test und DATA 210 kann eine Anzeige eines erfolgreichen
Tests an Logik 224 senden. Wenn DATA 210 das Muster
für eine
vorgegebene Ausrichtung nicht empfängt, dann besteht der Test
für die
bestimmte Einstellung nicht und DATA 210 kann eine Anzeige
eines nicht erfolgreichen Tests an Logik 224 senden.
-
Bei
einigen Ausführungsformen
muss der DRAM, damit der FSM besteht, einen MSR-Befehl, einen Aktivierungs-Befehl
und viele Lese-CAS-(column address strobes)-Befehle registrieren. Wenn DRAM 206 irgendeinen
dieser Befehle nicht richtig registriert, sendet der DRAM nicht
die richtigen Signale auf DQ und DQS, und das RX-Training bleibt
in FindOpen hängen.
Dies wird schließlich
als ein auf einem programmierbaren Time-Out-Zähler basierenden Fehler markiert.
-
Die
Verwendung eines bereits bestehenden Rückkopplungsmechanismus, wie
z. B. dem RX DQ/DQS FSM, stellt zahlreiche Vorteile bereit. Zuerst ist
es nicht notwendig, neue Logik zu vielen Controller hinzuzufügen, da
sie bereits über
diesen FSM verfügen.
Ebenfalls ist lediglich Befehls-Traffic zum Arbeiten erforderlich
und irgendwelche Startpunkte sind nicht erforderlich. Dieser Ansatz
ist nicht stark von MRS-Programmierung
auf anderen DRAM-Geräten
auf demselben Kanal abhängig
(z. B. obwohl das RX Auge klein sein kann, kann der FSM noch immer
bestehen, ohne dass On-Die-Terminierung
in nicht zielgerichteten DIMMs an ist). Dieser Ansatz funktioniert
nahtlos sowohl für
UDIMMs als auch für RDIMMs.
Er stellt eine gute Abdeckung bereit, da er verschiedene unterschiedliche
CMD-Pins erfordert, um die Timing-Anforderungen zu erfüllen. Diese
Pins können
RAS (row address strobe), WE (write enable), CS (chip select), BA[1:0]
und A[2:0] beinhalten. Die Verwendung des RX DQ/DQS FSM beseitigt ebenfalls
das Risiko falschen Bestehens. In einigen Fällen (z. B. einigen RDIMM Ausführungsformen) kann
die Pass/Fail-Logik mit zusätzlicher
Rückkopplung,
wie z. B. Adressenparitätsfehlern
von dem Register oder einem ähnlichen
Gerät,
ergänzt
werden.
-
Logik 224 sammelt
die Pass/Fail-Ergebnisse für
die verschiedenen CLK-Verzögerungseinstellungen
und entscheidet, welche Verzögerungseinstellung
für einen
CLK während
der Betriebszeit verwendet wird. Beispielsweise kann es einen oder
mehr Bereiche von CLK-Verzögerungseinstellungen
geben, über
die der Test besteht. Bei einigen Ausführungsformen bestimmt Logik 224,
welcher Bereich der längste
Bereich ist. Zieht man beispielsweise eine Ausführungsform in Betracht, bei
der es 128 mögliche
Verzögerungseinstellungen
für den
CLK (0 bis 127) gibt. Ebenfalls angenommen, es gibt zwei Bereiche
an Einstellungen, die bestanden: 1–3 und 10–122. Logik 224 kann
den zweiten Bereich (10–122)
auswählen.
Bei einigen Ausführungsformen bestimmt
Logik 224 dann das Zentrum des größten Pass-Bereichs. Um mit
demselben Beispiel fortzufahren, kann Logik 224 berechnen,
welche Einstellung der Mitte der Pass-Bereiche entspricht (z. B. (122
+ 10)/2 = 66). Nachdem Logik 224 bestimmt hat, welcher
Verzögerungswert
dem Zentrum des Pass-Bereichs (z. B. 66) entspricht, kann sie anschließend die
Verzögerung
für CLK
auf den geeigneten Wert einstellen (z. B. einen digitalen Auswahlcode
an den Phaseninterpolator, der die Verzögerung für CLK steuert, bereitstellen).
-
CTL 214,
CMD 216 und CLK 218 beinhalten Schaltkreise, um
eine Verzögerung
an die CTL-, CMD- bzw. CLK-Signale weiterzugeben. Beispielsweise
kann eine Phasenregelschleife (phase-locked loop, PLL) 212 einen
CLK sowohl an CTL 214, CMD 216 als auch CLK 218 bereitstellen.
CTL 214, CMD 216 und CLK 218 können Schaltkreise
beinhalten, um diesen CLK in mehrere Phasen (z. B. 128) zu teilen,
und Schaltkreise, um auszuwählen,
auf welche dieser Phasen die CTL-, CMD- und CLK-Signale ausgerichtet werden. Beispiele
dieser Schaltkreise werden nachstehend unter Bezug auf 3–4 weiter
erörtert.
-
3 ist
ein Blockdiagramm, das ausgewählte
Aspekte einer Schaltung zum Bestimmen einer Signalverzögerung veranschaulicht.
Phasenregelschleife (phase-locked loop, PLL) 302 verteilt
einen CLK an mehrere Schaltungen (z. B. an CTL 214, CMD 216 und
CLK 218, gezeigt in 2) bereitgestellt
werden. Verzögerungsregelschleife
(delay-locked loop,
DLL) 304 empfängt
den CLK und teilt ihn in mehrere (z. B. 16) gleich beabstandete
CLKs auf. Diese Takte werden dem Phaseninterpolator (PI) 306 bereitgestellt,
der eine feinere Granularität
von CLKs durch Interpolieren benachbarter Phasen (z. B. 128) erzeugt.
PI 306 empfängt
ebenfalls einen digitalen Auswahlcode 312, der eine Phase
des Taktes auswählt.
Die ausgewählte
Phase steuert Signalspeicher 308, um die ausgewählte Verzögerung an
XX DDR CLK 314 weiterzugeben. Ein ähnlicher Vorgang kann verwendet
werden, um die geeignete Verzögerung an
CMD und CTL weiterzugeben.
-
4 ist
ein Graph, der die Beziehung zwischen Verzögerungseinstellungen und Signalverzögerungen
gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht. Die Hochachse zeigt die ausgewählte Phase (z. B. in Picosekunden)
und die Horizontalachse veranschaulicht die Einstellung. Die veranschaulichte
Beziehung zwischen Verzögerung und
Einstellungen ist lediglich veranschaulichend und die Beziehung
kann bei weiteren Ausführungsformen
unterschiedlich sein.
-
5 ist
ein Ablaufdiagramm, das ausgewählte
Aspekte eines Verfahrens zum CMD/CTL-Training gemäß einer
erfindungsgemäßen Ausführungsform
veranschaulicht. Bezugnehmend auf 502, werden die Verzögerungsschübe für CMD und
CTL eingestellt. Die Begriffe „Verzögerungseinstellung” und „Verzögerungsschübe” werden
in diesem Patent als Synonyme verwendet. Bei einigen Ausführungsformen
stellt Trainingslogik (z. B. in 2 gezeigte
Logik 224) die Verzögerungsschübe ein,
indem die geeigneten Auswahlcodes an die Phaseninterpolatoren von
CTL 214 und CMD 216 (gezeigt in 2)
bereitgestellt werden.
-
Bezugnehmend
auf 504 wird der Verzögerungsschub
für den
CLK auf einen Ausgangswert eingestellt. Beispielsweise kann die
Trainingslogik einen geeigneten Auswahlcode an den Phaseninterpolator von
CLK 218 bereitstellen, um den Verzögerungsschub auf einen Ausgangswert
einzustellen. Bei einigen Ausführungsformen
ist der Ausgangswert Null. Bei weiteren Ausführungsformen kann ein anderer Ausgangswert
verwendet werden.
-
Bezugnehmend
auf 506 verwendet die Trainingslogik einen Rückkopplungsmechanismus
(z. B. 208 und 210, gezeigt in 2),
um die Ausrichtung zwischen dem CLK und CMD/CTL für eine Vielzahl an
CLK-Einstellungen zu testen. Beispielsweise verwendet die Trainingslogik
für jede
der mehreren CLK-Einstellungen FSM 208, um mehrere Befehls/Steuer-Signale
zu senden, und verwendet ebenfalls DATA 210, um zu bestimmen,
ob die DRAMs das geeignete Muster in Antwort auf die Befehls/Steuer-Signale
bereitstellen. Für
jede Wiederholung des Tests zeichnet die Trainingslogik die von DATA 210 bereitgestellte
Pass/Fail-Anzeige auf. Nach jeder Wiederholung des Tests werden
die Speichermodule zurückgesetzt
(508) und die Verzögerungseinstellung
für den
CLK wird auf die nächste Einstellung
programmiert. Die Breite des Schrittes zwischen jeder Wiederholung
kann gewählt
werden, um einen wünschenswerten
Kompromiss zwischen Genauigkeit und Laufzeit zu erzeugen. Wenn beispielsweise
der CLK in 128 Phasen geteilt wird und der Schritt 4 ist,
dann kann der Test 32 Wiederholungen haben. 5 veranschaulicht
zwei Testschleifen, um zu veranschaulichen, dass mehrere Kanäle parallel
trainiert werden können.
-
Bezugnehmend
auf 510 findet die Trainingslogik den größten Bereich
an CLK-Verzögerungseinstellungen,
die ein Pass-Ergebnis während
des Tests erzeugten. Unter Verwendung desselben Beispiels wie dem
vorstehend erörterten
kann es zwei Bereiche an CLK-Einstellungen geben, die Pass-Ergebnisse
erzeugen: 1–3
und 10–122.
Die Trainingslogik würde
den zweiten Bereich (10–122)
auswählen,
da der zweite Bereich der größte ist.
Die Trainingslogik findet dann das Zentrum des größten Pass-Bereichs und
stellt die CLK-Verzögerungseinstellung
auf das Zentrum des größten Pass-Bereichs
ein. Um mit demselben Beispiel fortzufahren, kann die Trainingslogik
das Zentrum des zweiten Bereichs (z. B. (122 + 10)/2 = 66) berechnen
und dann die CLK-Verzögerungseinstellung
mit einem Auswahlcode programmieren, der dem Zentrum des ausgewählten Bereichs
entspricht (z. B. entsprechend 66).
-
Nachdem
die CLK-Verzögerungseinstellungen)
programmiert sind, können
Speichermodule bei 512 zurückgesetzt werden. Dies stellt
eine „weiße Weste” für den Rest
des Startvorgangs bereit. Die vorstehend beschriebene Verfahrensweise
kann für jede
Ebene auf jedem Kanal in dem Speicher-Subsystem (z. B. Subsystem 104,
gezeigt in 1) wiederholt werden, um eine
geeignete Ausrichtung zwischen CKL und CMD/CTL bereitzustellen.
-
Eine
der Herausforderungen für
ein Befehlstrainingsschema (z. B. ein DDR3-Befehlstrainingsschema) ist die Zeit,
die benötigt
wird, um das Training ablaufen zu lassen und die DIMMs zwischen Wiederholungen
zurückzusetzen.
Bei einigen Ausführungsformen
ist diese Zeit unter Verwendung der folgenden Techniken auf unter
2 mS pro Wiederholung verringert. Programmierbare Zähler können bereitgestellt
werden, um die Anzahl an Abtastungen zu bestimmen, die die RX Trainingsmaschine
verwendet. Programmierbare Time-Out-Zähler können der RX-Trainingsmaschine
bereitgestellt werden. Ebenfalls kann eine speziell zugeschnittene
(und verringerte) Sequenz zum Zurücksetzen für die DRAMs verwendet werden.
Eine programmierbare Schrittgröße kann
verwendet werden, um zu vermeiden, dass alle 128 Wiederholungen
durchlaufen werden. Wenn ein Fehler nicht während der Initiierung (Verlaufssuche)
gefunden wird, kann ein zweites Bestehen unter Verwendung einer
feineren Granularität
bei CLK-Phasen verwendet werden. Bei einigen Ausführungsformen
wird der DRAM zum Bestehen von Tests nicht zurückgesetzt. Ebenfalls können alle
Kanäle
parallel trainiert werden. Zusätzlich
können CLK-Verzögerungseinstellungen
zwischen Ebenen mit demselben Takt geteilt werden.
-
Der
vorstehend beschriebene Mechanismus zum aktiven Training des CMD-Timings ermöglicht höhere Übertragungsfrequenzen,
größere Systemleistung
(z. B. wird ein 1 N-Timing bei einigen Konfigurationen ermöglicht)
und eine schnellere Produkteinführungszeit.
Er stellt diese Vorteile zu sehr geringen Kosten bereit. Der Mechanismus
ist äußerst flexibel
und kann bei vielen verschiedenen Systemen verwendet werden.
-
Elemente
von Ausführungsformen
der vorliegenden Erfindung können
ebenfalls als ein maschinenlesbares Medium zum Speichern der maschinenausführbaren
Befehle bereitgestellt werden. Das maschinenlesbare Medium kann
beinhalten, ist aber nicht beschränkt auf, Flash-Memory, Bildplatten, Compact-Disk-Festspeicher
(Compact disksread only Memory, CD-ROM), DVD-(digital versatile/video disks)-ROM,
Direktzugriffsspeicher (random access memory, RAM), löschbarer
programmierbarer Festspeicher (erasable programmable read-only memory, EPROM),
elektrisch löschbarer
programmierbarer Festspeicher (electrically erasable programmable read-only
memory, EEPROM), magnetische oder optische Karten, Ausbreitungsmedien
oder andere Arten maschinenlesbarer Medien, die zum Speichern elektronischer
Befehle geeignet sind. Beispielsweise können erfindungsgemäße Ausführungsformen
als ein Computerprogramm heruntergeladen werden, das von einem entfernten
Computer (z. B. einem Server) an einen anfragenden Computer (z.
B. einem Client) mittels Datensignalen übertragen werden kann, die
in einem Trägersignal
oder anderem Ausbreitungsmedium über
einen Kommunikationslink (z. B. ein Modem oder eine Netzwerkverbindung)
ausgeführt
werden.
-
In
der vorstehenden Beschreibung wird bestimmte Terminologie verwendet,
um erfindungsgemäße Ausführungsformen
zu beschreiben. Beispielsweise steht der Begriff „Logik” für Hardware,
Firmware, Software (oder jede Kombination davon), um eine oder mehr
Funktionen auszuführen.
Beispielsweise beinhalten Beispiele von „Hardware” eine integrierte Schaltung,
einen endlichen Automaten oder sogar kombinatorische Logik, sind
aber nicht darauf beschränkt.
Die integrierte Schaltung kann die Form eines Prozessors, wie z.
B. ein Mikroprozessor, einer anwendungsspezifischen integrierten
Schaltung, eines digitalen Signalprozessors, eines Mikro-Controllers
oder dergleichen einnehmen.
-
Es
sollte selbstverständlich
sein, dass Verweise in der Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes
Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit
der Ausführungsform
beschrieben wird, in zumindest einer erfindungsgemäßen Ausführungsform
enthalten ist. Daher wird daher hervorgehoben und sollte selbstverständlich sein,
dass zwei oder mehr Verweise auf „eine Ausführungsform” oder „eine alternative Ausführungsform” in verschiedenen
Teilbereichen dieser Beschreibung sich nicht notwendigerweise alle
auf dieselbe Ausführungsform
beziehen. Des Weiteren können
bestimmte Merkmale, Strukturen oder Charakteristika auf geeignete
Weise in einer oder in mehreren erfindungsgemäßen Ausführungsformen kombiniert werden.
-
Auf ähnliche
Weise sollte es offensichtlich sein, dass in der vorstehenden Beschreibung
erfindungsgemäßer Ausführungsformen
verschiedene Merkmale manchmal bei einer einzelnen Ausführungsform,
Figur oder Beschreibung davon zum Zweck der Vereinfachung der Offenbarung
und zum Erreichen eines besseren Verständnisses einer oder mehr verschiedener
erfinderischer Aspekte in Gruppen zusammengefasst sind. Dieses Verfahren
der Offenbarung soll jedoch nicht als eine Absicht ausgelegt werden,
dass der beanspruchte Gegenstand mehr Merkmale erfordert als in
jedem Anspruch ausdrücklich
zitiert sind. Wie in den folgenden Ansprüchen aufgezeigt, liegen die
erfindungsgemäßen Aspekte
in weniger als allen Merkmalen einer einzelnen vorstehenden offenbarten
Ausführungsform.
Somit sind die der ausführlichen
Beschreibung folgenden Ansprüche
hiermit ausdrücklich
in diese ausführliche Beschreibung
aufgenommen.