DE102014107661A1 - Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate - Google Patents

Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate Download PDF

Info

Publication number
DE102014107661A1
DE102014107661A1 DE102014107661.3A DE102014107661A DE102014107661A1 DE 102014107661 A1 DE102014107661 A1 DE 102014107661A1 DE 102014107661 A DE102014107661 A DE 102014107661A DE 102014107661 A1 DE102014107661 A1 DE 102014107661A1
Authority
DE
Germany
Prior art keywords
signal
delay
register
state machine
circuit
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
DE102014107661.3A
Other languages
English (en)
Other versions
DE102014107661A8 (de
Inventor
David L. Linam
Scott T. Evans
Guy Humphrey
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies General IP Singapore Pte Ltd
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 Avago Technologies General IP Singapore Pte Ltd filed Critical Avago Technologies General IP Singapore Pte Ltd
Publication of DE102014107661A1 publication Critical patent/DE102014107661A1/de
Publication of DE102014107661A8 publication Critical patent/DE102014107661A8/de
Ceased 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/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0037Delay of clock signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0041Delay of data signal

Abstract

Ein Präambel-Freigabetraining in einer Schnittstelle eines dynamischen Direktzugriffsspeichers mit doppelter Datenrate verwendet Feedback von Lesevorgängen, um das Präambel-Freigabesignal einzustellen, so dass das Präambel-Freigabesignal weiterhin nahe bei der Mitte der Präambel aktiviert wird. In Antwort auf eine Initiierung eines Lesevorgangs werden ein erstes Signal und dann ein zweites Signal erzeugt. Das erste und zweite Signal sind durch eine Verzögerung ab der Initiierung des Lesevorgangs von einem oder mehreren Taktzyklen plus einer Feinverzögerung, die von einer einstellbaren Verzögerungsschaltung beigetragen wird, gekennzeichnet. Das erste Signal wird einer Daten-Strobe-Parkschaltung bereitgestellt, die es verwendet, um die Daten-Strobe-Signalleitungen freizugeben oder zu entparken. Das zweite Signal wird hinsichtlich seiner Phase mit dem Daten-Strobe-Signal, das mit ankommenden Daten während des Lesevorgangs verknüpft ist, verglichen. Die einstellbare Verzögerungsschaltung wird in Antwort auf das Ergebnis des Vergleichs eingestellt.

Description

  • HINTERGRUND
  • Weil Computer und Computer-Prozessoren hinsichtlich ihrer Leistungsfähigkeit besser werden, wird die Leistungsfähigkeit des Speicherzugriffs ein signifikanter Faktor, der die Gesamtleistungsfähigkeit des Systems beeinflusst. Wenn eine Schnittstelle, die Daten zwischen einer Speichereinrichtung und einer Speichersteuereinrichtung oder anderen Anwendungseinrichtungen kommuniziert, langsamer arbeitet als ein Prozessor Daten verwenden kann, dann kann die Schnittstelle die Datenverarbeitungs-Kapazität des gesamten Computers verringern. Für dynamische Direktzugriffsspeicher(dynamic random access memory, DRAM)-Einrichtungen, die gewöhnlich als der Hauptarbeitsspeicher für einen Computer verwendet werden, wurden im Laufe der Jahre verschiedenartige Verbindungstechnologien entwickelt. Eine derartige Verbindungstechnologie wird für synchrone DRAMs oder SDRAMs, die eine quellensynchrone Schnittstelle verwenden, verwendet, wobei man darauf angewiesen ist, dass die Quelle der Daten während einer Datenübertragung ein Daten-Strobe-Signal bereitstellt, das von dem Ziel der Datenübertragung verwendet wird, um derartige Daten zu erfassen, während diese über eine Datenleitung zu dem Ziel übertragen werden. Insbesondere wird die Erfassung von Daten auf einer Datenleitung typischerweise, beispielsweise durch die ansteigende oder abfallende Flanke des Daten-Strobe-Signals, verriegelt, so dass der auf der Datenleitung übertragene Wert in einem Datenauffangregister (data latch) in dem Ziel verriegelt wird, wenn das Daten-Strobe-Signal von Niedrig auf Hoch oder umgekehrt übergeht.
  • DRAM Speicherelemente, wie etwa Speicherelemente mit doppelter Datenrate (double data rate, DDR) enthalten mehrere Busse. Ein Befehls- und Adress-Bus wird durch eine Anzahl von Signalen ausgebildet, wie beispielsweise ein Spalten-Adressen-Strobe (column-address strobe, CAS), Zeilen-Adress-Strobe (row-address strobe, RAS), Schreib-Aktivierung (write enable, WE), Takt-Aktivierung (clock enable, CKE), Chip-Auswahl (chip-select, CS), Adresse (address, ADDR), Bank-Adresse(bank address, BA)-Signale und differentielle Taktsignale (CK und CKN). DDR3 Speicherelemente arbeiten mit differentiellen Daten-Strobe-Signalen DQS und DQSN, die eine quellensynchrone Datenerfassung mit der doppelten Taktfrequenz ermöglichen. Der Datenbus zwischen der Host-Logikschaltung und dem DRAM umfasst die Datensignale (DQ) und Daten-Strobe-Signale (DQS und DQSN).
  • In DDR3 DRAM Systemen werden Daten sowohl für Lese- als auch Schreibvorgänge in Bitfolgen bzw. Bursts übertragen, wobei eine Serie von vier (bezeichnet als Burst-Chop 4 oder BC4) oder acht (bezeichnet als Burst-Länge 8 oder BL8) Datenworten bei jedem Speicherzugriff gesendet oder empfangen wird. Für Lesevorgänge werden Daten-Bursts mit unterschiedlichen Längen von dem DRAM hinsichtlich der Flanken ausgerichtet mit einem Daten-Strobe-Signal übertragen. Für Schreibvorgänge werden Daten-Bursts mit unterschiedlichen Längen von dem DRAM Element mit einem um 90° phasenverzögerten Daten-Strobe-Signal empfangen. Die eine oder mehreren Daten-Strobe-Signalleitungen zwischen der Host-Logikschaltung und dem DRAM sind bidirektional. Das von dem DRAM ausgegebene Daten-Strobe-Signal wird von der Host-Logikschaltung verwendet, um Daten während Lesevorgängen zu erfassen. Das von der Host-Logikschaltung ausgegebene Daten-Strobe-Signal wird von dem DRAM verwendet, um Daten während Schreibvorgängen zu erfassen.
  • Wenn der Datenbus inaktiv ist, d. h. es werden keine Daten übertragen werden, dann nimmt die Daten-Strobe-Signalleitung ein Tristate oder Abschaltspannungs-Niveau oder Spannungsniveau VTT an, das für DDR3 DRAM Systeme die Hälfte der Versorgungsspannung VDD ist. Die Abschaltspannung definiert daher weder ein logisch-0 noch ein logisch-1-Niveau. Bei einem Schreibvorgang gibt die Host-Logikschaltung einen Lesebefehl aus und kommuniziert ein Taktsignal zu dem Quell-DRAM. In Antwort auf das Lesesignal und nach einer DRAM-internen Verzögerung bewirkt der DRAM, dass die Daten-Strobe-Signalleitungen ihren Zustand von der Schlussspannung in einen „Präambel”-Zustand, der für DDR3 DRAM Systeme ein Logisch-0-Niveau mit einer Zeitdauer eines vollen Zyklus des DRAM-Takts oder zwei Zyklen von CLK_2X ist, ändern. Nachfolgend auf die Präambel gibt der DRAM eine oder mehrere Bursts von Daten, die von den erforderlichen Daten-Strobe-Signalen begleitet sind, aus. Die Host-Logikschaltung kann die Präambel verwenden, um sich selbst darauf vorzubereiten, die Daten zu empfangen. Die Host-Logikschaltung registriert die ankommenden Datensignale mit den ansteigenden Flanken des differentiellen Daten-Strobe-Signals, d. h. den ansteigenden Flanken von sowohl DQS als auch DQSN.
  • Die Host-Logikschaltung umfasst differentielle Empfänger, um die Daten-Strobe-Signale zu empfangen. Wenn beide Eingänge eines differentiellen Empfängers auf das Abschaltspannungs-Niveau VTT getrieben werden, dann ist die Ausgabe des differentiellen Empfängers undefiniert. Wenn es der undefinierten Ausgabe möglich wäre, zu der Logik, die die ankommenden Daten verarbeitet, zu propagieren, dann würden unechte Flanken auf den Daten-Strobe-Signalen fehlerhafte Ergebnisse bewirken. Daher enthält die Host-Logikschaltung üblicherweise eine „Park”-Logik, um die Ausgabe der differentiellen Daten-Strobe-Signal-Empfänger auf einen definierten Logikwert zu zwingen, bis die Präambel eintrifft. Die Parklogik entparkt das Daten-Strobe-Signal während der Präambel und parkt das Daten-Strobe-Signal während der Postambel erneut. Die Präambel dient daher als ein Fenster, in dem die Ausgaben der differentiellen Daten-Strobe-Signal-Empfänger zu entparken sind. Es ist allgemein wünschenswert, die Ausgaben der differentiellen Daten-Strobe-Signal-Empfänger in der Mitte der Präambel zu entparken. Daher wurden Verfahren entwickelt, um ein Parksteuerungssignal oder ein Präambel-Freigabesignal zu erzeugen, das in der Mitte der Präambel auf aktiv übergeht. Derartige Verfahren enthalten feedback-basierte Trainingsverfahren, die den optimalen Verzögerungswert für ein programmierbares Verzögerungselement suchen, um die Aktivierung des Park-Steuersignals bis in die Mitte der Präambel zu verzögern.
  • Ein bekanntes Trainingsverfahren beinhaltet das Einstellen oder Programmieren des programmierbaren Verzögerungswerts und das Herausgeben eines Lesebefehls. In Antwort auf den Lesebefehl wird ein Puls bzw. Impuls durch das programmierbare Verzögerungselement hindurch propagiert und somit verzögert. Die Parklogik verwendet diesen verzögerten Puls als ein Präambel-Freigabesignal, um das Daten-Strobe-Signal zu entparken. Wenn der Speicher auf den Lesebefehl antwortet, indem das Daten-Strobe-Signal aktiviert wird (d. h. von der Abschaltspannung auf eine Präambel gefolgt von einer Anzahl von Daten-Strobe-Signal-Übergängen übergeht), dann wird das ankommende Daten-Strobe-Signal in ein von dem Präambel-Freigabesignal getaktetes Register abgetastet. Wenn das Daten-Strobe-Signal während der Präambel abgetastet wird, wird das Abtastregister eine logische-0 abtasten oder erfassen. Wenn das Daten-Strobe-Signal direkt nach der ersten Daten-Strobe-Signalflanke abgetastet wird, dann wird das Abtastregister eine logische-1 abtasten oder erfassen. Die Prozedur wird in einer iterativen Weise wiederholt, wobei in jeder Iteration ein anderer Verzögerungswert eingestellt wird. Von den in dem Abtastregister erfassten Ergebnissen kann ein optimaler Verzögerungswert berechnet werden, der das Präambel-Freigabesignal in die Mitte der Präambel setzt.
  • Nachdem das Trainingsverfahren vervollständig worden ist und das programmierbare Verzögerungselement auf den optimalen Wert eingestellt worden ist, dann kann eine Drift in der Zeitsteuerungsbeziehung zwischen der Host-Logikschaltung und dem DRAM bewirken, dass das Präambel-Freigabesignal eine Ausrichtung mit der Mitte der Präambel verliert. Ein periodisch erneutes Trainieren des Präambel-Freigabesignals ist möglich, jedoch keine optimale Lösung, weil dies ein periodisches Anhalten des Speichersystems erfordert.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der Erfindung beziehen sich auf ein Präambel-Freigabetrainingssystem und ein Verfahren in einer Schnittstelle eines dynamischen Direktzugriffspeichers (DRAM) mit doppelter Datenrate. In beispielhaften Ausführungsformen umfasst das Verfahren folgendes: Erzeugen eines ersten Signals in Antwort auf eine Initiierung eines Lesevorgangs, wobei das erste Signal von der Initiierung des Lesevorgangs um ein oder mehrere Taktzyklen plus eine Feinverzögerung, die von einer einstellbaren Verzögerungsschaltung bereitgestellt wird, verzögert wird; Bereitstellen des ersten Signals für eine Daten-Strobe-Parkschaltung; Erzeugen eines zweiten Signals in Antwort auf die Initiierung des Lesevorgangs, wobei das zweite Signal von der einstellbaren Verzögerungsschaltung verzögert wird; Empfangen eines Daten-Strobe-Signals, das mit ankommenden Daten während des Lesevorgangs verknüpft ist; Vergleichen einer Flanke des zweiten Signals mit einer Flanke des Daten-Strobe-Signals, das mit ankommenden Daten während des Lesevorgangs verknüpft ist; und Einstellen der einstellbaren Verzögerungsschaltung in Antwort auf ein Ergebnis des Vergleichens der Flanke des zweiten Signals mit der Flanke des Daten-Strobe-Signals.
  • In beispielhaften Ausführungsformen umfasst ein System für ein Präambel-Freigabetraining in einer Schnittstelle zwischen einem anwendungsspezifischen, integrierten Schaltkreis (application-specific integrated circuit, ASIC) und einer Speichereinrichtung mit doppelter Datenrate folgendes: eine einstellbare Verzögerungsschaltung; eine Automatik-Einstellschaltung, die dazu ausgelegt ist, ein erstes Signal und ein zweites Signal in Antwort auf eine Initiierung eines Lesevorgangs durch den ASIC zu erzeugen, wobei die einstellbare Verzögerungsschaltung das erste Signal verzögert, um ein Präambel-Freigabesignal zu erzeugen, und das zweite Signal verzögert, um ein Automatik-Einstelltaktsignal zu erzeugen; eine Daten-Strobe-Parkschaltung, die einen Eingang hat, der ein Daten-Strobe-Signal, das mit ankommenden Daten während des Lesevorgangs verknüpft ist, empfängt, und das einen Ausgang hat, der zwischen einem Daten-Strobe-Signal und einer festgelegten Spannung schaltbar ist, wobei das Schalten der Präambel-Freigabe durch das Präambel-Freigabesignal gesteuert wird; und eine Vergleichsschaltung, die dazu ausgelegt ist, eine Flanke des Automatik-Einstelltaktsignals mit einer Flanke des Daten-Strobe-Signals, das mit ankommenden Daten während des Lesevorgangs verknüpft ist, zu vergleichen, wobei die Automatik-Einstellschaltung, in Antwort auf ein Ergebnis des Vergleichens der Flanke des zweiten Signals mit der Flanke des Daten-Strobe-Signals, ein Einstellungssignal für die einstellbare Verzögerungsschaltung (bzw. für die einstellbare Verzögerung) bereitstellt.
  • Andere Systeme, Verfahren, Merkmale und Vorteile werden für einen Fachmann offensichtlich sein oder werden offensichtlich beim Auswerten der folgenden Figuren und ausführlichen Beschreibung. Es ist beabsichtigt, dass alle derartigen zusätzlichen Systeme, Verfahren, Merkmale und Vorteile innerhalb dieser Beschreibung enthalten sind, innerhalb des Umfangs dieser Spezifikation sind und von den beigefügten Ansprüche geschützt sind.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines anwendungsspezifischen integrierten Schaltkreises (ASIC), der eine Schnittstelle eines dynamischen Direktzugriffspeichers (DRAM) mit einem Präambel-Freigabetrainingssystem aufweist, gemäß einer beispielhaften Ausführungsform der Erfindung.
  • 2 ist ein Blockdiagramm einer Daten-Strobe-Schaltung der Schnittstelle der 1.
  • 3 ist ein Blockdiagramm einer Präambel-Logik der Daten-Strobe-Schaltung der 2.
  • 4 ist ein Zustandsdiagramm für die Zustandsmaschine der Präambel-Logik der 3.
  • 5A ist ein Abschnitt einer Zustandsmaschinen-Tabelle für die Zustandsmaschine der Präambel-Logik der 3.
  • 5B ist eine Fortsetzung der 5A.
  • 6 ist ein Zeitablaufdiagramm, das ein erstes beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 7 ist ein Zeitablaufdiagramm, das ein zweites beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 8 ist ein Zeitablaufdiagramm, das eine dritte beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 9 ist ein Zeitablaufdiagramm, das ein viertes beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 10 ist ein Zeitablaufdiagramm, das ein fünftes beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 11 ist ein Zeitablaufdiagramm, das ein sechstes beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 12 ist ein Zeitablaufdiagramm, das ein siebtes beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 13 ist ein Zeitablaufdiagramm, das ein achtes beispielhaftes Ereignis eines Lesevorgangs veranschaulicht.
  • 14A ist ein Teil eines Zeitablaufdiagramms, das eine erste beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 14B ist eine Fortsetzung des Zeitablaufdiagramms der 14A.
  • 15A ist ein Abschnitt eines Zeitablaufdiagramms, das eine erste beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 15B ist eine Fortsetzung des Zeitablaufdiagramms der 15A.
  • 16A ist ein Abschnitt eines Zeitablaufdiagramms, das eine erste beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 16B ist eine Fortsetzung des Zeitablaufdiagramms der 16A.
  • 17A ist ein Abschnitt eines Zeitablaufdiagramms, das eine erste beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 17B ist eine Fortsetzung des Zeitablaufdiagramms der 17A.
  • 18A ist ein Abschnitt eines Zeitablaufdiagramms, das eine erste beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 18B ist eine Fortsetzung des Zeitablaufdiagramms der 18A.
  • 19A ist ein Abschnitt eines Zeitablaufdiagramms, das eine zweite beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 19B ist eine Fortsetzung des Zeitablaufdiagramms der 19A.
  • 20A ist ein Abschnitt eines Zeitablaufdiagramms, das eine dritte beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 20B ist eine Fortsetzung des Zeitablaufdiagramms der 20A.
  • 21A ist ein Abschnitt eines Zeitablaufdiagramms, das eine vierte beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 21B ist eine Fortsetzung des Zeitablaufdiagramms der 21A.
  • 22A ist ein Abschnitt eines Zeitablaufdiagramms, das eine fünfte beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 22B ist eine Fortsetzung des Zeitablaufdiagramms der 22A.
  • 23A ist ein Abschnitt eines Zeitablaufdiagramms, das eine sechste beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 23B ist eine Fortsetzung des Zeitablaufdiagramms der 23A.
  • 24A ist ein Abschnitt eines Zeitablaufdiagramms, das eine siebte beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 24B ist eine Fortsetzung des Zeitablaufdiagramms der 24A.
  • 25A ist ein Abschnitt eines Zeitablaufdiagramms, das eine achte beispielhafte Instanz des Betriebs der Präambel-Logik veranschaulicht.
  • 25B ist eine Fortsetzung des Zeitablaufdiagramms der 25A.
  • 26 ist ein Ablaufdiagramm, dass das Präambel-Trainingsverfahren veranschaulicht, gemäß einer beispielhaften Ausführungsform der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie in 1 veranschaulicht, ist in einer veranschaulichenden oder beispielhaften Ausführungsform der Erfindung ein Anwendungsspezifischer, integrierter Schaltkreis (ASIC) 10 über eine Schnittstelle verbunden mit einem dynamischen Direktzugriffsspeicher (DRAM) 12 mit doppelter Datenrate (DDR). Der DRAM 12 kann jede geeignete Art eines kommerziell verfügbaren DDR3 oder ähnlichen DRAM (oder DRAM-Modul) umfassen. Der ASIC 10 umfasst, neben anderen Elementen (die zum Zweck der Klarheit nicht gezeigt sind), eine Speicher-Steuereinrichtung 14, eine Trainings-Steuereinrichtung 12 und eine Schnittstelle 18. Die Schnittstelle 18 umfasst mindestens eine (jedoch mehr bevorzugt zwei oder mehr) quellensynchrone Gruppen (source-synchronous groups, SSGs) 20, 22, usw. sowie eine Befehls- und Steuerungslogik 24. Jedes SSG 20, 22, usw. kommuniziert eine Gruppe von bidirektionalen Datensignalen (DQ) und ein bidirektionales Daten-Strobe-Signal (DQS) mit dem DRAM 12. In der beispielhaften Ausführungsform besteht jede Gruppe von Datensignalen aus acht Signalleitungen, so dass die Daten zwischen jeder quellensynchronen Gruppe 20, 22 usw. und dem DRAM 12 in der Form von 8-Bit Datenworten kommuniziert werden können und jedes Daten-Strobe-Signal ist ein differentielles Signal, das aus einem wahren Pulssignal DQS und einem komplementären Pulssignal DQSN besteht. Lese- und Schreibvorgänge können in Bitfolgen (bursts) von derartigen 8-Bit Datenworten ausgeführt werden, wobei diese sequentiell bereitgestellt werden und zwischen einem der quellensynchronen Gruppe 20, 22, usw. und dem DRAM 12 kommuniziert werden. Beispielsweise können Lese- und Schreibvorgänge in Bursts von acht Worten ausgeführt werden, ein Modus, der im Stand der Technik als „Burst-Länge 8” oder „BL8” bezeichnet wird. Alternativ dazu können Lese- und Schreibvorgänge in Bit-Folgen von vier Datenworten ausgeführt werden, ein Modus, der im Stand der Technik als „Burst-Chop 4” bzw. „Bitfolgen-Kappung 4” oder „BC4” bezeichnet wird.
  • Jedes der SSGs 20, 22, usw. umfasst eine Daten-Strobe-Schaltung 26 und acht Datenschaltungen 28, die jeweils einem Bit des Datenworts entsprechen. Jedoch für die unten beschriebenen neuen Merkmale im Hinblick auf die Daten-Strobe-Schaltung 26 und das Präambel-Freigabetraining, werden der Aufbau der Schnittstelle 18 und die Art und Weise, in der die Schnittstelle 18 arbeitet, von einem Fachmann wohl verstanden, weil derartige Aspekte in großem Ausmaß durch die von den Herstellern des DRAM 12 bereitgestellten Spezifikationen vorgegeben werden. Dementsprechend werden hierin, bis auf die unten beschriebenen Merkmale, der Aufbau der Schnittstelle 18 und ihre Betriebsweise nicht ausführlich beschrieben.
  • In Antwort auf einen von der Speicher-Steuereinrichtung 14 des ASIC 10 empfangenen Lesebefehl stellt die Schnittstelle 18 Datensignale bereit, die eine Bit-Folge von Daten, die in den DRAM 12 geschrieben werden sollen, darstellen und erzeugt ein Daten-Strobe-Signal, das die erforderlichen Zeitsteuerungs-Beziehungen (d. h. Phasenausrichtung) mit den Datensignalen hat. In Antwort auf einen von der Speicher-Steuerungseinrichtung 14 empfangenen Lesebefehl empfängt die Schnittstelle 18 Datensignale und ein Daten-Strobe-Signal von dem DRAM 12. Wie oben beschrieben, können derartige Datensignale und das Daten-Strobe-Signal dem wohl bekannten BL8, BC4 oder anderen Betriebsmodi entsprechen. Es sollte verstanden werden, dass obwohl zum Zweck der Klarheit nur der Betrieb von einer der quellensynchronen Gruppen 20, 22, usw. hierin beschrieben wird, wobei jede der quellensynchronen Gruppen 20, 22, usw. in der gleichen Weise arbeitet.
  • Wie in 2 veranschaulicht, umfasst der Daten-Strobe-Schaltkreis 26 eine Präambel-Logik 30, Daten-Strobe-Parklogik 32, Ausgabe-Logik 34 und eine Daten-Strobe-Park- und Viertelzyklus(quarter-cycle, QC)-Verzögerungsschaltung 26. Es sei angemerkt, dass das oben bezeichnete Daten-Strobe-Signal differentielle Daten-Strobe-Signale (DQS und DQSN) umfasst. Die Daten-Strobe-Park- und QC-Verzögerungsschaltung 36 dient als der Empfänger für differentielle Daten-Strobe-Signale von dem DRAM 12 (1) während eines Lesevorgangs und dient als der Sender für die differentiellen Daten-Strobe-Signale an dem DRAM 12 während eines Schreibvorgangs.
  • Weil das System und das Verfahren zum Präambel-Freigabetraining sich auf Lesevorgänge bezieht, können Schreibvorgänge und zugehörige Schaltungen in Übereinstimmung mit von den Fachleuten wohl bekannten herkömmlichen Prinzipien sein. Beispielsweise kann die Ausgabe-Logik 34 dazu ausgebildet sein, ein Treiber-Aktivierungssignal (drive enable, DRV_EN) und ein Schreibe-Datensignal (write data, WR_DATA) von einer Speicher-Steuerungseinrichtung 14 während eines Schreibvorgangs und empfängt auch einen Takt mit doppelter Frequenz (WR_CLK_2X). (Wie im Stand der Technik wohl verstanden wird, hat der Takt mit der doppelten Frequenz zweimal die Frequenz des Takts, unter dem die Kern-Logik des ASIC 10 arbeitet, z. B. die Logik, die Lese- und Schreibvorgänge initiiert). Weil eine derartige Ausgabe-Logik 34 herkömmlich sein kann oder in anderer Weise innerhalb der Fähigkeit von Fachleuten ist, wird diese hierin nicht in weiteren Einzelheiten beschrieben werden. In Antwort auf das Treiber-Aktivierungs- und das Schreibe-Datensignal erzeugt die Ausgabe-Logik 34 die ausgehenden Daten-Strobe-Signale über ein komplementäres Paar von Treibern 38 und 40. Andere Aspekte der Schnittstelle 18 (1), die sich auf Schreibvorgänge beziehen, sind in ähnlicher Weise herkömmlich oder in anderer Weise für Fachleute bekannt und werden daher hierin nicht beschrieben.
  • In Antwort auf einen von der Speicher-Steuerungseinrichtung 14 (1) initiierten Lesevorgang erzeugt die Präambel-Logik 30 ein Präambel-Freigabesignal (PA_RELEASE) in der unten in näheren Einzelheiten beschriebenen Weise. In Antwort auf das Präambel-Freigabesignal stellt die Daten-Strobe-Parklogik 32 ein Steuerungssignal für die Daten-Strobe-Park- und QC-Verzögerungsschaltung 36, die die Daten-Strobe-Signale entparkt, bereit. Die Daten-Strobe-Park- und QC-Verzögerungsschaltung 36 empfängt das differentielle Daten-Strobe-Signal in der Form eines wahren (true) Daten-Strobe-Signals (true data strobe signal, DQS) und eines komplementären Daten-Strobe-Signal (complementary data strobe signal, DQSN). Jeder der differentiellen Empfänger 42 und 44 empfängt das wahre Daten-Strobe-Signal und das komplementäre Daten-Strobe-Signal an seinem wahren und komplementären Eingang, respektive. Ein erster Multiplexer 46, der auf ein von der Daten-Strobe-Parklogik 32 erzeugtes Multiplexer-Steuerungssignal (STB_PARK) reaktionsfähig ist, wählt entweder die Ausgabe des differentiellen Empfängers 42 oder ein Masse-Spannungs-Niveau (GND, was ein logisches-0-Niveau darstellt) und stellt das ausgewählte Signal einem ersten QC-Verzögerungselement 48 bereit. Ein zweiter Multiplexer 50, der auf das Multiplexer-Steuerungssignal (STB_PARK) reaktionsfähig ist, wählt entweder die Ausgabe des differentiellen Empfängers 44 oder ein Versorgungsspannungs-Niveau (VDD, das ein logisches-1-Niveau darstellt) und stellt das ausgewählte Signal einem zweiten QC-Verzögerungselement 52 bereit. Ein dritter Multiplexer 54, der auf das Multiplexer-Steuerungssignal (STB_PARK) reaktionsfähig ist, wählt entweder die Ausgabe des ersten QC-Verzögerungselements 48 oder das Masse-Spannungs-Niveau (d. h. ein logisches-0-Niveau) aus. Ein vierter Multiplexer 56, der auf das Multiplexer-Steuerungssignal (STB_PARK) reaktionsfähig ist, wählt entweder die Ausgabe des zweiten QC-Verzögerungselements 52 oder das Versorgungsspannungs-Niveau (d. h. ein logisches-1-Niveau) aus. Die Ausgaben (STB_P und STB_N) des dritten und vierten Multiplexers werden Datenschaltungen 28 (1) bereitgestellt, die diese Signale als die Daten-Strobe-Signale verwenden, um während des Lesevorgangs ankommende Daten zu erfassen. Wenn das Multiplexer-Steuerungssignal (STB_PARK) in einem niedrigen oder logischen-0-Zustand ist, werden die ankommenden Daten-Strobe-Signale entparkt oder es wird ihnen ermöglicht, dass sie durch die Daten-Strobe-Park- und QC-Verzögerungsschaltung 36 zu den Datenschaltungen 28 propagieren. Wenn jedoch das Multiplexer-Steuerungssignal (STB_PARK) in einem hohen oder logischen-1-Zustand ist, werden die ankommenden Daten-Strobe-Signale geparkt, indem Datenschaltungen 28 ein festes logisch-0 auf dem wahren Daten-Strobe-Signal STB_P und ein festgesetztes logisch-1 auf dem komplementären Daten-Strobe-Signal STB_N bereitgestellt werden.
  • Die Daten-Strobe-Parklogik 32 erzeugt das oben bezeichnete Multiplexer-Steuerungssignal (STB_PARK), um in Antwort auf das von der Präambel-Logik 30 erzeugte Präambel-Freigabesignal (PA_RELEASE) die Daten-Strobe-Signale zu entparken. Wie unten in näheren Einzelheiten beschrieben, ist in der beispielhaften Ausführungsform dieses Präambel-Freigabesignal ein Puls. Die Präambel-Logik 30 antwortet auf das Präambel-Freigabesignal (Puls), indem sie das Multiplexer-Steuerungssignal (STB_PARK) in einem Zustand hält, um die ankommenden Daten-Strobe-Signale für die Dauer der ankommenden Daten (d. h. ein oder mehrere Bursts) entparkt zu halten. Am Ende des ankommenden Datenstroms verändert die Daten-Strobe-Parklogik 32 den Zustand des Multiplexer-Steuerungssignals (STB_PARK), um die Daten-Strobe-Signale erneut zu parken. Die Daten-Strobe-Parklogik 32 kann eine Zählerschaltung verwenden, die auf den von der Speicher-Steuereinrichtung 14 (1) erzeugten Datenauslesetakt (data read clock, RD_CLK) und die Daten-Strobes STB_P und STB_N reaktionsfähig ist, um zu bestimmen, wann der eine oder die mehreren Bursts von Daten empfangen worden sind. Weil eine derartige Strobe-Parklogik im Stand der Technik bei herkömmlichen DRAM-Speicherschnittstellen wohl bekannt ist, wird sie hierin nicht in näheren Einzelheiten beschrieben. Ein Beispiel einer geeigneten Strobe-Parklogik ist in dem US-Patent Nr. 8,234,422 beschrieben, dessen Patentschrift in ihrer Gesamtheit hierin durch Verweis aufgenommen wird.
  • Die Präambel-Logik 30 stellt ein feedback-basiertes Einstellungs- oder Trainingsmerkmal bereit, dass die Zeitsteuerung des Präambel-Freigabesignals (PA_RELEASE) in Antwort auf einen Vergleich des Präambel-Freigabesignals mit dem während eines vorhergehenden Lesevorgangs empfangenen Daten-Strobe-Signal einstellt. Wie in 3 veranschaulicht, enthält die Präambel-Logik 30 eine Automatik-Einstellschaltung 60, die in Antwort auf eine Initiierung eines Lesevorgangs ein erstes Signal und ein zweites Signal erzeugt. Wie unten beschrieben, propagieren sowohl das erste als auch das zweite Signal durch eine Schaltung, die ein einstellbares Verzögerungselement 62 enthält. Das einstellbare Verzögerungselement 62 verzögert das erste Signal, um das Präambel-Freigabesignal (PA_RELEASE) zu erzeugen. Das einstellbare Verzögerungselement 62 verzögert das zweite Signal, um ein Automatik-Einstelltaktsignal (AUTO_TUNE_CK) zu erzeugen. Ein Flip-Flop 64 dient als eine Vergleichsschaltung, die eine Flanke des Automatik-Einstelltaktsignals mit einer Flanke des mit ankommenden Daten während des Lesevorgangs verknüpften Daten-Strobe-Signals vergleicht. In Antwort auf das Ergebnis (AUTO_TUNE_FB) dieses Vergleichs kann die Automatik-Einstellschaltung 60 bewirken, dass in der Registerschaltung 66 gespeicherte Werte angepasst (z. B. inkrementiert oder dekrementiert) werden. Die Registerschaltung 66 stellt die gespeicherten Werte für das einstellbare Verzögerungselement 62 als ein Verzögerungs-Einstellungssignal 68 (FINE_DELAY[2:0]) bereit. Es sollte verstanden werden, dass obwohl in der beispielhaften Ausführungsform das erste und zweite Signal durch das gleiche einstellbare Verzögerungselement 62 propagieren, in anderen Ausführungsformen (nicht gezeigt) das erste Signal durch ein erstes einstellbares Verzögerungselement propagieren kann und das zweite Signal durch ein zweites einstellbares Verzögerungselement propagieren kann. Allgemeiner kann die einstellbare Verzögerungsschaltung, durch die das erste und zweite Signal propagieren, eine beliebige Anzahl von einstellbaren Verzögerungselementen umfassen.
  • Die Automatik-Einstellschaltung 60 beruht auf einer Zustandsmaschine 70, die in Antwort auf ein Lese-Detektier-Signal (read detect, RD_DET) arbeitet. Das Lese-Detektier-Signal wird in Antwort auf das Daten- Lese-Aktivierungssignal (read data enable, RD_DATA_EN) erzeugt, das die Speicher-Steuereinrichtung 14 (1) während Lesevorgängen aktiviert. Genauer gesagt ist das Lese-Detektier-Signal ein Puls, der von einem UND-Gatter 72, das das logische UND aus dem Lesedaten-Aktivierungssignal, einem komplementären Ausgang eines Flip-Flops 74, das das Lese-Daten-Aktivierungssignal empfängt, und einem Automatik-Selbsteinstellungs Aktivierungssignal (auto-tune enable, AUTO_TUNE_EN) bildet. Die Trainings-Steuereinrichtung 16 kann das Automatik-Einstellungs-Aktivierungssignal verwenden, um das Präambel-Freigabe-Automatik-Einstellungs-Trainingsmerkmal zu aktivieren (oder zu deaktivieren). Die Automatik-Einstellungs-Schaltung 60 umfasst ferner einen Multiplexer 73 und ein Flip-Flop 75, die dazu verwendet werden, in Antwort auf ein von der Zustandsmaschine 70 erzeugtes, Automatik-Einstellungs-Feedback-Latch-Aktivierungssignal (auto-tune feedback latch enable, AUTO_FB_LAT_EN) die in der Registerschaltung 66 gespeicherten Werte zu inkrementieren oder dekrementieren.
  • Die Registerschaltung 66 umfasst ein erstes Register 76 und ein zweites Register 78. Die Trainings-Steuerungseinrichtung 16 (1) kann das erste und zweite Register 76 und 78 mit initialen Werten beladen, obwohl eine Schaltung zum Ausführen einer derartigen Registerbeladung zum Zweck der Klarheit nicht gezeigt ist. Die Registerschaltung 66 umfasst ferner einen Ausgabe-Multiplexer 80, der in Antwort auf ein von der Zustandsmaschine 70 erzeugtes Multiplexer-Auswahlsignal (MUX_SEL) entweder die Ausgabe des ersten Registers 76 oder die Ausgabe des zweiten Registers 78 auswählt und drei Bits der ausgewählten Ausgabe als das oben erwähnte Verzögerungs-Einstellungssignal 68 (FINE_DELAY[2:0]) bereitstellt. Das höchstwertige Bit (FINE_DELAY[3]) des Verzögerungs-Einstellungssignal 68 wird der Zustandsmaschine 70 als eine Eingabe bereitgestellt. Die Registerschaltung 66 umfasst auch einen ersten Multiplexer 82 des ersten Registers und einen zweiten Multiplexer 84 des ersten Registers ebenso wie einen ersten Multiplexer 86 des zweiten Registers und einen zweiten Multiplexer 88 des zweiten Registers. Die Multiplexer 82 und 86 arbeiten in Antwort auf ein von der Zustandsmaschine 70 erzeugtes Code-Aktualisierungs-Auswahlsignal (code update selection, CODE_UPDATE), um zu bewirken, dass die Register 76 und 78 entweder ihre Werte aufrechterhalten oder ihre Werte aktualisieren (d. h. einstellen). Die Multiplexer 84 und 88 arbeiten in Antwort auf das von der Zustandsmaschine 70 erzeugte Automatik-Einstellungs-Feedback-Latch-Aktivierungssignal (über den Multiplexer 73 und ein Flip-Flop 75), um die Werte in den Registern 76 und 78 entweder zu inkrementieren oder zu dekrementieren, wenn die Register 76 und 78 aktualisiert werden. Zwei Inkrementierungs-Schaltungen 90 und 92 und zwei Dekrementierungs-Schaltungen 94 und 96 erleichtern diese Prozedur, indem sie pre-inkrementierte oder pre-dekrementierte Werte für die Multiplexer 84 und 88 bereitstellen. Somit wird die Ausgabe des ersten Registers 76 entweder inkrementiert oder dekrementiert, um den Wert auszubilden, mit dem das erste Register 76 aktualisiert werden soll. Ein Addierer 98 addiert einen Fine-Offset (FINE_CODE_OFFSET) zu der Ausgabe des ersten Registers 76, um den Wert auszubilden, mit dem das zweite Register 78 aktualisiert werden soll. Das heißt, während das erste Register 76 durch Inkrementieren oder Dekrementieren des aktuellen Werts in dem ersten Register 76 aktualisiert wird, wird das zweite Register 78 aktualisiert, indem der aktuelle Wert in dem ersten Register 76 inkrementiert oder dekrementiert wird und ein Fine-Offset addiert wird. Die Trainings-Steuerungseinrichtung 16 kann dieses Fine-Offset bereitstellen. Die Inkrementierungs-Schaltkreise 90 und 92, die Dekrementierungs-Schaltkreise 94 und 96 und die Addiererschaltung 98 sind dazu ausgebildet, zu verhindern, dass die in den Registern 76 und 78 gespeicherten Werte rollieren. So verbleibt beispielsweise ein in den Registern 76 und 78 gespeicherter Wert von „1111” (binär) auf „1111” ungeachtet eines Versuchs, die Werte zu aktualisieren, indem sie um Eins inkrementiert werden.
  • Das oben genannte erste Signal und zweite Signal, das die Automatik-Einstellschaltung 60 in Antwort auf eine Initiierung eines Lesevorgangs erzeugt, werden von der Zustandsmaschine 70 erzeugt. Genauer gesagt wird das erste Signal in Antwort auf ein erstes Auftreten davon, dass die Zustandsmaschine 70 ein Starte-den-nächsten-Zustand(launch-next-state, LAUNCH_NS)-Signal aktiviert, erzeugt, und das zweite Signal wird in Antwort auf ein zweites Auftreten davon, dass die Zustandsmaschine das Starte-den-nächsten-Zustand-Signal aktiviert, erzeugt. Ein Flip-Flop 100 empfängt das Starte-den-nächsten-Zustand-Signal über einen Multiplexer 102 und erzeugt das erste und zweite Signal in der Form von Pulsen. Wie oben beschrieben, werden das erste und zweite Signal (Pulse) dem einstellbaren Verzögerungselement 62 eingegeben.
  • Ein Multiplexer 104 arbeitet in Antwort auf das von der Zustandsmaschine 70 erzeugte Multiplexer-Auswahl-Signal (MUX_SEL). Die Zustandsmaschine 70 setzt das Multiplexer-Auswahl-Signal auf einen logischen-0-Zustand während des Zeitintervalls, das auf die Initiierung eines Lesevorgangs, jedoch einem ankommenden Daten-Burst vorausgehend, folgt, wodurch die Ausgabe des einstellbaren Verzögerungselements 62 ausgewählt wird. Während dieses Zeitintervalls bewirkt die Zustandsmaschine 70 auch, dass das oben genannte erste Signal erzeugt wird. Dementsprechend dient die Ausgabe des einstellbaren Verzögerungselements 62 (d. h. des verzögerten ersten Signals) während dieses Zeitintervalls als das Präambel-Freigabesignal (PA_RELEASE).
  • Die Zustandsmaschine 70 setzt das Multiplexer-Auswahlsignal auf einen logisch-1-Zustand während des Zeitintervalls, in dem der Daten-Burst empfangen wird (und folglich das Daten-Strobe-Signal seinen Zustand aktiv verändert). Der andere Eingang des Multiplexers 104 wird auf Masse gezogen. Entsprechend wird das Masse- oder logisch-0-Niveau anstelle der Ausgabe des einstellbaren Verzögerungselements 62 ausgewählt. Somit verbleibt das Präambel-Freigabesignal während dieses späteren Zeitintervalls auf einem logisch-0-Niveau. Wenn jedoch während dieses späteren Zeitintervalls das Multiplexer-Auswahlsignal einen logisch-1-Zustand hat, wählt ein anderer Multiplexer 106 die Ausgabe des einstellbaren Verzögerungselements 62 als die Eingabe zu einem Flip-Flop 64. Während dieses Zeitintervalls bewirkt die Zustandsmaschine 70 auch, dass das oben genannte zweite Signal erzeugt wird. Die Ausgabe des einstellbaren Verzögerungselements 62 ist das verzögerte zweite Signal. Das Flip-Flop 64 vergleicht Flanken des verzögerten zweiten Signals mit Flanken des Daten-Strobe-Signals, das mit dem ankommenden Daten-Burst verknüpft ist, und stellt das Ergebnis des Vergleichs der Automatik-Einstellschaltung 60 in der Form des Automatik-Einstellungs-Feedback-Signals (AUTO_TUNE_FB) bereit.
  • Die Zustandsmaschine 70 kann gemäß dem Zustandsdiagramm 108 der 4 und der Tabelle in den 5A bis 5B aufgebaut sein. Wie in 4 veranschaulicht, kann die Zustandsmaschine 70 die folgenden Zustände haben: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10. Die Zustandsmaschine 70 empfängt das oben beschriebene Lese-Detektier-Signal (RD_DET) und ein Taktsignal (CLK_2X) als Eingaben. Die Zustandsmaschine 70 empfängt auch das höchstwertige Bit (FINE_DELAY[3]) des oben beschriebenen Verzögerungseinstell-Signals 68 als eine andere Eingabe. Es sei zu den 5A und 5B angemerkt, dass die Zustandsmaschine 70 das Starte-dennächsten-Zustand-Signal (LAUNCH_NS) in Antwort auf (d. h. als eine Funktion von) den aktuellen Zustand, das Lese-Detektier-Signal (RD_DET) und das höchstwertige Bit (FINE_DELAY[3]) des Verzögerungseinstell-Signals 68 erzeugt. Die Zustandsmaschine 70 erzeugt das Multiplexer-Auswahlsignal (MUX_SEL), das Automatik-Einstellungs-Feedback-Latch-Aktivierungssignal (AUTO_FB_LAT_EN) und das Code-Aktualisierungssignal (CODE_UPDATE) in Antwort auf den aktuellen Zustand. Die Zustandsmaschine 70 macht einen Übergang von ihrem aktuellen Zustand zu ihrem nächsten Zustand in Antwort auf ihren aktuellen Zustand und das Lese-Detektiersignal.
  • Der Zustand S0 ist ein Leerlauf-Zustand. In Antwort darauf, dass das Lese-Detektiersignal von logisch-0 auf logisch-1 übergeht, geht die Zustandsmaschine 70 vom Zustand S0 in den Zustand S1 über. In Antwort darauf, dass das Lese-Detektiersignal in einen logischen-0-Zustand übergeht und während aufeinanderfolgende Taktzyklen, die auf den Übergang zum Zustand S1 folgen, in einen logischen-0-Zustand verbleibt, geht die Zustandsmaschine 70 in Synchronizität mit ankommenden Datenworten des Bursts in die Zustände S2, S3, S4, S5, S6, S7 und S8, respektive, über. In manchen Fällen können zwei Lesevorgänge mit minimalem oder nahezu minimalem Zeitzwischenraum zwischen diesen aufeinanderfolgen. Wenn beispielsweise das Lese-Detektiersignal von logisch-0 auf logisch-1 übergeht, während die Zustandsmaschine 70 im Zustand S8 ist, dann macht die Zustandsmaschine 70 einen Übergang 112 vom Zustand S8 zurück in den Zustand S1. Wenn jedoch das Lese-Detektiersignal in einem logisch-0-Zustand verbleibt, während die Zustandsmaschine 70 im Zustand S8 ist, dann geht die Zustandsmaschine 70 vom Zustand S8 in den Zustand 59 und dann bei nachfolgenden Taktzyklen zum Zustand S10 über. Wenn das Lese-Detektionssignal vom logisch-0 zum logisch-1-Zustand übergeht, während die Zustandsmaschine im Zustand S10 ist, wodurch angezeigt wird, dass zwei Lesevorgänge mit nahezu minimalem Zeitunterschied zwischen diesen aufeinanderfolgend aufgetreten sind, dann macht die Zustandsmaschine 70 einen Übergang 114 vom Zustand S10 in den Zustand S1. Anderenfalls, wenn das Lese-Detektier-Signal in einem logisch-0-Zustand verbleibt, während die Zustandsmaschine 70 im Zustand S10 ist, dann geht die Zustandsmaschine 70 vom Zustand S10 zurück zum Zustand S0 (d. h. dem Leerlauf-Zustand) über. Wenn die Zustandsmaschine 70 zu irgendeiner Zeit ein Rücksetzsignal (RESET) empfängt, geht sie in den Zustand S0 zurück. Der Fachmann wird verstehen, dass zum Zweck der Klarheit das Zustandsdiagramm der 4 keine ungültigen Zustände, ungültige Eingabeübergänge oder andere Fehlerbedingungen enthält.
  • Wie in den 6 bis 13 veranschaulicht, kann die Zustandsmaschine 70 auf die Initiierung von verschiedenartigen Arten von Lesevorgängen durch die Speicher-Steuereinrichtung 14 (1) antworten. In jedem der folgenden Beispiele initiiert die Speicher-Steuereinrichtung 14 den Lesevorgang oder die Lesevorgänge, indem sie ein Lese-Aktivierungs(RD_DATA_EN)-Signal an die Schnittstelle 18 ausgibt, sowie einen zugeordneten Befehl an die Befehls- und Steuerungslogik 24 (1) der Schnittstelle 18 ausgibt. Das Lese-Aktivierungssignal wird in dem Flip-Flop 74 gelatchet bzw. verriegelt (RD_DATA_EN_REG).
  • Das Zeitablaufdiagramm 116 der 6 veranschaulicht ein Beispiel eines Lesevorgangs von einer Art, das üblicherweise als „Burst-Länge 8” oder „BL8” bezeichnet wird, bei der auf die Präambel eine Bit-Folge (burst) von acht Datenworten folgt (d. h. DQS in einem logisch-0-Zustand). Die Datenworte (zum Zweck der Klarheit nicht gezeigt) werden von der Schnittstelle 18 in Synchronizität mit den ansteigenden Flanken der beiden Daten-Strobe-Signale (DQS und DQSN) empfangen. Auf die acht Datenworte folgt eine Postamel (d. h. DQS in einem logisch-0-Zustand).
  • Das Zeitablaufdiagramm 118 der 7 veranschaulicht ein anderes Beispiel von Lesevorgängen, auf die die Zustandsmaschine 70 antworten kann. In diesem Beispiel werden zwei aufeinanderfolgende BL8-Lesevorgänge initiiert. Obwohl dies zum Zweck der Klarheit nicht gezeigt ist, kann der Fachmann einsehen, dass dieses Beispiel den Fall darstellt, dass die Speicher-Steuerungseinrichtung 14 zwei Spalten-Adress-Strobe- oder „CAS”(column address strobe)-Befehle, die nur vier Taktsignale voneinander getrennt sind, ausgibt. In diesem Fall bezeichnet der Ausdruck „Taktzyklus” das Haupttaktsignal oder „CLK_1X”, unter dem die Speicher-Steuerungseinrichtung 14 und die Kernlogik des ASIC 10 arbeiten, im Gegensatz zu dem in 3 gezeigten Taktsignal (CLK_2X), das eine Frequenz von zweimal der Frequenz des Haupttaktsignals (CLK_1X) hat. Es sei angemerkt, dass in diesem Beispiel der Lese-Burst effektiv ein einzelner Burst (Bitfolge) von 16 Datenworten ist, wobei eine Präambel (PREAMBLE) am Beginn des Bursts auftritt und eine Postamble (POST) am Ende des Bursts auftritt. Es sei angemerkt, dass die Postamble in dem Zeitablaufdiagramm 118 bis zu einem auf diesen gezeigten, nachfolgenden Zyklus nicht erscheint. In diesem Beispiel unterscheidet sich die Eingabe RD_DATA_EN des Zeitablaufdiagramms 118 der 7 von der Eingabe RD_DATA_EN des Zeitablaufdiagramms 116 der 6, jedoch erzeugen beide Beispiele die gleiche Antwort auf dem RD_DET Signal. Weil die RD_DET Eingabe in die Zustandsmaschine 70 in beiden Beispielen genau die gleiche ist, antwortet die Zustandsmaschine 70 in beiden Beispielen in der gleichen Weise.
  • Das Zeitablaufdiagramm 120 der 8 ist ähnlich wie das Zeitablaufdiagramm 118 der 7, stellt jedoch den Fall dar, dass die Speicher-Steuereinrichtung 14 zwei CAS-Befehle ausgibt, die um fünf Taktzyklen (CLK_1X) voneinander getrennt sind. Wie unten in näherer Einzelheit beschrieben, bezieht sich der Übergang 114 des Zustandsdiagramms 108 (4) auf diese Art eines Lesevorgangs, bei dem zwei aufeinanderfolgende CAS-Befehle um fünf Taktzyklen (CLK_1X) voneinander getrennt sind.
  • Das Zeitablaufdiagramm 122 der 9 ist ähnlich wie die Zeitablaufdiagramme 118 und 120, stellt jedoch den Fall dar, dass die Speicher-Steuerungseinrichtung 14 zwei CAS-Befehle ausgibt, die um sechs Taktzyklen (CLK_1X) voneinander getrennt sind. Die Zustandsmaschine 70 enthält keine besonderen Zustandsübergänge, um auf ein derartiges Paar von aufeinanderfolgenden Lesevorgängen zu antworten, weil diese ausreichend weit voneinander beabstandet sind, um eine Postamble aufzunehmen, die der Präambel des zweiten Lesevorgangs vorausgeht.
  • Das Zeitablaufdiagramm 124 der 10 veranschaulicht noch ein anderes Beispiel von Lesevorgängen, auf die die Zustandsmaschine 70 antworten kann. In diesem Beispiel ist der Lesevorgang von einer Art, die allgemein als „Burst-Chop 4” oder „BC4” bezeichnet wird, bei dem ein Burst (Bitfolge) von vier Datenworten auf die Präambel folgt. Das Zeitablaufdiagramm 126 der 11 veranschaulicht ein Beispiel, bei dem zwei aufeinanderfolgende BC4-Lesevorgänge initiiert werden. Obwohl dies aus Gründen der Klarheit nicht gezeigt ist, kann ein Fachmann einsehen, dass dieses Beispiel den Fall darstellt, dass die Speicher-Steuereinrichtung 14 zwei CAS-Befehle ausgibt, die nur vier Taktzyklen (CLK_1X) voneinander getrennt sind. Das Zeitablaufdiagramm 128 der 12 ist ähnlich wie das Zeitablaufdiagramm 126, stellt jedoch den Fall dar, dass die Speicher-Steuereinrichtung 14 zwei CAS-Befehle ausgibt, die fünf Taktzyklen (CLK_1X) voneinander getrennt sind. Das Zeitablaufdiagramm 129 der 13 ist ähnlich wie die Zeitablaufdiagramme 126 und 128, stellt jedoch den Fall dar, dass die Speicher-Steuereinrichtung 14 zwei CAS-Befehle ausgibt, die sechs Taktzyklen (CLK_1X) voneinander getrennt sind.
  • Das Zeitablaufdiagramm 130 der 14A bis 14B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf einen BL8 Lesevorgang antworten, bei dem das in den Registern 76 und 78 (3) gespeicherte, höchstwertige Bit des Verzögerungswertes (RAW[3:0] und OFFSET[3:0]), respektive, eine logische-0 ist. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S0 fortfährt. Es sei auch angemerkt, dass im Zeitablaufdiagramm 130 die Ausgaben der Zustandsmaschine 70, d. h. LAUNCH_NS, MUX_SEL, AUTO_FB_LAT_EN und CODE_UPDATE, auf die Eingaben in die Zustandsmaschine 70, einschließlich CLK_2X und RD_DET, in der durch die Tabelle der 5A bis 5B angezeigten Art und Weise antworten. Das höchstwertige Bit des Verzögerungswerts (FINE_DELAY[3:0]) ist zum Zwecke der Klarheit in dem Zeitablaufdiagramm 130 nicht gezeigt, jedoch hat es während des gesamten Lesevorgangs einen logischen-0-Wert. Es sei auch angemerkt, dass die Ausgabe der Präambel-Logik 30 (3), das Präambel-Freigabesignal (PA_RELEASE), Übergänge oder Flanken hat, die innerhalb eines Bereichs, der durch den Betrieb des hierin beschriebenen Präambel-Freigabetrainings-(oder automatische Selbsteinstellung)-Merkmal bestimmt ist, auftreten. Wie oben beschrieben, arbeitet in der beispielhaften Ausführungsform das Automatik-Einstell- oder Trainingsmerkmal derart, dass die Flanken des Präambel-Freigabesignals (PA_RELEASE) eingestellt (d. h. auswählbar verzögert) werden in Antwort auf das Ergebnis davon, dass das Flip-Flop 64 (3) die Flanken des oben genannten zweiten Signals (das verzögerte zweite Signal wird in der beispielhaften Ausführungsform als AUTO_TUNE_CK bezeichnet) mit Flanken von einem der Daten-Strobe-Signale (DQSN) vergleicht. Der Betrag, um den die Präambel-Logik 30 das Präambel-Freigabesignal einstellt, wird durch den Verzögerungswert, der in den Registern 76 und 78 zu dem Zeitpunkt, zu dem das Präambel-Freigabesignal erzeugt wird, enthalten ist, bestimmt. Wie ebenfalls oben beschrieben, tritt der vorgenannte Vergleich während eines Lesevorgangs auf, der der Einstellung vorausgeht, wie etwa der in dem Zeitablaufdiagramm 130 veranschaulichte Lesevorgang. Das Automatik-Einstellungs-Feedback-Signal (AUTO_TUNE_FB), das das Ergebnis des Vergleichs darstellt, wird über den Multiplexer 73 dem Flip-Flop 75, das als ein Feedback-Register dient, bereitgestellt. Es sei angemerkt, dass das Zeitablaufdiagramm 130 andeutet, wann der Inhalt des Flip-Flops 75 (FB_REG) ein gültiges Feedback darstellt (d. h. GÜLTIG versus UNGÜLTIG). Das Zeitablaufdiagramm 130 deutet ferner an, wann die Register 76 und 78 in Antwort auf den Vergleich mit den neuen Verzögerungswerten aktiviert worden sind (NEUER CODE versus ALTER CODE).
  • Das Zeitablaufdiagramm 132 der 15A bis 15B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf einen BL8-Lesevorgang antworten, bei dem das in den Registern 76 und 78 (3) gespeicherte, höchstwertige Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, eine logische-1 ist. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S0 fortfährt. Wie in dem vorausgehenden Zeitablaufdiagramm 130 antworten die Ausgaben der Zustandsmaschine 70, d. h. LAUNCH_NS, MUX_SEL, AUTO_FB_LAT_EN und CODE_UPDATE, auf die Eingaben in die Zustandsmaschine 70, einschließlich CLK_2X und RD-DET, in der Art und Weise, die in der Tabelle der 5A bis 5B angedeutet ist. Das höchstwertige Bit des Verzögerungswerts (FINE_DELAY[3:0]) ist aus Gründen der Klarheit in dem Zeitablaufdiagramm 132 nicht gezeigt, jedoch hat während des gesamten Lesevorgangs es einen logisch-1-Wert. Wie in dem vorausgehenden Zeitablaufdiagramm 130 hat die Ausgabe der Präambel-Logik 30 (3), das Präambel-Freigabesignal (PA_RELEASE), Übergänge oder Flanken, die innerhalb eines Bereichs auftreten, der durch den Betrieb des hierin beschriebenen Präambel-Freigabetrainings(oder Automatik-Selbsteinstell)-Merkmal, bestimmt wird.
  • Das Zeitablaufdiagramm 134 der 16A bis 16B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf einen BL8-Lesevorgang antworten, bei dem das in den Registern 76 und 78 (3) gespeicherte, höchstwertige Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs von einer logischen-0 in eine logische-1 übergeht. Dieser Übergang tritt in Antwort auf einen Versatz- bzw. Offset-Wert von weniger als 0, der in der FINE_CODE_OFFSET Eingabe in die Registerschaltung 66 (3) vorhanden ist, auf, was bewirkt, dass das Register 78 ein höchstwertiges Bit mit einem Wert von logisch-0 hält und das Register 76 ein höchstwertiges Bit mit einem Wert von logisch-1 hält. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge von Zuständen S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S0 fortfährt.
  • Das Zeitablaufdiagramm 136 der 17A bis 17B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf einen BL8 Lesevorgang antworten, bei dem das in den Registern 76 und 78 (3) gespeicherte, höchstwertige Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs von einem logisch-1 in ein logisch-0 übergeht. Dieser Übergang tritt in Antwort auf einen Offset-Wert, der größer als 0 ist und der in der FINE_CODE_OFFSET Eingabe in die Registerschaltung 66 (3) vorhanden ist, auf, was bewirkt, dass das Register 78 ein höchstwertiges Bit mit einem Wert von logisch-1 hält und das Register 76 ein höchstwertiges Bit mit einem Wert von logisch-0 hält. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S0 fortfährt.
  • Das Zeitablaufdiagramm 138 der 18A bis 18B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf zwei aufeinanderfolgende BL8 Lesevorgänge antwortet, wobei die beiden entsprechenden CAS-Befehle um sechs Taktzyklen (CLK_1X) voneinander getrennt sind und wobei das in den Registern 76 und 78 (3) gespeicherte, höchstwertige Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-0 verbleibt. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S0 (für zwei Zyklen von CLK_3X), S1, S2, S3 usw. fortfährt. Das Zeitablaufdiagramm 140 der 19A bis 19B bezieht sich auf ein ähnliches Ereignis wie das, auf das sich das Zeitablaufdiagramm 138 bezieht, wobei jedoch das in den Registern 76 und 78 (1) gespeicherte, höchstwertige Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-1 verbleibt.
  • Das Zeitablaufdiagramm 142 der 20A bis 20B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf zwei aufeinanderfolgende BL8 Lesevorgänge antworten, wobei die zwei entsprechenden CAS-Befehle um fünf Taktzyklen (CLK_1X) voneinander getrennt sind und wobei das in den Registern 76 und 78 (3) gespeicherte, höchstwertigste Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-0 verbleibt. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S1, S2, S3, usw. fortfährt. Das Zeitablaufdiagramm 144 der 21A bis 21B bezieht sich auf ein ähnliches Ereignis wie das, auf dass sich das Zeitablaufdiagramm 142 bezieht, wobei jedoch das in den Registern 76 und 78 (3) gespeicherte, höchstwertige Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-1 verbleibt.
  • Das Zeitablaufdiagramm 146 der 22A bis 22B veranschaulicht die Art und Weise, in der die Zustandsmaschine und andere Teile der Präambel-Logik 30 auf zwei aufeinanderfolgende BC4-Lesevorgänge antworten, wobei die beiden entsprechenden CAS-Befehle um fünf Taktzyklen (CLK_1X) voneinander beabstandet sind und wobei das in den Registern 76 und 78 (3) gespeicherte, höchstwertigste Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-0 verbleibt. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S1, S2, S3 usw. fortfährt. Das Zeitablaufdiagramm 148 der 23A bis 23B bezieht sich auf ein ähnliches Ereignis wie das, auf das sich das Zeitablaufdiagramm 146 bezieht, wobei jedoch das in den Registern 76 und 78 (3) gespeicherte, höchstwertigste Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-1 verbleibt.
  • Das Zeitablaufdiagramm 150 der 24A bis 24B veranschaulicht die Art und Weise, in der die Zustandsmaschine 70 und andere Teile der Präambel-Logik 30 auf zwei aufeinanderfolgende BC4 Lesevorgänge antwortet, wobei die zwei entsprechenden CAS-Befehle um vier Taktzyklen (CLK_1X) voneinander getrennt sind und wobei das in den Registern 76 und 78 (3) gespeicherte, höchstwertigste Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-0 verbleibt. Mit weiterem Verweis auf das Zustandsdiagramm 108 (4) wird angemerkt, dass die Zustandsmaschine 70 durch die Abfolge der Zustände: S0, S1, S2, S3, S4, S5, S6, S7, S8, S1, S2, S3, S4, S5, S6, usw. fortfährt. Das Zeitablaufdiagramm 152 der 25A bis 25B bezieht sich auf ein ähnliches Ereignis wie das, auf das sich das Zeitablaufdiagramm 150 bezieht, wobei jedoch das in den Registern 76 und 78 (3) gespeicherte, höchstwertigste Bit des Verzögerungswerts (RAW[3:0] und OFFSET[3:0]), respektive, während des Lesevorgangs auf logisch-1 verbleibt.
  • Das oben beschriebene Verfahren des Betriebs der Schnittstelle 18 hinsichtlich des Präambel-Freigabetrainings kann zusammengefasst werden, wie das durch das Ablaufdiagramm der 26 angedeutet ist. Wie durch den Block 154 angegeben, kann die Trainings-Steuereinheit 16 die Präambel-Logik 30 initialisieren, indem sie zuerst ein initiales Präambel-Freigabetraining ausführt. Um ein herkömmliches Präambel-Freigabetraining auszuführen, stellt die Trainings-Steuereinheit 16 zuerst das Automatik-Einstell-Aktivierungssignal (AUTO_TUNE_EN) auf logisch-0, wodurch das kontinuierliche oder Automatisch-Selbsteinstell-Präambel-Freigabemerkmal deaktiviert wird, und lädt einen initialen Verzögerungswert in die Register 76 und 78. Die Trainings-Steuereinheit initiiert dann einen Lesevorgang und tastet die Ausgabe des Flip-Flops 64 (über eine Abtastschaltung, die zum Zweck der Klarheit nicht gezeigt ist) ab, was in Antwort darauf, durch das Präambel-Freigabesignal getaktet zu sein, den Zustand des Daten-Strobe-Signals erfasst. Die Trainings-Steuereinheit 16 kann diesen Vorgang in einer iterativen Weise wiederholen, wobei in jeder Iteration ein anderer Verzögerungswert eingestellt wird. Aus den in dem Abtastregister erfassten Ergebnissen kann die Trainings-Steuereinheit 16 einen optimalen Verzögerungswert berechnen, der das Präambel-Freigabesignal in die Nähe der Mitte der Präambel platziert. Die Trainings-Steuereinrichtung 16 kann die Register 76 und 78 mit diesem optimalen Verzögerungswert beladen. Dann stellt die Trainings-Steuereinheit 16 das Automatik-Einstell-Aktivierungssignal (AUTO_TUNE_EN) auf logisch-1, wodurch das kontinuierliche oder Automatik-Selbsteinstell-Präambel-Freigabemerkmal aktiviert wird. Das kontinuierliche oder Automatik-Selbsteinstell-Präambel-Freigabemerkmal stellt dann den Präambel-Freigabeverzögerungswert, nach einigen oder allen nachfolgenden Lesevorgängen in Vorbereitung für die Freigabe der Präambel vor einem weiteren Lesevorgang ein. Genauer gesagt, fährt das Verfahren gemäß den Blöcken 156 bis 166 fort.
  • Wie durch den Block 156 angedeutet, erzeugt die Präambel-Logik 30 (3) das erste Signal in Antwort auf eine Initiierung eines Lesevorgangs durch die Speicher-Steuereinrichtung 14. In der oben beschriebenen Art und Weise ist das erste Signal durch eine Verzögerung in Bezug auf die Initiierung des Lesevorgangs um einen oder mehrere Taktzyklen plus eine von dem einstellbaren Verzögerungselement 62 bereitgestellte Fein-Verzögerung gekennzeichnet. Wie durch den Block 158 angedeutet, stellt die Präambel-Logik 30 das erste Signal für die Daten-Strobe-Parklogik 32 in der Form des Präambel-Freigabesignals (PA_RELEASE) bereit. Wie durch den Block 160 angedeutet, erzeugt die Präambel-Logik 30 das zweite Signal in Antwort auf die Initiierung des Lesevorgangs. In der oben beschriebenen Art und Weise ist das zweite Signal in ähnlicher Weise durch eine von dem einstellbaren Verzögerungselement 62 bereitgestellte Verzögerung gekennzeichnet, Antwort auf die Initiierung des Lesevorgangs überträgt das DRAM Modul 12 eine Präambel gefolgt von einem oder mehreren Bursts von Daten in Synchronizität mit einem Daten-Strobe-Signal. Wie durch den Block 162 angedeutet, empfängt die Präambel-Logik 30 das mit den ankommenden Daten verknüpfte Daten-Strobe-Signal. Wie durch den Block 164 angedeutet ist, führt die Präambel-Logik 30 einen Phasenvergleich zwischen einer Flanke des (verzögerten) zweiten Signals und einer Flanke des mit den ankommenden Daten verknüpften Daten-Strobe-Signals aus. Wie durch den Block 166 angedeutet, stellt die Präambel-Logik 30 dann in Antwort auf das Ergebnis des Vergleichs das einstellbare Verzögerungselement 62 ein. Die eingestellte Verzögerung wird dann auf eine nachfolgende Instanz angewendet, in der das Präambel-Freigabesignal erzeugt wird.
  • Wie durch den Block 168 angegeben, wenn der Lesevorgang mehr als einen Burst enthält, dann fährt das Verfahren fort, so wie das oben hinsichtlich des Blocks 156 beschrieben ist. Es sollte verstanden werden, dass zum Zweck der Klarheit das Ablaufdiagramm der 26 sich nur auf eine einzige Instanz des Verfahrens bezieht, und dass das kontinuierliche oder automatisch selbsteinstellende Präambel-Freigabeverfahren (Blöcke 156166) mehrere Male ausgeführt wird, wenn Lesevorgänge auftreten. Auf diese Art und Weise verwendet das Verfahren Feedback von Lesevorgängen, um das Präambel-Freigabesignal einzustellen, so dass es weiterhin nahe an der Mitte der Präambel aktiviert wird.
  • Es sollte angemerkt werden, dass die Erfindung zum Zweck des Beschreibens der Prinzipien und Konzepte der Erfindung mit Verweis auf veranschaulichende Ausführungsformen beschrieben worden ist. Die Erfindung ist nicht auf diese Ausführungsformen begrenzt. So wie das von Fachmännern in dem technischen Gebiet im Hinblick auf die hierin bereitgestellte Beschreibung verstanden wird, können zu den hierin beschriebenen Ausführungsformen viele Modifikationen ausgeführt werden, ohne von den Zielen der Erfindung abzuweichen, und alle derartigen Modifikationen sind innerhalb des Umfangs der Erfindung.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8234422 [0056]

Claims (21)

  1. Ein Verfahren für ein Präambel-Freigabetraining in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate, aufweisend: Erzeugen eines ersten Signals in Antwort auf eine Initiierung eines Lesevorgangs, wobei das erste Signal von der Initiierung des Lesevorgangs um einen oder mehrere Taktzyklen plus eine von einer einstellbaren Verzögerungsschaltung bereitgestellte Feinverzögerung von weniger als einem Taktzyklus verzögert ist; Bereitstellen des ersten Signals an eine Daten-Strobe-Parkschaltung; Erzeugen eines zweiten Signals in Antwort auf die Initiierung des Lesevorgangs, wobei das zweite Signal von der einstellbaren Verzögerungsschaltung verzögert wird; Empfangen eines Daten-Strobe-Signals, das mit ankommenden Daten während des Lesevorgangs verknüpft ist; Vergleichen einer Flanke des zweiten Signals mit einer Flanke des Daten-Strobe-Signals, das mit ankommenden Daten während des Lesevorgangs verknüpft ist; und Einstellen der einstellbaren Verzögerungsschaltung in Antwort auf ein Ergebnis des Vergleichens der Flanke des zweiten Signals mit der Flanke des Daten-Strobe-Signals.
  2. Das Verfahren nach Anspruch 1, wobei die einstellbare Verzögerungsschaltung eine Verzögerungseingabe von einem ersten Verzögerungsregister empfängt, um das erste Signal zu erzeugen, und die Verzögerungseingabe von einem zweiten Verzögerungsregister empfängt, um das zweite Signal zu erzeugen.
  3. Das Verfahren nach Anspruch 1 oder 2, wobei: das Erzeugen eines ersten Signals das Erzeugen des ersten Signals in Antwort auf eine Ausgabe einer Zustandsmaschine umfasst; und das Erzeugen eines zweiten Signals das Erzeugen des zweiten Signals in Antwort auf die Ausgabe der Zustandsmaschine umfasst.
  4. Das Verfahren nach Anspruch 3, wobei: die Zustandsmaschine ein Register aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister auswählt, um eine Ausgabe für die einstellbare Verzögerungsschaltung bereitzustellen; und wobei die Zustandsmaschine ein höchstwertiges Bit aus einem aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister ausgewählten Register empfängt, und die einstellbare Verzögerungsschaltung niedrigstwertige Bits von dem einen aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister ausgewählten Register empfängt.
  5. Das Verfahren nach Anspruch 3 oder 4, wobei das Einstellen der einstellbaren Verzögerung umfasst, dass die Zustandsmaschine eine Aktion aus dem Inkrementieren und dem Dekrementieren eines in dem ersten Verzögerungsregister gespeicherten ersten Wertes und eines in dem zweiten Verzögerungsregister gespeicherten zweiten Wertes auswählt.
  6. Das Verfahren nach Anspruch 5, ferner aufweisend Addieren eines Feinoffset-Werts zu einem in dem ersten Verzögerungsregister gespeicherten, ersten Wert oder zu dem in dem zweiten Verzögerungsregister gespeicherten, zweiten Wert.
  7. Das Verfahren nach einem der Ansprüche 2 bis 6, wobei: Erzeugen eines ersten Signals das Erzeugen eines ersten Pulses umfasst, und Erzeugen eines zweiten Signals das Erzeugen eines zweiten Pulses umfasst.
  8. Ein System für ein Präambel-Freigabetraining in einer Schnittstelle zwischen einem anwendungsspezifischen, integrierten Schaltkreis (application-specific integrated circuit, ASIC) und einer Speichereinrichtung mit doppelter Datenrate, aufweisend: eine einstellbare Verzögerungsschaltung; eine Automatik-Einstellschaltung, die dazu ausgelegt ist, ein erstes Signal und ein zweites Signal in Antwort auf eine Initiierung eines Lesevorgangs durch das ASIC zu erzeugen, wobei die einstellbare Verzögerungsschaltung das erste Signal verzögert, um ein Präambel-Freigabesignal zu erzeugen, und das zweite Signal verzögert, um ein Automatisch-Einstelltaktsignal zu erzeugen; eine Daten-Strobe-Parkschaltung, die einen Eingang aufweist, der ein mit ankommenden Daten während des Lesevorgangs verknüpftes Daten-Strobe-Signal empfängt, und einen Ausgang aufweist, der zwischen einem Daten-Strobe-Signal und einer festgelegten Spannung schaltbar ist, wobei das Schalten der Präambel-Freigabe durch das Präambel-Freigabesignal gesteuert wird; und eine Vergleichsschaltung, die dazu ausgelegt ist, eine Flanke des Automatik-Einstelltaktsignals mit einer Flanke des mit ankommenden Daten während des Lesevorgangs verknüpften Daten-Strobe-Signals zu vergleichen, wobei die Automatik-Einstellschaltung, in Antwort auf ein Ergebnis des Vergleichens der Flanke des zweiten Signals mit der Flanke des Daten-Strobe-Signals, der einstellbaren Verzögerungsschaltung ein Einstellsignal bereitstellt.
  9. Das System nach Anspruch 8, ferner aufweisend: einen Multiplexer mit einem Ausgang, der das Einstellsignal der einstellbaren Verzögerungsschaltung bereitstellt, wobei der Multiplexer ein Multiplexer-Steuerungssignal von der Automatik-Einstellschaltung empfängt; ein erstes Verzögerungsregister mit einem Ausgang, der mit einem ersten Eingang des Multiplexers verbunden ist; und ein zweites Verzögerungsregister mit einem Ausgang, der mit einem zweiten Eingang des Multiplexers verbunden ist.
  10. Das System nach Anspruch 9, wobei das erste Verzögerungsregister und das zweite Verzögerungsregister mittels des ASIC ladbar sind.
  11. Das System nach Anspruch 9 oder 10, wobei: die Automatik-Einstellschaltung eine Zustandsmaschine umfasst; der einstellbare Verzögerungsschaltkreis, in Antwort auf eine erste Ausgabe der Zustandsmaschine, die erzeugt wird, wenn die Zustandsmaschine in einem ersten Zustand ist, das erste Signal verzögert; und die einstellbare Verzögerungsschaltung, in Antwort auf eine zweite Ausgabe der Zustandsmaschine, die erzeugt wird, wenn die Zustandsmaschine in einem zweiten Zustand ist, das zweite Signal verzögert.
  12. Das System nach Anspruch 11, wobei: die Zustandsmaschine das Multiplexer-Steuerungssignal erzeugt; und die Zustandsmaschine ein höchstwertiges Bit von einem aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister ausgewählten Register empfängt, und die einstellbare Verzögerungsschaltung alle Bits von dem einen aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister ausgewählten Register mit Ausnahme des höchstwertigen Bits empfängt.
  13. Das System nach Anspruch 11 oder 12, wobei die Zustandsmaschine auf ein mittels der ASIC bereitgestelltes Lese-Aktivierungs-Signal reaktionsfähig ist.
  14. Das System nach Anspruch 13, ferner umfassend Verzögerungseinstelllogik, wobei die Zustandsmaschine ein Einstell-Ausgabesignal erzeugt und die Verzögerungseinstelllogik dazu ausgelegt ist, einen in dem ersten Verzögerungsregister gespeicherten, ersten Wert und einen in dem zweiten Verzögerungsregister gespeicherten, zweiten Wert zu inkrementieren, wenn das Einstell-Ausgabesignal einen ersten Zustand hat, und den in dem ersten Verzögerungsregister gespeicherten, ersten Wert und den in dem zweiten Verzögerungsregister gespeicherten, zweiten Wert zu dekrementieren, wenn das Einstell-Ausgabesignal einen zweiten Zustand hat.
  15. Das System nach Anspruch 14, ferner umfassend eine Addierer-Schaltung, die dazu ausgelegt ist, einen Fein-Offset-Wert zu dem in dem ersten Verzögerungsregister gespeicherten, ersten Wert oder zu dem in dem zweiten Verzögerungsregister gespeicherten, zweiten Wert zu addieren.
  16. Das System nach einem der Ansprüche 8 bis 15, wobei die Vergleichsschaltung ein Flip-Flop mit einem Takteingang, der das automatische Einstelltaktsignal empfängt, und einem Dateneingang, der das Daten-Strobe-Signal empfängt, umfasst.
  17. Das System nach einem der Ansprüche 8 bis 16, wobei: der Automatik-Einstellschaltkreis eine Zustandsmaschine umfasst, die auf ein Lese-Aktivierungssignal reaktionsfähig ist, das mittels des ASIC bereitgestellt ist, und wobei die Zustandsmaschine dazu ausgebildet ist, in Antwort auf ein Taktsignal Zustände zu wechseln.
  18. Das System nach Anspruch 17, wobei die Zustandsmaschine einen Zustandsübergang umfasst, der auf zwei aufeinander folgende Lesevorgänge, die innerhalb einer vorbestimmten Anzahl von Taktzyklen voneinander auftreten, reaktionsfähig ist.
  19. Das System nach Anspruch 17 oder 18, wobei die Zustandsmaschine dazu ausgelegt ist, in Antwort auf einen aktuellen Zustand, das Lese-Aktivierungssignal und ein höchstwertiges Bit von einem aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister ausgewählten Register, das erste Signal und das zweite Signal zu erzeugen.
  20. Das System nach Anspruch 19, wobei die einstellbare Verzögerungsschaltung alle Bits des einen aus dem ersten Verzögerungsregister und dem zweiten Verzögerungsregister ausgewählten Registers mit Ausnahme des höchstwertigen Bits empfängt.
  21. Das System nach einem der Ansprüche 8 bis 20, wobei die Automatik-Einstellschaltung dazu ausgelegt ist, das erste Signal als einen ersten Puls zu erzeugen und das zweite Signal als einen zweiten Puls zu erzeugen.
DE102014107661.3A 2013-05-31 2014-05-30 Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate Ceased DE102014107661A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/906,610 US9190129B2 (en) 2013-05-31 2013-05-31 Continuous tuning of preamble release timing in a double data-rate memory device interface
US13/906,610 2013-05-31

Publications (2)

Publication Number Publication Date
DE102014107661A1 true DE102014107661A1 (de) 2014-12-04
DE102014107661A8 DE102014107661A8 (de) 2014-12-11

Family

ID=51899594

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014107661.3A Ceased DE102014107661A1 (de) 2013-05-31 2014-05-30 Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate

Country Status (2)

Country Link
US (1) US9190129B2 (de)
DE (1) DE102014107661A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836221B1 (en) * 2014-11-10 2017-12-05 Ball Aerospace & Technologies Corp. Configurable high speed FPGA scan mechanism controller
WO2016081192A1 (en) 2014-11-20 2016-05-26 Rambus Inc. Memory systems and methods for improved power management
CN106096702B (zh) * 2016-05-18 2019-03-01 合肥杰发科技有限公司 补偿安全数码卡的延长线引起的延迟的方法及装置
US10503435B2 (en) * 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
KR20180075083A (ko) * 2016-12-26 2018-07-04 에스케이하이닉스 주식회사 동적 터미네이션 회로, 이를 포함하는 반도체 장치 및 시스템
KR102392055B1 (ko) * 2017-08-09 2022-04-28 삼성전자주식회사 리트레이닝 동작의 수행 여부를 효율적으로 결정하기 위한 메모리 장치 및 이를 포함하는 메모리 시스템
KR102447499B1 (ko) * 2017-10-19 2022-09-26 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10418090B1 (en) * 2018-06-21 2019-09-17 Micron Technology, Inc. Write signal launch circuitry for memory drive
KR102488584B1 (ko) 2018-07-13 2023-01-17 에스케이하이닉스 주식회사 다양한 주파수의 클럭 신호들을 수신하는 반도체 장치 및 이를 포함하는 시스템
KR20200008842A (ko) * 2018-07-17 2020-01-29 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US10643685B1 (en) * 2018-11-01 2020-05-05 Realtek Semiconductor Corporation Control circuit, sampling circuit for synchronous dynamic random-access memory, method of reading procedure and calibration thereof
US10803914B1 (en) * 2019-08-27 2020-10-13 Micron Technology, Inc. Selectively squelching differential strobe input signal in memory-device testing system
KR20220165482A (ko) * 2021-06-08 2022-12-15 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US11657846B1 (en) * 2022-03-31 2023-05-23 Stmicroelectronics S.R.L. Automatic skew calibration circuit for pattern-dependent dynamic wave shaping for HDD preamplifier write

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234422B2 (en) 2009-09-11 2012-07-31 Avago Technologies Enterprise IP (Singapore) Pte. Ltd Interfaces, circuits, and methods for communicating with a double data rate memory device

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692165A (en) * 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
US6442644B1 (en) * 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
JP3416083B2 (ja) * 1999-08-31 2003-06-16 株式会社日立製作所 半導体装置
KR100527397B1 (ko) * 2000-06-30 2005-11-15 주식회사 하이닉스반도체 반도체메모리 장치에서 작은 지터를 갖는 지연고정루프
US7002378B2 (en) * 2000-12-29 2006-02-21 Intel Corporation Valid data strobe detection technique
JP2002366428A (ja) * 2001-06-06 2002-12-20 Mitsubishi Electric Corp メモリコントローラ
US7126399B1 (en) * 2004-05-27 2006-10-24 Altera Corporation Memory interface phase-shift circuitry to support multiple frequency ranges
US7218158B2 (en) 2004-08-27 2007-05-15 Micron Technology, Inc. Self-timed fine tuning control
US7366862B2 (en) * 2004-11-12 2008-04-29 Lsi Logic Corporation Method and apparatus for self-adjusting input delay in DDR-based memory systems
US7292500B2 (en) * 2005-07-29 2007-11-06 Agere Systems Inc. Reducing read data strobe latency in a memory system
US8121237B2 (en) * 2006-03-16 2012-02-21 Rambus Inc. Signaling system with adaptive timing calibration
US7433262B2 (en) 2006-08-22 2008-10-07 Atmel Corporation Circuits to delay a signal from DDR-SDRAM memory device including an automatic phase error correction
US7405984B2 (en) * 2006-09-19 2008-07-29 Lsi Corporation System and method for providing programmable delay read data strobe gating with voltage and temperature compensation
JP2008103013A (ja) * 2006-10-18 2008-05-01 Nec Electronics Corp メモリリード制御回路およびその制御方法
US7671648B2 (en) * 2006-10-27 2010-03-02 Micron Technology, Inc. System and method for an accuracy-enhanced DLL during a measure initialization mode
US7802153B1 (en) * 2006-12-07 2010-09-21 3Par, Inc. Trainable link
US8504788B2 (en) * 2006-12-20 2013-08-06 Rambus Inc. Memory controller, system and method for read signal timing calibration
US7911857B1 (en) * 2009-06-10 2011-03-22 Juniper Networks, Inc. Preamble detection and postamble closure for a memory interface controller
US8279697B2 (en) * 2009-09-11 2012-10-02 Avago Technologies Enterprise IP (Singapore) Pte. Ltd. Circuits and methods for reducing noise in the power supply of circuits coupled to a bidirectional bus
US8862925B2 (en) * 2011-01-28 2014-10-14 Raytheon Company Pseudo synchronous serial interface synchronization method
US8422319B2 (en) * 2011-05-30 2013-04-16 Lsi Corporation System and method for gate training in a memory system
US8638622B2 (en) 2011-07-06 2014-01-28 Arm Limited Apparatus and method for receiving a differential data strobe signal
US8773926B2 (en) * 2012-02-10 2014-07-08 Lsi Corporation Method for robust preamble location in a DQS signal
US8760946B2 (en) * 2012-05-22 2014-06-24 Advanced Micro Devices Method and apparatus for memory access delay training

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234422B2 (en) 2009-09-11 2012-07-31 Avago Technologies Enterprise IP (Singapore) Pte. Ltd Interfaces, circuits, and methods for communicating with a double data rate memory device

Also Published As

Publication number Publication date
DE102014107661A8 (de) 2014-12-11
US20140355359A1 (en) 2014-12-04
US9190129B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
DE102014107661A1 (de) Kontinuierliches Einstellen einer Präambel-Freigabe-Zeitsteuerung in einer Schnittstelle einer Speichereinrichtung mit doppelter Datenrate
DE102006054998B4 (de) Latenzsteuerschaltung, Halbleiterspeicherbauelement und Verfahren zum Steuern der Latenz
DE102005050595B4 (de) Speichersystem, Speichervorrichtung und Verfahren dafür
DE102004021694B4 (de) Verfahren und Schaltungsanordnung zum Steuern eines Schreibzugriffs auf einen Halbleiterspeicher
DE4432217C2 (de) Halbleiterspeichereinrichtung
DE10084993B3 (de) Ausgabeschaltung für einen mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM), ein mit doppelter Datenrate arbeitender dynamischer Speicher mit wahlfreiem Zugriff (DDR DRAM), ein Verfahren zum getakteten Auslesen von Daten aus mit doppelter Datenrate arbeitenden dynamischen Speicher mit wahlfreiem Zugriff (DDR DRAM)
DE102008040538B4 (de) Schaltung und Verfahren zum Steuern einer Abschlussimpedanz
DE60034788T2 (de) Verfahren und schaltung zur zeitlichen anpassung der steuersignale in einem speicherbaustein
DE19645437C2 (de) Synchronhalbleiterspeichereinrichtung mit einer internen Schaltungseinrichtung, die nur dann betriebsberechtigt ist, wenn in normaler Reihenfolge Befehle angelegt sind
DE19839570B4 (de) Synchrones Halbleiterspeicherbauteil mit programmierbarer Latenzzeit
DE102007038615B4 (de) Speicher mit Speicherbänken und Modusregistern, sowie Verfahren zum Betreiben eines solchen Speichers
DE102008008194A1 (de) Speicherbauelement und Verfahren zum Betreiben eines Speicherbauelements
DE10236696B4 (de) Taktsynchrone Halbleiterspeichervorrichtung
DE102006020857A1 (de) Integrierter Halbleiterspeicher zur Synchronisierung eines Signals mit einem Taktsignal
DE102006028683A1 (de) Parallele Datenpfadarchitektur
DE102004025900A1 (de) Leselatenz-Steuerschaltung
DE69829039T2 (de) Signalverzögerungsvorrichtung zur Verwendung in Halbleiterspeichervorrichtung für verbesserte Operation in Burst-Betriebsart
DE102009020758A1 (de) Halbleiterspeicherbauelement und zugehöriges Zugriffsverfahren
DE10126589A1 (de) Halbleiterspeichergerät zur Bereitstellung einer Adressenzugriffszeit und einer Datenzugriffszeit mit hoher Geschwindigkeit
DE102006048972A1 (de) Gezieltes automatisches Auffrischen für einen dynamischen Direktzugriffsspeicher
DE69816464T2 (de) Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen
DE102007010310A1 (de) Eingabeschaltung eines Halbleiterspeicherelements, Halbleiterspeicherelement und Verfahren zum Steuern der Eingabeschaltung
DE10326774A1 (de) Auf-Chip Erfassung der Systemoperationsfrequenz in einem DRAM, um DRAM-Operationen einzustellen
DE19813743A1 (de) Taktschiebeschaltungsvorrichtung und Synchron-Halbleiterspeichervorrichtung, die dieselbe verwendet
DE10102626B4 (de) Halbleiterspeicherbauelement, Puffer und zugehörige Signalübertragungsschaltung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final