DE102010013668B4 - Aktives Training von Speicherbefehl-Timing - Google Patents

Aktives Training von Speicherbefehl-Timing Download PDF

Info

Publication number
DE102010013668B4
DE102010013668B4 DE102010013668.9A DE102010013668A DE102010013668B4 DE 102010013668 B4 DE102010013668 B4 DE 102010013668B4 DE 102010013668 A DE102010013668 A DE 102010013668A DE 102010013668 B4 DE102010013668 B4 DE 102010013668B4
Authority
DE
Germany
Prior art keywords
delay
clk
ctl
logic
coupling structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102010013668.9A
Other languages
English (en)
Other versions
DE102010013668A1 (de
Inventor
Theodore Z. Schoenborn
John V. Lovelace
Christopher P. Mozak
Bryan L. Spry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010013668A1 publication Critical patent/DE102010013668A1/de
Application granted granted Critical
Publication of DE102010013668B4 publication Critical patent/DE102010013668B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

Erfindungsgemäße Ausführungsformen sind im Allgemeinen auf Systeme, Verfahren und Vorrichtungen zum aktiven Training von Speicherbefehl-Timing ausgerichtet. Bei einigen Ausführungsformen wird das CMD/CTL-Timing unter Verwendung aktiver Rückkopplung zwischen Speichermodulen und dem Memory-Controller aktiv trainiert. Weitere Ausführungsformen sind beschrieben und werden beansprucht.

Description

  • 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 15 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 25 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 34 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.

Claims (22)

  1. Vorrichtung, umfassend: Logik, um eine CMD-Verzögerungseinstellung einzustellen und um eine CTL-Verzögerungseinstellung für eine CMD/CTL-Kopplungsstruktur einzustellen, die einen Memory-Controller mit einem Speicher-Subsystem verbindet; Logik, um eine anfängliche CLK-Verzögerungseinstellung gemäß einer der folgenden Operationen einzustellen; (i) statische Programmierung einer Verzögerungseinstellung für jede der CMD-Verzögerungseinstellung und der CTL-Verzögerungseinstellung und danach Bewegung der CLK-Verzögerungseinstellung mit Bezug auf die CMD-Verzögerungseinstellung und die CTL-Verzögerungseinstellung, um zu bestimmen, welche einer Vielzahl von Ausrichtungen gültig sind; (ii) statische Programmierung der CTL-Verzögerungseinstellung gegen die CLK-Verzögerungseinstellung und danach gemeinsame Bewegung der CLK-Verzögerungseinstellung und der CTL-Verzögerungseinstellung, um zu bestimmen, welche der Vielzahl von Ausrichtungen gültig sind, und (iii) Verwendung eines zweistufigen Trainingsablaufs, bei dem die Operation gemäß (i) und danach die Operation gemäß (ii) in aufeinanderfolgenden Stufen durchgeführt werden; Logik, um über eine Vielzahl an CLK-Verzögerungseinstellungen an einen Kopplungsstruktur-Trainingsmechanismus zu iterieren, der sich in dem Memory-Controller befindet, und Logik für jede der Vielzahl an CLK-Verzögerungseinstellungen, um ein Pass- oder ein Fail-Ergebnis aufzuzeichnen, das von dem Kopplungsstruktur-Trainingsmechanismus bereitgestellt wird, wobei eine programmierbare Schrittgröße ausgewählt ist, um nach jeder Wiederholung einen gewünschten Kompromiss zwischen Genauigkeit und Laufzeit zu erzeugen, wobei die programmierbare Schrittgröße Iterieren über sämtliche möglichen Wiederholungen für die CLK-Verzögerungseinstellung vermeidet; Logik, um eine der Vielzahl an CLK-Verzögerungseinstellungen basierend zumindest teilweise auf den Ergebnissen der Logik, die über die Vielzahl an CLK-Verzögerungseinstellungen iteriert, die von dem Kopplungsstruktur-Trainingsmechanismus bereitgestellt werden, auszuwählen, wobei der Kopplungsstruktur-Trainingsmechanismus den größten Bereich von CLK-Verzögerungseinstellungen findet, die ein Pass-Ergebnis erzeugen, und den größten Bereich an CLK-Verzögerungseinstellungen auswählt, der das Pass-Ergebnis erzeugt; und Logik, um eine CLK-Verzögerung auf die ausgewählte CLK-Verzögerungseinstellung einzustellen, indem die CLK-Verzögerung auf ein Zentrum des ausgewählten größten Bereichs eingestellt wird.
  2. Vorrichtung nach Anspruch 1, wobei der Kopplungsstruktur-Trainingsmechanismus einen endlichen Automaten zum RX DQ/DQS-Training umfasst.
  3. Vorrichtung nach Anspruch 2, wobei die Logik zum Auswählen einer der Vielzahl an CLK-Verzögerungseinstellungen umfasst: Logik, um einen oder mehrere Pass-Bereiche zu identifizieren; Logik, um einen größten Pass-Bereich auszuwählen; und Logik, um eine CLK-Verzögerungseinstellung entsprechend eines Zentrums des größten Pass-Bereichs zu identifizieren.
  4. Vorrichtung nach Anspruch 2, wobei der Memory-Controller auf demselben Die integriert ist wie ein Prozessor.
  5. Vorrichtung nach Anspruch 2, wobei die CMD/CTL-Kopplungsstruktur eine quellensynchrone Kopplungsstruktur ist.
  6. Vorrichtung nach Anspruch 2, wobei die Vorrichtung ein Basic Input/Output System für ein Computersystem umfasst.
  7. Vorrichtung nach Anspruch 2, wobei das Speicher-Subsystem eine Vielzahl an Doppel-Datenraten-(double data rate)-(DDR)-3-Speichergeräten beinhaltet.
  8. Verfahren, umfassend: Einstellen einer CMD-Verzögerungseinstellung für eine CMD/CTL-Kopplungsstruktur, die einen Memory-Controller mit einem Speicher-Subsystem verbindet; Einstellen einer CTL-Verzögerungseinstellung für die CMD/CTL-Kopplungsstruktur, die den Memory-Controller mit dem Speicher-Subsystem verbindet; Einstellen einer CLK-Verzögerungseinstellung gemäß einer der folgenden Operationen; (i) statische Programmierung einer Verzögerungseinstellung für jede der CMD-Verzögerungseinstellung und der CTL-Verzögerungseinstellung und danach Bewegung der CLK-Verzögerungseinstellung mit Bezug auf die CMD-Verzögerungseinstellung und die CTL-Verzögerungseinstellung, um zu bestimmen, welche einer Vielzahl von Ausrichtungen gültig sind; (ii) statische Programmierung der CTL-Verzögerungseinstellung gegen die CLK-Verzögerungseinstellung und danach gemeinsame Bewegung der CLK-Verzögerungseinstellung und der CTL-Verzögerungseinstellung, um zu bestimmen, welche der Vielzahl von Ausrichtungen gültig sind, und (iii) Verwendung eines zweistufigen Trainingsablaufs, bei dem die Operation gemäß (i) und danach die Operation gemäß (ii) in aufeinanderfolgenden Stufen durchgeführt werden; Iterieren über eine Vielzahl an CLK-Verzögerungseinstellungen an einen Kopplungsstruktur-Trainingsmechanismus, der sich in dem Memory-Controller befindet; Aufzeichnen eines Pass- oder Fail-Ergebnisses für jede der Vielzahl an CLK-Verzögerungseinstellungen, das von dem Kopplungsstruktur-Trainingsmechanismus bereitgestellt wird, wobei eine programmierbare Schrittgröße ausgewählt ist, um nach jeder Wiederholung einen gewünschten Kompromiss zwischen Genauigkeit und Laufzeit zu erzeugen, wobei die programmierbare Schrittgröße Iterieren über sämtliche möglichen Wiederholungen für die CLK-Verzögerungseinstellung vermeidet; Finden, über den Kopplungsstruktur-Trainingsmechanismus, des größten Bereichs von CLK-Verzögerungseinstellungen, die ein Pass-Ergebnis erzeugen, und Auswählen des größten Bereichs von CLK-Verzögerungseinstellungen, die das Pass-Ergebnis erzeugen; und Auswählen einer der Vielzahl an CLK-Verzögerungseinstellungen basierend zumindest teilweise auf den Ergebnissen des Iterierens über die Vielzahl an CLK-Verzögerungsergebnissen, die von dem Kopplungsstruktur-Trainingsmechanismus bereitgestellt werden, und Einstellen einer CLK-Verzögerung auf ein Zentrum des ausgewählten größten Bereichs der CLK-Verzögerungseinstellungen, die das Pass-Ergebnis erzeugen.
  9. Verfahren nach Anspruch 8, weiter umfassend: Einstellen einer CLK-Verzögerung auf die ausgewählte CLK-Verzögerungseinstellung.
  10. Verfahren nach Anspruch 9, wobei der Kopplungsstruktur-Trainingsmechanismus einen endlichen Automaten zum RX DQ/DQS-Training umfasst.
  11. Verfahren nach Anspruch 10, wobei ein Auswählen einer der Vielzahl an CLK-Verzögerungseinstellungen umfasst: Identifizieren eines oder mehrerer Pass-Bereiche; Auswählen eines größten Pass-Bereiches; und Identifizieren einer CLK-Verzögerungseinstellung entsprechend einem Zentrum des größten Pass-Bereichs.
  12. Verfahren nach Anspruch 10, wobei der Memory-Controller auf demselben Die integriert ist wie ein Prozessor.
  13. Verfahren nach Anspruch 10, wobei die CMD/CTL-Kopplungsstruktur eine quellensynchrone Kopplungsstruktur ist.
  14. Verfahren nach Anspruch 10, wobei die Vorrichtung ein Basic Input/Output System für ein Computersystem umfasst.
  15. Verfahren nach Anspruch 10, wobei das Speicher-Subsystem eine Vielzahl an Doppel-Datenraten-(double data rate)-(DDR)-3-Speichergeräten beinhaltet.
  16. System, umfassend: ein Memory-Controller einschließlich eines Kopplungsstruktur-Trainingsmechanismus; und eine mit dem Memory-Controller gekoppelte integrierte Schaltung, wobei die integrierte Schaltung beinhaltet, Logik, um eine CMD-Verzögerungseinstellung einzustellen und um eine CTL-Verzögerungseinstellung für eine CMD/CTL-Kopplungsstruktur einzustellen, die einen Memory-Controller mit einem dynamischen Speicher mit wahlfreiem Zugriff (DRAM)-Speicher-Subsystem verbindet, Logik, um eine CLK-Verzögerungseinstellung einzustellen gemäß einer der folgenden Operationen, (i) statische Programmierung einer Verzögerungseinstellung für jede der CMD-Verzögerungseinstellung und der CTL-Verzögerungseinstellung und danach Bewegung der CLK-Verzögerungseinstellung mit Bezug auf die CMD-Verzögerungseinstellung und die CTL-Verzögerungseinstellung, um zu bestimmen, welche einer Vielzahl von Ausrichtungen gültig sind; (ii) statische Programmierung der CTL-Verzögerungseinstellung gegen die CLK-Verzögerungseinstellung und danach gemeinsame Bewegung der CLK-Verzögerungseinstellung und der CTL-Verzögerungseinstellung, um zu bestimmen, welche der Vielzahl von Ausrichtungen gültig sind, und (iii) Verwendung eines zweistufigen Trainingsablaufs, bei dem die Operation gemäß (i) und danach die Operation gemäß (ii) in aufeinanderfolgenden Stufen durchgeführt werden; Logik, um über eine Vielzahl an CLK-Verzögerungseinstellungen an einen Kopplungsstruktur-Trainingsmechanismus zu iterieren, der sich in dem Memory-Controller befindet, und Logik für jede der Vielzahl an CLK-Verzögerungseinstellungen, um ein Pass- oder ein Fail-Ergebnis aufzuzeichnen, das von dem Kopplungsstruktur-Trainingsmechanismus bereitgestellt wird, wobei eine programmierbare Schrittgröße ausgewählt ist, um nach jeder Wiederholung einen gewünschten Kompromiss zwischen Genauigkeit und Laufzeit zu erzeugen, wobei die programmierbare Schrittgröße Iterieren über sämtliche möglichen Wiederholungen für die CLK-Verzögerungseinstellung vermeidet, Logik, um eine der Vielzahl an CLK-Verzögerungseinstellungen basierend zumindest teilweise auf den Ergebnissen, der Logik, der die durch die Vielzahl an CLK-Verzögerungseinstellungen iteriert, die von dem Kopplungsstruktur-Trainingsmechanismus bereitgestellt werden, auszuwählen, wobei der Kopplungs-Trainingsmechanismus den größten Bereich von CLK-Verzögerungseinstellungen findet, die ein Pass-Ergebnis erzeugen, und den größten Bereich an CLK-Verzögerungseinstellungen auswählt, der das Pass-Ergebnis erzeugt; und Logik, um eine CLK-Verzögerung auf den ausgewählten größten Bereich der CLK-Verzögerungseinstellungen einzustellen, die das Pass-Ergebnis erzeugen, indem die CLK-Verzögerung auf ein Zentrum des ausgewählten größten Bereichs eingestellt wird.
  17. System nach Anspruch 16, wobei der Kopplungsstruktur-Trainingsmechanismus einen endlichen Automaten zum RX DQ/DQS-Training umfasst.
  18. System nach Anspruch 17, wobei die Logik zum Auswählen einer der Vielzahl an CLK-Verzögerungseinstellungen umfasst: Logik, um einen oder mehrere Pass-Bereiche zu identifizieren; Logik, um einen größten Pass-Bereich auszuwählen; und Logik, um eine CLK-Verzögerungseinstellung entsprechend eines Zentrums des größten Pass-Bereichs zu identifizieren.
  19. System nach Anspruch 17, wobei der Memory-Controller auf demselben Die integriert ist wie ein Prozessor.
  20. System nach Anspruch 17, wobei die CMD/CTL-Kopplungsstruktur eine quellensynchrone Kopplungsstruktur ist.
  21. System nach Anspruch 17, wobei die integrierte Schaltung ein Basic Input/Output System für ein Computersystem umfasst.
  22. System nach Anspruch 17, wobei das Speicher-Subsystem eine Vielzahl an Doppel-Datenraten-(double data rate)-(DDR)-3-Speichergeräten beinhaltet.
DE102010013668.9A 2009-04-03 2010-04-01 Aktives Training von Speicherbefehl-Timing Expired - Fee Related DE102010013668B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/417,828 2009-04-03
US12/417,828 US8819474B2 (en) 2009-04-03 2009-04-03 Active training of memory command timing

Publications (2)

Publication Number Publication Date
DE102010013668A1 DE102010013668A1 (de) 2011-01-05
DE102010013668B4 true DE102010013668B4 (de) 2015-03-12

Family

ID=42228846

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010013668.9A Expired - Fee Related DE102010013668B4 (de) 2009-04-03 2010-04-01 Aktives Training von Speicherbefehl-Timing

Country Status (5)

Country Link
US (1) US8819474B2 (de)
CN (1) CN101859286B (de)
DE (1) DE102010013668B4 (de)
GB (1) GB2469210B (de)
TW (1) TWI430105B (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8451969B2 (en) * 2011-03-15 2013-05-28 Intel Corporation Apparatus, system, and method for timing recovery
US8665665B2 (en) * 2011-03-30 2014-03-04 Mediatek Inc. Apparatus and method to adjust clock duty cycle of memory
US20120284576A1 (en) * 2011-05-06 2012-11-08 Housty Oswin E Hardware stimulus engine for memory receive and transmit signals
US8850155B2 (en) * 2011-12-19 2014-09-30 Advanced Micro Devices, Inc. DDR 2D Vref training
US9003246B2 (en) 2012-09-29 2015-04-07 Intel Corporation Functional memory array testing with a transaction-level test engine
US8996934B2 (en) 2012-09-29 2015-03-31 Intel Corporation Transaction-level testing of memory I/O and memory device
US9009531B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem data bus stress testing
US9009540B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem command bus stress testing
US9824772B2 (en) * 2012-12-26 2017-11-21 Nvidia Corporation Hardware chip select training for memory using read commands
US20140181452A1 (en) * 2012-12-26 2014-06-26 Nvidia Corporation Hardware command training for memory using read commands
US9607714B2 (en) 2012-12-26 2017-03-28 Nvidia Corporation Hardware command training for memory using write leveling mechanism
US9196384B2 (en) 2012-12-28 2015-11-24 Intel Corporation Memory subsystem performance based on in-system weak bit detection
US9076499B2 (en) 2012-12-28 2015-07-07 Intel Corporation Refresh rate performance based on in-system weak bit detection
US9378169B2 (en) 2012-12-31 2016-06-28 Nvidia Corporation Method and system for changing bus direction in memory systems
US9536626B2 (en) 2013-02-08 2017-01-03 Intel Corporation Memory subsystem I/O performance based on in-system empirical testing
US9374004B2 (en) 2013-06-28 2016-06-21 Intel Corporation I/O driver transmit swing control
US9658642B2 (en) 2013-07-01 2017-05-23 Intel Corporation Timing control for unmatched signal receiver
US9218575B2 (en) 2013-09-04 2015-12-22 Intel Corporation Periodic training for unmatched signal receiver
US10275386B2 (en) * 2014-06-27 2019-04-30 Advanced Micro Devices, Inc. Memory physical layer interface logic for generating dynamic random access memory (DRAM) commands with programmable delays
KR102707683B1 (ko) 2016-07-12 2024-09-20 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
US10416912B2 (en) 2016-11-03 2019-09-17 Intel Corporation Efficiently training memory device chip select control
KR102687267B1 (ko) * 2016-12-15 2024-07-22 에스케이하이닉스 주식회사 반도체 장치, 반도체 시스템 및 트레이닝 방법
KR102353027B1 (ko) 2017-07-03 2022-01-20 삼성전자주식회사 스토리지 장치의 데이터 트레이닝 방법
US10720197B2 (en) 2017-11-21 2020-07-21 Samsung Electronics Co., Ltd. Memory device for supporting command bus training mode and method of operating the same
KR20190066327A (ko) * 2017-12-05 2019-06-13 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN113728385A (zh) 2019-05-24 2021-11-30 英特尔公司 针对存储器设备的芯片选择信号读取操作的训练
US11619964B2 (en) 2021-07-26 2023-04-04 Micron Technology, Inc. Methods for improving timing in memory devices, and related devices and systems
KR20230080766A (ko) * 2021-11-30 2023-06-07 삼성전자주식회사 메모리 장치에 대한 메모리 컨트롤러

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444535B2 (en) * 2004-10-13 2008-10-28 Via Technologies Inc. Method and related apparatus for adjusting timing of memory signals
US20090006776A1 (en) * 2007-06-27 2009-01-01 Spry Bryan L Memory link training

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6137734A (en) * 1999-03-30 2000-10-24 Lsi Logic Corporation Computer memory interface having a memory controller that automatically adjusts the timing of memory interface signals
US6535986B1 (en) * 2000-03-14 2003-03-18 International Business Machines Corporation Optimizing performance of a clocked system by adjusting clock control settings and clock frequency
US6691214B1 (en) * 2000-08-29 2004-02-10 Micron Technology, Inc. DDR II write data capture calibration
US6553472B2 (en) 2001-01-12 2003-04-22 Sun Microsystems, Inc. Method for programming clock delays, command delays, read command parameter delays, and write command parameter delays of a memory controller in a high performance microprocessor
US6370067B1 (en) * 2001-01-25 2002-04-09 Ishoni Networks, Inc. Automatic configuration of delay parameters in a dynamic memory controller
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20050083095A1 (en) 2003-10-16 2005-04-21 Tsvika Kurts Adaptive input/output buffer and methods thereof
JP4351941B2 (ja) * 2004-03-26 2009-10-28 株式会社アドバンテスト 試験装置及び試験方法
JP5156932B2 (ja) * 2004-03-31 2013-03-06 ラウンド ロック リサーチ、エルエルシー 集積回路における信号タイミングの再構成
US7411862B2 (en) * 2006-11-15 2008-08-12 Qimonda Ag Control signal training
US20090023963A1 (en) * 2007-07-20 2009-01-22 Nie-Jiann Wen Noncatalytic Conversion of Carbon Tetrachloride to Perchloroethylene
US20090030752A1 (en) * 2007-07-27 2009-01-29 General Electric Company Fleet anomaly detection method
US7975164B2 (en) * 2008-06-06 2011-07-05 Uniquify, Incorporated DDR memory controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444535B2 (en) * 2004-10-13 2008-10-28 Via Technologies Inc. Method and related apparatus for adjusting timing of memory signals
US20090006776A1 (en) * 2007-06-27 2009-01-01 Spry Bryan L Memory link training

Also Published As

Publication number Publication date
TW201104449A (en) 2011-02-01
DE102010013668A1 (de) 2011-01-05
GB2469210B (en) 2012-01-18
CN101859286A (zh) 2010-10-13
US8819474B2 (en) 2014-08-26
GB201005641D0 (en) 2010-05-19
US20100257397A1 (en) 2010-10-07
CN101859286B (zh) 2014-10-22
TWI430105B (zh) 2014-03-11
GB2469210A (en) 2010-10-06

Similar Documents

Publication Publication Date Title
DE102010013668B4 (de) Aktives Training von Speicherbefehl-Timing
DE60112125T2 (de) Methode zur programmierung eines speicherkontrollers in einem hochleistungsmikroprozessor
DE102019118638A1 (de) Ein-Chip-System, das ein Training des Tastgrades des Schreibtakts unter Verwendung eines Modus-Register-Schreibbefehls durchführt, Betriebsverfahren des Ein-Chip-Systems, elektronische Vorrichtung mit dem Ein-Chip-System
US9851744B2 (en) Address and control signal training
DE102008015544B4 (de) Verfahren und Vorrichtung zur Kalibrierung des Schreib-Timings in einem Speicher-System
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE69619505T2 (de) Optimierschaltung und steuerung für eine synchrone speicheranordnung vorzugsweise mit programmierbarer latenzzeit
DE10212642B4 (de) Empfängerschaltungsanordnung für eine Speichersteuerung und Verfahren zum Empfangen von Daten in einer Speichersteuerung
DE69838852T2 (de) Verfahren und vorrichtung zur kopplung von signalen zwischen zwei schaltungen, in verschiedenen taktbereichen arbeitend
DE69904508T2 (de) Auf warteschlangen basierte speichersteuerung
DE102005051479A1 (de) Speichersystem und Schnittstellen-Zeitsteuerverfahren
DE10209398A1 (de) Speichersteuerung mit einer Unterstützung für Speichermodule aus RAM-Bauelementen mit inhomogener Datenbreite
DE102009020758B4 (de) Halbleiterspeicherbauelement und zugehöriges Zugriffsverfahren
DE102006020857A1 (de) Integrierter Halbleiterspeicher zur Synchronisierung eines Signals mit einem Taktsignal
DE102006045254A1 (de) Verzögerungsregelschleife für Hochgeschwindigkeits-Halbleiterspeichervorrichtung
US20140181429A1 (en) Multi-dimensional hardware data training between memory controller and memory
DE102007021617A1 (de) Signalverarbeitungsschaltung
DE3885985T2 (de) Speichersteueranordnung für ein Daten verarbeitendes System.
DE102014107661A1 (de) Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate
DE69808317T2 (de) Anordnung und verfahren zur erzeugung von lokalen steuersignalen in einem speicher
DE102007039192A1 (de) Verfahren und Schaltung zum Übertragen eines Speichertaktsignals
DE10326774A1 (de) Auf-Chip Erfassung der Systemoperationsfrequenz in einem DRAM, um DRAM-Operationen einzustellen
DE10208715B4 (de) Latenz-Zeitschalter für ein S-DRAM
DE112011104682B4 (de) Kalibrieren der Strobesignal-Schreiblatenzzeit (CWL) an Spaltenadressen in einem Speichersystem
CN106708167A (zh) 一种调整时钟的方法及控制器

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee