DE102022102128A1 - Techniken zur durchführung von schreibtraining an einem dynamischen direktzugriffsspeicher - Google Patents

Techniken zur durchführung von schreibtraining an einem dynamischen direktzugriffsspeicher Download PDF

Info

Publication number
DE102022102128A1
DE102022102128A1 DE102022102128.9A DE102022102128A DE102022102128A1 DE 102022102128 A1 DE102022102128 A1 DE 102022102128A1 DE 102022102128 A DE102022102128 A DE 102022102128A DE 102022102128 A1 DE102022102128 A1 DE 102022102128A1
Authority
DE
Germany
Prior art keywords
data pattern
memory
data
register
lfsr
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.)
Pending
Application number
DE102022102128.9A
Other languages
English (en)
Inventor
Gautam Bhatia
Robert BLOEMER
Sunil Rao SUDHAKARAN
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022102128A1 publication Critical patent/DE102022102128A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/109Control signal input circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • 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/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory

Abstract

Verschiedene Ausführungsformen beinhalten eine Speichervorrichtung, die in der Lage ist, Schreibtrainingsoperationen durchzuführen, um zu bestimmen, dass bestimmte Zeitbedingungen erfüllt sind, ohne Datenmuster im Speicher zu speichern. Frühere Ansätze zum Schreibtraining involvieren ein Speichern eines langen Datenmusters im Speicher und ein anschließendes Lesen des langen Datenmusters, um zu bestimmen, ob die Daten korrekt in den Speicher geschrieben wurden. Anstelle dessen erzeugt die offenbarte Speichervorrichtung ein Datenmuster innerhalb der Speichervorrichtung, das mit dem Datenmuster übereinstimmt, das von einer externen Speichersteuerung an die Speichervorrichtung übertragen wird. Falls das von der Speichervorrichtung erzeugte Datenmuster mit dem von der Speichersteuerung empfangenen Datenmuster übereinstimmt, speichert die Speichervorrichtung einen Pass-Status in einem Register. Stimmen die Datenmuster nicht überein, dann speichert die Speichervorrichtung einen Pass-Status in einem Register. Die Speichersteuerung liest das Register, um zu bestimmen, ob das Schreibtraining erfolgreich war oder nicht.

Description

  • HINTERGRUND
  • Gebiet der verschiedenen Ausführungsformen
  • Verschiedene Ausführungsformen beziehen sich allgemein auf Computerspeichervorrichtungen und insbesondere auf Techniken zur Durchführung von Schreibtraining an einem dynamischen Direktzugriffsspeicher.
  • Beschreibung des Standes der Technik
  • Ein Computersystem beinhaltet allgemein, unter anderem, eine oder mehrere Verarbeitungseinheiten, wie z.B. Zentralverarbeitungseinheiten (CPUs) und/oder Grafikverarbeitungseinheiten (GPUs), und ein oder mehrere Speichersysteme. Eine Art von Speichersystem wird als Systemspeicher bezeichnet, auf den sowohl die CPU(s) als auch die GPU(s) zugreifen können. Eine andere Art von Speichersystem ist Grafikspeicher, auf den in der Regel nur die GPU(s) zugreifen können. Diese Speichersysteme umfassen mehrere Speichervorrichtungen. Ein Beispiel für eine Speichervorrichtung, die in Systemspeicher und/oder Grafikspeicher verwendet wird, ist synchroner dynamischer Speicher mit wahlfreiem Zugriff bzw. Direktzugriffsspeicher (SDRAM oder kurz DRAM).
  • Üblicherweise verfügt eine schnelle DRAM-Speichervorrichtung über mehrere Schnittstellen. Diese Schnittstellen beinhalten eine Befehlsadressenschnittstelle zur Übertragung von Befehlen an den DRAM. Solche Befehle beinhalten einen Befehl zum Einleiten eines Schreibvorgangs, einen Befehl zum Einleiten eines Lesevorgangs und/oder dergleichen. Diese Schnittstellen beinhalten ferner eine Datenschnittstelle zum Übertragen von Daten zum und vom DRAM. Befehlsschreiboperationen übertragen Befehle synchron an den DRAM. Während Befehlsschreiboperationen tastet der DRAM den ankommenden Befehl an bestimmten Befehlseingangs-Pins relativ zu einer steigenden oder fallenden Flanke eines Taktsignals ab. In ähnlicher Weise übertragen Datenschreibvorgänge Daten synchron an den DRAM. Während Datenschreibübertragungen tastet der DRAM die ankommenden Daten an bestimmten Dateneingangs-Pins relativ zu einer steigenden oder fallenden Flanke eines Taktsignals ab. Ferner übertragen Datenlesevorgänge Daten synchron aus dem DRAM. Während Lese-Schreib-Übertragungen gibt der DRAM die ausgehenden Daten an bestimmten Datenausgangs-Pins relativ zu einer steigenden oder fallenden Flanke eines Taktsignals aus. Die Taktsignale für Befehlsübertragungen an den DRAM, Datenübertragungen an den DRAM und Datenübertragungen von dem DRAM können dieselben oder unterschiedliche Taktsignale verwenden. Ferner können die Dateneingangs-Pins mit den Datenausgangs-Pins identisch sein oder sich von ihnen unterscheiden.
  • Um zuverlässig Befehle und Daten zum und vom DRAM zu übertragen, müssen bestimmte Zeitanforderungen erfüllt werden. Eine Zeitanforderung ist die eine Einrichtungs- bzw. Setup-Zeit, die den Mindestzeitraum definiert, in dem die Befehls- oder Datensignale vor der Taktflanke, die die Befehls- bzw. Datensignale überträgt, stabil sein müssen. Eine weitere Zeitanforderung ist eine Halte- bzw. Hold-Zeit, die den Mindestzeitraum definiert, in dem die Befehls- oder Datensignale nach der Taktflanke, die die Befehls- bzw. Datensignale überträgt, stabil sein müssen. Falls die Einrichtungszeit und/oder die Haltezeit nicht eingehalten wird, können der Befehl und/oder die Daten mit einem oder mehreren Fehtrainings übertragen werden, was zu fehlerhaften Befehls- oder Dateninformationen führt.
  • Mit zunehmender Geschwindigkeit von DRAM-Speichervorrichtungen nimmt die Zeit zwischen aufeinanderfolgenden Taktflanken ab, was zu einer kürzeren Zeitspanne führt, innerhalb derer die Einrichtungszeit und die Haltezeit eingehalten werden müssen. Ferner unterliegt das Timing des/der Taktsignals/Taktsignale, der Befehlssignale und der Datensignale Schwankungen aufgrund von Prozessschwankungen zum Zeitpunkt der Herstellung sowie lokalen Schwankungen aufgrund von Änderungen der Betriebstemperatur, der Versorgungsspannung, Störungen durch andere Signale und/oder dergleichen. Infolgedessen ist es mit zunehmender Geschwindigkeit von DRAM-Vorrichtungen bzw. -Bausteinen schwieriger, die Einrichtungs- und Haltezeit einzuhalten. Um dieses Problem zu entschärfen, verfügen DRAM-Speichervorrichtungen in der Regel über Skewing- bzw. Versatzschaltungen, um das Timing der Befehlssignale und/oder Datensignale relativ zu dem/den Taktsignal(en) zu verändern. In regelmäßigen Abständen veranlasst ein dem DRAM zugeordneter Speicher-Controller den DRAM, eine Trainingsprozedur für Befehlsschreiboperationen, Datenschreiboperationen und/oder Datenleseoperationen einzuleiten. Während solcher Trainingsprozeduren ändert der Speicher-Controller den Versatz eines oder mehrerer Befehlseingangs-Pins, Dateneingangs-Pins und/oder Datenausgangs-Pins, bis der Speicher-Controller bestimmt, dass der DRAM zuverlässig Befehlsschreibvorgänge, Datenschreibvorgänge und/oder Datenlesevorgänge durchführt. Der Speicher-Controller wiederholt diese Trainingsoperationen periodisch, da sich Betriebsbedingungen im Laufe der Zeit ändern, wie z.B. bei Änderungen der Betriebstemperatur, der Versorgungsspannung und/oder dergleichen, um einen zuverlässigen DRAM-Betrieb zu gewährleisten.
  • Insbesondere beim Schreibtraining schreibt der Speicher-Controller ein Schreibtrainingsdatenmuster oder, kürzer gesagt, ein Datenmuster in einen Teil des DRAM-Speicherkerns. Das Datenmuster ist in der Regel eine pseudozufällige Bitsequenz, die zur Erkennung von Fehtrainings an bestimmten Dateneingängen einer DRAM-Speichervorrichtung geeignet ist. Der Speicher-Controller liest dann das Datenmuster aus demselben Teil des DRAM-Speicherkerns. Falls das Datenmuster, das der Speicher-Controller aus dem Teil des DRAM-Speicherkerns liest, mit dem Datenmuster übereinstimmt, das der Speicher-Controller zuvor in den Teil des DRAM-Speicherkerns geschrieben hat, dann ist der Trainingsvorgang erfolgreich. Falls jedoch die beiden Datenmuster nicht übereinstimmen, passt der Speicher-Controller den Versatz der Dateneingangs-Pins an, die einen oder mehrere Fehler aufweisen. Der Speicher-Controller wiederholt die Schreibtrainingsoperation und passt den Versatz der Dateneingangs-Pins an, bis die Datenmuster übereinstimmen. Anschließend schaltet der Speicher-Controller den DRAM wieder in den Normalbetrieb.
  • Ein Nachteil dieser Technik für DRAM-Schreibtraining besteht darin, dass mit zunehmender Geschwindigkeit der DRAM-Bausteine auch die Länge der Datenmuster zunimmt, die für eine adäquate und zuverlässige Durchführung von Trainingsoperationen erforderlich sind, sei es für Schreib- oder Lesetrainingsoperationen. Lange Datenmuster erfordern allgemein mehr Zeit zum Schreiben in den DRAM und zum Lesen aus dem DRAM, wodurch sich die Zeit zum Schreiben des Datenmusters und zum Lesen des Datenmusters während des Schreibtrainings erhöht. Ebenso erfordern lange Datenmuster allgemein mehr Speicherkapazität des DRAM, wodurch der zum Speichern von Daten für andere Zwecke als das Schreibtraining verfügbare Speicherplatz verringert wird.
  • In einigen Implementierungen kann ein separater Speicher, z.B. ein First-in-First-out (FIFO)-Speicher, das Datenmuster für das Schreibtraining anstelle eines Teils des Teils des DRAM-Speicherkerns speichern. Anstelle des DRAM-Speicherkerns speichert der FIFO-Speicher das Schreibtrainingsmuster. Der Speicher-Controller liest dann das Schreibtrainingsmuster aus dem separaten FIFO-Speicher und nicht aus dem DRAM-Speicherkern zurück. Mit zunehmender Größe des Datenmusters nimmt jedoch auch die Größe des FIFO-Speichers zu, wodurch ein erheblicher Teil der Fläche des DRAM-Chips beansprucht wird und die Kosten des DRAMs steigen. Obwohl die Größe des FIFO-Speichers verringert werden könnte, würde dies dazu führen, dass nur ein Teil des Schreibtrainingsdatenmusters im FIFO-Speicher gespeichert wird, wodurch die Effektivität der Schreibtrainingsoperation verringert wird.
  • Darüber hinaus schreibt unabhängig davon, ob ein Teil des DRAM-Speicherkerns oder ein separater Speicher wie beispielsweise ein FIFO-Speicher verwendet wird, der Speicher-Controller ein langes Schreibtrainingsdatenmuster in den DRAM und liest dasselbe lange Schreibtrainingsdatenmuster während jeder Schreibtrainingsoperation mehrmals aus dem DRAM aus, wodurch die verfügbare Bandbreite des DRAM zur Durchführung von Lade- und Speicheroperationen für andere Zwecke als das Schreibtraining verringert wird.
  • Wie die vorstehenden Ausführungen zeigen, werden in der bekannten Technik effektivere Techniken zum Durchführen eines Signaltrainings von Speichervorrichtungen benötigt.
  • KURZBESCHREIBUNG
  • In verschiedenen Ausführungsformen der vorliegenden Erfindung wird ein computerimplementiertes Verfahren zur Durchführung einer Schreibtrainingsoperation bzw. eines Schreibtrainingsbetriebsablaufs auf einer Speichervorrichtung beschrieben. Das Verfahren beinhaltet ein Initialisieren eines ersten Registers auf einer Speichervorrichtung mit einem ersten Datenmuster. Das Verfahren beinhaltet ferner ein Empfangen eines zweiten Datenmusters an einem Eingangs-Pin der Speichervorrichtung. Das Verfahren beinhaltet ferner ein Vergleichen des ersten Datenmusters mit dem zweiten Datenmuster, um einen Ergebniswert zu erzeugen. Das Verfahren beinhaltet ferner ein Speichern des Ergebniswerts in einem zweiten Register. Das Verfahren beinhaltet ferner, dass der Ergebniswert angibt, ob die Schreibtrainingsoperation erfolgreich war.
  • Andere Ausführungsformen beinhalten, ohne darauf beschränkt zu sein, ein System, das einen oder mehrere Aspekte der offenbarten Techniken implementiert, und ein oder mehrere computerlesbare Medien, die Anweisungen zur Durchführung eines oder mehrerer Aspekte der offenbarten Techniken enthalten, sowie ein Verfahren zur Durchführung eines oder mehrerer Aspekte der offenbarten Techniken.
  • Mindestens ein technischer Vorteil der offenbarten Techniken gegenüber dem Stand der Technik besteht darin, dass bei den offenbarten Techniken lange Schreibtrainingsdatenmuster, die während Schreibtrainingsoperationen an eine Speichervorrichtung übertragen werden, nicht in der Speichervorrichtung gespeichert oder aus ihr ausgelesen werden müssen, um zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war. Stattdessen braucht der Speicher-Controller bzw. die Speichersteuerung nur die Schreibtrainingsdatenmuster übertragen und ein Bestanden/Nichtbestanden-Ergebnis auszulesen, um zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war. Infolgedessen werden Schreibtrainingsoperationen in etwa der Hälfte der Zeit abgeschlossen, verglichen mit früheren Techniken, die das Auslesen der Schreibtrainingsdatenmuster aus der Speichervorrichtung erfordern.
  • Ein weiterer Vorteil der offenbarten Techniken besteht darin, dass alle Pins der Datenschnittstelle gleichzeitig trainiert werden, was in einer kürzeren Trainingszeit im Vergleich zu herkömmlichen Ansätzen resultiert. Im Gegensatz dazu werden bei herkömmlichen Ansätzen, bei denen ein Datenmuster in den DRAM-Speicherkern geschrieben und dann das Datenmuster zurückgelesen wird, nur die Dateneingangs-/- ausgangs-Pins selbst trainiert. Zusätzliche Pins der Datenschnittstelle, die nicht im DRAM-Speicherkern gespeichert werden, werden in einem separaten Trainingsvorgang trainiert, nachdem das Training der Datenpins abgeschlossen ist. Durch die Verwendung eines Pseudozufalls-Bitsequenz (PRBS)-Musterprüfers, der auf der Ebene der Eingangs-/Ausgangs-Pins arbeitet, werden alle Pins der Datenschnittstelle parallel trainiert, was die Trainingszeit weiter reduziert. Diese Vorteile repräsentieren eine oder mehrere technologische Verbesserungen gegenüber den Ansätzen des Standes der Technik.
  • Figurenliste
  • Zum Verständnis der oben genannten Merkmale der verschiedenen Ausführungsformen im Einzelnen folgt nachstehend eine genauere Beschreibung der vorstehend kurz zusammengefassten erfinderischen Konzepte durch Bezugnahme auf verschiedene Ausführungsformen, von denen einige in den beigefügten Zeichnungen dargestellt sind. Es versteht sich jedoch, dass die beigefügten Zeichnungen nur typische Ausführungsformen der erfindungsgemäßen Konzepte veranschaulichen und daher in keiner Weise als den Anwendungsbereich einschränkend anzusehen sind, und dass es andere, ebenso effektive Ausführungsformen gibt.
    • 1 ist ein Blockdiagramm eines Computersystems, das zur Implementierung eines oder mehrerer Aspekte der verschiedenen Ausführungsformen konfiguriert ist;
    • 2 ist ein Blockdiagramm einer Trainingsarchitektur, die in der Systemspeichersteuerung und/oder der PPS-Speichersteuerung des Computersystems von 1 enthalten ist, gemäß verschiedenen Ausführungsformen;
    • 3 ist ein Blockdiagramm einer Trainingsarchitektur für eine Speichervorrichtung, die im Systemspeicher und/oder einem Parallelverarbeitungsspeicher des Computersystems von 1 enthalten ist, gemäß verschiedenen Ausführungsformen;
    • 4 ist ein Blockdiagramm eines Linearrückkopplungs-Schieberegister (LFSR; Linear Feedback Shift Register)-Subsystems für eine Speichervorrichtung, die im Systemspeicher und/oder im Parallelverarbeitungsspeicher des Computersystems von 1 enthalten ist, gemäß verschiedenen Ausführungsformen; und
    • 5 ist ein Ablaufdiagramm von Verfahrensschritten zum Durchführen einer Schreibtrainingsoperation auf einer Speichervorrichtung, die im Systemspeicher und/oder im Parallelverarbeitungsspeicher des Computersystems von 1 enthalten ist, gemäß verschiedenen Ausführungsformen.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein gründlicheres Verständnis der verschiedenen Ausführungsformen zu ermöglichen. Für den Fachmann versteht sich jedoch, dass die erfindungsgemäßen Konzepte auch ohne eines oder mehrere dieser spezifischen Details in die Praxis umgesetzt werden können.
  • Systemübersicht
  • 1 ist ein Blockdiagramm eines Computersystems 100, das zur Implementierung eines oder mehrerer Aspekte der verschiedenen Ausführungsformen konfiguriert ist. Wie dargestellt, beinhaltet das Computersystem 100, ohne darauf beschränkt zu sein, eine Zentralverarbeitungseinheit (CPU) 102 und einen Systemspeicher 104, der über eine Speicherbrücke 105 und einen Kommunikationspfad 113 mit einem Parallelverarbeitungssubsystem 112 verbunden ist. Die Speicherbrücke 105 ist über einen Systemspeicher-Controller 130 mit dem Systemspeicher 104 verbunden. Die Speicherbrücke 105 ist außerdem über einen Kommunikationspfad 106 mit einer E/A (Eingabe/Ausgabe)-Brücke 107 verbunden, und die E/A-Brücke 107 ist wiederum mit einem Switch 116 verbunden. Das Parallelverarbeitungssubsystem 112 ist über einen Parallelverarbeitungssubsystem (PPS)-Speicher-Controller 132 mit dem Parallelverarbeitungsspeicher 134 gekoppelt.
  • Im Betrieb ist die E/A-Brücke 107 so konfiguriert, dass sie Benutzereingabeinformationen von Eingabegeräten 108, wie z.B. einer Tastatur oder einer Maus, empfängt und die Eingabeinformationen zur Verarbeitung über den Kommunikationspfad 106 und die Speicherbrücke 105 an die CPU 102 weiterleitet. Der Switch 116 ist so konfiguriert, dass er Verbindungen zwischen der E/A-Brücke 107 und anderen Komponenten des Computersystems 100, wie z.B. einem Netzwerkadapter 118 und verschiedenen Zusatzkarten 120 und 121, herstellt.
  • Wie ebenfalls gezeigt, ist die E/A-Brücke 107 mit einer Systemplatte 114 gekoppelt, die so konfiguriert sein kann, dass sie Inhalte, Anwendungen und Daten zur Verwendung durch die CPU 102 und das Parallelverarbeitungssubsystem 112 speichert. Allgemein stellt die Systemplatte 114 nichtflüchtigen Speicher für Anwendungen und Daten bereit und kann feste oder entfernbare Festplattenlaufwerke, Flash-Speichervorrichtungen und CD-ROM (Compact Disc Read-Only-Memory), DVD-ROM (Digital Versatile Disc-ROM), Blu-ray, HD-DVD (High-Definition DVD) oder andere magnetische, optische oder Festkörperspeichervorrichtungen beinhalten. Schließlich, obwohl nicht explizit gezeigt, können auch andere Komponenten, wie beispielsweise Universal Serial Bus oder andere Port-Verbindungen, Compact-Disc-Laufwerke, Digital Versatile Disc-Laufwerke, Filmaufzeichnungsgeräte und dergleichen, an die E/A-Brücke 107 angeschlossen sein.
  • In verschiedenen Ausführungsformen kann die Speicherbrücke 105 ein Northbridge-Chip und die E/A-Brücke 107 ein Southbridge-Chip sein. Darüber hinaus können die Kommunikationspfade 106 und 113 sowie andere Kommunikationspfade innerhalb des Computersystems 100 unter Verwendung beliebiger technisch geeigneter Protokolle implementiert sein, einschließlich, aber nicht beschränkt auf, AGP (Accelerated Graphics Port), HyperTransport oder jedes beliebige andere bekannte Bus- oder Punkt-zu-Punkt-Kommunikationsprotokoll.
  • In einigen Ausführungsformen umfasst das Parallelverarbeitungssubsystem 112 ein Grafiksubsystem, das Pixel an eine Anzeigevorrichtung 110 liefert, die eine herkömmliche Kathodenstrahlröhre, Flüssigkristallanzeige, Leuchtdiodenanzeige und/oder dergleichen sein kann. In solchen Ausführungsformen beinhaltet das Parallelverarbeitungssubsystem 112 Schaltkreise, die für die Grafik- und Videoverarbeitung optimiert sind, z.B. Videoausgangsschaltkreise. Derartige Schaltkreise können über eine oder mehrere Parallelverarbeitungseinheiten (PPUs) hinweg integriert sein, die in dem Parallelverarbeitungssubsystem 112 enthalten sind. In einigen Ausführungsformen umfasst jede PUPS eine Grafikverarbeitungseinheit (GPU), die so konfiguriert sein kann, dass sie eine Grafik-Rendering-Pipeline implementiert, um verschiedene Operationen im Zusammenhang mit der Erzeugung von Pixeldaten auf der Grundlage der von der CPU 102 und/oder dem Systemspeicher 104 gelieferten Grafikdaten durchzuführen. Jede PPU kann unter Verwendung einer oder mehrerer integrierter Schaltungsvorrichtungen implementiert sein, wie z.B. programmierbaren Prozessoren, anwendungsspezifischen integrierten Schaltkreisen (ASICs) oder Speichervorrichtungen, oder auf jede beliebige andere technisch machbare Weise
  • In einigen Ausführungsformen integriert das Parallelverarbeitungssubsystem 112 Schaltkreise, die für die allgemeine und/oder rechnerische Verarbeitung optimiert sind. Auch hier können solche Schaltkreise über eine oder mehrere PPUs hinweg integriert sein, die in dem Parallelverarbeitungssubsystem 112 enthalten sind und dazu konfiguriert sind, solche Universal- und/oder Rechenoperationen durchzuführen. In nochmals anderen Ausführungsformen können die eine oder die mehreren PPUs, die in dem Parallelverarbeitungssubsystem 112 enthalten sind, dazu konfiguriert sein, sie Grafikverarbeitungs-, Universalverarbeitungs- und Rechenverarbeitungsoperationen durchzuführen. Der Systemspeicher 104 beinhaltet mindestens einen Gerätetreiber 103, der dazu konfiguriert ist, die Verarbeitungsoperationen der einen oder der mehreren PPUs innerhalb des Parallelverarbeitungssubsystems 112 zu verwalten.
  • In verschiedenen Ausführungsformen kann das Parallelverarbeitungssubsystem 112 mit einem oder mehreren anderen Elementen von 1 integriert sein, um ein einziges System auszubilden. Beispielsweise kann das Parallelverarbeitungssubsystem 112 mit der CPU 102 und anderen Verbindungsschaltkreisen auf einem einzigen Chip integriert sein, um ein System on Chip (SoC) zu bilden.
  • Im Betrieb ist die CPU 102 der Hauptprozessor des Computersystems 100, der Operationen anderer Systemkomponenten steuert und koordiniert. Insbesondere gibt die CPU 102 Befehle aus, die den Betriebsablauf der PPUs in dem Parallelverarbeitungssubsystem 112 steuern. In einigen Ausführungsformen schreibt die CPU 102 einen Strom von Befehlen für PPUs innerhalb des Parallelverarbeitungssubsystems 112 in eine (in 1 nicht explizit gezeigte) Datenstruktur, die sich im Systemspeicher 104, im PP-Speicher 134 oder an einem anderen Speicherort befinden kann, auf den sowohl die CPU 102 als auch die PPUs zugreifen können. Ein Zeiger auf die Datenstruktur wird in einen Push-Buffer bzw. Schiebepuffer geschrieben, um die Verarbeitung des Befehlsstroms in der Datenstruktur einzuleiten. Die PPU liest die Befehlsströme aus dem Push-Buffer und führt dann Befehle asynchron relativ zum Betriebsablauf der CPU 102 aus. In Ausführungsformen, in denen mehrere Push-Buffer erzeugt werden, können Ausführungsprioritäten für jeden Push-Buffer von einem Anwendungsprogramm über den Gerätetreiber 103 festgelegt werden, um die Zeitplanung der verschiedenen Push-Buffer zu steuern.
  • Jede PPU beinhaltet eine E/A (Eingabe/Ausgabe)-Einheit, die mit dem Rest des Computersystems 100 über den Kommunikationspfad 113 und die Speicherbrücke 105 kommuniziert. Diese E/A-Einheit erzeugt Pakete (oder andere Signale) für die Übertragung auf dem Kommunikationspfad 113 und empfängt auch alle eingehenden Pakete (oder andere Signale) von dem Kommunikationspfad 113, wobei sie die eingehenden Pakete an die entsprechenden Komponenten der PPU weiterleitet. Die Verbindung von PPUs mit dem Rest des Computersystems 100 kann variiert werden. In einigen Ausführungsformen ist das Parallelverarbeitungssubsystem 112, das mindestens eine PPU beinhaltet, als eine Zusatz- bzw. Add-in-Karte implementiert, die in einen Erweiterungssteckplatz des Computersystems 100 eingesetzt sein kann. In anderen Ausführungsformen können die PPUs auf einem einzigen Chip mit einer Busbrücke, wie beispielsweise der Speicherbrücke 105 oder der E/A-Brücke 107, integriert sein. Wiederum in anderen Ausführungsformen können einige oder alle Elemente der PPUs zusammen mit der CPU 102 in einem einzigen integrierten Schaltkreis oder System of Chip (SoC) enthalten sein.
  • Die CPU 102 und die PPUs innerhalb des Parallelverarbeitungssystems 112 greifen auf Systemspeicher über einen Systemspeicher-Controller 130 zu. Der Systemspeicher-Controller 130 überträgt Signale an die im Systemspeicher 104 enthaltenen Speichervorrichtungen, um die Speichervorrichtungen zu initiieren, Befehle an die Speichervorrichtungen zu übertragen, Daten in die Speichervorrichtungen zu schreiben, Daten aus den Speichervorrichtungen zu lesen und/oder dergleichen. Ein Beispiel für eine im Systemspeicher 104 verwendete Speichervorrichtung ist ein SDRAM mit doppelter Datenrate (DDR SDRAM oder kurz DDR). DDR-Speichervorrichtungen führen Speicherschreib- und Lesevorgänge mit der doppelten Datenrate von SDR-Speichervorrichtungen (Single Data Rate) der vorherigen Generation durch.
  • Darüber hinaus greifen PPUs und/oder andere Komponenten innerhalb des Parallelverarbeitungssystems 112 über einen Parallelverarbeitungssystem (PPS)-Speicher-Controller 132 auf den PP-Speicher 134 zu. Der PPS-Speicher-Controller 132 überträgt Signale an die im PP-Speicher 134 enthaltenen Speichervorrichtungen, um die Speichervorrichtungen zu initiieren, Befehle an die Speichervorrichtungen zu übertragen, Daten in die Speichervorrichtungen zu schreiben, Daten aus den Speichervorrichtungen zu lesen und/oder dergleichen. Ein Beispiel für eine im PP-Speicher 134 verwendete Speichervorrichtung ist der synchrone Grafik-Direktzugriffsspeicher (SGRAM), der eine spezielle Form von SDRAM für Computergrafikanwendungen ist. Ein besonderer Typ von SGRAM ist Graphics Double-Data-Rate SGRAM (GDDR SDRAM oder kurz GDDR). Im Vergleich zu DDR-Speicherbausteinen sind GDDR-Speicherbausteine mit einem breiteren Datenbus ausgestattet, um bei jedem Schreib- und Lesevorgang mehr Datenbits übertragen zu können. Durch den Einsatz der Double-Data-Rate-Technologie und eines breiteren Datenbusses sind GDDR-Speicherbausteine in der Lage, die hohen Datenübertragungsraten zu erreichen, die typischerweise von PPUs benötigt werden.
  • Es wird deutlich, dass das hierin gezeigte System nur veranschaulichend ist und dass Variationen und Änderungen möglich sind. Die Verbindunqstopoloqie, einschließlich der Anzahl und der Anordnung der Brücken, der Anzahl der CPUs 102 und der Anzahl der Parallelverarbeitungssubsysteme 112, kann nach Belieben modifiziert werden. In einigen Ausführungsformen könnte beispielsweise der Systemspeicher 104 direkt und nicht über die Speicherbrücke 105 mit der CPU 102 verbunden sein, und andere Geräte würden über die Speicherbrücke 105 und die CPU 102 mit dem Systemspeicher 104 kommunizieren. In anderen alternativen Topologien kann das Parallelverarbeitungssubsystem 112 mit der E/A-Brücke 107 oder direkt mit der CPU 102 und nicht mit der Speicherbrücke 105 verbunden sein. In wieder anderen Ausführungsformen können die E/A-Brücke 107 und die Speicherbrücke 105 in einen einzigen Chip integriert sein, anstatt als ein oder mehrere diskrete Vorrichtungen zu existieren. Schließlich können in bestimmten Ausführungsformen eine oder mehrere der in dargestellten Komponenten nicht vorhanden sein. So könnte beispielsweise der Switch 116 entfallen, und würden der Netzwerkadapter 118 und die Zusatzkarten 120, 121 direkt zu der E/A-Brücke 107 verbinden.
  • Es wird deutlich, dass die hierin beschriebene Kernarchitektur veranschaulichend ist und dass Variationen und Modifikationen möglich sind. Unter anderem kann das Computersystem 100 von 1 eine beliebige Anzahl von CPUs 102, Parallelverarbeitungssubsystemen 112 oder Speichersystemen, wie beispielsweise den Systemspeicher 104 und den Parallelverarbeitungsspeicher 134, im Rahmen der offenbarten Ausführungsformen beinhalten. Ferner können, wie hierin verwendet, Bezugnahmen auf gemeinsam genutzten Speicher einen oder mehrere technisch mögliche Speicher beinhalten, einschließlich, und ohne Beschränkung auf, einen lokalen Speicher, der von einer oder mehreren PPUs innerhalb des Parallelverarbeitungssubsystems 112 gemeinsam genutzt wird, einen von mehreren Parallelverarbeitungssubsystemen 112 gemeinsam genutzten Speicher, einen Cache-Speicher, einen Parallelverarbeitungsspeicher 134 und/oder einen Systemspeicher 104. Es sei außerdem angemerkt, dass Verweise auf Cache-Speicher, wie hierin verwendet, einen oder mehrere technisch mögliche Speicher beinhalten können, einschließlich, und ohne Beschränkung auf, einen L1-Cache, einen L1.5-Cache und L2-Caches. In Anbetracht der vorstehenden Ausführungen versteht sich für den Fachmann, dass die in 1 beschriebene Architektur den Anwendungsbereich der verschiedenen Ausführungsformen der vorliegenden Erfindung in keiner Weise beschränkt.
  • Durchführen einer Schreibtrainingsoperation auf einem DRAM
  • Verschiedene Ausführungsformen beziehen sich auf Techniken zum effizienten Durchführen eines Schreibtrainings für eine DRAM-Speichervorrichtung. Eine DRAM-Speichervorrichtung beinhaltet ein oder mehrere linear rückgekoppelte Schieberegister (LFSRs), die ein Schreibmuster in Form einer pseudozufälligen Bitsequenz (PRBS) erzeugen. In einigen Ausführungsformen ist jeder von mehreren Eingangs-Pins einer Schnittstelle, z.B. einer Datenschnittstelle, die Schreibtrainingsoperationen unterzogen werden, mit einem separaten LFSR verbunden, um das am entsprechenden Eingangs-Pin empfangene PRBS-Muster zu prüfen. Um mit dem Schreibtraining zu beginnen, sendet ein mit der Speichervorrichtung verbundener Speicher-Controller einen Rücksetzbefehl und/oder ein Rücksetzsignal an das LFSR auf der Speichervorrichtung, um das LFSR zu seeden bzw. zu impfen. Als Reaktion darauf bestückt die Speichervorrichtung das LFSR mit einem vorbestimmten Seed-Wert und/oder Polynom. Zusätzlich oder alternativ bestückt der Speicher-Controller das LFSR durch Übertragen eines Seed-Werts und/oder Polynoms an die Speichervorrichtung über eine andere Schnittstelle, die bereits trainiert wurde, wie z.B. eine separate Befehlsadressenschnittstelle. Als Reaktion darauf bestückt die Speichervorrichtung das LFSR mit dem von dem Speicher-Controller empfangenen Seed-Wert und/oder Polynom. In einigen Ausführungsformen beinhaltet der Speicher-Controller den Rücksetzbefehl, das Rücksetzsignal oder den Seed-Wert und/oder das Polynom in einem Schreibtrainingsbefehl, den der Speicher-Controller über eine Befehlsadressschnittstelle an die Speichervorrichtung überträgt. In einigen Ausführungsformen wird ein Schreibtrainingsergebnisregister von selbst auf einen Anfangswert zurückgesetzt, wenn die Speichervorrichtung einen Seed-Wert in das LFSR lädt, um das Schreibtrainingsergebnisregister darauf vorzubereiten, den Bestanden/Nichtbestanden-Status (hierin auch als Pass/Fail- bzw. Bestanden/Nichtbestanden-Ergebniswerte bezeichnet) für die aktuelle Schreibtrainingsoperation zu empfangen.
  • Während der Schreibtrainingsoperation überträgt der Speicher-Controller ein Schreibtrainingsmuster an ein oder mehrere Schnittstellen-Pins an der Speichervorrichtung auf der Grundlage desselben Seed-Werts und/oder Polynoms, der/das von der Speichervorrichtung zum Seeden des LFSR verwendet wird. Wenn die Speichervorrichtung das Bitmuster empfängt, prüft ein Schreibtrainingsprüfer an dem einen oder den mehreren Schnittstellen-Pins das eingehende Schreibtrainingsmuster an dem einen oder den mehreren Schnittstellen-Pins mit der Ausgabe des LFSR in der Speichervorrichtung. In einigen Ausführungsformen ist der PRBS-Prüfer für einen Eingangs-Pin unter Verwendung von Exklusiv- oder (XOR-) Logik implementiert.
  • Falls das eingehende Schreibdatenmuster mit dem vom LFSR in der Speichervorrichtung erzeugten Datenmuster übereinstimmt, dann ist die Schreibtrainingsoperation bestanden, und die Speichervorrichtung zeichnet einen Pass- bzw. Bestanden-Status in einem Schreibtrainingsergebnisregister auf. Falls jedoch das eingehende Schreibdatenmuster nicht mit dem vom LFSR in der Speichervorrichtung erzeugten Datenmuster übereinstimmt, dann ist die Schreibtrainingsoperation fehlgeschlagen bzw. nicht bestanden, und die Speichervorrichtung zeichnet einen Fehler- bzw. Nichtbestanden-Status in dem Schreibtrainingsergebnisregister auf. In einigen Ausführungsformen beinhaltet das Schreibtrainingsergebnisregister ein separates Bestanden/Nichtbestanden-Statusbit für jeden Eingangs-Pin, der einer Schreibtrainingsoperation unterzogen wird.
  • Während der Schreibtrainingsoperation schaltet der Speicher-Controller das LFSR auf dem Speicher-Controller periodisch weiter, indem er den Wert im LFSR auf dem Speicher-Controller verschiebt. Dementsprechend überträgt der Speicher-Controller einen neuen Schreibtrainingsbefehl an die Speichervorrichtung. Daraufhin schaltet die Speichervorrichtung das LFSR auf der Speichervorrichtung weiter, indem sie den Wert im LFSR auf der Speichervorrichtung verschiebt. Auf diese Weise behalten das LFSR auf dem Speicher-Controller und das LFSR auf der Speichervorrichtung während der Schreibtrainingsoperation denselben Wert bei. Infolgedessen erzeugen das LFSR auf dem Speicher-Controller und das LFSR auf der Speichervorrichtung während der Schreibtrainingsoperation das gleiche Datenmuster.
  • Wenn die Speichervorrichtung die Schreibtrainingsoperation ganz oder teilweise abgeschlossen hat, liest der Speicher-Controller den Wert im Schreibtrainingsergebnisregister, um zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war oder nicht. In einigen Ausführungsformen wird das Schreibtrainingsergebnisregister von selbst auf einen Anfangswert zurückgesetzt, wenn der Wert des Schreibtrainingsergebnisregisters vom Speicher-Controller gelesen wird. In einigen Ausführungsformen wird das Schreibtrainingsergebnisregister zunächst gelöscht, um einen Fehlerzustand anzuzeigen. Danach wird das Schreibtrainingsergebnisregister bei Bedarf nach jedem Schreibtraininsbefehl aktualisiert, um anzuzeigen, ob die dem Schreibtraininsbefehl entsprechende Schreibtrainingsoperation erfolgreich war oder nicht. Wenn das Statusregister von der Speichersteuerung gelesen wird, wird das Statusregister wieder selbstgelöscht, um einen Fehlerzustand anzuzeigen.
  • 2 ist ein Blockdiagramm einer Trainingsarchitektur 200, die in dem Systemspeicher-Controller 130 und/oder dem PPS-Speicher-Controller 132 des Computersystems 100 von 1 enthalten ist, gemäß verschiedenen Ausführungsformen.
  • Die Trainingsarchitektur 200 beinhaltet einen Speichersteuerungsprozessor 226, der Signale an die Komponenten der Trainingsarchitektur 200, die in dem Speicher-Controller enthalten sind, und an die Trainingsarchitektur 300 von 3, die in den Speichervorrichtungen enthalten ist, die im Systemspeicher 104 und/oder im PP-Speicher 134 enthalten sind, überträgt. Der Speichersteuerungsprozessor 226 überträgt Signale, um die Speichervorrichtungen zu initiieren, Befehle an die Speichervorrichtungen zu übertragen, Daten in die Speichervorrichtungen zu schreiben, Daten aus den Speichervorrichtungen zu lesen und/oder dergleichen. Der Speichersteuerungsprozessor 226 erzeugt Befehle zur Übertragung an eine Speichervorrichtung und überträgt die Befehle an einen Sender 208. Der Sender 208 wiederum überträgt die Befehle über die Befehlsadressen (CA)-Ausgangs-Pins 206 an die Speichervorrichtung.
  • Darüber hinaus überträgt der Speichersteuerungsprozessor 226 Lese-/SchreibBefehlsauslöser an das lineare rückgekoppelte Lese-/Schreib-Schieberegister (R/W LFSR) 220, was zu einem Synchronisationsvorgang führt. Der Lese-/Schreib-Befehlsauslöser kann in Form eines Befehls, Signals und/oder dergleichen vorliegen, der vom Speichersteuerungsprozessor 226 übertragen und vom R/W LFSR 220 empfangen wird. Eine erste Art von Synchronisationsoperation, die aus dem Lese-/Schreib-Befehlsauslöser resultiert, initialisiert das R/W LFSR 220 auf einen bekannten Zustand, um einen Sequenzwert zu erzeugen. Eine zweite Art von Synchronisationsoperation, die aus dem Lese-/Schreib-Befehlsauslöser resultiert, bewirkt, dass das R/W LFSR 220 von der Erzeugung eines aktuellen Sequenzwerts zur Erzeugung eines nächsten Sequenzwerts wechselt. Wenn das R/W LFSR 220 initialisiert ist, lädt das R/W LFSR 220 einen LFSR-Seed-Wert aus Konfigurationsregistern 234, um einen Anfangs-Sequenzwert zu erzeugen. Vor der Initialisierung des R/W LFSR 220 speichert der Speichersteuerungsprozessor 226 das LFSR-Seed-Wert in den Konfigurationsregistern 234. Wenn das R/W LFSR 220 weitergeschaltet wird, schreitet das R/W LFSR 220 von der Erzeugung eines aktuellen Sequenzwerts zu einem nächsten Sequenzwert fort. Der Speichersteuerungsprozessor 226 initialisiert und schaltet das R/W LFSR 220 synchron mit der Speichervorrichtung, die das R/W LFSR 320 aus 3 weiterschaltet, weiter, um die Synchronisation zwischen dem R/W LFSR 220 und dem R/W LFSR 320 aufrechtzuerhalten. Auf diese Weise kann die Trainingsarchitektur 300 überprüfen, ob die von der Speichervorrichtung empfangenen Daten mit den Daten übereinstimmen, die von der in der Systemspeichersteuerung enthaltenen Trainingsarchitektur 200 übertragen wurden.
  • Das R/W LFSR 220 überträgt die Sequenzwerte an einen Encoder bzw. Codierer 230. Der Codierer 230 führt eine Codieroperation an den Sequenzwerten durch. Die von der Trainingsarchitektur 200 an die DQ-, DQX-I/O- und EDC-Pins 216 übertragenen Sequenzwerte werden typischerweise codiert, um die Signalübertragung über die Speicherschnittstelle zu optimieren. Das Ziel der Übertragung codierter Daten über die physikalische E/A-Schicht zwischen dem Speicher-Controller und der Speichervorrichtung ist die Optimierung der Daten zur Signalübertragung. Die Codierung optimiert die Daten, um Übergänge auf der Schnittstelle zu minimieren, um Übersprechen zu minimieren, um die von der Abschlussschaltung auf der Schnittstelle verbrauchte Gleichstrommenge zu reduzieren und/oder dergleichen. Die Daten können über eine Maximalübergangsvermeidungs (MTA; Maximum Transition Avoidance)-Operation codiert werden, welches die Anzahl der Signalübergänge von niedrig nach hoch und/oder von hoch nach niedrig reduziert, um das Signal-Rausch-Verhältnis (SNR) an der Speicherschnittstelle zu verbessern. Zusätzlich oder alternativ können die Daten über eine Datenbusinversion (DBI)-Operation codiert werden, um die Anzahl hoher Signalwerte auf der Speicherschnittstelle zu reduzieren, um den Stromverbrauch über die Speicherschnittstelle zu verringern. Zusätzlich oder alternativ können die Daten durch jeden beliebigen technisch machbaren Betriebsablauf codiert werden.
  • Der Codierer 230 erzeugt codierte Sequenzwerte zur Übertragung an die Speichervorrichtung und überträgt die codierten Sequenzwerte an einen Sender 218. Der Sender 218 wiederum überträgt die codierten Sequenzwerte über einen oder mehrere Daten-(DQ), erweiterte Daten- (DQX) und/oder Fehlererkennungs- und -korrektur-Pins (EDC) 216 an die Speichervorrichtung.
  • 3 ist ein Blockdiagramm einer Trainingsarchitektur 300 für eine Speichervorrichtung, die im Systemspeicher 104 und/oder im Parallelverarbeitungsspeicher 134 des Computersystems 100 von 1 enthalten ist, gemäß verschiedenen Ausführungsformen. Wie weiter beschrieben, beinhaltet die Trainingsarchitektur 300 Komponenten für das Training der Befehlsadressenschnittstelle, das Training der Datenleseschnittstelle und das Training der Datenschreibschnittstelle. Über diese Komponenten führt die Trainingsarchitektur 300 Befehlsadressen-Trainingsoperationen, Datenlese-Trainingsoperationen und Datenschreib-Trainingsoperationen durch, ohne dass Trainingsdaten in dem DRAM-Kern 326 der Speichervorrichtung gespeichert werden müssen. Wenn die Speichervorrichtung mit höheren Geschwindigkeiten arbeitet, führt der Speicher-Controller diese Trainingsoperationen periodisch durch, um die Einrichtungszeit und die Haltezeit an allen Eingangs- und Ausgangs-Pins der Speichervorrichtung einzuhalten.
  • Im Allgemeinen führt der Speicher-Controller Trainingsoperationen in einer bestimmten Reihenfolge durch. Zunächst führt der Speicher-Controller Trainingsoperationen an der Befehlsadressenschnittstelle durch. Das Training der Befehlsadressenschnittstelle kann über beliebige technisch machbare Techniken durchgeführt werden. Indem zuerst die Befehlsadressenschnittstelle trainiert wird, ist die Speichervorrichtung bereit, Befehle zu empfangen und Modusregister zu schreiben, wie es zum Durchführen des Trainings der Datenleseschnittstelle und der Datenschreibschnittstelle erforderlich ist. Im Allgemeinen funktioniert die Befehlsadressenschnittstelle ohne Training, solange die Einrichtungs- und Haltezeit an allen Befehlsadresseneingangs-Pins 306 eingehalten wird. Der Speicher-Controller veranlasst, dass ein Seed-Wert und/oder ein Polynom in das lineare rückgekoppelte Schieberegister für die Befehlsadresse (CA (Command Address) LFSR) 310 geladen wird. Der Speicher-Controller wendet ein Datenmuster auf einen oder mehrere CA-Eingangs-Pins 306 an. Die CA-Eingangs-Pins 306 werden über einen Empfänger 308 an das CA LFSR 310 und an ein XOR-Gatter 312 übertragen. Das CA LFSR 310 repliziert das gleiche Muster wie der Speicher-Controller. Das XOR-Gatter 312 vergleicht das Datenmuster an den CA-Eingangs-Pins 306 mit den Daten aus dem CA LFSR 310. Das XOR-Gatter 312 überträgt einen niedrigen Wert, wenn das Datenmuster an den CA-Eingangs-Pins 306 mit den Daten aus dem CA LFSR 310 übereinstimmt. Das XOR-Gatter 312 überträgt einen hohen Wert, wenn das Datenmuster an den CA-Eingangs-Pins 306 nicht mit den Daten aus dem CA LFSR 310 übereinstimmt. Der Modus 304-Eingang des Multiplexers 302 wählt den unteren Eingang aus, um den Ausgang des XOR-Gatters 312 an einen Sender 314 und dann an einen oder mehrere Daten (DQ)-, erweiterte Daten (DQX)- und/oder Fehlererkennungs- und -korrektur (EDC)-Pins 316 zu übertragen. Der Speicher-Controller liest dann den einen oder die mehreren DQ-, DQX- und/oder EDC-Pins 316, um zu bestimmen, ob das Befehlsadresseneingangstraining erfolgreich war. Sobald das Training der Befehlsadresseneingabe abgeschlossen ist, werden die vom Speicher-Controller empfangenen Befehlsadressen über die CA-Eingangs-Pins 306 und den Empfänger 308 und dann an einen DRAM-Kern 326 weitergeleitet. In verschiedenen Ausführungsformen kann Rückmeldung von der Speichervorrichtung für verschiedene Anwendungsfälle, die sich aus dem Schnittstellentraining ergeben, von der Speichervorrichtung über einen oder mehrere DQ-, DQX- und/oder EDC-Pins 316 an den Speicher-Controller übertragen werden, in jeder beliebigen technisch machbaren Kombination.
  • Nachdem das Training der Befehlsadressenschnittstelle abgeschlossen ist, kann der Speicher-Controller Befehle an die Speichervorrichtung übertragen, um das Training der Datenleseschnittstelle und der Datenschreibschnittstelle zu erleichtern. Die Speichervorrichtung empfängt diese Befehle über die CA-Eingangs-Pins 306. Der Empfänger 308 überträgt die Befehle von den CA-Eingangs-Pins 306 an einen Befehlsdecoder 332. Der Befehlsdecoder 332 decodiert die Befehle, die von der im Speicher-Controller enthaltenen Trainingsarchitektur 200 empfangen werden. Einige Befehle speichern Werte in und/oder laden Werte aus Konfigurationsregistern 334. Beispielsweise kann der Befehlsdecoder 332 einen Befehl zum Speichern eines Werts in Konfigurationsregistern 334 empfangen, um einen LFSR (Linear Feedback Shift Register)-Seed-Wert zu speichern, der jedes Mal in ein R/W LFSR (Linear Feedback Shift Register) 320 geladen wird, wenn das R/W LFSR 320 initialisiert wird.
  • Einige Befehle führen verschiedene Operationen in der Speichervorrichtung durch. Beispielsweise kann der Befehlsdecoder 332 einen Lesebefehl empfangen, woraufhin die Speichervorrichtung einen Lesevorgang durchführt, um Daten aus dem DRAM-Kern 326 zu laden und die Daten an den Speicher-Controller zu übertragen. In ähnlicher Weise kann der Befehlsdecoder 332 einen Schreibbefehl empfangen, woraufhin die Speichervorrichtung einen Schreibvorgang durchführt, um die vom Speicher-Controller empfangenen Daten im DRAM-Kern 326 zu speichern. Wenn der Befehlsdecoder 332 während des Trainings der Datenleseschnittstelle oder der Datenschreibschnittstelle einen Lese- oder Schreibbefehl empfängt, überträgt der Befehlsdecoder 332 einen von den Lese-/Schreib-Befehlen abgeleiteten Auslöser an das R/W LFSR 320. Der Auslöser des Lese-/Schreib-Befehls initialisiert das R/W LFSR 320, um einen ersten Sequenzwert zu erzeugen, und/oder schaltet das R/W LFSR 320 von einem aktuellen Sequenzwert zu einem nächsten Sequenzwert weiter.
  • Zweitens führt der Speicher-Controller Trainingsoperationen an der Datenleseschnittstelle durch. Im Allgemeinen werden Trainingsoperationen an der Datenleseschnittstelle vor Trainingsoperationen an der Datenschreibschnittstelle durchgeführt. Diese Reihenfolge der Trainingsoperationen stellt sicher, dass die von der Speichervorrichtung gelesenen Daten korrekt sind, was es dem Speicher-Controller ermöglicht, optimale Schreibtrainingsoperationen durchzuführen. Der Speicher-Controller überträgt einen Befehl an die Speichervorrichtung, der bewirkt, dass ein Seed-Wert und/oder Polynom in das R/W LFSR 320 geladen wird. Das R/W LFSR 320 überträgt eine Reihe von Sequenzwerten, die auf dem Seed-Wert und/oder dem Polynom basieren, an einen Codierer 330.
  • Der Codierer 330 führt eine Codieroperation an den Sequenzwerten durch. Die von dem R/W LFSR 320 an die DQ, DQX I/O-Pins 316 übertragenen Sequenzwerte werden typischerweise codiert, um die Signalübertragung über die Speicherschnittstelle zu optimieren. Das Ziel der Übertragung codierter Daten über die physikalische E/A-Schicht zwischen dem Speicher-Controller und der Speichervorrichtung ist die Optimierung der Daten für die Signalübertragung. Die Codierung optimiert die Daten, um Übergänge auf der Schnittstelle zu minimieren, um Übersprechen zu minimieren, um die von der Abschlussschaltung auf der Schnittstelle verbrauchte Gleichstrommenge zu reduzieren und/oder dergleichen. Die Daten können mit einer MTA (Maximum Transition Avoidance)-Operation codiert werden, welche die Anzahl der Signalübergänge von niedrig nach hoch und/oder von hoch nach niedrig reduziert, um das Signal-Rausch-Verhältnis (SNR) an der Speicherschnittstelle zu verbessern. Zusätzlich oder alternativ können die Daten über eine Datenbusinversion (DBI)-Operation codiert werden, um die Anzahl hoher Signalwerte auf der Speicherschnittstelle zu reduzieren, um den Stromverbrauch über die Speicherschnittstelle zu verringern. Zusätzlich oder alternativ können die Daten über jede beliebige technisch mögliche Operation codiert werden.
  • Der Modus 304-Eingang des Multiplexers 302 wählt den obersten Eingang aus, um den Ausgang des Codierers 330 an den Sender 314 und dann an einen oder mehrere Daten (DQ)-, erweiterte Daten (DQX)- und/oder Fehlererkennungs- und -korrektur (EDC)-Pins 316 zu übertragen. Der Speicher-Controller liest dann den einen oder die mehreren DQ-, DQX- und/oder EDC-Pins 316, um zu bestimmen, ob die empfangenen Daten das erwartete Muster aus dem R/W LFSR 320 sind.
  • Drittens führt der Speicher-Controller Trainingsoperationen an der Datenschreibschnittstelle durch. Der Speicher-Controller veranlasst, dass ein Seed-Wert und/oder ein Polynom in das R/W LFSR 320 geladen wird. Der Speicher-Controller wendet ein Datenmuster auf einen oder mehrere DQ-, DQX- und/oder EDC-Pins 316 an. Die DQ- , DQX- und/oder EDC-Pins 316 werden über den Empfänger 318 an das R/W LFSR 320 und an das XOR-Gatter 322 übertragen. Das R/W LFSR 320 repliziert das gleiche Muster wie das R/W LFSR 220 auf dem Speicher-Controller. Der Codierer 330 codiert das vom R/W LFSR 320 gelieferte Muster, um die vom Speicher-Controller über den Empfänger 318 empfangenen codierten Daten zu replizieren. Das XOR-Gatter 322 vergleicht das Datenmuster an den DQ-, DQX- und/oder EDC-Pins 316 mit den Daten vom Codierer 330. Das XOR-Gatter 322 überträgt einen niedrigen Wert, wenn das Datenmuster an den CA-Eingangs-Pins 306 mit den Daten vom Codierer 330 übereinstimmt. Das XOR-Gatter 322 überträgt einen hohen Wert, wenn das Datenmuster an den DQ-, DQX- und/oder EDC-Pins 316 nicht mit den Daten vom Codierer 330 übereinstimmt. Der Ausgang des XOR-Gatters 322 wird an das Schreibtrainingsergebnisregister 324 übertragen und als bestandener/nicht bestandener Schreibtrainingsstatus für jeden der DQ-, DQX- und/oder EDC-Pins 316, die einem Schreibtraining unterzogen werden, gespeichert. Der Speicher-Controller liest das Schreibtrainingsergebnisregister 324, um die Ergebnisse der Schreibtrainingsoperationen zu ermitteln. Wenn der Speicher-Controller das Schreibtrainingsergebnisregister 324 liest, wählt der Modus 304-Eingang des Multiplexers 302 den zweiten Eingang von oben her aus, um den Ausgang des Schreibtrainingsergebnisregisters 324 über den Sender 314 und dann an einen oder mehrere DQ-, DQX- und/oder EDC-Pins 316 zu übertragen. Der Speicher-Controller liest dann den einen oder die mehreren DQ-, DQX- und/oder EDC-Pins 316, um zu bestimmen, ob das Datenschreibtraining erfolgreich war. Sobald das Datenschreibtraining abgeschlossen ist, werden die vom Speicher-Controller empfangenen Schreibdaten durch die DQ-, DQX- und/oder EDC-Pins 316 und den Empfänger 318 und dann zum DRAM-Kern 326 geleitet.
  • In einigen Ausführungsformen bleibt, sobald ein Fehlerstatus bzw. Nichtbestanden-Status in dem Schreibtrainingsergebnisregister 324 gespeichert ist, der Fehlerstatus bzw. Nichtbestanden-Status bis zum Auftreten eines Zurücksetzens der Speichervorrichtung in dem Schreibtrainingsergebnisregister 324. Selbst wenn eine nachfolgende Datenschreibschnittstellen-Trainingsoperation zu einem Bestanden-Status resultiert, ändert das Schreibtrainingsergebnisregister 324 den Nichtbestanden-Status nicht in einen Bestanden-Status. Anstelle dessen behält das Schreibtrainingsergebnisregister 324 den Nichtbestanden-Status des vorherigen fehlgeschlagenen Datenschreibschnittstellen-Trainingsvorgangs bei. In diesen Ausführungsformen zeigt ein Nichtbestanden-Status an, dass mindestens ein Datenschreibschnittstellen-Trainingsvorgang, der seit dem letzten Zurücksetzen der Speichervorrichtung durchgeführt wurde, in einem Nichtbestanden-Status resultierte. Der Nichtbestanden-Status wird bei einem Zurücksetzen der Speichervorrichtung gelöscht. Das Zurücksetzen der Speichervorrichtung kann im Ansprechen auf das Lesen eines Registers, das das Zurücksetzen auslöst, durch Laden des R/W LFSR 220 mit einem Seed-Wert, durch Empfangen eines Signals an einem Reset- bzw. Rücksetz-Pin der Speichervorrichtung und/oder dergleichen durchgeführt werden.
  • Nach Abschluss des Datenlesetrainings und des Datenschreibtrainings wählt der Modus 304-Eingang des Multiplexers 302 den zweiten Eingang von unten her aus, um den Ausgang des DRAM-Kerns 326 an den Sender 314 und dann an einen oder die mehreren Daten (DQ)-, erweiterte Daten (DQX)- und/oder Fehlererkennungs- und - korrektur (EDC)-Pins 316 zu übertragen.
  • Es versteht sich, dass das hierin gezeigte System veranschaulichend ist und dass Variationen und Modifikationen möglich sind. Unter anderem beinhaltet die Trainingsarchitektur 300 Komponenten für das Training der Befehlsadressenschnittstelle, das Training der Datenleseschnittstelle und das Training der Datenschreibschnittstelle. Die Trainingsarchitektur 300 kann jedoch auch Komponenten zum Trainieren jeder beliebigen anderen technisch möglichen Eingabe- und/oder Ausgabeschnittstelle im Anwendungsbereich der vorliegenden Erfindung beinhalten. Ferner erzeugt in einigen Beispielen ein einziger LFSR das Quellensignal, wie beispielsweise eine pseudozufällige Bitsequenz (PRBS), zum Trainieren einer beliebigen Kombination von einem oder mehreren E/A-Pins der Speichervorrichtung, einschließlich aller der E/A-Pins der Speichervorrichtung. Zusätzlich oder alternativ kann ein LFSR eine PRBS zum Trainieren eines oder mehrerer E/A-Pins der Speichervorrichtung erzeugen. Zusätzlich oder alternativ können mehrere LFSRs eine PRBS für einen oder mehrere E/A-Pins der Speichervorrichtung erzeugen, wie nun beschrieben.
  • 4 ist ein Blockdiagramm eines linearen rückgekoppelten Schieberegister (LFSR)-Subsystems 400 für eine Speichervorrichtung, die im Systemspeicher 104 und/oder im Parallelverarbeitungsspeicher 134 des Computersystems 100 von 1 enthalten ist, gemäß verschiedenen Ausführungsformen. Wie gezeigt, beinhaltet das LFSR-Subsystem 400 eine Anzahl von LFSRs 410(0)-410(4) sowie eine Anzahl von XOR-Gattern 420(0)-420(3).
  • Das LFSR-Subsystem 400 beinhaltet die LFSRs 410(0)-410(3), die direkt Bitsequenzen, wie z.B. pseudozufällige Bitsequenzen (PRBSs) für spezifische E/A-Pins der Speichervorrichtung erzeugen. In dieser Hinsicht erzeugt das DQ0 LFSR 410(0) eine DQ0 PRBS 430(0) für Bit 0 des Datenpinbusses der Speichervorrichtung. Ebenso erzeugt das DQ2 LFSR 410(2) eine DQ2 PRBS 430(2) für Bit 2 des Datenpinbusses der Speichervorrichtung. In ähnlicher Weise erzeugt das DQ4 LFSR 410(4) eine DQ4 PRBS 430(4) für Bit 4 des Datenpinbusses der Speichervorrichtung, und erzeugt das DQ6 LFSR 410(6) eine DQ6 PRBS 430(6) für Bit 6 des Datenpinbusses der Speichervorrichtung. Das Fehlererkennungs- und -korrektur (EDC) LFSR 410(8) erzeugt eine EDC PRBS 430(8) für ein EDC-Bit des EDC-Pinbusses der Speichervorrichtung.
  • Das LFSR-Subsystem 400 erzeugt PRBS-en für die verbleibenden DQ-Bits auf der Grundlage einer beliebigen technisch machbaren Kombination von zwei oder mehr der Ausgänge der DQ LFSRs 410(0)-(8), die im LFSR-Subsystem 400 enthalten sind. In einigen Beispielen erzeugt das LFSR-Subsystem 400 die DQ1 PRBS 430(1) auf der Grundlage einer logischen Kombination von zwei oder mehr anderen LFSRs, wie z.B. der Ausgabe des XOR-Gatters 420, das eine XOR-Funktion an der Ausgabe von DQ0 LFSR 410(0) und DQ2 LFSR 410(2) durchführt. In ähnlicher Weise erzeugt das LFSR-Subsystem 400 die DQ3 PRBS 430(1) auf der Grundlage einer logischen Kombination von zwei oder mehr anderen LFSRs, z.B. der Ausgabe des XOR-Gatters 422, das eine XOR-Funktion an der Ausgabe von DQ2 LFSR 410(2) und DQ4 LFSR 410(4) durchführt.
  • Das LFSR-Subsystem 400 erzeugt die DQ5 PRBS 430(5) auf der Grundlage einer beliebigen technisch machbaren logischen Kombination der Ausgaben von zwei oder mehr anderen LFSRs, wie z.B. der Ausgabe eines XOR-Gatters 424, das eine XOR-Funktion an der Ausgabe von DQ4 LFSR 410(4) und DQ6 LFSR 410(6) durchführt. Das LFSR-Subsystem 400 erzeugt die DQ7 PRBS 430(7) auf der Grundlage einer logischen Kombination von zwei oder mehr anderen LFSRs, z.B. dem Ausgang eines XOR-Gatters 426, das eine XOR-Funktion für den Ausgang von DQ6 LFSR 410(6) und den Ausgang von EDC LFSR 410(8) durchführt. Durch die gemeinsame Nutzung von LFSRs an mehreren Ausgängen erzeugt das LFSR-Subsystem 400 eine eindeutige PRBS für jeden Ausgang eines bestimmten Signalbusses, ohne dass für jeden Ausgang des Signalbusses ein separates LFSR verwendet werden muss. Im obigen Beispiel beinhaltet das LFSR-Subsystem 400 nur 5 LFSRs und erzeugt dennoch eindeutige PRBSs für jeden der 8 Signalbusausgänge.
  • Es versteht sich, dass das hierin gezeigte System nur ein Beispiel ist und dass Variationen und Änderungen möglich sind. In einigen Beispielen können die in Verbindung mit den Daten (DQ)-Pins der Speichervorrichtung beschriebenen Techniken für die erweiterten Daten (DQX)-Pins, die Fehlererkennungs- und -korrektur (EDC)-Pins, die Befehlsadressen (CA)-Pins und/oder beliebige andere Eingangs-/Ausgangs-Pins der Speichervorrichtung verwendet werden.
  • Zusätzlich oder alternativ können die von der Speichervorrichtung erzeugten Muster einem Codierungsschema unterworfen werden, das die maximalen Übergänge für das Training reduziert und/oder eliminiert, wie z.B. ein Codierungsschema, das auf Phasenamplitudenmodulation (PAM4)-Signalisierungsparametern basiert. Infolgedessen können die von der Speichervorrichtung erzeugten Muster die Notwendigkeit beseitigen, eine vollständige MTA-Encoder-Logik hinzuzufügen, die teuer sein kann.
  • In einigen Beispielen, wenn das LFSR-Subsystem 400 randomisierte LFSR-Daten von dem Parallelverarbeitungssubsystem 112 an den DRAM-Kern 326 überträgt, falls das LFSR-Subsystem 400 keine bestimmte Art von Codierung durchführt, um maximale Übergänge zu vermeiden, dann können die Trainingsergebnisse negativ betroffen sein. Infolgedessen können die Trainingsergebnisse suboptimal sein, weil die regulären Lese-/Schreib-Operationen maximale Übergänge durch die Verwendung der MTA-Codierungslogik vermeiden. Daher kann das LFSR-Subsystem 400 Techniken mit geringem Überhang bzw. Overhead durchführen, um die Vorteile von MTA zu imitieren, ohne eine vollständige MTA-Codier- und Decodier-Logik implementieren zu müssen. Diese Techniken involvieren die Erfassung maximaler Übergänge am zufälligen LFSR-Ausgang. Die Techniken wandeln die maximalen Übergänge am zufälligen LFSR-Ausgang in Nicht-Maximum-Übergänge (0<->2, 0<->1, kein Übergang und/oder dergleichen) um. Allgemeiner ausgedrückt, kann die vom LFSR-Subsystem 400 durchgeführte Codierung Zufallsdaten so manipulieren, dass die Eigenschaften der MTA-Codierung/Decodierung nachgeahmt werden, ohne dass dem LFSR-Subsystem 400 eine vollständige MTA-Codier-/Decodier-Logik hinzugefügt wird.
  • 5 ist ein Ablaufdiagramm von Verfahrensschritten zur Durchführung einer Schreibtrainingsoperation auf einer Speichervorrichtung, die im Systemspeicher 104 und/oder im Parallelverarbeitungsspeicher 134 des Computersystems von 1 enthalten ist, gemäß verschiedenen Ausführungsformen. Obwohl die Verfahrensschritte in Verbindung mit den Systemen der 1-4 beschrieben werden, versteht sich für den Fachmann, dass jedes beliebige System, das dazu konfiguriert ist, die Verfahrensschritte in beliebiger Reihenfolge auszuführen, in den Anwendungsbereich der vorliegenden Erfindung fällt.
  • Wie gezeigt, beginnt ein Verfahren 500 bei Schritt 502, in dem eine Speichervorrichtung ein Schreibtrainings-LFSR, wie beispielsweise das R/W LFSR 320, auf der Speichervorrichtung mit einem Seed-Wert initialisiert. Der Speicher-Controller veranlasst, dass ein Seed-Wert und/oder ein Polynom in das R/W LFSR 320 geladen wird. Um mit dem Schreibtraining zu beginnen, sendet ein mit der Speichervorrichtung verbundener Speicher-Controller einen Rücksetzbefehl und/oder ein Rücksetzsignal an das R/W LFSR 320 auf der Speichervorrichtung, um das R/W LFSR 320 zu seeden. bzw. zu bestücken. Daraufhin bestückt die Speichervorrichtung das R/W LFSR 320 mit einem vorbestimmten Seed-Wert und/oder Polynom. Zusätzlich oder alternativ kann der Speicher-Controller das R/W LFSR 320 seeden, indem er einen Seed-Wert und/oder ein Polynom über eine andere Schnittstelle, die bereits trainiert wurde, wie z.B. eine separate Befehlsadressenschnittstelle, an die Speichervorrichtung überträgt. Daraufhin bestückt die Speichervorrichtung das R/W LFSR 320 mit dem von der Speichersteuerung empfangenen Seed-Wert und/oder Polynom. In einigen Ausführungsformen beinhaltet der Speicher-Controller den Rücksetzbefehl, das Rücksetzsignal oder den Seed-Wert und/oder das Polynom in einem Schreibtrainingsbefehl, den der Speicher-Controller über eine Befehlsadressschnittstelle an die Speichervorrichtung überträgt. In einigen Ausführungsformen setzt sich ein Schreibtrainingsergebnisregister selbst auf einen Anfangswert zurück, wenn die Speichervorrichtung einen Seed-Wert in das LFSR lädt, um das Schreibtrainingsergebnisregister darauf vorzubereiten, einen Pass/Fail- bzw. Bestanden/Nichtbestanden-Status für die aktuelle Schreibtrainingsoperation zu empfangen.
  • Bei Schritt 504 empfängt die Speichervorrichtung ein Datenmuster in der Form eines Signals an einem Eingangs-Pin. Der Speicher-Controller legt das Datenmuster an einen oder mehrere DQ-, DQX- und/oder EDC-Pins 316 an.
  • Bei Schritt 506 vergleicht die Speichervorrichtung ein Signal an dem Eingangs-Pin mit dem Wert in dem Schreibtrainings-LFSR, wie dem R/W LFSR 320. Die DQ-, DQX- und/oder EDC-Pins 316 werden über den Empfänger 318 an das R/W LFSR 320 und an das XOR-Gatter 322 übertragen. Das R/W LFSR 320 repliziert das gleiche Muster wie der Speicher-Controller. Das XOR-Gatter 322 vergleicht das Datenmuster an den DQ-, DQX- und/oder EDC-Pins 316 mit den Daten aus dem R/W LFSR 320. Das XOR-Gatter 322 überträgt einen niedrigen Wert, wenn das Datenmuster an den CA-Eingangs-Pins 306 mit den Daten aus dem R/W LFSR 320 übereinstimmt. Das XOR-Gatter 322 überträgt einen hohen Wert, wenn das Datenmuster an den DQ-, DQX- und/oder EDC-Pins 316 nicht mit den Daten aus dem R/W LFSR 320 übereinstimmt.
  • Bei Schritt 508 zeichnet die Speichervorrichtung die Ergebnisse in einem Ergebnisregister auf, wie z.B. dem Schreibtrainingsergebnisregister 324. Die Ausgabe des XOR-Gatters 322 wird an das Schreibtrainingsergebnisregister 324 übertragen und als Bestanden/Nichtbestanden-Schreibtrainingsstatus für jeden der DQ-, DQX- und/oder EDC-Pins 316, die ein Schreibtraining durchlaufen, gespeichert. Die Speichervorrichtung schaltet optional das R/W LFSR 320 weiter. Während der Schreibtrainingsoperation schaltet der Speicher-Controller das LFSR auf dem Speicher-Controller periodisch weiter, indem er den Wert im LFSR auf dem Speicher-Controller verschiebt. Entsprechend überträgt der Speicher-Controller einen neuen Schreibtrainingsbefehl an die Speichervorrichtung. Als Reaktion darauf schaltet die Speichervorrichtung das R/W LFSR 320 auf der Speichervorrichtung weiter, indem sie den Wert im R/W LFSR 320 auf der Speichervorrichtung verschiebt. Auf diese Weise behalten das LFSR auf dem Speicher-Controller und das R/W LFSR 320 auf der Speichervorrichtung während der Schreibtrainingsoperation denselben Wert bei. Infolgedessen erzeugen das LFSR auf dem Speicher-Controller und das R/W LFSR 320 auf der Speichervorrichtung während der Schreibtrainingsoperation das gleiche Datenmuster.
  • Bei Schritt 510 bestimmt die Speichervorrichtung, ob der Schreibtest abgeschlossen ist. Die Speichervorrichtung kann bestimmen, ob der Test abgeschlossen ist, auf der Grundlage des Abschlusses einer Anzahl von Iterationen der Schreibtrainingsoperation, auf der Grundlage eines von der Speichersteuerung empfangenen Befehls und/oder dergleichen. Falls die Speichervorrichtung bestimmt, dass der Schreibtest nicht abgeschlossen ist, dann schreitet das Verfahren 500 zu dem vorstehend beschriebenen Schritt 504 fort.
  • Falls jedoch die Speichervorrichtung bestimmt, dass der Schreibtest abgeschlossen ist, dann schreitet das Verfahren 500 zu Schritt 512 fort, in dem die Speichervorrichtung die Ergebnisse an den Speicher-Controller überträgt. Wenn die Speichervorrichtung die Schreibtrainingsoperation ganz oder teilweise abgeschlossen hat, liest der Speicher-Controller das Schreibtrainingsergebnisregister 324, um die Ergebnisse der Schreibtrainingsoperationen zu ermitteln und dadurch zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war oder fehlgeschlagen ist. Wenn der Speicher-Controller das Schreibtrainingsergebnisregister 324 liest, wählt der Modus 304-Eingang des Multiplexers 302 den zweiten Eingang von oben aus, um den Ausgang des Schreibtrainingsergebnisregisters 324 über den Sender 314 und dann an einen oder mehrere DQ-, DQX- und/oder EDC-Pins 316 zu übertragen. Der Speicher-Controller liest dann den einen oder die mehreren DQ-, DQX- und/oder EDC-Pins 316, um zu bestimmen, ob das Datenschreibtraining erfolgreich war.
  • Bei Schritt 514 löscht die Speichervorrichtung das Ergebnisregister. In einigen Ausführungsformen setzt sich das Schreibtrainingsergebnisregister von selbst auf einen Anfangswert zurück, wenn der Wert des Schreibtrainingsergebnisregisters von der Speichersteuerung gelesen wird. In einigen Ausführungsformen wird das Schreibtrainingsergebnisregister initial gelöscht, um einen Fehlerzustand bzw. Nichtbestanden-Zustand anzuzeigen. Danach wird das Schreibtrainingsergebnisregister bei Bedarf nach jedem Schreibtrainingsbefehl aktualisiert, um anzuzeigen, ob die dem Schreibtrainingsbefehl entsprechende Schreibtrainingsoperation erfolgreich war oder nicht. Wenn das Statusregister von der Speichersteuerung gelesen wird, löscht sich das Statusregister wieder selbst, um einen Fehlerzustand bzw. Nichtbestanden-Zustand anzuzeigen.
  • Das Verfahren 500 wird dann beendet. Alternativ dazu schreitet das Verfahren 500 zu Schritt 502 fort, um weitere Schreibtrainingsoperationen durchzuführen.
  • Zusammenfassend lässt sich sagen, dass verschiedene Ausführungsformen auf Techniken zur effizienten Durchführung des Schreibtrainings einer DRAM-Speichervorrichtung ausgerichtet sind. Eine DRAM-Speichervorrichtung beinhaltet ein oder mehrere linear rückgekoppelte Schieberegister (LFSRs), die ein Schreibmuster in Form einer pseudozufälligen Bitsequenz (PRBS) erzeugen. In einigen Ausführungsformen ist jeder von mehreren Eingangs-Pins einer Schnittstelle, die Schreibtrainingsoperationen unterzogen wird, wie z.B. eine Datenschnittstelle, mit einem separaten LFSR verbunden, um das am entsprechenden Eingangs-Pin empfangene PRBS-Muster zu überprüfen. Um mit dem Schreibtraining zu beginnen, sendet ein mit der Speichervorrichtung verbundener Speicher-Controller einen Rücksetzbefehl und/oder ein Rücksetzsignal an das LFSR der Speichervorrichtung, um das LFSR zu seeden. Im Ansprechen darauf bestückt die Speichervorrichtung das LFSR mit einem vorbestimmten Seed-Wert und/oder Polynom. Zusätzlich oder alternativ kann der Speicher-Controller das LFSR mit einem Seed-Wert und/oder Polynom an die Speichervorrichtung über eine andere Schnittstelle, die bereits trainiert wurde, wie z.B. eine separate Befehlsadressenschnittstelle, bestücken. Daraufhin bestückt die Speichervorrichtung das LFSR mit dem von der Speichersteuerung empfangenen Seed-Wert und/oder Polynom. In einigen Ausführungsformen beinhaltet der Speicher-Controller den Rücksetzbefehl, das Rücksetzsignal oder den Seed-Wert und/oder das Polynom in einem Schreibtrainingsbefehl, den der Speicher-Controller über eine Befehlsadressschnittstelle an die Speichervorrichtung überträgt. In einigen Ausführungsformen setzt sich ein Schreibtrainingsergebnisregister von selbst auf einen Anfangswert zurück, wenn die Speichervorrichtung einen Seed-Wert in das LFSR lädt, um das Schreibtrainingsergebnisregister darauf vorzubereiten, den Bestanden/Nichtbestanden-Status für die aktuelle Schreibtrainingsoperation zu empfangen.
  • Während der Schreibtrainingsoperation überträgt der Speicher-Controller ein Schreibtrainingsmuster an einen oder mehrere Schnittstellenpins auf der Speichervorrichtung auf der Grundlage desselben Seed-Werts und/oder Polynoms, der/das von der Speichervorrichtung zum Seeden des LFSR verwendet wird. Wenn die Speichervorrichtung das Bitmuster empfängt, prüft ein Schreibtrainingsprüfer an dem einen oder den mehreren Schnittstellen-Pins das eingehende Schreibtrainingsmuster an dem einen oder den mehreren Schnittstellen-Pins mit der Ausgabe des LFSR in der Speichervorrichtung. In einigen Ausführungsformen wird der PRBS-Prüfer für einen Eingangs-Pin unter Verwendung von XOR-Logik implementiert.
  • Falls das eingehende Schreibdatenmuster mit dem vom LFSR in der Speichervorrichtung erzeugten Datenmuster übereinstimmt, dann ist die Schreibtrainingsoperation bestanden, und die Speichervorrichtung zeichnet einen Bestanden-Status in einem Schreibtrainingsergebnisregister auf. Falls jedoch das eingehende Schreibdatenmuster nicht mit dem vom LFSR in der Speichervorrichtung erzeugten Datenmuster übereinstimmt, dann ist die Schreibtrainingsoperation fehlgeschlagen, und die Speichervorrichtung zeichnet einen Nichtbestanden-Status in dem Schreibtrainingsergebnisregister auf. In einigen Ausführungsformen beinhaltet das Schreibtrainingsergebnisregister ein separates Pass/Fail- bzw. Bestanden/Nichtbestanden-Statusbit für jeden Eingangs-Pin, der einer Schreibtrainingsoperation unterzogen wird.
  • Während der Schreibtrainingsoperation schaltet der Speicher-Controller das LFSR auf dem Speicher-Controller periodisch weiter, indem er den Wert im LFSR auf dem Speicher-Controller verschiebt. Dementsprechend überträgt der Speicher-Controller einen neuen Schreibtrainingsbefehl an die Speichervorrichtung. Daraufhin schaltet die Speichervorrichtung das LFSR auf der Speichervorrichtung weiter, indem sie den Wert im LFSR auf der Speichervorrichtung verschiebt. Auf diese Weise behalten das LFSR auf dem Speicher-Controller und das LFSR auf der Speichervorrichtung während der Schreibtrainingsoperation denselben Wert bei. Infolgedessen erzeugen das LFSR auf dem Speicher-Controller und das LFSR auf der Speichervorrichtung während der Schreibtrainingsoperation das gleiche Datenmuster.
  • Wenn die Speichervorrichtung die Schreibtrainingsoperation ganz oder teilweise abgeschlossen hat, liest der Speicher-Controller den Wert im Schreibtrainingsergebnisregister, um zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war oder nicht. In einigen Ausführungsformen setzt sich Schreibtrainingsergebnisregister selbst auf einen Anfangswert zurück, wenn der Wert des Schreibtrainingsergebnisregisters vom Speicher-Controller gelesen wird. In einigen Ausführungsformen wird das Schreibtrainingsergebnisregister zunächst gelöscht, um einen Fehlerzustand anzuzeigen. Danach wird das Schreibtrainingsergebnisregister bei Bedarf nach jedem Schreibtrainingsbefehl aktualisiert, um anzuzeigen, ob die dem Schreibtrainingsbefehl entsprechende Schreibtrainingsoperation erfolgreich war oder nicht. Wenn das Statusregister von der Speichersteuerung gelesen wird, löscht sich das Statusregister wieder selbst, um einen Fehlerzustand anzuzeigen.
  • Mindestens ein technischer Vorteil der offenbarten Techniken gegenüber dem Stand der Technik besteht darin, dass mit den offenbarten Techniken lange Schreibtrainingsdatenmuster, die während Schreibtrainingsoperationen an eine Speichervorrichtung übertragen werden, nicht in der Speichervorrichtung gespeichert oder aus ihr ausgelesen werden müssen, um zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war. Stattdessen muss der Speicher-Controller nur die Schreibtrainingsdatenmuster übertragen und ein Bestanden/Nichtbestanden-Ergebnis auslesen, um zu bestimmen, ob die Schreibtrainingsoperation erfolgreich war. Infolgedessen werden Schreibtrainingsvorgänge in etwa der Hälfte der Zeit abgeschlossen, verglichen mit früheren Techniken, die das Auslesen der Schreibtrainingsdatenmuster aus dem Speichervorrichtung erfordern.
  • Ein weiterer Vorteil der offenbarten Techniken ist, dass alle Pins der Datenschnittstelle gleichzeitig trainiert werden, was in einer kürzeren Trainingszeit im Vergleich zu herkömmlichen Ansätzen resultiert. Demgegenüber werden bei herkömmlichen Ansätzen, bei denen ein Datenmuster in den DRAM-Speicherkern geschrieben und dann das Datenmuster zurückgelesen wird, nur die Dateneingangs-/-ausgangs-Pins selbst trainiert. Zusätzliche Pins der Datenschnittstelle, die nicht im DRAM-Speicherkern gespeichert sind, werden in einem separaten Trainingsvorgang trainiert, nachdem das Training der Datenpins abgeschlossen ist. Durch Verwenden eines PRBS-Musterprüfers, der auf der Ebene der Eingangs-/Ausgangs-Pins arbeitet, werden alle Pins der Datenschnittstelle parallel trainiert, welches die Trainingszeit weiter reduziert. Diese Vorteile repräsentieren eine oder mehrere technologische Verbesserungen gegenüber den Ansätzen des Standes der Technik.
  • Jegliche und alle Kombinationen beliebiger der Anspruchselemente, die in beliebigen den Ansprüchen aufgeführt sind, und/oder von Elementen, die in dieser Anmeldung in beliebiger Weise beschrieben sind, fallen in den in Betracht gezogenen Anwendungsbereich der vorliegenden Erfindung und ihres Schutzes.
  • Die Beschreibungen der verschiedenen Ausführungsformen dienen der Veranschaulichung, sollen aber nicht den Anspruch auf Vollständigkeit erheben oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen werden sich für den Fachmann ergeben, ohne den Anwendungsbereich und den Gedanken der beschriebenen Ausführungsformen zu verlassen.
  • Aspekte der vorliegenden Ausführungsformen können als ein System, Verfahren oder Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Variante, einer reinen Software-Variante (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Variante annehmen, die Software- und Hardware-Aspekte kombiniert, die hier allgemein als „Modul“ oder „System“ bezeichnet werden können. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit darauf verkörpertem computerlesbarem Programmcode verkörpert ist.
  • Jede beliebige Kombination eines oder mehrerer computerlesbarer Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann beispielsweise, aber nicht beschränkt auf, ein elektronisches, magnetisches, optisches, elektromagnetisches System, ein Infrarot- oder Halbleitersystem, ein Gerät oder eine Vorrichtung oder jede geeignete Kombination der vorgenannten sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würden Folgendes beinhalten: eine elektrische Verbindung mit einem oder mehreren Leitern, eine portable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), eine optische Faser, einen portablen Compact-Disc-Festwertspeicher (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder irgendeine geeignete Kombination der vorgenannten. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes beliebige dinghafte Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem/einer Anweisungsausführungssystem, - gerät oder -vorrichtung enthalten oder speichern kann.
  • Aspekte der vorliegenden Erfindung sind vorstehend unter Bezugnahme auf Darstellungen von Ablaufdiagrammen und/oder Blockdiagrammen von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufdiagrammdarstellungen und/oder Blockdiagramme sowie Kombinationen von Blöcken in den Ablaufdiagrammdarstellungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Verfügung gestellt werden, um eine Maschine zu erzeugen derart, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, die Implementierung der in dem Ablaufdiagramm und/oder dem Blockdiagramm angegebenen Funktionen/Aktionen ermöglichen. Solche Prozessoren können, ohne Beschränkung darauf,. Universalprozessoren, Spezialprozessoren, anwendungsspezifische Prozessoren oder feldprogrammierbare Gate-Arrays sein.
  • Das Ablaufdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betriebsablauf möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufdiagramm oder in den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Code repräsentieren, der eine oder mehrere ausführbare Anweisungen zur Implementierung der spezifizierten logischen Funktion(en) umfasst. Es versteht sich darüber hinaus, dass in einigen alternativen Implementierungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben auftreten können. Beispielsweise können zwei aufeinanderfolgend gezeigte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es wird auch angemerkt, dass jeder Block der Blockdiagramme und/oder der Ablaufdiagrammdarstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der Ablaufdiagrammdarstellung durch spezielle hardwarebasierte Systeme, die die angegebenen Funktionen oder Handlungen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen implementiert werden können.
  • Während sich das Vorstehende auf Ausführungsformen der vorliegenden Erfindung bezieht, können andere und weitere Ausführungsformen der Erfindung entwickelt werden, ohne von ihrem grundlegenden Umfang abzuweichen, wobei ihr Umfang durch die nachfolgenden Ansprüche bestimmt wird.

Claims (21)

  1. Computerimplementiertes Verfahren zum Durchführen einer Schreibtrainingsoperation auf einer Speichervorrichtung, umfassend: Initialisieren eines ersten Registers auf der Speichervorrichtung mit einem ersten Datenmuster; Empfangen eines zweiten Datenmusters an einem Eingangs-Pin der Speichervorrichtung; Vergleichen des ersten Datenmusters mit dem zweiten Datenmuster, um einen Ergebniswert zu erzeugen; und Speichern des Ergebniswerts in einem zweiten Register, wobei der Ergebniswert angibt, ob die Schreibtrainingsoperation erfolgreich war.
  2. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, dass das erste Datenmuster mit dem zweiten Datenmuster übereinstimmt, wobei der Ergebniswert ein Bestanden-Ergebnis anzeigt.
  3. Computerimplementiertes Verfahren nach Anspruch 1 oder 2, ferner umfassend: Bestimmen, dass das erste Datenmuster nicht mit dem zweiten Datenmuster übereinstimmt, wobei der Ergebniswert ein Nichtbestanden-Ergebnis anzeigt.
  4. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend: Empfangen eines Befehls zum Lesen des Ergebniswerts; und Übertragen des Ergebniswerts an einen Ausgangs-Pin der Speichervorrichtung.
  5. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend, dass auf die Übertragung des Ergebniswerts folgend das zweite Register auf einen Anfangswert initialisiert wird.
  6. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, wobei das Vergleichen des ersten Datenmusters mit dem zweiten Datenmuster ein Durchführen einer Exklusiv-Oder (XOR)-Operation an dem ersten Datenmuster und dem zweiten Datenmuster umfasst.
  7. Computerimplementiertes Verfahren nach Anspruch 6, wobei der Ergebniswert auf einer Ausgabe der XOR-Operation basiert.
  8. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, wobei das Initialisieren des ersten Registers umfasst: Empfangen eines Rücksetzbefehls von einer Speichersteuerung; und Speichern eines vorbestimmten Werts in dem ersten Register.
  9. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend, auf die Initialisierung des ersten Registers folgend, ein Initialisieren des zweiten Registers auf einen Anfangswert.
  10. Computerimplementiertes Verfahren nach Anspruch 9, wobei der Anfangswert einen Fehlerstatus umfasst.
  11. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, ferner umfassend Empfangen eines Anfangswerts von einer Speichersteuerung; und Speichern des Anfangswerts in dem ersten Register.
  12. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, wobei das erste Register ein Schieberegister mit linearer Rückkopplung umfasst.
  13. Computerimplementiertes Verfahren nach einem der vorangehenden Ansprüche, wobei mindestens eines des ersten Datenmusters oder des zweiten Datenmusters eine pseudozufällige Bitsequenz umfasst.
  14. System, umfassend: eine Speichersteuerung; und eine Speichervorrichtung, die mit der Speichersteuerung gekoppelt ist, und die: ein erstes Register an der Speichervorrichtung mit einem ersten Datenmuster initialisiert; von der Speichersteuerung ein zweites Datenmuster an einem Eingangs-Pin der Speichervorrichtung empfängt; das erste Datenmuster mit dem zweiten Datenmuster vergleicht, um einen Ergebniswert zu erzeugen; und den Ergebniswert in einem zweiten Register speichert.
  15. System nach Anspruch 14, wobei die Speichervorrichtung ferner: bestimmt, dass das erste Datenmuster mit dem zweiten Datenmuster übereinstimmt, wobei der Ergebniswert ein Bestanden-Ergebnis anzeigt.
  16. System nach Anspruch 14 oder 15, wobei die Speichervorrichtung ferner: bestimmt, dass das erste Datenmuster nicht mit dem zweiten Datenmuster übereinstimmt, wobei der Ergebniswert ein Nichtbestanden-Ergebnis anzeigt.
  17. System nach einem der Ansprüche 14 bis 16, wobei die Speichervorrichtung ferner: einen Befehl zum Lesen des Ergebniswerts empfängt; und den Ergebniswert an einen Ausgangs-Pin der Speichervorrichtung überträgt.
  18. System nach einem der Ansprüche 14 bis 17, wobei die Speichervorrichtung ferner, auf die Übertragung des Ergebniswerts folgend, das zweite Register auf einen Anfangswert initialisiert.
  19. System nach einem der Ansprüche 14 bis 18, wobei, wenn die Speichervorrichtung das erste Datenmuster mit dem zweiten Datenmuster vergleicht, die Speichervorrichtung eine Exklusiv-Oder (XOR)-Operation an dem ersten Datenmuster und dem zweiten Datenmuster durchführt.
  20. System nach Anspruch 19, wobei der Ergebniswert auf einer Ausgabe der XOR-Operation basiert.
  21. Das System nach einem der Ansprüche 14 bis 20, das ferner dazu konfiguriert ist, ein Verfahren nach einem der Ansprüche 1 bis 13 durchzuführent.
DE102022102128.9A 2021-02-02 2022-01-31 Techniken zur durchführung von schreibtraining an einem dynamischen direktzugriffsspeicher Pending DE102022102128A1 (de)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US202163144971P 2021-02-02 2021-02-02
US63/144,971 2021-02-02
US202163152817P 2021-02-23 2021-02-23
US202163152814P 2021-02-23 2021-02-23
US63/152,817 2021-02-23
US63/152,814 2021-02-23
US202163179954P 2021-04-26 2021-04-26
US63/179,954 2021-04-26
US17/523,779 US11742007B2 (en) 2021-02-02 2021-11-10 Techniques for performing write training on a dynamic random-access memory
US17/523,779 2021-11-10

Publications (1)

Publication Number Publication Date
DE102022102128A1 true DE102022102128A1 (de) 2022-08-04

Family

ID=82402835

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022102128.9A Pending DE102022102128A1 (de) 2021-02-02 2022-01-31 Techniken zur durchführung von schreibtraining an einem dynamischen direktzugriffsspeicher

Country Status (3)

Country Link
US (1) US11742007B2 (de)
CN (1) CN114840137A (de)
DE (1) DE102022102128A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11742006B2 (en) * 2021-02-02 2023-08-29 Nvidia Corporation Techniques for performing command address in interface training on a dynamic random-access memory
EP4057516B1 (de) * 2021-03-10 2024-03-27 Samsung Electronics Co., Ltd. Codierungsvorrichtungen zur implementierung einer multimodencodierung
US11966303B2 (en) * 2022-06-02 2024-04-23 Micron Technology, Inc. Memory system failure detection and self recovery of memory dice

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303499A (ja) 2002-04-08 2003-10-24 Mitsubishi Electric Corp 半導体集積回路
JP2007207075A (ja) * 2006-02-03 2007-08-16 Seiko Epson Corp Cpu、集積回路装置、マイクロコンピュータ、電子機器、及びcpuの制御方法
US8456999B2 (en) 2011-08-18 2013-06-04 Spirent Communications, Inc. Methods and apparatuses for enhanced transmission selection-capable simulated traffic generation
KR20180050816A (ko) * 2016-11-07 2018-05-16 에스케이하이닉스 주식회사 반도체 장치 및 이를 포함하는 시스템
KR102392055B1 (ko) 2017-08-09 2022-04-28 삼성전자주식회사 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템
JP2020048022A (ja) * 2018-09-18 2020-03-26 株式会社東芝 半導体集積回路及び再構成半導体システム
JP2020046918A (ja) 2018-09-19 2020-03-26 キオクシア株式会社 記憶装置及び制御方法
KR20200052562A (ko) * 2018-11-07 2020-05-15 삼성전자주식회사 스토리지 장치

Also Published As

Publication number Publication date
US11742007B2 (en) 2023-08-29
US20220246184A1 (en) 2022-08-04
CN114840137A (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
DE102022102128A1 (de) Techniken zur durchführung von schreibtraining an einem dynamischen direktzugriffsspeicher
US7444540B2 (en) Memory mirroring apparatus and method
DE112007002619B4 (de) Speichersteuerung mit einer Speicherverbindung mit zwei Betriebsmodi
DE102010053097B4 (de) Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling
US11809719B2 (en) Techniques for performing write training on a dynamic random-access memory
DE19844703A1 (de) Integrierte Halbleiterschaltungsvorrichtung
DE10196635B4 (de) Speichermodul und in eine Speicherkomponente eingebaute Selbstprüfung
DE102010061080A1 (de) Halbleitervorrichtung, zugeordnete Steuerung, System mit derselben und Betriebsverfahren
DE102004039178B4 (de) Speichersteuerschaltung, Smartcard und Lesesteuerverfahren
US11340984B2 (en) Apparatuses, systems, and methods for error correction
DE102019129275A1 (de) Verfahren, Schaltung und integrierte Schaltung zum Transferieren von Daten und eines Datenprüffeldes
DE102012215197A1 (de) Speichersteuerung und dynamischer-wahlfreier-Zugriff-Speicher-Schnittstelle
DE102021122170A1 (de) Adaptive fehlerbereinigung und fehlerbehandlung für internen speicher
US9244873B2 (en) Semiconductor device and method of operating the same
KR20230153497A (ko) 반도체 메모리에 대한 오류 정정 코딩 및 데이터 버스 반전 장치 및 방법
DE102022102127A1 (de) Techniken zum übertragen von befehlen an einen dynamischen direktzugriffsspeicher
DE102012102080B4 (de) Speicherschaltung, integrierte Schaltung und Verfahren mit Fehlerkorrekturen
US20190163648A1 (en) Semiconductor device and semiconductor system equipped with the same
DE102022102132A1 (de) Techniken zur Datenverwürfelung an einer Speicherschnittstelle
DE102022102129A1 (de) Techniken zum Durchführen eines Befehlsadressen-Schnittstellentrainings an einem dynamischen Direktzugriffsspeicher
DE102016214188A1 (de) Speichersystem mit Codierung
WO2023202242A1 (zh) 指令字处理电路、芯片及方法
DE2549392A1 (de) Methode zur erhoehung der zuverlaessigkeit von integrierten speicherbausteinen und zur verbesserung der ausbeute bei ihrer herstellung
KR20150043044A (ko) 반도체 장치 및 이를 포함하는 반도체 시스템
US20140003163A1 (en) Memories and methods for sharing a signal node for the receipt and provision of non-data signals

Legal Events

Date Code Title Description
R012 Request for examination validly filed