-
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
US 7444535 B2 offenbart Mechanismen zum Anpassen bestimmter Signalübertragungen, um negative Effekte charakteristischer Verschiebungen und Veränderungen bei diesen Signalübertragungen zu reduzieren. Aus
US 2009/0006776 A1 geht ein Mechanismus zum Anpassen einer Signalübertragung hervor, wobei ein Lesedatensignal unter Verwendung des Mittelpunkts einer Sequenz von Lesedaten ermittelt wird.
-
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 (SO-DIMMs) 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 empfangt 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 (delaylocked 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ögerungseinstellung(en) 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 1N-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 disks-read 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.