DE102010021794A1 - Schnelles Retraining eines Datenauges für einen Speicher - Google Patents

Schnelles Retraining eines Datenauges für einen Speicher Download PDF

Info

Publication number
DE102010021794A1
DE102010021794A1 DE102010021794A DE102010021794A DE102010021794A1 DE 102010021794 A1 DE102010021794 A1 DE 102010021794A1 DE 102010021794 A DE102010021794 A DE 102010021794A DE 102010021794 A DE102010021794 A DE 102010021794A DE 102010021794 A1 DE102010021794 A1 DE 102010021794A1
Authority
DE
Germany
Prior art keywords
flank
memory
data eye
valid data
movement
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.)
Ceased
Application number
DE102010021794A
Other languages
English (en)
Inventor
Andre Schaefer
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 DE102010021794A1 publication Critical patent/DE102010021794A1/de
Ceased legal-status Critical Current

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Ein Verfahren, Gerät und System werden offenbart. Bei einer Ausführungsform beinhaltet ein Verfahren ein Bestimmen einer linken Flanke und einer rechten Flanke eines gültigen Datenauges für einen Speicher. Das Verfahren wird durch periodisches Überprüfen der linken und rechten Flanken auf Bewegung während des Speicherbetriebs fortgeführt. Wenn Bewegung erkannt wird, trainiert das Verfahren das gültige Datenauge erneut mit einer aktualisierten linken Flanke und rechten Flanke.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich auf wiederholtes dynamisches Retraining eines Datenauges für einen Speicher während des Speicherbetriebs.
  • HINTERGRUND DER ERFINDUNG
  • Speichersubsysteme, die Speicher verwenden, wie z. B. Doppel-Datenraten synchroner dynamischer Direktzugriffsspeicher (Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM), haben eine quellensynchrone Schnittstelle, die einen genauen Takt erfordert. Der Takt auf der Kopplungsstruktur, die den Speicher mit einem Controller koppelt, ist für die Daten und die Strobe-Signale an der Flanke angeordnet. Das Strobe-Signal ist im Allgemeinen zu der Mitte der Daten hin zeitverzögert und wird verwendet, um die Daten zu latchen. Der Bereichstakt vom Anfang bis zum Ende gültiger Daten wird als das gültige Datenauge bezeichnet. Das Auge wird durch zwei Flanken definiert, zwischen den beiden Flanken können die Daten korrekt gelatcht werden, außerhalb der beiden Flanken werden die Daten ungültig. Somit muss der Strobe zwischen die Flanken des Datenauges fallen, um korrekte Daten zu erhalten. Mit steigender Speichergeschwindigkeit wird nicht nur das Auge enger, sondern andere Bedingungen, die mit Speicherbetrieb verbunden sind, können verursachen, dass das Auge abdriftet. Beispielsweise können thermische Bedingungen verursachen, dass das Auge abdriftet. Thermische Bedingungen der Speichergeräte können sich, basierend auf Änderungen im Energieverbrauch aufgrund unterschiedlicher Auslastungen ändern (d. h. da Datendurchsatz durch die Speicherkanäle steigt, kann der Energieverbrauch für die Speichergeräte steigen, was zu einer höheren thermischen Belastung pro Gerät führen würde). Die neuesten Speicherversionen erhöhen ihre Geschwindigkeit fortlaufend, wie z. B. DDR2, DDR3, DDR4, DDR5 ist noch nicht definiert oder im Definitionsprozess, wird er der zukünftige DDR-Standard? und unter anderem Grafikspeicher-Implementierungen (z. B. GDDR5).
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist beispielhaft veranschaulicht und ist nicht beschränkt durch die Zeichnungen, wobei gleiche Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden und in denen:
  • 1 eine Ausführungsform eines Gerätes und Systems zum schnellen Retraining eines Datenauges für einen Speicher veranschaulicht.
  • 2 eine Ausführungsform von Informationen, die über die Speicherkopplungsstruktur übertragen wurden, veranschaulicht.
  • 3A3D eine Ausführungsform eines Prozesses zur Suche der linken Flanke des gültigen Datenauges während des Betriebs veranschaulichen.
  • 4A4D eine Ausführungsform eines Prozesses zur Suche der rechten Flanke des gültigen Datenauges während des Betriebs veranschaulichen.
  • 5 ein Ablaufdiagramm einer Ausführungsform eines Prozesses zur Bestimmung der linken und rechten Flanken des gültigen Datenauges ist.
  • 6 ein Ablaufdiagramm einer Ausführungsform eines Prozesses zur Ausgabe von Trainingsbefehlen bei jeder inkrementalen Stelle ist, die auf Gültigkeit von Lese- und Schreibbefehlen getestet werden soll.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Ausführungsformen eines Verfahrens, Gerätes und Systems zum schnellen Retraining eines Datenauges für einen Speicher werden offenbart.
  • In der folgenden Beschreibung und den Ansprüchen können die Begriffe „beinhalten” und „umfassen”, gemeinsam mit ihren Ableitungen, verwendet werden und sollen als Synonyme füreinander behandelt werden. Außerdem können in der folgenden Beschreibung und den Ansprüchen die Begriffe „gekoppelt” und „verbunden”, gemeinsam mit ihren Ableitungen, verwendet werden. Es sollte selbstverständlich sein, dass diese Begriffe nicht als Synonyme füreinander zu verstehen sind. Vielmehr kann bei bestimmten Ausführungsformen „verbunden” verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt stehen. „Gekoppelt” kann jedoch auch bedeuten, dass sich zwei oder mehr Elemente nicht in direktem Kontakt miteinander befinden, aber dennoch miteinander kooperieren oder interagieren.
  • 1 veranschaulicht eine Ausführungsform eines Gerätes und Systems zum schnellen Retraining eines Datenauges für einen Speicher. Bei vielen Ausführungsformen kann ein Computersystem 100 einen Prozessor 102 beinhalten, wie z. B. einen Hauptprozessor (Central Processing Unit, CPU) und/oder einen Grafikprozessor (Graphics Processing Unit, GPU). Bei anderen Ausführungsformen, die nicht gezeigt sind, kann das Computersystem 100 zwei oder mehr Prozessoren beinhalten. Prozessor 102 kann ein Intel®-basierter Hauptprozessor (CPU), Grafikprozessor (GPU), eine Kombination aus einer CPU und GPU oder eine CPU oder GPU anderer Marke sein. Bei unterschiedlichen Ausführungsformen kann Prozessor 102 einen oder mehr Kerne aufweisen. Beispielsweise zeigt 1 Prozessor 102 mit vier Kernen 104, 106, 108 und 110. Bei anderen Ausführungsformen, die nicht gezeigt sind, kann Prozessor 102 1, 2, 8, 16 oder mehr Kerne haben.
  • Jeder Prozessorkern kann mehrere interne Betriebseinheiten, wie z. B. Ausführungseinheiten und Befehlsdeaktivierungseinheiten, beinhalten. Jeder Kern kann ebenfalls mehrere interne Speicherstellen, wie z. B. Register und Cache-Speicher, beinhalten, die eingesetzt werden, um Daten zu speichern. Beispielsweise kann bei einer Intel®-basierten Mikroprozessor-Architektur jeder Kern einen Level-1-Cache (L1), ein oder mehr Steuerregister, ein oder mehr MSRs (Model Specific Registers), ein Instruction-Pointer-Register (EIP-Register), usw. beinhalten. Dieser interne Schaltkreis zu jedem Kern ist nicht in 1 gezeigt.
  • Bei vielen Ausführungsformen ist Prozessor 102 durch Memory-Controller 112 mit einem Speichersubsystem gekoppelt. Obwohl 1 Memory-Controller 112 in Prozessor 102 integriert zeigt, kann bei anderen nicht gezeigten Ausführungsformen der Memory-Controller in ein Brücken-Gerät oder eine andere integrierte Schaltung in dem Computersystem integriert sein, die von Prozessor 102 getrennt ist. Der Memory-Controller kann einen oder mehr Lese- und Schreib-FIFO-(first-in, first-out)-Puffer beinhalten, um Daten zu speichern, die auf den Speicher geschrieben werden sollen oder daraus gelesen werden sollen. Das Speichersubsystem beinhaltet Systemspeichermodul 114, um Befehle zu speichern, die von dem Prozessor ausgeführt werden sollen. Die Speichergeräte, beispielsweise Geräte 116130 in Speichermodul 114, können jede Art flüchtiger dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM) sein. Beispielsweise kann der Speicher eine aktuellere Version von Doppel-Datenraten (Double Data Rate, DDR) synchronem DRAM sein, wie z. B. GDDR5. Dennoch können bei unterschiedlichen Ausführungsformen die Speichergeräte jede Art Speicher sein, dessen Leistung hoch genug ist, um ein thermisches Abdriften des Datenauges potenziell zu verursachen. Bei anderen Ausführungsformen die nicht gezeigt sind, kann es mehr oder weniger Speichergeräte auf Speichermodul 114 geben, sowie zusätzliche Speichermodule, die mit Prozessor 102 gekoppelt sind.
  • Der Prozessor 102 ist mit dem Speicher durch eine Prozessor-Speicher-Schnittstelle gekoppelt, die Kopplungsstruktur 132 sein kann (d. h. eine Verbindung/Bus), die einzelne Leitungen beinhaltet, die Daten, Adressen, Steuerung und andere Informationen zwischen dem Prozessor und dem Speicher übertragen kann. Bei vielen Ausführungsformen überträgt Verbindung 132 nacheinander ein Double-Quadword (64 Bit) von Daten sowie potenzielle Fehlererkennungscode-(Error Detecting Code, EDC)-Informationen und Datenbusinversions-(Data Bus Inversion, DBI)-Informationen.
  • 2 veranschaulicht eine Ausführungsform von Informationen, die über die Speicherkopplungsstruktur übertragen wurden. Bei vielen Ausführungsformen umfasst die Kopplungsstruktur acht getrennte Bytebahnen (DQ0–DQ7). Jede Bytebahn überträgt ein Byte an Information und die acht Bahnen zusammen umfassen ein einzelnes Double-Quadword an Information. Double-Quadwords 0–7 sind über die Spitze des Bahnendiagramms gezeigt, wo Bytebahnen DQ0–DQ7 jeweils eingesetzt werden, um eines der acht Bytes des Double-Quadwords zu tragen. Für jedes übertragene Double-Quadword verfügt jede Bytebahn über ein Zeitfenster, in dem das übertragene Datenbyte auf der Kopplungsstruktur gültig ist und gelatcht werden kann. Bei unterschiedlichen Ausführungsformen kann der Latchmechanismus ein Strobe-Signal, ein externes Taktsignal oder ein internes Taktsignal sein. Der Latchmechanismus kann für jede Bytebahn einzigartig sein. Eine zusätzliche Bytebahn wird für DBI-Informationen eingesetzt. DBI-Informationen übermitteln einer Komponente, wenn Daten gelatcht werden, ob die Folge von Bits in jeder Bytebahn invertiert oder die tatsächliche Information ist. Dadurch wird ermöglicht, dass pro Byte über DQ0–7 mindestens 50% der Bahnen für jegliches Datenelement auf Hochspannung gefahren werden können. Zuletzt gibt es ebenfalls EDC-Informationen, die jedem Double-Quadword zugehörig sind, um Fehlerkontrolle und Schaltkreiskorrektur zu ermöglichen, um zu bestimmen, ob die gelatchten Daten korrekt sind oder einen oder mehr Fehler beinhalten.
  • Gelegentlich, wenn z. B. das Computersystem (100 in 1) anfangs hochfährt, ist es notwendig, den Speicher zu trainieren. Ein Trainieren des Speichers beinhaltet, pro Bytebahn ein Zeitfenster zu bestimmen, in dem die Daten auf der Kopplungsstruktur gültig sind. Dieses Zeitfenster kann basierend auf einer Anzahl von Faktoren variieren. Somit erfolgt das Training, um die Flanken des Fensters (Datenauge genannt) zu verifizieren. Sobald die linken und rechten Flanken (d. h. vordere und hintere Flanken auf einer Zeitleiste) des Datenauges bestimmt sind, kann Logik den Daten-Strobe (externer oder interner Takt) einstellen, bis er an der Flanke exakt zur Mitte des Auges angeordnet ist. Dies ermöglicht es, dass Daten an der sichersten Stelle gelatcht werden, in der Mitte zwischen den vorderen und hinteren Flanken des gültigen Datenauges. Bei dem bestmöglichen Szenario teilt die Flanke des Strobes immer den Unterschied zwischen den linken und rechten Flanken des gültigen Datenauges auf, obwohl dies nicht immer der Fall ist. Bei vielen Ausführungsformen können die linken und rechten Flanken des gültigen Datenauges aufgrund einer Anzahl an Faktoren abdriften. Beispielsweise können bei sehr schnellen Speichern die Transistoren in dem Speicher eine verstärkte Wärmebelastung pro Speichergerät verursachen, was ein thermisches Abdriften des Auges verursachen kann, oder das Auge kann sich aufgrund eines extern hervorgerufenen Temperaturwechsels, der durch Wärmeabgabe von benachbarten Chips verursacht wird, verlagern.
  • Im Allgemeinen werden Trainingssequenzen, wenn der Speicher zu Anfang trainiert wird, bei jeder potenziellen inkrementalen Taktstelle über das Auge sowie über sowohl die linken als auch die rechten Flanken hinaus gesendet. Dieser Satz an Trainingssequenzen für das komplette gültige Datenauge kann viel Zeit in Anspruch nehmen. Beispielsweise beinhaltet das Verfahren, das in GDDR5-Speichern verwendet wird, ein Senden einer Sequenz eines Schreibtrainingsbefehls (Write Training Command, WRTR), dem jeweils ein Lesetrainingsbefehl (Read Training Command, RDTR) folgt, was mehrere Male pro inkrementaler Stelle entlang des Auges wiederholt wird. Diese Befehle werden ausführlich in den entsprechenden JEDEC-(Joint Electron Device Engineering Council)-Spezifikationen pro Speichertyp erklärt. GDDR5-Speicher besitzt eine Spezifikation in Rohfassung (Version 3 (Artikelnummer 1733.46)) zum Herunterladen, die ausführliche Informationen über die WRTR- und RDTR-Sequenzen enthält.
  • Im Großen und Ganzen erfolgt das Training einmal zu Anfang beim Hochfahren des Systems, wobei die Flanken des gültigen Datenauges und die Stelle für das Einstellen des Daten-Strobes zur mittigen Ausrichtung innerhalb des Auges bestimmt wird. Bei vielen Ausführungsformen gibt eine Kalibrierungslogik (134 in 1) Befehle für das Lese- und Schreibtraining aus. Bei einigen Ausführungsformen befindet sich die Kalibrierungslogik innerhalb des Memory-Controllers (112 in 1). Bei anderen Ausführungsformen befindet sich die Kalibrierungslogik an einer Stelle, die vom Memory-Controller getrennt ist.
  • Ein Problem kann auftreten, wenn die Flanken des Auges während des Betriebs von den anfänglich bestimmten Flankenstellen abdriften. Um den Daten-Strobe erneut in der Mitte des Auges auszurichten, würde normalerweise ein vollständiger Retraining-Scan aller Inkremente durch das Auge (und mehreren außenliegenden Taktinkrementen, die extern zu den Augenflanken sind) stattfinden. Um diesen zeitaufwändigen Satz an Trainingsoperationen zum Ausgleich des Abdriften des Auges zu erleichtern, wird bei vielen Ausführungsformen ein schneller Retraining-Prozess definiert.
  • Die Geschwindigkeit des Retrainings kann basierend auf mehreren Faktoren steigen. Beispielsweise kann für ein vorgegebenes Taktinkrement der Retraining-Prozess derart modifiziert werden, dass zuerst ein WRTR-Befehl wie normal gesendet wird, aber anstatt auf die Ausführung zu warten und dann einen RDTR-Befehl zu senden, kann das Lesetraining umgesetzt werden, indem der EDC, der sofort für den WRTR-Befehl zurückkehrt, betrachtet wird. Wenn der WRTR-Befehl mit einer gültigen Position innerhalb des Auges zurückkehrt, kann der Prozess bestätigen, dass Schreibzugriffe innerhalb des gültigen Datenauges bei der getesteten inkrementalen Taktposition gelatcht werden. Hinsichtlich dem Lesetraining kann dann, wenn keine Fehler in dem zurückgekehrten EDC (der EDC für den RDTR-Befehl) gefunden wurden, angenommen werden, dass der gelatchte Lesezugriff eine gute Position innerhalb des gültigen Datenauges bei der inkrementalen Taktposition ist. Somit kann Kalibrierungslogik, die das Training durchführt, eine gültige Augenstelle für einen Lesezugriff annehmen, wenn sie bestimmt, dass keine Fehler in dem EDC gefunden wurden, anstatt auf eine vollständige RDTR-Befehlssequenz zu warten.
  • Außerdem funktioniert bei vielen Ausführungsformen ein Lese-Retraining ähnlich wie ein Schreib-Retraining, außer dass es einen RDTR-Befehl verwendet. Bei Lese-Retraining können bei einigen Ausführungsformen als Voraussetzung für das Training Daten in den Speicher-Lese-FIFO geladen werden. Bei anderen Ausführungsformen setzt das Lesetraining die Zufallsdaten ein, die sich als eine Voraussetzung bereits in dem Speicher-Lese-FIFO befinden. Der EDC und die Daten müssen zusammenpassen.
  • Zusätzlich muss dieses komplette Spektrum an Taktstellen nicht zu Retrainingszwecken während des Betriebs getestet werden, während die anfängliche Trainingssequenz während des Hochfahrens des Computersystems für den Satz an inkrementalen Taktstellen über das gesamte Auge durchgeführt werden kann. Vielmehr kann zu Retrainingszwecken erforderlich sein, nur eine kleine Teilmenge an Stellen in der Nähe einer jeden Flanke während des Betriebs zu testen, um auf ein Abdriften zu überprüfen, sobald die gültigen linken und rechten Flanken des gültigen Datenauges bekannt sind.
  • 3A3D veranschaulichen eine Ausführungsform eines Prozesses zur Suche der linken Flanke des gültigen Datenauges während des Betriebs.
  • 3A zeigt die linke Flanke eines gültigen Datenauges entlang einer relativen Zeitleiste, bei der jeder Skalenstrich auf der Zeitleiste die kleinste potenzielle inkrementale Änderung für ein Testen der Flanken des Datenauges ausweist (sowie Positionierung von Daten-Strobe, externe oder interne Takte). Bei 3A wurde die anfängliche Trainingssequenz für das Datenauge zum Finden der linken und rechten Flanken des Auges durchgeführt und eine Kalibrierungslogik hat bestimmt, dass Position A die aktuelle linke Flanke ist. Mit anderen Worten ist Position A die Position auf der äußersten linken Seite innerhalb des Auges, wo gültige Daten bei Ausgabe eines WRTR- und/oder RDTR-Befehls (oder eines anderen Lesetrainingstyp-Befehls) zurückgegeben werden. Somit würde das nächste Inkrement zur Linken einer Position A der linken Flanke in 3A ungültige Daten zurückgeben.
  • 3B zeigt, dass sich nach einer Betriebszeitspanne die Flanke des gültigen Datenauges ein Inkrement nach links bewegt hat. Somit ist an dieser Stelle Position A nicht länger die derzeitige linke Flanke des gültigen Datenauges.
  • 3C zeigt Trainingssequenzen, die für Positionen B und C ausgegeben wurden, um eine neue linke Flankenstelle zu bestimmen. Es gibt viele unterschiedliche Ausführungsformen für einen Suchalgorithmus, um nach der neuen (d. h. aktualisierten) Flanke des Auges zu suchen und diese zu bestimmen. Beispielsweise wird bei einer Ausführungsform die vorherige Flankenstelle bestimmt und wenn diese Stelle derzeit gültig ist, kann der Algorithmus weiter nach links rücken (für eine linke Flankenstelle) oder weiter nach rechts (für eine rechte Flankenstelle), um die aktualisierte Flankenstelle zu bestimmen. Bei dieser Ausführungsform kann der Algorithmus bestimmen, dass die vorherige Stelle (d. h. die letzte gute Datenstelle) die derzeitige gültige Flanke ist, sobald die erste inkrementale Stelle, die ungültige Daten erzeugt, gefunden wurde. Bei anderen Ausführungsformen kann jedes Mal eine vorbestimmte Anzahl an Taktinkrementen zur Linken und Rechten der vorherigen Flanke getestet werden, wenn eine Retrainingssequenz durchgeführt wird.
  • 3D zeigt die aktualisierte linke Flankenstelle des gültigen Datenauges als Position B auf der relativen Zeitleiste. Der in 3A3D veranschaulichte Prozess zeigt ausführlich einen Weg, um die Anzahl an inkrementalen Taktstellen einzuschränken, um zu bestimmen, ob es eine aktualisierte linke Flanke zu dem gültigen Datenauge gibt.
  • 4A4D veranschaulichen eine Ausführungsform eines Prozesses zur Suche der rechten Flanke des gültigen Datenauges während des Betriebs.
  • 4A zeigt die rechte Flanke eines gültigen Datenauges entlang einer relativen Zeitleiste, bei der jeder Skalenstrich auf der Zeitleiste die kleinste potenzielle inkrementale Änderung für ein Testen der Flanken des Datenauges ausweist (sowie Positionierung des Daten-Strobes). Bei 4A wurde die anfängliche Trainingssequenz für das Datenauge zum Finden der linken und rechten Flanken des Auges durchgeführt und eine Kalibrierungslogik hat bestimmt, dass Position A die aktuelle rechte Flanke ist. Mit anderen Worten ist Position A die Position auf der äußersten rechten Seite innerhalb des Auges, wo gültige Daten bei Ausgabe eines WRTR- und/oder RDTR-Befehls (oder eines anderen Lesetrainingstyp-Befehls) zurückgegeben werden. Somit würde das nächste Inkrement zur Rechten einer Position A der rechten Flanke in 4A ungültige Daten zurückgeben.
  • 4B zeigt, dass sich nach einer Betriebszeitspanne die Flanke des gültigen Datenauges ein Inkrement nach links bewegt hat. Somit ist an diesem Punkt Position A nicht länger die derzeitige rechte Flanke des gültigen Datenauges. Tatsächlich würde Position A in 4B nun ungültige Daten während des Testens zurückgeben.
  • 4C zeigt eine Trainingssequenz, die für Position B ausgegeben wurde, um eine neue rechte Flankenstelle zu bestimmen. Bei dieser Ausführungsform gibt Position B gültige Daten während einer Trainingssequenz zurück, während Position A dies nicht tut, womit Position B somit als die neue (d. h. aktualisierte) rechte Flanke des gültigen Datenauges bestimmt werden kann.
  • 4D zeigt die aktualisierte rechte Flankenstelle des gültigen Datenauges als Position B auf der relativen Zeitleiste. Der in 4A4D veranschaulichte Prozess zeigt ausführlich einen Weg, um die Anzahl an inkrementalen Taktstellen einzuschränken, um zu bestimmen, ob es eine aktualisierte rechte Flanke zu dem gültigen Datenauge gibt.
  • 5 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses zur Bestimmung der linken und rechten Flanken des gültigen Datenauges.
  • Der Prozess wird mittels Verarbeitungslogik durchgeführt, die Software, Hardware oder eine Kombination von sowohl Software als auch Hardware umfassen kann. Der Prozess beginnt damit, dass Verarbeitungslogik die anfängliche linke und rechte Flanke eines gültigen Datenauges bestimmt (Verarbeitungsblock 500). Dies kann auf jeder Bytebahn der Kopplungsstruktur für die anfängliche Trainingssequenz bestimmt werden.
  • Als nächstes bestimmt eine Verarbeitungslogik zu einer bestimmten Zeit nach dem anfänglichen Training, dass sie das gültige Datenauge auf Bewegung überprüfen wird (Verarbeitungsblock 502). Der bestimmende Faktor hinsichtlich darauf, wann das gültige Datenauge überprüft und gegebenenfalls erneut trainiert wird, kann bei unterschiedlichen Ausführungsformen variieren. Beispielsweise kann die Überprüfung auf Bewegung und die Retrainingssequenz nach einer bestimmten Zeit ab dem vorherigen Retraining stattfinden. Bei vielen Ausführungsformen kann diese Zeit basierend darauf bestimmt werden, wie schnell ein Abdriften des Auges aufgrund einer deutlichen Änderung der Auslastung stattfinden kann, die auf ein oder mehr Speichergeräte oder benachbarte Geräte ausgeübt wird, wie z. B. die CPU, GPU oder Geräte, von denen jedes Wärme abgeben kann und eine erhöhte Wärmebelastung verursacht. Es kann eine endliche Zeit geben, beispielsweise 100 Mikrosekunden (μs), unterhalb derer die Temperatur der Speichergeräte nicht in der Lage ist, sich ausreichend zu ändern, dass ein Testen auf neue Flankenstellen des gültigen Datenauges gerechtfertigt ist.
  • Bei einigen Ausführungsformen kann es andere Ereignisse geben, die den Beginn einer Retrainingssequenz auslösen können. Beispielsweise können ein oder mehr Leistungszähler den Datendurchsatz in das und aus dem Speichersubsystem überwachen. Wenn die Menge an Daten über einen vorbestimmten Zeitraum eine bestimmte Durchsatzrate (z. B. 1 GB/s) überschreitet, kann der Beginn der Retrainingssequenz ausgelöst werden.
  • Bei einigen Ausführungsformen kann ein Wärmefühler, Leistungs- oder Stromfühler vorhanden sein, der mit einem oder mehr der Speichergeräte gekoppelt ist, um die Temperatur zu überwachen, und wenn ein Temperaturgefälle aus einem vorherigen Retrainingszeitpunkt existiert, das groß genug ist, kann eine neue Retrainingssequenz ausgelöst werden.
  • Wenn, zurückkehrend zu 5, die Zeit zur Überprüfung auf eine Augenbewegung noch nicht gekommen ist, dann kehrt Verarbeitungslogik zu Block 502 zurück. Wenn andererseits die Zeit zur Überprüfung auf eine Augenbewegung gekommen ist, dann überprüft Verarbeitungslogik auf Bewegung (Verarbeitungsblock 504). Wenn keine Bewegung erkannt wurde (d. h. Verarbeitungslogik tastet sofort einen Bereich um die linken und rechten Flankenstellen ab und sie verbleiben die korrekten Flankenstellen), dann kehrt Verarbeitungslogik zu Block 502 zurück. Wenn andererseits Bewegung an einer oder beiden Flanken erkannt wurde, dann trainiert die Verarbeitungslogik das gültige Datenauge erneut mit aktualisierten linken und rechten Flanken (Verarbeitungsblock 506) und der Prozess ist abgeschlossen.
  • Bei vielen Ausführungsformen kann das Testen auf Bewegung auf einer einzigen Bytebahn (z. B. DQ0) auf der Kopplungsstruktur erfolgen, wenn die Variabilität beim Abdriften des Auges als unbedeutend zwischen unterschiedlichen Bytebahnen empfunden wird. Somit kann bei dieser Ausführungsform das Training für eine einzelne Bytebahn stattfinden und wenn die neuen Flanken des Auges und die Mitte (die Strobe-Stelle) für die einzelne Bytebahn bestimmt sind, kann diese inkrementale Taktstelleninformation auf jede der anderen Bytebahnen sowie die getestete Bytebahn angewendet werden.
  • Bei vielen anderen Ausführungsformen kann das Testen getrennt auf jeder Bytebahn erfolgen und die neue Flanke und mittigen Taktstellen können unterschiedlich pro Bytebahn angewendet werden. Bei noch anderen Ausführungsformen kann das Testen auf jeder Bytebahn erfolgen und die Ergebnisse können sodann über alle Bytebahnen gemittelt werden und die neue gemittelte Flanke und mittigen Stellen können auf alle Bytebahnen angewendet werden.
  • 6 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses zur Ausgabe von Schreibtrainingsbefehlen bei jeder inkrementalen Stelle, die auf Gültigkeit von Lese- und Schreibbefehlen getestet werden soll.
  • Der Prozess wird von Verarbeitungslogik durchgeführt, die Software, Hardware oder eine Kombination von sowohl Software als auch Hardware umfassen kann. Der Prozess beginnt damit, dass Verarbeitungslogik einen Schreibtrainingsbefehl an den Speicher ausgibt (Verarbeitungsblock 600). Dieser Schreibtrainingsbefehl kann an jedes Speichergerät und auf jeder Bytebahn gesendet werden. Als nächstes empfängt Verarbeitungslogik EDC-Informationen basierend auf dem gesendeten Schreibtrainingsbefehl (Verarbeitungsblock 602). Schließlich bestimmt Verarbeitungslogik, basierend auf den Ergebnissen des Schreibtrainingsbefehls und den empfangenen EDC-Informationen, ob ein Schreibbefehl (bzw. Lesebefehl), der unter Einsatz der derzeitigen inkrementalen Taktstelle für das Datenauge ausgegeben wurde (d. h. wenn die derzeitige Taktstelle die Flankenstelle des Daten-Strobes wäre), korrekte Daten zum Ergebnis haben würde. Mit anderen Worten ist die derzeitige inkrementale Taktstelle eine gültige Stelle innerhalb des Datenauges, die korrekte Ergebnisse erzeugt, oder eine ungültige Stelle außerhalb des Datenauges, die inkorrekte Ergebnisse erzeugt. Dies schließt den Prozess für eine einzelne inkrementale Taktstelle ab. Dieser Prozess kann bei jeder inkrementalen Taktstelle auf der Suche nach den korrekten Flanken des Datenauges durchgeführt werden. Außerdem kann dieser Prozess mehrere Male pro inkrementaler Taktstelle zu Redundanzzwecken durchgeführt werden.
  • 7 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses zur Ausgabe von Lesetrainingsbefehlen bei jeder inkrementalen Stelle, die auf Gültigkeit von Lese- und Schreibbefehlen getestet werden soll.
  • Der Prozess wird von Verarbeitungslogik durchgeführt, die Software, Hardware oder eine Kombination von sowohl Software als auch Hardware umfassen kann. Dieser Prozess beginnt damit, dass Verarbeitungslogik den Lese-FIFO im Memory-Controller mit einem Testmuster lädt oder die Zufallsdaten, die sich derzeit in dem Lese-FIFO befinden, als das Testmuster verwendet (Verarbeitungsblock 700).
  • Als nächstes gibt Verarbeitungslogik einen Lesetrainingsbefehl an den Speicher aus (Verarbeitungsblock 702). Dieser Lesetrainingsbefehl kann an jedes Speichergerät und auf jeder Bytebahn gesendet werden. Als nächstes empfängt Verarbeitungslogik EDC-Informationen basierend auf dem gesendeten Lesetrainingsbefehl (Verarbeitungsblock 704).
  • Schließlich bestimmt Verarbeitungslogik, basierend auf den Ergebnissen des Lesetrainingsbefehls und den empfangenen EDC-Informationen, ob die derzeitige inkrementale Taktstelle eine gültige Stelle innerhalb des Datenauges ist, die korrekte Ergebnisse für einen Lesezugriff (oder Schreibzugriff) erzeugt (Verarbeitungsblock 706). Dies schließt den Prozess für eine einzelne inkrementale Taktstelle ab. Dieser Prozess kann bei jeder inkrementalen Taktstelle auf der Suche nach den korrekten Flanken des Datenauges durchgeführt werden. Außerdem kann dieser Prozess mehrere Male pro inkrementaler Taktstelle zu Redundanzzwecken durchgeführt werden.
  • Somit werden Ausführungsformen eines Verfahrens, Gerätes und Systems für schnelles Retraining eines Datenauges für einen Speicher offenbart. Diese Ausführungsformen wurden unter Bezugnahme auf spezifische beispielhafte Ausführungsformen davon beschrieben. Es ist für Personen, die den Vorteil dieser Offenbarung haben, offensichtlich, dass verschiedene Modifikationen und Änderungen an diesen Ausführungsformen vorgenommen werden können, ohne von dem breiteren Sinn und Umfang der hierin beschriebenen Ausführungsformen abzuweichen. Die Spezifikation und Zeichnungen sind demnach vielmehr veranschaulichend als einschränkend anzusehen.

Claims (20)

  1. Verfahren, umfassend: Bestimmen einer linken Flanke und einer rechten Flanke eines gültigen Datenauges für einen Speicher; periodisches Überprüfen der linken und rechten Flanken auf Bewegung während des Speicherbetriebs; erneutes Trainieren des gültigen Datenauges mit einer aktualisierten linken Flanke und rechten Flanke, wenn eine Bewegung erkannt wird.
  2. Verfahren nach Anspruch 1, weiter umfassend: Betrachten des Datenauges auf zumindest einer Bahn einer Vielzahl von Bahnen einer Kopplungsstruktur, die mit dem Speicher gekoppelt ist.
  3. Verfahren nach Anspruch 2, wobei ein periodisches Überprüfen der linken und rechten Flanken weiter ein Testen jeder Flankenstelle und einer oder mehr inkrementaler Taktstellen links und rechts von jeder Flankenstelle umfasst.
  4. Verfahren nach Anspruch 3, weiter umfassend: für jede inkrementale Taktstelle, Senden eines Schreibtrainingsbefehls, um eine Gültigkeit eines Schreibbefehls in dem Datenauge bei der Taktstelle zu bestimmen; und Empfangen eines Fehlererkennungscodes (Error Detecting Code, EDC) in Antwort auf den Schreibtrainingsbefehl, wobei eine Gültigkeit eines Lesebefehls bestimmt wird, basierend darauf, ob der EDC korrekt ist.
  5. Verfahren nach Anspruch 2, weiter umfassend: erneutes Trainieren des gültigen Datenauges individuell für jede Bahn, basierend auf der Bestimmung der aktualisierten linken Flanke bzw. rechten Flanke einer jeden Bahn.
  6. Verfahren nach Anspruch 2, weiter umfassend: periodisches Überprüfen der linken und rechten Flanken einer Bahn der Vielzahl von Bahnen auf Bewegung; und erneutes Trainieren des gültigen Datenauges mit einer aktualisierten linken Flanke und rechten Flanke für jede Bahn, wenn eine Bewegung auf der einen Bahn erkannt wird.
  7. Verfahren nach Anspruch 1, wobei ein periodisches Überprüfen der linken und rechten Flanken auf Bewegung wiederholt erfolgt, nachdem eine vorbestimmte Zeitdauer seit der letzten periodischen Überprüfung verstrichen ist.
  8. Verfahren nach Anspruch 1, wobei ein periodisches Überprüfen der linken und rechten Flanken auf Bewegung erfolgt, wenn ein speicherbezogenes Temperaturereignis stattfindet.
  9. Verfahren nach Anspruch 1, wobei ein periodisches Überprüfen der linken und rechten Flanken auf Bewegung erfolgt, wenn ein speicherbezogenes Energieverbrauchsereignis stattfindet.
  10. Verfahren nach Anspruch 2, wobei ein periodisches Überprüfen der linken und rechten Flanken auf Bewegung erfolgt, wenn eine Menge an Datendurchsatz über die Kopplungsstruktur eine vorbestimmte Datendurchsatzrate überschreitet.
  11. Gerät, umfassend: eine Speichertrainingslogik, um eine linke Flanke und eine rechte Flanke eines gültigen Datenauges für einen Speicher zu bestimmen, wobei das Datenauge auf zumindest einer Bahn einer Vielzahl von Bahnen einer Kopplungsstruktur, die mit dem Speicher gekoppelt ist, betrachtet wird; periodisch die linken und rechten Flanken auf Bewegung während des Speicherbetriebs zu überprüfen; das gültige Datenauge mit einer aktualisierten linken Flanke und rechten Flanke erneut zu trainieren, wenn eine Bewegung erkannt wird.
  12. Gerät nach Anspruch 11, wobei die Speichertrainingslogik weiter betrieben werden kann, um: jede Flankenstelle und eine oder mehr inkrementale Taktstellen links und rechts einer jeden Flankenstelle zu testen, um die linken und rechten Flanken des gültigen Datenauges auf Bewegung zu überprüfen.
  13. Gerät nach Anspruch 12, wobei die Speichertrainingslogik weiter betrieben werden kann, um: für jede inkrementale Stelle einen Schreibtrainingsbefehl zu senden, um eine Gültigkeit eines Schreibbefehls in dem Datenauge bei der Taktstelle zu bestimmen; und einen Fehlererkennungscode (Error Detecting Code, EDC) in Antwort auf den Schreibtrainingsbefehl zu empfangen, wobei eine Gültigkeit eines Lesebefehls bestimmt wird, basierend darauf, ob der EDC korrekt ist.
  14. Gerät nach Anspruch 11, wobei die Speichertrainingslogik weiter betrieben werden kann, um: das gültige Datenauge für jede Bahn erneut individuell zu trainieren, basierend auf der Bestimmung der aktualisierten linken Flanke bzw. rechten Flanke einer jeden Bahn.
  15. Gerät nach Anspruch 11, wobei die Speichertrainingslogik weiter betrieben werden kann, um: periodisch die linken und rechten Flanken einer Bahn der Vielzahl von Bahnen auf Bewegung zu überprüfen; und das gültige Datenauge mit einer aktualisierten linken Flanke und rechten Flanke für jede Bahn erneut zu trainieren, wenn eine Bewegung auf der einen Bahn erkannt wird.
  16. System, umfassend: eine Speicherkopplungsstruktur; ein Speichermodul, das mit der Kopplungsstruktur gekoppelt ist, wobei das Modul eine Vielzahl von Speichergeräten beinhaltet; eine Speichertrainingslogik, die mit der Kopplungsstruktur gekoppelt ist, wobei die Logik eine linke Flanke und eine rechte Flanke eines gültigen Datenauges für zumindest eines der Speichergeräte bestimmen soll, wobei das Datenauge auf zumindest einer Bahn einer Vielzahl von Bahnen einer Kopplungsstruktur, die mit dem Speichermodul gekoppelt ist, betrachtet wird; die linken und rechten Flanken periodisch auf Bewegung während des Speichermodulbetriebs überprüfen soll; das gültige Datenauge mit einer aktualisierten linken Flanke und einer rechten Flanke erneut trainieren soll, wenn eine Bewegung erkannt wird.
  17. System nach Anspruch 11, wobei die Speichertrainingslogik weiter betrieben werden kann, um: jede Flankenstelle und eine oder mehr inkrementale Stellen links und rechts einer jeden Flankenstelle zu testen, um die linken und rechten Flanken des gültigen Datenauges auf Bewegung zu überprüfen.
  18. System nach Anspruch 12, wobei die Speichertrainingslogik weiter betrieben werden kann, um: für jede inkrementale Stelle einen Schreibtrainingsbefehl zu senden, um eine Gültigkeit eines Schreibbefehls in dem Datenauge bei der Taktstelle zu bestimmen; und einen Fehlererkennungscode (Error Detecting Code, EDC) in Antwort auf den Schreibtrainingsbefehl zu empfangen, wobei eine Gültigkeit eines Lesebefehls bestimmt wird, basierend darauf, ob der EDC korrekt ist.
  19. System nach Anspruch 11, wobei die Speichertrainingslogik weiter betrieben werden kann, um: das gültige Datenauge für jede Bahn erneut individuell zu trainieren, basierend auf der Bestimmung der aktualisierten linken Flanke bzw. rechten Flanke einer jeden Bahn.
  20. System nach Anspruch 11, wobei die Speichertrainingslogik weiter betrieben werden kann, um: periodisch die linken und rechten Flanken einer Bahn der Vielzahl von Bahnen auf Bewegung zu überprüfen; und das gültige Datenauge mit einer aktualisierten linken Flanke und rechten Flanke für jede Bahn erneut zu trainieren, wenn eine Bewegung auf der einen Bahn erkannt wird.
DE102010021794A 2009-06-30 2010-05-27 Schnelles Retraining eines Datenauges für einen Speicher Ceased DE102010021794A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/459,420 US8037375B2 (en) 2009-06-30 2009-06-30 Fast data eye retraining for a memory
US12/459,420 2009-06-30

Publications (1)

Publication Number Publication Date
DE102010021794A1 true DE102010021794A1 (de) 2011-01-05

Family

ID=43299251

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010021794A Ceased DE102010021794A1 (de) 2009-06-30 2010-05-27 Schnelles Retraining eines Datenauges für einen Speicher

Country Status (5)

Country Link
US (1) US8037375B2 (de)
CN (1) CN101937726B (de)
DE (1) DE102010021794A1 (de)
GB (1) GB2471573B (de)
TW (1) TWI428757B (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644085B2 (en) * 2011-04-05 2014-02-04 International Business Machines Corporation Duty cycle distortion correction
US8495440B2 (en) * 2011-08-30 2013-07-23 Advanced Micro Devices, Inc. Fully programmable parallel PRBS generator
US8570063B2 (en) 2011-10-25 2013-10-29 Micron Technology, Inc. Methods and apparatuses including an adjustable termination impedance ratio
US9086881B2 (en) * 2012-06-29 2015-07-21 Intel Corporation Mechanism for facilitating write tracking for following data eye movements across changing thermal conditions in memory systems
US9213359B2 (en) 2012-12-24 2015-12-15 Arm Limited Interface for controlling the phase alignment of clock signals for a recipient device
US9007855B2 (en) 2012-12-24 2015-04-14 Arm Limited Data signal receiver and method of calibrating a data signal receiver
US8780655B1 (en) 2012-12-24 2014-07-15 Arm Limited Method and apparatus for aligning a clock signal and a data strobe signal in a memory system
US9385032B2 (en) * 2013-03-15 2016-07-05 Gsi Technology, Inc. Systems and methods involving data bus inversion memory circuitry, configuration and/or operation
US9042188B2 (en) 2013-04-01 2015-05-26 Arm Limited Memory controller and method of calibrating a memory controller
US9105327B2 (en) 2013-04-12 2015-08-11 Arm Limited Memory controller using a data strobe signal and method of calibrating data strobe signal in a memory controller
TWI508066B (zh) * 2013-04-30 2015-11-11 Mstar Semiconductor Inc 記憶體控制器及其信號產生方法
CN104182357B (zh) * 2013-05-23 2017-03-22 晨星半导体股份有限公司 存储器控制器及其信号方法
US10423545B2 (en) 2015-07-08 2019-09-24 International Business Machines Corporation Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus
US10241937B2 (en) 2015-07-08 2019-03-26 International Business Machines Corporation Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus
US10114788B2 (en) 2015-07-08 2018-10-30 International Business Machines Corporation Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus
US9396778B1 (en) 2015-08-07 2016-07-19 Apple Inc. Conditional memory calibration cancellation
US9558850B1 (en) 2015-12-01 2017-01-31 International Business Machines Corporation Efficient calibration of a data eye for memory devices
US9620184B1 (en) 2015-12-16 2017-04-11 International Business Machines Corporation Efficient calibration of memory devices
US9715907B1 (en) * 2016-05-09 2017-07-25 Invecas, Inc. Optimal data eye for improved Vref margin
KR20180007374A (ko) * 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
US11604714B2 (en) 2017-08-09 2023-03-14 Samsung Electronics Co, Ltd. Memory device for efficiently determining whether to perform re-training operation and memory system including the same
KR102392055B1 (ko) 2017-08-09 2022-04-28 삼성전자주식회사 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템
KR102273191B1 (ko) * 2017-09-08 2021-07-06 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
KR20190085642A (ko) * 2018-01-11 2019-07-19 에스케이하이닉스 주식회사 메모리 시스템
US10530347B2 (en) 2018-03-23 2020-01-07 Sandisk Technologies Llc Receiver-side setup and hold time calibration for source synchronous systems
US10664432B2 (en) * 2018-05-23 2020-05-26 Micron Technology, Inc. Semiconductor layered device with data bus inversion
US10964702B2 (en) 2018-10-17 2021-03-30 Micron Technology, Inc. Semiconductor device with first-in-first-out circuit
US11449439B1 (en) 2019-07-25 2022-09-20 Rambus Inc. Fragmented periodic timing calibration

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691214B1 (en) 2000-08-29 2004-02-10 Micron Technology, Inc. DDR II write data capture calibration
US6889334B1 (en) * 2001-10-02 2005-05-03 Advanced Micro Devices, Inc. Multimode system for calibrating a data strobe delay for a memory read operation
WO2003036850A1 (en) * 2001-10-22 2003-05-01 Rambus Inc. Phase adjustment apparatus and method for a memory device signaling system
US7076678B2 (en) * 2002-02-11 2006-07-11 Micron Technology, Inc. Method and apparatus for data transfer
US7036053B2 (en) * 2002-12-19 2006-04-25 Intel Corporation Two dimensional data eye centering for source synchronous data transfers
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7853837B2 (en) * 2004-09-10 2010-12-14 Rambus Inc. Memory controller and method for operating a memory controller having an integrated bit error rate circuit
US7743288B1 (en) * 2005-06-01 2010-06-22 Altera Corporation Built-in at-speed bit error ratio tester
US7587640B2 (en) * 2005-09-27 2009-09-08 Agere Systems Inc. Method and apparatus for monitoring and compensating for skew on a high speed parallel bus
CN101067965B (zh) * 2006-04-21 2011-11-09 奥特拉股份有限公司 用于数据接口的读出侧校准
US20080043782A1 (en) 2006-08-15 2008-02-21 Maurizio Skerlj Method and apparatus for checking the position of a receive window
US8207976B2 (en) * 2007-03-15 2012-06-26 Qimonda Ag Circuit
US7886174B2 (en) * 2007-06-27 2011-02-08 Intel Corporation Memory link training

Also Published As

Publication number Publication date
GB201011040D0 (en) 2010-08-18
GB2471573A (en) 2011-01-05
CN101937726B (zh) 2013-12-11
US8037375B2 (en) 2011-10-11
TWI428757B (zh) 2014-03-01
TW201112003A (en) 2011-04-01
GB2471573B (en) 2011-12-21
US20100332921A1 (en) 2010-12-30
CN101937726A (zh) 2011-01-05

Similar Documents

Publication Publication Date Title
DE102010021794A1 (de) Schnelles Retraining eines Datenauges für einen Speicher
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
US7299313B2 (en) System, method and storage medium for a memory subsystem command interface
US7395476B2 (en) System, method and storage medium for providing a high speed test interface to a memory subsystem
DE102009058348B4 (de) Nichtflüchtige Speichereinrichtung
US7937641B2 (en) Memory modules with error detection and correction
US7890811B2 (en) Method and apparatus for improved memory reliability, availability and serviceability
US20060156092A1 (en) Memory technology test apparatus
DE112006000644T5 (de) Speichereinrichtungskommunikation unter Verwendung eines Systemspeicherbusses
DE10236696B4 (de) Taktsynchrone Halbleiterspeichervorrichtung
DE102006025108A1 (de) Direktzugriffsspeicher mit ECC
US5249281A (en) Testable ram architecture in a microprocessor having embedded cache memory
DE102020118505A1 (de) Speichervorrichtungen mit darin enthaltenen variablen reparatureinheiten und verfahren zu deren reparatur
DE102011087354A1 (de) Halbleiterspeicherelement, Verfahren zum Verifizieren einer Multizyklusselbstauffrischungsoperationeines Haibleiterspeicherelements undTestsystem
DE102020111249A1 (de) Speichertest und reparatur von speicherzellen während der einschaltsequenz einer speichervorrichtung
DE102007060058A1 (de) Verfahren und Vorrichtung zum Steuern eines gemeinschaftlich verwendeten Busses
DE102018120862A1 (de) Nichtflüchtige Speichervorrichtung, Speichervorrichtung mit nichtflüchtigen Speichervorrichtungen und Verfahren zum Trainieren von Dateneingabe- und -ausgabeleitungen zwischen einer Steuerung und nichtflüchtigen Speichervorrichtungen
DE102020123583A1 (de) Speichervorrichtungen zum Durchführen einer Reparaturoperation, Speichersysteme mit denselben und Betriebsverfahren davon
DE102006030373A1 (de) Halbleiterspeichervorrichtung
DE102018115199A1 (de) Verfahren zur maximierung der frequenz während einer datenintegritätsprüfung auf einem physischen schnittstellenbus
DE112020003028T5 (de) Vorrichtungen und verfahren zum reparieren von defekten speicherzellen basierend auf einer spezifizierten fehlerrate für bestimmte speicherzellen
TW201513124A (zh) 半導體裝置
DE10321451B4 (de) Die Verwendung eines chipinternen Temperaturerfassungsschemas zum Wärmeschutz von DRAMs
CN104298627B (zh) 存储器信号的动态相位追踪方法及其相关控制电路
US20240004583A1 (en) Protocol for data poisoning

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20120314