DE102007060782A1 - Kompensierung für Data Strobe-Zeitgebung - Google Patents

Kompensierung für Data Strobe-Zeitgebung Download PDF

Info

Publication number
DE102007060782A1
DE102007060782A1 DE102007060782A DE102007060782A DE102007060782A1 DE 102007060782 A1 DE102007060782 A1 DE 102007060782A1 DE 102007060782 A DE102007060782 A DE 102007060782A DE 102007060782 A DE102007060782 A DE 102007060782A DE 102007060782 A1 DE102007060782 A1 DE 102007060782A1
Authority
DE
Germany
Prior art keywords
data
strobe
interconnect
data strobe
received data
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
DE102007060782A
Other languages
English (en)
Inventor
Chee Hak Georgetown Teh
Suryaprasad Folsom Kareenahalli
Zohar Folsom Bogin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102007060782A1 publication Critical patent/DE102007060782A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Information Transfer Systems (AREA)

Abstract

Es werden ein Verfahren, eine Vorrichtung und ein System offenbart. In einer Ausführungsform umfasst das Verfahren Empfangen von Daten von einem Speicher auf einer ersten Zwischenverbindung von mindestens einer Zwischenverbindung, Empfangen eines queugen von mindestens einem nominalen, einem frühen und einem verzögerten kompensierten Datenstrobe aus dem empfangenen Datenstrobe, Zwischenspeichern der empfangenen Daten mit dem nominalen, frühen oder verzögerten kompensierten Datenstrobe, Ausgeben der zwischengespeicherten Daten auf eine oder mehrere der mindestens einen Zwischenverbindung.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft Speicher. Spezieller gesagt, betrifft die Erfindung die Zeitsteuerung von Daten und den entsprechenden Datenstrobe aus dem Speicher.
  • STAND DER TECHNIK
  • Prozessoren in Computersystemen steigen ständig in der Ausführungsgeschwindigkeit. Diese Geschwindigkeitserhöhung hat eine Reihe von Folgen, von denen eine die ähnliche erforderliche Erhöhung der Geschwindigkeit des Systemspeichers ist, den der Prozessor nutzt. Um Schritt mit den Prozessoranforderungen zu halten, haben Speichertechnologien verschiedene Arten von Geschwindigkeitserhöhungen implementiert. Eine dieser Technologien ist der Doppeldatenraten-(DDR)-Speicher, der sowohl die ansteigende wie auch die abfallende Kante des Speichertakts zur Ausführung von Speicheroperationen nutzt.
  • Eine zunehmend häufig verwendete Implementierung der letzten DDR-Speicher (e. g. DDR2 oder DDR3) besteht darin, einen quellsynchronen Datenstrobe mit den Daten zu verwenden. Das Datenstrobesignal ist das Signal, das die Speichertaktinformationen transportiert (d. h. die ansteigende und abfallende Kante des Datenstrobes entsprechen der ansteigenden und abfallenden Kante des Speichertaktes). Daher stammt der Datenstrobe, der die gültige Zwischenspeicherung der Daten der Prozessor-Speicher-Zwischenverbindung steuert, aus dem Speicher selbst zusammen mit den entsprechenden Daten. Wenn die Frequenzen von DDR2- und DDR3-Speichern sich erhöhen, verringert sich die Länge der Zeit, während der ein Datenelement gültig ist, in der Zwischenverbindung. Diese begrenzte Zeit für gültige Daten erfordert einen viel genaueren Entwurf der Zwischenverbindungen. Es gibt nur eine sehr kleine Toleranz für eine Nichtübereinstimmung der Daten- und Datenstrobezeitsteuerung.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird durch Beispiele erläutert und wird nicht durch die Figuren der begleitenden Zeichnungen eingeschränkt, wobei gleiche Bezugszahlen sich auf ähnliche Elemente beziehen; dabei gilt:
  • 1 ist ein Blockdiagramm eines Computersystems, das mit Ausführungsformen der vorliegenden Erfindung verwendet werden kann.
  • 2 illustriert einen Überblick über eine Ausführungsform der Komponenten innerhalb der Datenstrobe-Toleranzlogikeinheit.
  • 3 illustriert eine Ausführungsform der ausführlichen Schaltungen innerhalb des Datenfenstervergößerungs- und Datenstrobeteilers.
  • 4 illustriert eine Ausführungsform der nominalen Zeitsteuerung der 1:2-Teiler-Strobes 0–3 in Bezug zur originalen Datenstrobeeingabe in den Datenfenstervergrößerungs- und Datenstrobeteiler.
  • 5 illustriert eine Ausführungsform der ausführlichen Schaltungen innerhalb des Datenstrobe-Randkompensationstreibers und des Datenstrobe-Randkompensationsempfängers.
  • 6 illustriert ein Zeitsteuerungsdiagramm einer Ausführungsform der kompensierten 1:2-Teiler-Strobes, der Daten und der Latchfreigaben in einem nominalen Strobezeitsteuerungsmodus.
  • 7 illustriert ein Zeitsteuerungsdiagramm einer Ausführungsform der kompensierten 1:2-Teiler-Strobes, der Daten und der Latchfreigaben in einem verzögerten Strobezeitsteuerungsmodus.
  • 8 illustriert ein Zeitsteuerungsdiagramm einer Ausführungsform der kompensierten 1:2-Teiler-Strobes, der Daten und der Latchfreigaben in einem frühen Strobezeitsteuerungsmodus.
  • 9 ist ein Flußdiagramm einer Ausführungsform eines Prozesses zum Kompensieren der Zeitfehlsteuerung zwischen Daten und einem quellsynchronen Datenstrobe.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Ausführungsformen eines Verfahrens, Vorrichtung und Systems zum Kompensieren einer Zeitfehlsteuerung zwischen Daten und einem quellsynchronen Datenstrobe werden beschrieben. In der folgenden Beschreibung werden zahlreiche spezielle Details angeführt. Es versteht sich jedoch, daß Ausführungsformen ohne diese speziellen Details ausgeführt werden können. In anderen Fällen sind bekannte Elemente, Spezifikationen und Protokolle nicht im Detail beschrieben worden, um das Verständnis für die vorliegende Erfindung nicht zu erschweren.
  • 1 ist ein Blockdiagramm eines Computersystems, das mit Ausführungsformen der vorliegenden Erfindung verwendet werden kann. Das Computersystem umfaßt eine Prozessor-Speicher-Zwischenverbindung 100 für die Kommunikation zwischen verschiedenen Agenten, die an die Zwischenverbindung 100 angeschlossen sind, wie zum Beispiel Prozessoren, Brücken, Speichervorrichtungen usw. Die Prozessor-Speicher-Zwischenverbindung 100 umfaßt spezielle Zwischenverbindungsleitungen, die Zuweisungsentscheidungs-, Adreß-, Daten- und Steuerinformationen (nicht dargestellt) senden. In einer Ausführungsform ist der Zentralprozessor 102 mit der Prozessor-Speicher-Zwischenverbindung 100 verbunden. In einer weiteren Ausführungsform gibt es mehrere Zentralprozessoren, die mit der Prozessor-Speicher-Zwischenverbindung verbunden sind (mehrere Prozessoren werden in dieser Figur nicht gezeigt).
  • Die Prozessor-Speicher-Zwischenverbindung 100 stellt den Zugang des Zentralprozessors 102 und anderer Vorrichtungen zum Systemspeicher 104 bereit. Ein Systemspeichercontroller 106 steuert den Zugang zum Systemspeicher 104. In einer Ausführungsform befindet sich der Systemspeichercontroller innerhalb der Northbridge (Speichercontrollerhub) 108 eines Chipsatzes 110, der mit der Prozessor-Speicher-Zwischenverbindung 100 verbunden ist. In einer weiteren Ausführungsform befindet sich ein Systemspeichercontroller auf demselben Chip wie der Zentralprozessor 102 (nicht dargestellt). Informationen, Anweisungen und andere Daten können im Systemspeicher 104 zur Verwendung durch den Zentralprozessor 102 sowie viele andere potentielle Vorrichtungen gespeichert werden. E/A-Vorrichtungen, wie zum Beispiel die E/A-Vorrichtungen 114 und 118, sind mit der Southbridge 112 des Chipsatzes 106 durch eine oder mehrere Zwischenverbindungen 116 und 120 verbunden.
  • In einer Ausführungsform ist der Systemspeicher 104 quellsynchron. In dieser Ausführungsform gibt der Systemspeicher zusätzlich zu den Daten einen Datenstrobe an den Speichercontroller 106 über die Prozessor-Speicher-Zwischenverbindung 100 aus. Der quellsynchrone Datenstrobe und die Daten erfordern eine enge Übereinstimmung der Zeitsteuerung, um gültige Daten beizubehalten. In verschiedenen Ausführungsformen kann der Systemspeicher 104 Doppeldatenraten-2-(DDR2)-Speicher oder DDR3-Speicher umfassen. Bei DDR2- und DDR3-Speicher erfordert die Übereinstimmung in der Zeitsteuerung zwischen einem quellsynchronen Datenstrobe und den entsprechenden Daten eine sogar noch höhere Übereinstimmungsgenauigkeit. DDR2-, DDR3- und andere Hochgeschwindigkeits-DDR-Speicher senden Daten über die Prozessor-Speicher-Zwischenverbindung nach jedem Halbtakt (d. h. bei jeder Anstiegs- und Abfallkante des Datenstrobes). Daher beträgt aktuell die Breite des Fensters, das zur Anpassung der Daten in der Zwischenverbindung an die entsprechende ansteigende oder abfallende Kante des Datenstrobes zulässig ist, 0,5 Taktzyklen.
  • In einer Ausführungsform hat das Computersystem in 1 eine Datenstrobe-Toleranzlogikeinheit 122, die sich im Speichercontroller 106 befindet. Die Datenstrobe-Toleranzlogikeinheit 122 hat Schaltungen, mit denen ein fortlaufender Hochgeschwindigkeitsdatendurchsatz über die Prozessor-Speicher-Zwischenverbindung 100 ermöglicht wird, während das Daten- und Datenstrobeanpassungsfenster auf 2 Taktzyklen vergrößert wird.
  • 2 illustriert einen Überblick über eine Ausführungsform der Komponenten innerhalb der Datenstrobe-Toleranzlogikeinheit 200. In dieser Ausführungsform werden der Datenstrobe und die Daten in die Datenstrobe-Toleranzlogikeinheit 200 eingegeben. In einer Ausführungsform laufen die Daten über einen 64-Bit-Datenbus ein, der aus 8 Byte-Verbindungsleitungen ("Lanes") besteht. Außerdem ist in einer Ausführungsform der Datenstrobe ein 8-Bit-Wert, wo jedes Strobebit einer der acht Byte-Lanes in der Daten-Zwischenverbindung entspricht.
  • Der Datenstrobe und die Daten werden in einen Datenfenstervergößerungs- und Datenstrobeteiler 202 eingegeben. Der Datenfenstervergößerungs- und Datenstrobeteiler 202 befindet sich in der Datenstrobe-Toleranz- und -Logikeinheit 200. In einer Ausführungsform nimmt der Datenfenstervergrößerungs- und Datenstrobeteiler 202 den 8-Bit-Datenstrobe und teilt ihn in vier getrennte gestaffelte Versionen auf. In dieser Ausführungsform wird jeder der gestaffelten Datenstrobes derart gestreckt, daß jeder volle Taktzyklus eines gestreckten Datenstrobes ein 1:2-Teilerzyklus des ursprünglichen Datenstrobes ist. Ferner werden die vier Strobes vierfach gestaffelt, so daß die Anstiegskante des ersten Strobes eine Hälfte des eingegeben originalen Datenstrobetaktzyklus vor der ansteigenden Kante des zweiten Strobes ist, die Anstiegskante des zweiten Strobes eine Hälfte des ursprünglichen Datenstrobetaktzyklus vor der ansteigenden Kante des dritten Strobes ist usw. Die 1:2-Teiler-Datenstrobes haben also Taktzyklen, die doppelt so lang wie der ursprüngliche Datenstrobetaktzyklus sind, und sind vierfach gestaffelt, wobei jeder eine Hälfte eines originalen Datenstrobetaktzyklus, getrennt von benachbarten Strobe, ist. Dies ermöglicht, daß die Toleranz einer Nichtübereinstimmung von Daten und Datenstrobe auf das Vierfache des ursprünglichen Toleranzniveaus erhöht wird (d. h. von 0,5 Speichertaktzyklustoleranz auf 2 Speichertaktzyklustoleranz).
  • 3 illustriert eine Ausführungsform der ausführlichen Schaltungen innerhalb des Datenfenstervergrößerungs- und Datenstrobeteilers. Der Datenfenstervergrößerungs- und Datenstrobeteiler hat acht Byte-Lane-Anpassungsfenstervergrößerungsblöcke. Jeder Vergrößerungsblock (z. B. ist Block 300 für die Byte-Lane 0) hat einen 1:2-Teiler-Strobeerzeugungsblock 302. Der 1:2-Teiler-Strobeerzeugungsblock 302 streckt den Datenstrobe für seine entsprechende Byte-Lane durch Verwendung des eingegeben Datenstrobes zum Takten von zwei getrennten Komplementflops, einem Positivkanten- und einem Negativkanten-Komplementflop. In einer Ausführungsform ist der eingegebene Datenstrobe von Strobe-Dreifachzuständen befreit worden. Der 1:2-Teiler-Strobeerzeugungsblock 302 gibt die vier 1:2-Teiler-Datenstrobes aus. Die 1:2-Teiler-Datenstrobes werden zusätzlich in einen Datenstreckblock 304 eingegeben. Der Datenstreckblock 304 nimmt die eingegeben Daten, verwendet 1:2-Teiler-Strobes 0–3 als Maske zum Strecken der 0,5 speichertaktbreiten Daten zu 2 speichertaktweiten vierfach gestaffelten Daten. Das Strecken wird über das Abtasten der einlaufenden 0,5 speichertaktbreiten Daten an jeder ansteigenden oder fallenden Kante des Datenstrobes erreicht, wobei der 1:2-Teiler-Datenstrobe als Datenmaske verwendet wird. 4 illustriert eine Ausführungsform der nominalen Zeitsteuerung der 1:2-Teiler-Strobes 0–3 in Bezug zur originalen Datenstrobeeingabe in den Datenfenstervergrößerungs- und Datenstrobeteiler. Daher werden die gestreckten Daten auf vier getrennte interne Daten-Zwischenverbindungen 0–3 aufgespaltet.
  • Kehrt man zu 2 zurück, so spaltet in dieser Ausführungsform der Datenfenstervergrößerungs- und Datenstrobeteiler 202 die Daten auf vier getrennte 64-Bit-breite Ausgabe-Zwischenverbindungen innerhalb der Datenstrobe-Toleranzlogikeinheit 200 auf: Interne Daten-Zwischenverbindung 0, Interne Daten-Zwischenverbindung 1, Interne Daten-Zwischenverbindung 2 und Interne Daten-Zwischenverbindung 3. Wenn ein Speicherauslesen auftritt, führt dies dazu, daß eine Cache-Leitung vom Systemspeicher erhalten wird. In einer Ausführungsform ist die Cache-Leitung 64 Byte breit. Eine Speicherauslesung würde also zu acht aufeinanderfolgenden Viererworten führen, die von der Prozessor-Speicher-Zwischenverbindung erhalten werden. Die vier Daten-Zwischenverbindungen können als "intern" betrachtet werden, da sie in einer Ausführungsform intern für die Datenstrobe-Toleranzlogikeinheit 200 sind. Wenn in anderen Ausführungsformen der Daten-FIFO extern zur Datenstrobe-Toleranzlogikeinheit implementiert wird, dann können die vier Zwischenverbindungen nicht intern sein oder sie können nur teilweise intern für die Datenstrobe-Toleranzlogikeinheit sein.
  • In der Ausführungsform, die in 2 illustriert wird, sendet der Datenfenstervergrößerungs- und Datenstrobeteiler 202 jedes vierte Viererwort, das aus einer Cache-Leitungsauslesung empfangen wurde, auf jede der vier Internen Daten-Zwischenverbindungen. Zum Beispiel wird das Viererwort (QW) 0 auf die Interne Daten-Zwischenverbindung 0 gesendet, QW1 wird auf die Interne Daten-Zwischenverbindung 1 gesendet, QW2 wird auf die Interne Daten-Zwischenverbindung 2 gesendet, und QW3 wird auf die Interne Daten-Zwischenverbindung 3 gesendet. Dann wird QW4 auf die Interne Daten-Zwischenverbindung 0 gesendet, QW5 wird auf die Interne Daten-Zwischenverbindung 1 gesendet, QW6 wird auf die Interne Daten-Zwischenverbindung 2 gesendet, und QW7 wird auf die Interne Daten-Zwischenverbindung 3 gesendet. Daher wird jedes QW auf seiner entsprechenden Internen Daten-Zwischenverbindung für drei weitere empfangene QWs gültig gehalten. Dies ermöglicht jedem QW, auf dem Bus mindestens vier Mal so lange für gültig gehalten zu werden, wie die nicht aufgespaltete oder gestaffelte originale Datenstrobe-Zeitsteuerung. Da jede Auslesung eine Cache-Leitung repräsentiert, gibt es 8 QWs, die für jede Auslesung eingegeben werden, wenn die Cache-Leitung 64 Byte breit ist. In dieser Ausführungsform haben also die Internen Daten-Zwischenverbindungen 0–3 jeweils zwei aufeinanderfolgende QWs für jede Speicherauslesung. In einer Ausführungsform ist die erste der zwei QWs auf jeder Internen Daten-Zwischenverbindung (z. B. QW0 auf der Internen Daten-Zwischenverbindung 0) über zwei vollständige Datenstrobezyklen gültig. Andererseits kann die zweite der zwei QWs auf jeder Internen Daten-Zwischenverbindung (e. g. QW4 auf der Internen Daten-Zwischenverbindung 0) auf der relevanten Internen Daten-Zwischenverbindung gültig sein, bis eine anschließende Speicherauslesung in Gang gesetzt wird. An diesem Punkt wird das zweite QW von Daten, die die erste Speicherauslesung betreffen, auf der gegebenen Internen Daten-Zwischenverbindung vom ersten QW von Daten, die die zweite Speicherauslesung betreffen, auf dieser Internen Daten-Zwischenverbindung ersetzt.
  • Die vier 1:2-Teiler-Strobeausgaben aus dem Datenfenstervergrößerungs- und Datenstrobeteiler 202 werden dann in den Datenstrobe-Randkompensationstreiber 204 eingegeben. In einer Ausführungsform empfängt der Datenstrobe-Randkompensationstreiber 204 die vier 1:2-Teiler-Strobeausgaben aus dem Datenfenstervergrößerungs- und Datenstrobeteiler 202 als Eingaben. Ferner empfängt in dieser Ausführungsform der Datenstrobe-Randkompensationstreiber 204 auch einen 2-Bit-Randkompensationsauswahlwert und einen 1-Bit-Randkompensationstestmodusfreigabewert als zusätzliche Eingaben. Wenn das Randkompensationstestmodusfreigabebit gesetzt ist, wird ein Takt anstelle der Strobes eingesetzt, um zu ermöglichen, daß die Zwischenspeicher (Latches) und Flops im Testmodus genau und zuverlässig gescannt werden. Der Testmodustakt kann in einer beliebigen Zahl von Arten in verschiedenen Ausführungsformen (nicht dargestellt) implementiert werden. Außerdem bestimmt der Randkompensationsauswahlwert, ob die 1:2-Teiler-Strobes bei der nominalen Zeitsteuerung (d. h. der einlaufende Datenstrobe und die einlaufenden Daten sind bereits angepaßt), verzögerten Zeitsteuerung (d. h. die einlaufenden Daten werden gegenüber ihrem entsprechenden Datenstrobe verzögert, wenn sie den Daten-FIFO erreichen) oder frühen Zeitsteuerung (d. h. die einlaufenden Daten sind früh gegenüber ihrem entsprechenden Datenstrobe, wenn sie den Daten-FIFO erreichen) arbeiten. Tabelle 1 illustriert die verfügbaren Randkompensationsauswahlwerte und die entsprechende Datenstrobezeitsteuerung. Tabelle 1: Randkompensationsauswahlzeitsteuerwerte
    Randkompensationsauswahlwert Modifizierte Datenstrobe-Zeitsteuerung
    00b Nominal
    01b Verzögert
    10b Früh
    11b Testmodus
  • Wenn also der Datenstrobe und die Daten aus dem Speicher an der Datenstrobe-Toleranzlogikeinheit ankommen und angepaßt sind, dann ist der Randkompensationsauswahlwert 00b. Wenn die einlaufenden Daten gegenüber ihrem entsprechenden Datenstrobe verzögert sind, wenn sie am Daten-FIFO ankommen, dann ist der Randkompensationsauswahlwert 01b, der die verzögerten 1:2-Teiler-Strobeeinstellungen zum Kompensieren der verzögerten Daten nutzt. Und schließlich, wenn die einlaufenden Daten früh sind und vor ihrem entsprechenden Datenstrobe ankommen, dann ist der Randkompensationsauswahlwert 10b, der die frühen 1:2-Teiler-Strobeeinstellungen zum Kompensieren der frühen Daten nutzt.
  • Die vierfach gestaffelten 1:2-Teiler-Strobes, die in den Datenstrobe-Randkompensationstreiber 204 eintreten, werden dann multiplexiert und aus dem Datenstrobe-Randkompensationstreiber 204 als kompensierte 1:2-Teiler-Strobes 0–3 ausgesendet. Der Datenstrobe-Randkompensationsempfänger 206 empfängt die kompensierten 1:2-Teiler-Strobes 0–3 sowie den Randkompensationsauswahlwert. Die spezielle Version der kompensierten 1:2-Teiler-Strobes 0–3 wird durch Verwendung der Eingabe des kompensierten 1:2-Teiler-Strobewertes in den Datenstrobe-Randkompensationsempfänger 206 ausgewählt, entweder als nominale, frühe oder verzögerte Version der vierfach gestaffelten 1:2-Teiler-Strobes.
  • Die Internen Daten-Zwischenverbindung verbinden den Datenfenstervergrößerungs- und Datenstrobeteiler 202 mit einem Daten-FIFO-(First-in-first-out)-Puffer 208. Der Puffer 208 wird zur zeitweiligen Speicherung der Auslesedaten verwendet, die vom Datenfenstervergrößerungs- und Datenstrobeteiler 202 auf die Internen Daten-Zwischenverbindungen 0–3 gesendet wurden. Der Datenstrobe-Randkompensationsempfänger 206 nutzt die ausgewählte Version der kompensierten 1:2-Teiler-Strobes (nominal, früh oder verzögert) zum Erzeugen von Latchfreigaben, die die Daten aus den Internen Daten-Zwischenverbindungen 0–3 zwischenspeichern. Der Puffer 208 nutzt die erzeugten Latchfreigaben zum Zwischenspeichern der Daten aus den Internen Daten-Zwischenverbindungen 0–3 an einem speziellen Ort im Puffer. In einer Ausführungsform sind die FIFO-Puffer für jede der vier QWs acht Speicherorte tief. Die Daten aus der Prozessor-Speicher-Zwischenverbindung können also wegen eines größeren Anpassungsfensters und eines kompensierten Datenstrobes, der gegenüber seinen entsprechenden Daten früh oder spät sein kann, zuverlässiger abgetastet werden. In unterschiedlichen Ausführungsformen können die Daten im Puffer 208 von dem Speicherauslesungsanforderungsagenten zur Verwendung genutzt werden, sobald die Daten zuverlässig zwischengespeichert wurden.
  • 5 illustriert eine Ausführungsform der ausführlichen Schaltungen innerhalb des Datenstrobe-Randkompensationstreibers und des Datenstrobe-Randkompensationsempfängers. In einer Ausführungsform empfängt der Datenstrobe-Randkompensationstreiber 500 die vier 1:2-Teiler-Strobeausgaben aus dem Datenfenstervergrößerungs- und Datenstrobeteiler als Eingaben. Ferner empfängt in dieser Ausführungsform der Datenstrobe-Randkompensationstreiber 500 auch einen 2-Bit-Randkompensationsauswahlwert und einen 1-Bit-Randkompensationstestmodusfreigabewert als zusätzliche Eingaben.
  • Wie oben in Bezug auf 2 angeführt, bestimmt in einer Ausführungsform der 1-Bit-Randkompensationstestmodusfreigabewert, ob die Randkompensationslogik aktiviert ist und ihr erlaubt wird, Daten mit den 1:2-Teiler-Strobes 0–3 zwischenzuspeichern. Der Randkompensationsauswahlwert bestimmt, ob jeder der 1:2-Teiler-Strobes bei der nominalen Zeitsteuerung (d. h. der einlaufende Datenstrobe und die einlaufenden Daten sind bereits angepaßt), verzögerten Zeitsteuerung (d. h. der einlaufende Datenstrobe ist früh gegenüber seinen entsprechenden einlaufenden Daten, daher führt eine Verzögerung des Strobes zur Anpassung der Daten und des Strobes) oder frühen Zeitsteuerung (d. h. der einlaufende Datenstrobe ist gegenüber seinen entsprechenden Daten verzögert, also führt eine Modifizierung des Strobes, so daß er früher kommt, zu einer Anpassung der Daten und des Strobes) arbeitet. Tabelle 1 illustriert die verfügbaren Randkompensationsauswahlwerte und die entsprechende Datenstrobezeitsteuerung.
  • Der Datenstrobe-Randkompensationstreiber 500 erzeugt und sendet kompensierte modifizierte Datenstrobes 0–3 aus, die jedem QW der Daten entsprechen, welche sich auf den vier Internen Daten-Zwischenverbindungen befinden. Jeder kompensierte modifizierte Datenstrobe ist eine multiplexierte Version des modifizierten 1:2-Teiler-Strobes, der vom Datenfenstervergrößerungs- und Datenstrobeteiler erzeugt wurde. Der Randkompensationsauswahlwert wird bei jedem der vier Multiplexer innerhalb des Datenstrobe-Randkompensationstreibers 500 verwendet, um entweder einen nominalen, frühen oder verzögerten 1:2-Teiler-Strobe für die entsprechenden QW-Daten in dieser Byte-Lane auszuwählen.
  • Die vier kompensierten 1:2-Teiler-Strobes, die erzeugt wurden, werden an den Datenstrobe-Randkompensationsempfänger 502 gesendet. Der Datenstrobe-Randkompensationsempfänger 502 hat einen Empfangsblock zum Empfangen der kompensierten 1:2-Teiler-Strobes, die jedem der vier Daten-QWs entsprechen, welche sich auf den vier Internen Daten-Zwischenverbindungen befinden. Der Empfangsblock für den QW0-Strobe wird im Detail in 5 dargestellt (Punkt 504). Der Datenstrobe-Randkompensationsempfänger 502 nutzt die kompensierten 1:2-Teiler-Strobes als Eingaben, um Latchfreigaben zum Zwischenspeichern der entsprechenden QW-Daten in jedem QW-FIFO-Puffer zu erzeugen. In einer Ausführungsform sind die Latchfreigaben 8-Bit-Werte, die den acht Orten in jedem QW-FIFO-Puffer entsprechen. Um zum Beispiel Daten an Ort 1 eines QW-FIFO-Puffers zwischenzuspeichern, wäre der Latchfreigabewert 00000001b. Um zum Beispiel Daten an Ort 8 eines QW-FIFO-Puffers zwischenzuspeichern, wäre der Latchfreigabewert 10000000b. Jedes Bit des Wertes entspricht also einem der acht QW-FIFO-Pufferspeicherorte, und das einzelne Bit, das eine "1" ist, bezieht sich darauf, an welchem Speicherort die Daten zwischenzuspeichern sind. Jeder Empfangsblock hat einen Flop, der den kompensierten 1:2-Teiler-Strobe als Takteingabe empfängt. Die Ausgabe des Flops ist der Latchfreigabewert. Das Flop ändert also den Latchfreigabewert einmal pro kompensiertem 1:2-Teiler-Strobezyklus.
  • Außerdem hat jeder Block des Datenstrobe-Randkompensationsempfängers 502 (d. h. die Blöcke 0–3 für die QWs 0–3) einen Decoder, einen Inkrementierer und einen Codierer. Die Flopausgabe wird nicht nur an den QW-FIFO-Puffer 506 als Latchfreigabewert gesendet, sondern wird auch an den Decoder zum Decodieren des Wertes in einen Standardbinärwert gesendet. Der decodierte Wert wird dann auf den nächsten darauffolgenden Latchfreigabewert erhöht (z. B. würde sich 00000010b auf 00000100b erhöhen), und der neue Wert wird dann zurück in das 8-Bit-Latchfreigabewertformat zur Verwendung durch das Flop als nächste Ausgabe codiert, was beim nächsten kompensierten 1:2-Teiler-Strobezyklus passiert.
  • Jeder Empfangsblock im Datenstrobe-Randkompensationsempfänger 502 empfängt auch als Eingabe einen Latchfreigaberesetwert für jeden QW-Empfangsblock. Der Resetwert entspricht dem anfänglichen Latchfreigabewert, der für jeden QW-Block genutzt wird. Auf Grund der Zeitsteuerungsanforderungen, die mit den gestreckten Daten in Kraft treten, tritt unter bestimmten Umständen die erste ansteigende Kante des kompensierten 1:2-Teiler-Strobes vor dem Zeitpunkt auf, an dem gültige Daten am Ort auf dem entsprechenden IDI sind. Wenn normalerweise die Daten gültig sind, werden die Daten am Speicherort 1 des achtorttiefen FIFOs zwischengespeichert (00000001b). In diesem Fall kann aber der Resetwert bewirken, daß der erste ungültige QW von Daten am Speicherort 8 (10000000b) zwischengespeichert wird. Sobald Daten gültig werden, ist die Eingabe in das Flop durch eine Decodierer-Inkrementierer-Codierer-Folge gelaufen, wie oben beschrieben, und das erste gültige QW von Daten für diesen speziellen IDI speichert in den QW-FIFO-Pufferspeicherort 1 ein (d. h. das Erhöhen von Speicherort 8 führt den Latchfreigabewert zu Ort 1 zurück).
  • Auf Grund der Zeitsteuerungsbeschränkungen sind in der aktuellen Ausführungsform die Resetwerte der kompensierten 1:2-Teiler-Strobes immer für die Strobes bekannt, die den Daten entsprechen, welche sich in der Internen Daten-Zwischenverbindung 0 und der Internen Daten-Zwischenverbindung 3 befinden. Ungeachtet, ob nominale, frühe oder späte Zeitsteuerung verwendet wird, sind speziell die Daten auf der Internen Daten-Zwischenverbindung 0 immer während des anfänglichen Strobezyklus gültig. Die Internen Daten-Zwischenverbindung 0 nutzt daher immer den Latchfreigaberesetwert für den Speicherort 1 während des anfänglichen Strobezyklus. Im Gegensatz zur Internen Daten-Zwischenverbindung 0 sind die Daten auf der Internen Daten-Zwischenverbindung 3 immer während des anfänglichen Strobezyklus ungültig. Die Interne Daten-Zwischenverbindung 3 nutzt daher immer den Latchfreigaberesetwert für den Speicherort 8 während des anfänglichen Strobezyklus.
  • Die Gültigkeit der Daten während des anfänglichen Strobezyklus auf der Internen Daten-Zwischenverbindung 1 und der Internen Daten-Zwischenverbindung 2 hängt davon ab, ob die nominalen, frühen oder verzögerten kompensierten Strobeeinstellungen verwendet werden. Ein Multiplexer wird daher verwendet, um den richtigen anfänglichen Latchfreigabewert einzugeben (entweder 00000001b oder 10000000b). Der bestimmende Faktor dafür, welcher für die Latchfreigaben verwendet wird, die den Daten der Internen Daten-Zwischenverbindung 1 und der Internen Daten-Zwischenverbindung 2 entsprechen, ist die 1:2-Teiler-Strobeeingabe in den Datenstrobe-Randkompensationsempfänger.
  • Der Datenstrobe-Randkompensationsempfänger gibt also die Latchfreigabewerte aus den Blöcken 0–3 in die entsprechenden vier QW-FIFO-Puffer aus. Die Puffer nutzen dann die Latchfreigaben zum Zwischenspeichern der Daten, die sich auf jedem der vier Internen Daten-Zwischenverbindungen befinden, an den festgelegten Speicherorten (die durch die Latchfreigabewerte festgelegt werden) innerhalb jedes QW-FIFO-Puffers. Sobald die Daten sich an Ort und Stelle innerhalb des QW-FIFO-Puffers befinden, können die Daten an den anfänglichen Datenanforderer gesendet werden. Dies kann mit derselben Rate geschehen, mit der die Daten von der Prozessor-Speicher-Zwischenverbindung einlaufen.
  • 6 illustriert ein Zeitsteuerungsdiagramm einer Ausführungsform der kompensierten 1:2-Teiler-Strobes, der Daten und der Latchfreigaben in einem nominalen Strobezeitsteuerungsmodus. Im nominalen Strobezeitsteuerungsmodus sind die Daten und der Strobe bereits angepaßt, daher ist keine Strobekompensation notwendig. Außerdem sind im nominalen Strobezeitsteuerungsmodus die Anfangsdaten auf der Internen Daten-Zwischenverbindung 2 nicht gültig, daher beträgt der Latchfreigaberesetwert für QW2, der in den QW2-Empfangsblock eingespeist wird, 10000000b, die ersten gültigen Daten auf der Internen Daten-Zwischenverbindung 2 werden bei der zweiten ansteigenden Kante des 1:2-Teiler-Strobes für QW2 zwischengespeichert.
  • 7 illustriert ein Zeitsteuerungsdiagramm einer Ausführungsform der kompensierten 1:2-Teiler-Strobes, der Daten und der Latchfreigaben in einem verzögerten Strobezeitsteuerungsmodus. In diesem Zeitsteuerungsdiagramm sind die Daten gegenüber dem Strobe verzögert. Die kompensierten 1:2-Teiler-Strobes werden daher verzögert, um ihn wieder zu den Daten auszurichten. Im verzögerten Zeitsteuerungsmodus sind die Anfangsdaten auf der Internen Daten-Zwischenverbindung 1 nicht gültig, daher beträgt der Latchfreigaberesetwert für QW1, der in den QW1-Empfangsblock eingespeist wird, 10000000b, die ersten gültigen Daten auf der Internen Daten-Zwischenverbindung 1 werden bei der zweiten ansteigenden Kante des 1:2-Teiler-Strobes für QW1 zwischengespeichert.
  • 8 illustriert ein Zeitsteuerungsdiagramm einer Ausführungsform der kompensierten 1:2-Teiler-Strobes, der Daten und der Latchfreigaben in einem frühen Strobezeitsteuerungsmodus. In diesem Zeitsteuerungsdiagramm sind die Daten früh gegenüber dem Strobe. Die kompensierten 1:2-Teiler-Strobes werden daher früh eingegeben, um sie wieder zu den Daten auszurichten. Im frühen Zeitsteuerungsmodus sind die Anfangsdaten auf allen vier Internen Daten-Zwischenverbindungen gültig, daher werden alle vier QWs bei der ersten Anstiegskante ihres entsprechenden 1:2-Teiler-Strobes zwischengespeichert.
  • 9 ist ein Flußdiagramm einer Ausführungsform eines Prozesses zum Kompensieren der Zeitfehlsteuerung zwischen Daten und einem quellsynchronen Datenstrobe. Der Prozeß wird von der Verarbeitungslogik ausgeführt, die Hardware (z. B. Schaltungen, reservierte Logik, programmierbare Logik, Mikrocode usw.), Software (wie zum Beispiel die auf einem Universalcomputersystem oder einer reservierten Anlage ausgeführte) oder eine Kombination beider umfassen kann. Mit Bezug auf 9, beginnt der Prozeß damit, daß die Verarbeitungslogik Daten von einem Speicher auf einer ersten Zwischenverbindung empfängt. In einer Ausfüh rungsform ist die erste Zwischenverbindung eine Prozessor-Speicher-Zwischenverbindung des Computersystems, und die Daten werden auf die Zwischenverbindung vom Systemspeicher gesendet, der mit der Zwischenverbindung verbunden ist (Verarbeitungsblock 900).
  • Der Prozeß sich damit fort, daß der Verarbeitungslogik einen quellsynchronen Datenstrobe vom Speicher erhält (Verarbeitungsblock 902). Dann erzeugt die Verarbeitungslogik mindestens einen nominalen, einen frühen und einen verzögerten kompensierten Datenstrobe aus dem empfangenen Datenstrobe (Verarbeitungsblock 904). In einer Ausführungsform sind die nominalen, frühen und verzögerten Datenstrobes 1:2-Teiler-Strobes. Die 1:2-Teiler-Strobes werden durch Abtasten jeder zweiten ansteigenden oder abfallenden Kante des empfangenen Datenstrobes erzeugt.
  • Die Verarbeitungslogik speichert dann die empfangenen Daten mit dem nominalen, frühen oder verzögerten kompensierten Datenstrobe zwischen (Verarbeitungsblock 906). In einer Ausführungsform werden die Daten mit dem nominalen kompensierten Strobe zwischengespeichert, wenn die empfangenen Daten der empfangene Datenstrobe eine übereinstimmende Zeitsteuerung haben; die Daten werden mit dem verzögerten kompensierten Strobe zwischengespeichert, wenn die empfangenen Daten später empfangen werden als der entsprechende empfangene Strobe, und die Daten werden mit dem frühen kompensierten Strobe zwischengespeichert, wenn die empfangenen Daten vor dem entsprechenden empfangenen Strobe empfangen werden. Und schließlich werden die zwischengespeicherten Daten auf die erste Zwischenverbindung oder eine zweite Zwischenverbindung ausgegeben (Verarbeitungsblock 908), und der Prozeß wird beendet. In anderen Ausführungsformen können die Daten auf der Prozessor-Speicher-Zwischenverbindung bleiben, wenn die Speicherauslesung vom Prozessor angefordert wurde, oder die Daten können auf eine zweite Zwischenverbindung übertragen werden, wenn die Speicherauslesung von einer Bushauptsteuerungsvorrichtung auf einer E/A-Zwischenverbindung angefordert wurde. Es gibt viele verschiedene Hauptsteuerungsvorrichtungen, die eine Leseanforderung an den Speicher senden können.
  • Es werden daher Ausführungsformen eines Verfahrens, Vorrichtung und Systems zum Kompensieren einer Zeitfehlsteuerung zwischen Daten und einem quellsynchronen Datenstrobe beschrieben. Diese Ausführungsformen sind mit Bezug auf spezielle als Beispiel dienende Ausführungsformen derselben beschrieben worden. Es ist für Personen, die den Vorteil dieser Offenbarung haben, ersichtlich, daß verschiedene Modifizierungen und Änderungen an diesen Ausführungsformen vorgenommen werden können, ohne vom Geist und Geltungsbereich der Ausführungsformen, die hierin beschrieben werden, abzuweichen. Die Patentbeschreibung und die Zeichnungen müssen dementsprechend in einem erläuternden Sinn statt in einem einschränkenden Sinn betrachtet werden.

Claims (20)

  1. Verfahren, umfassend: Empfangen von Daten aus einem Speicher auf einer ersten Zwischenverbindung von mindestens einer Zwischenverbindung; Empfangen eines quellsynchronen Datenstrobes aus dem Speicher; Erzeugen von mindestens einem nominalen, einem frühen und einem verzögerten kompensierten Datenstrobe aus dem empfangenen Datenstrobe; Zwischenspeichern der empfangenen Daten mit dem nominalen, frühen oder verzögerten kompensierten Datenstrobe; Ausgeben der zwischengespeicherten Daten auf eine oder mehrere der mindestens einen Zwischenverbindung.
  2. Verfahren nach Anspruch 1, das ferner das Auswählen des nominalen, frühen oder verzögerten kompensierten Datenstrobes zum Zwischenspeichern der empfangenen Daten auf der Basis der Ausrichtung zwischen den empfangenen Daten und dem empfangenen Datenstrobe.
  3. Verfahren nach Anspruch 2, ferner umfassend: Aufspalten des kompensierten Datenstrobes in vier 1:2-Teiler-Strobes, wobei jeder aus der Abtastung des empfangenen Datenstrobes bei jeder zweiten ansteigenden oder abfallenden Kante erzeugt ist; und Aufspalten der empfangenen Daten auf vier separate interne Zwischenverbindungen, die in einen Puffer einlaufen, wobei jede der vier internen Zwischenverbindungen jede vierte Dateneinheit hält, die über die Speicher-Zwischenverbindung gesendet wurde.
  4. Verfahren nach Anspruch 3, wobei die vier 1:2-Teiler-Strobes vierfach gestaffelt sind, von denen jeder jede vierte Dateneinheit, die in den Puffer eintritt, zwischenspeichert.
  5. Verfahren nach Anspruch 4, wobei die vierfach gestaffelten 1:2-Teiler-Strobes jeweils um eine Hälfte eines empfangenen Datenstrobezyklus gegenüber dem vorherigen 1:2-Teiler-Strobe versetzt sind.
  6. Verfahren nach Anspruch 3, das ferner das Gültighalten jeder Dateneinheit über zwei volle Zyklen des empfangenen Datenstrobes auf der zugehörigen internen Zwischenverbindung umfaßt.
  7. Vorrichtung, umfassend: einen Puffer zum Speichern von Daten; eine Datenstrobe-Toleranzeinheit, die zu folgendem betrieben werden kann: Empfangen von Daten aus einem Speicher über eine erste Zwischenverbindung von mindestens einer Zwischenverbindung; Empfangen eines quellsynchronen Datenstrobes aus dem Speicher; Erzeugen von mindestens einem nominalen, einem frühen und einem verzögerten kompensierten Datenstrobe aus dem empfangenen Datenstrobe; Auswählen des nominalen, frühen oder verzögerten kompensierten Datenstrobes zum Zwischenspeichern der empfangenen Daten im Puffer auf der Basis der Zeitsteuerungsausrichtung zwischen den empfangenen Daten und dem empfangenen Datenstrobe; und Ausgeben der empfangenen Daten aus dem Puffer auf eine oder mehrere der mindestens einen Zwischenverbindung.
  8. Vorrichtung nach Anspruch 7, wobei die Datenstrobe-Toleranzeinheit ferner zu folgendem betrieben werden kann: Aufspalten des kompensierten Datenstrobes in vier 1:2-Teiler-Strobes, wobei jeder aus der Abtastung des empfangenen Datenstrobes bei jeder zweiten ansteigenden oder abfallenden Kante erzeugt ist; und Aufspalten der empfangenen Daten auf vier separate interne Zwischenverbindungen, die in den Puffer eingeben, wobei jede der vier internen Zwischenverbindungen jede vierte Dateneinheit hält, die über die erste Zwischenverbindung gesendet wurde.
  9. Vorrichtung nach Anspruch 8, wobei die vier 1:2-Teiler-Strobes vierfach gestaffelt sind, von denen jeder betrieben werden kann, um jede vierte Dateneinheit, die in den Puffer eintritt, zwischenzuspeichern.
  10. Vorrichtung nach Anspruch 9, wobei die vierfach gestaffelten 1:2-Teiler-Strobes jeweils um eine Hälfte eines empfangenen Datenstrobezyklus gegenüber dem vorherigen 1:2-Teiler-Strobe versetzt sind.
  11. Vorrichtung nach Anspruch 10, wobei die Datenstrobe-Toleranzlogik ferner dazu betrieben werden kann, jede Dateneinheit über zwei volle Zyklen des empfangenen Datenstrobes auf der zugehörigen internen Zwischenverbindung gültig zu halten.
  12. Vorrichtung nach Anspruch 8, wobei die Datenstrobe-Toleranzlogik ferner dazu betrieben werden kann, jede Dateneinheit der zugehörigen internen Zwischenverbindung gültig zu halten, bis die vierte Dateneinheit, die der gegebenen einzelnen Dateneinheit folgt, von der ersten Zwischenverbindung empfangen ist.
  13. Vorrichtung nach Anspruch 8, wobei die Dateneinheit 8 Byte breit ist.
  14. System, umfassend: eine Zwischenverbindung; einen Prozessor, der an die Zwischenverbindung angeschlossen ist; einen Speicher, der an die Zwischenverbindung angeschlossen ist; einen Chipsatz, der an die Zwischenverbindung angeschlossen ist, wobei der Chipsatz ferner eine Datenstrobe-Toleranzlogik umfaßt zum: Empfangen von Daten vom Speicher über die Zwischenverbindung; Empfangen eines quellsynchronen Datenstrobe aus dem Speicher; Erzeugen von mindestens einem nominalen, einem frühen und einem verzögerten kompensierten Datenstrobe aus dem empfangenen Datenstrobe; Auswählen des nominalen, frühen oder verzögerten kompensierten Datenstrobe zum Zwischenspeichern der empfangenen Daten in einem Puffer auf der Basis der Zeitsteuerungsausrichtung zwischen den empfangenen Daten und dem empfangenen Datenstrobe auszuwählen; und Ausgeben der empfangenen Daten vom Speicher in die Zwischenverbindung; eine zweite Zwischenverbindung, die an den Chipsatz angeschlossen ist; und eine Netzschnittstellenkarte, die an die zweite Zwischenverbindung angeschlossen ist.
  15. System nach Anspruch 14, wobei die Datenstrobe-Toleranzlogik ferner zu folgendem betrieben werden kann: Aufspalten des kompensierten Datenstrobes in vier 1:2-Teiler-Strobes, wobei jeder aus der Abtastung des empfangenen Datenstrobes bei jeder zweiten ansteigenden oder abfallenden Kante erzeugt ist; und Aufspalten der empfangenen Daten auf vier separate interne Zwischenverbindungen, die in den Puffer eingeben, wobei jede der vier internen Zwischenverbindungen jede vierte Dateneinheit hält, die über die Zwischenverbindung, die mit dem Speicher verbunden ist, gesendet wurde.
  16. System nach Anspruch 15, wobei die vier 1:2-Teiler-Strobes vierfach gestaffelt sind, von denen jeder betrieben werden kann, um jede vierte Dateneinheit, die in den Puffer eintritt, zwischenzuspeichern.
  17. System nach Anspruch 16, wobei die vierfach gestaffelten 1:2-Teiler-Strobes jeweils um eine Hälfte eines empfangenen Datenstrobezyklus gegenüber dem vorherigen 1:2-Teiler-Strobe versetzt sind.
  18. System nach Anspruch 17, wobei die Datenstrobe-Toleranzlogik ferner dazu betrieben werden kann, jede Dateneinheit auf der zugehörigen internen Zwischenverbindung über zwei volle Zyklen des empfangenen Datenstrobes gültig zu halten.
  19. System nach Anspruch 15, wobei die Datenstrobe-Toleranzlogik ferner dazu betrieben werden kann, jede Dateneinheit der zugehörigen internen Zwischenverbindung gültig zu halten, bis die vierte Dateneinheit, die der gegebenen einzelnen Dateneinheit folgt, von der ersten Zwischenverbindung empfangen ist.
  20. System nach Anspruch 15, wobei die Dateneinheit 8 Byte breit ist.
DE102007060782A 2006-12-18 2007-12-17 Kompensierung für Data Strobe-Zeitgebung Ceased DE102007060782A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/642,318 US20080144405A1 (en) 2006-12-18 2006-12-18 Data strobe timing compensation
US11/642,318 2006-12-18

Publications (1)

Publication Number Publication Date
DE102007060782A1 true DE102007060782A1 (de) 2008-07-24

Family

ID=38962211

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007060782A Ceased DE102007060782A1 (de) 2006-12-18 2007-12-17 Kompensierung für Data Strobe-Zeitgebung

Country Status (6)

Country Link
US (1) US20080144405A1 (de)
KR (1) KR100974366B1 (de)
CN (1) CN101206911A (de)
DE (1) DE102007060782A1 (de)
GB (1) GB2445066B (de)
TW (1) TW200841351A (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8264907B2 (en) 2009-10-14 2012-09-11 Nanya Technology Corp. Method of increasing a timing margin for writing data to a memory array
US8384832B2 (en) * 2009-12-29 2013-02-26 Intersil Americas Inc. Systems and methods for partitioned color, double rate video transfer
TWI482030B (zh) * 2011-06-21 2015-04-21 Via Tech Inc 補償同步資料匯流排上的非對齊之裝置及方法
US20140089573A1 (en) * 2012-09-24 2014-03-27 Palsamy Sakthikumar Method for accessing memory devices prior to bus training
US9524763B2 (en) 2014-06-12 2016-12-20 Qualcomm Incorporated Source-synchronous data transmission with non-uniform interface topology
TWI575384B (zh) 2015-09-04 2017-03-21 慧榮科技股份有限公司 通道控制裝置
KR102624808B1 (ko) * 2016-07-13 2024-01-17 삼성전자주식회사 멀티 랭크로 구성된 메모리와 인터페이싱을 수행하는 인터페이스 회로
US10692566B2 (en) * 2016-11-18 2020-06-23 Samsung Electronics Co., Ltd. Interface method of memory system, interface circuitry and memory module
US11127444B1 (en) 2019-08-20 2021-09-21 Rambus Inc. Signal receiver with skew-tolerant strobe gating

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728162B2 (en) * 2001-03-05 2004-04-27 Samsung Electronics Co. Ltd Data input circuit and method for synchronous semiconductor memory device
KR100403635B1 (ko) * 2001-11-06 2003-10-30 삼성전자주식회사 동기식 반도체 메모리 장치의 데이터 입력 회로 및 데이터입력 방법
US6968490B2 (en) * 2003-03-07 2005-11-22 Intel Corporation Techniques for automatic eye-degradation testing of a high-speed serial receiver
KR100521049B1 (ko) * 2003-12-30 2005-10-11 주식회사 하이닉스반도체 더블 데이터 레이트 싱크로너스 디램의 쓰기 회로
JP2006040318A (ja) * 2004-07-22 2006-02-09 Canon Inc メモリデバイス制御回路
JP4662536B2 (ja) * 2004-12-28 2011-03-30 パナソニック株式会社 タイミング調整方法及び装置
JP4795032B2 (ja) * 2006-01-30 2011-10-19 エルピーダメモリ株式会社 タイミング調整回路及び半導体装置

Also Published As

Publication number Publication date
KR20080056671A (ko) 2008-06-23
US20080144405A1 (en) 2008-06-19
CN101206911A (zh) 2008-06-25
GB2445066A (en) 2008-06-25
KR100974366B1 (ko) 2010-08-05
TW200841351A (en) 2008-10-16
GB2445066B (en) 2009-04-22
GB0723229D0 (en) 2008-01-09

Similar Documents

Publication Publication Date Title
DE102007060782A1 (de) Kompensierung für Data Strobe-Zeitgebung
DE69906793T2 (de) Verfahren und anordnung für hochgeschwindigkeitsdatenerfassung mit korrektur der bit-zu-bit-zeitgebung und speicheranordnung unter verwendung derselben
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE60132445T2 (de) Kalibrierung von bustaktsignalen für speicheranordnungen
DE69716112T2 (de) Taktanpassung mit feinregelung
DE3110196A1 (de) Datenverarbeitungssystem
DE102007045497A1 (de) Mechanismus zum Erzeugen von logisch zugeordneten Lese- und Schreib-Kanälen in einer Speichersteuerung
DE4207158A1 (de) Speicher-zugriffssteuerung
DE69816464T2 (de) Vorrichtung und verfahren zum zeitverzögerungsausgleich von einrichtungen
DE10346559A1 (de) Dateninvertierungsschaltung und Halbleitervorrichtung
EP3224731B1 (de) Verfahren und vorrichtung zur weiterleitung von daten
DE3911721C2 (de)
DE69432063T2 (de) Bussteuereinrichtung
DE19709229A1 (de) Ein Zeitablauf-konsistenter dynamischer Vergleich mit einer Zwangsfehlgriffschaltung
DE69432693T2 (de) Schnitstelle zwischen unsynchronisierten Geräten
DE3729732C2 (de)
DE69323662T2 (de) Verfahren zur Bestimmung von Geräten, die die Übertragung von Datensignalen auf einem Bus anfordern
DE102008047439B4 (de) Datenumwandlung
DE102004005275A1 (de) Adressenpuffer für einen Halbleiterbaustein
DE10253696A1 (de) Speichersystem, welches einen nicht verteilten Befehls/Adress-Takt nutzt
DE102007016603A1 (de) Vorrichtung und darauf bezogenes Verfahren zum Steuern eines Switch-Moduls in einem Speicher durch Erfassen einer Betriebsfrequenz eines spezifischen Signals in einem Speicher
DE10361059A1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE69323111T2 (de) Auflösung der Mehrdeutigkeit für Kontrolle eines elastischen Speichers für Untersystemeinheit
DE69625685T2 (de) Verfahren und vorrichtung zur reduzierung der latenzzeit in einer schnittstelle mittels überlappender paketübertragung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 12/00 AFI20080409BHDE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20120306