DE102006048857B4 - Verfahren und Vorrichtung zum Reduzieren von Synchronisiererschatten - Google Patents

Verfahren und Vorrichtung zum Reduzieren von Synchronisiererschatten Download PDF

Info

Publication number
DE102006048857B4
DE102006048857B4 DE102006048857A DE102006048857A DE102006048857B4 DE 102006048857 B4 DE102006048857 B4 DE 102006048857B4 DE 102006048857 A DE102006048857 A DE 102006048857A DE 102006048857 A DE102006048857 A DE 102006048857A DE 102006048857 B4 DE102006048857 B4 DE 102006048857B4
Authority
DE
Germany
Prior art keywords
data bits
signal
data
group
serialized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102006048857A
Other languages
English (en)
Other versions
DE102006048857A1 (de
Inventor
Carson D. Fort Collins Henrion
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102006048857A1 publication Critical patent/DE102006048857A1/de
Application granted granted Critical
Publication of DE102006048857B4 publication Critical patent/DE102006048857B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

Verfahren (100) zum Reduzieren von Synchronisiererschatten, das folgende Merkmale aufweist:
Empfangen (102) und Deserialisieren (102) einer serialisierten Gruppe von Datenbits bekannter Länge unter einer Steuerung eines ersten Taktbereichs;
Beginnen (104), ein Gültig-Signal für die deserialisierte Gruppe von Datenbits in einem zweiten Taktbereich aufzulösen, vor einem Empfangen der ganzen serialisierten Gruppe von Datenbits,
wobei ansprechend auf ein Synchronisierersteuersignal (Wrq[x]), das zu einer vorbestimmten Zeit vor einem vollständigen Empfang der Gruppe von Datenbits geliefert wird, und das in dem ersten Taktbereich erzeugt wird, ein Haltesignal (Hold[x]) zwischengespeichert und ausgegeben wird, und
wobei nach einer Ausgabe des Haltesignals (Hold[x]) auf eine Flanke eines Taktes (CK) in dem zweiten Taktbereich hin ein Auflösen-Signal (Resolve[x]) in dem zweiten Taktbereich erzeugt wird;
Zwischenspeichern (106) der deserialisierten Gruppe von Datenbits unter einer Steuerung des ersten Taktbereichs auf ein Empfangen und Deserialisieren der ganzen serialisierten Gruppe von Datenbits hin; und
i)...

Description

  • Im Zusammenhang mit einer digitalen Signalisierung ist „Synchronisation” der Prozess eines Zwischenspeicherns eines Signals zwischen einem ersten und einem zweiten nichtausgerichteten Taktbereich. Bei nichtvorhandenen ordnungsgemäßen Steuerungen kann das Ergebnis dieses Zwischenspeicherns etwas unvorhersagbar sein. Es gibt drei Szenarios: ein Signal, das zwischengespeichert werden soll, kann gefangen werden, ein Signal, das zwischengespeichert werden soll, kann an der nächsten Taktflanke gefangen werden, oder ein Signal, das zwischengespeichert werden soll, kann teilweise gefangen werden. Das letzte Szenario ist das schlimmste, da ein „metastabiler” Wert (d. h. ein Wert, der weder eine „1” noch eine „0” ist) zwischengespeichert werden kann. Ein Zwischenspeicher, der sich in einem meterstabilen Zustand befindet, kann eine lange Zeitdauer in diesem Zustand bleiben, besonders falls der Zwischenspeicher einen geringen Gewinn (oder eine geringe Rückkopplung) aufweist. Der Zwischenspeicher kann dann den meterstabilen Wert desselben zu anderen Schaltungen ausbreiten, was unzulässige Zustände und andere Probleme bewirken kann.
  • Um das Zwischenspeichern eines meterstabilen Zustands zu verhindern, wird typischerweise ein spezieller Zwischenspeicher (Latch) mit hohem Gewinn verwendet. Dieser Zwischenspeicher wird ein „Auflösungszwischenspeicher” genannt. Zusätzlich wird dem Zwischenspeicher genügend Zeit zum Auflösen gegeben, derart, dass irgendein meterstabiler Wert zu einer „0” oder einer „1” gezwungen wurde, bevor derselbe zu anderen Schaltungen gesendet wird. Selbst bei diesen Techniken treten jedoch theoretisch meterstabile Ereignisse auf, falls genügend Zeit gegeben ist (vielleicht 10000 Jahre).
  • Eine Synchronisation wird durch einen „Synchronisierer” erzielt. Herkömmlicherweise wartet ein Synchronisierer darauf, dass eingehende Daten ankommen, und synchronisiert dann die Daten in den neuen Taktbereich. Die Auflösungszeit des Synchronisierers ist typischerweise ein Vielfaches oder ein Bruchteil von Zyklen des neuen Taktbereichs (z. B. 1/2, 1, 1½ , 2 ...). Diese Granularität kann häufig schwierige Entscheidungen und/oder Entwurfsanforderungen erzwingen. Zum Beispiel kann ein Entwerfen eines aggressiveren Auflösungszwischenspeichers eventuell 1/2 Zyklen einer Latenz wiedergewinnen, aber bei erhöhten Kosten und unter Verwendung von mehr Chipfläche.
  • Die US 6,425,088 B1 beschreibt ein Verfahren zur Datenübertragung und einen Datenübertragungsapparat, der eine einfache Hardware einsetzt, um Daten zwischen zwei Schaltungen, die bei unterschiedlichen Taktfrequenzen arbeiten, mit verringertem Daten-Übertragungs-Überhang zu übertragen, um eine Übertragungs-Verzögerungszeit zu verkürzen.
  • Das Verfahren zur Datenübertragung und der Apparat erzeugen ein Datenübertragungsreferenzsignal, das einen Puls aufweist, der innerhalb eines Zyklus einer niedrigeren der Taktfrequenzen ist, und der mit einem Puls einer höheren der Taktfrequenzen synchronisiert ist. Sei der Übertragung von Daten zwischen den zwei Schaltungen verwendet eine der Schaltungen, die als Quellenschaltung dient, das Datenübertragungsreferenzsignal, um zu bestimmen, ob die andere Schaltung, die als Bestimmungs-Schaltung dient, Daten, die von der Quellenschaltung übertragen wurden, vollständig empfangen hat.
  • Die WO 98/13768 A2 beschreibt eine Schnittstelle zur Übertragung von Daten zwischen Taktbereichen. Die Schnittstelle zwischen zwei Taktbereichen überträgt Daten zwischen den zwei Taktbereichen ohne Veränderung oder Verlust von Daten. Jeder Taktbereich hat einen jeweiligen Takt. Eine Synchronisationsschaltung stellt sicher, dass die zwei Takte ein festes Frequenzverhältnis A:B aufweisen und erzeugt zwei Synchronisationssignale, die anfängliche Zyklen der Takte in zugrunde liegenden Zyklen von A und B Taktzyklen der zwei Takte identifizieren. Ein Datensignal wird in einer Mehrzahl von Registern in dem ersten Taktbereich gespeichert. Jedes Register gibt ein spezifisches Ausgangssignal aus, wobei eines der Ausgangssignale durch einen Multiplexer in dem zweiten Taktbereich ausgewählt wird, um an ein Ausgangsregister ausgegeben zu werden. Das Ausgangsregister gibt die Daten dann synchron mit dem zweiten Takt aus. Eine Auswahl der Taktzyklen, in denen das Lesen und Schreiben eines Registers stattfindet, wird durch die Synchronisationssignale gesteuert, so dass eine minimale Verzögerung zwischen dem Lesen und dem Schreiben selbst dann besteht, wenn eine Zeitverschiebung zwischen den zwei Takten vorliegt.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Reduzieren von Synchronisiererschatten, eine Vorrichtung zum Reduzieren von Synchronisiererschatten und eine Vorrichtung mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und eine Vorrichtung gemäß Anspruch 7 und Anspruch 20 gelöst.
  • Darstellende Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein exemplarisches Verfahren zum Reduzieren von Synchronisiererschatten;
  • 2 eine Ansicht auf hoher Ebene einer exemplarischen Vorrichtung zum Reduzieren von Synchronisiererschatten;
  • 3 exemplarische Daten- und Steuersignale, die durch die Steuerlogik der Vorrichtung von 2 empfangen werden;
  • 4 exemplarische Zeitverläufe von Signalen für die in 2, 3 und 59 gezeigte Vorrichtung;
  • 5 ein exemplarisches Ausführungsbeispiel eines Abschnitts der in 2 gezeigten Steuerlogik;
  • 6 ein exemplarisches Ausführungsbeispiel eines Stücks des in 2 gezeigten Synchronisierers;
  • 7 eine exemplarische Anordnung einer Mehrzahl der in 6 gezeigten Synchronisiererstücke;
  • 8 eine exemplarische Logik zum Freigeben eines Stammdaten-Gültig-Signals (Masterdaten-Gültig-Signals);
  • 9 ein exemplarisches Ausführungsbeispiel der in 2 gezeigten Datenwarteschlange; und
  • 10 & 11 unterschiedliche Signalzeitverläufe für die in 2 gezeigte Vorrichtung, abhängig davon, ob empfangene Daten den Datentyp Vollständig-Gepuffert-DIMM (FBD = Fully Buffered DIMM) aufweisen.
  • Bei einem Synchronisierer warten die Daten, die die Synchronisierergrenze überschreiten, darauf, dass das Gültig-Signal desselben in den nächsten Taktbereich aufgelöst wird. Diese Wartezeit wird als der „Synchronisiererschatten” bezeichnet.
  • Herkömmlicherweise wartet ein Synchronisierer darauf, dass eingehende Daten ankommen, und synchronisiert dann die Daten in einem neuen Taktbereich. Bei dem Verfahren und der Vorrichtung jedoch, die hierin offenbart sind, wird die Dauer des Synchronisiererschattens durch ein Beginnen, ein Gültig-Signal für eingehende Daten aufzulösen, bevor alle eingehenden Daten empfangen sind, reduziert. Das Verfahren und die Vorrichtung, die hierin offenbart sind, sind deshalb besonders vorteilhaft, wenn der Taktbereich, in den eingehende Daten synchronisiert werden, viel langsamer als der Taktbereich der eingehenden Daten ist.
  • Unter jetziger Bezugnahme auf 1 ist ein exemplarisches Verfahren 100 zum Reduzieren von Synchronisiererschatten gezeigt. Das Verfahren 100 weist ein Empfangen und Deserialisieren 102 einer serialisierten Gruppe von Datenbits (Data Flit) bekannter Länge unter einer Steuerung eines ersten Taktbereichs auf (d. h. eines Taktbereichs, mit dem die serialisierte Gruppe von Datenbits während einer Übertragung ausgerichtet ist). Wie es hierin definiert ist, ist eine „serialisierte Gruppe von Datenbits” einfach eine serialisierte Gruppe von Datenbits.
  • Vor einem Empfangen der ganzen serialisierten Gruppe von Datenbits wird in einem zweiten Taktbereich (d. h. einem Taktbereich, in dem die deserialisierte Gruppe von Datenbits auf einen Empfang hin ausgerichtet ist) die Auflösung eines Gültig-Signals für die deserialisierte Gruppe von Datenbits begonnen 104. Dann wird auf ein Empfangen und Deserialisieren der ganzen serialisierten Gruppe von Datenbits hin die deserialisierte Gruppe von Datenbits unter einer Steuerung des ersten Taktbereichs zwischengespeichert 106.
  • Nach einem Zwischenspeichern der deserialisierten Gruppe von Datenbits unter einer Steuerung des ersten Taktbereichs und einer vorbestimmten Anzahl von Taktflanken des zweiten Taktbereichs nach einem Beginnen eines Auflösens des Gültig-Signals wird das Gültig-Signal aufgelöst 108 und wird die zwischengespeicherte Gruppe von Datenbits ansprechend auf das Gültig-Signal in den zweiten Taktbereich übertragen 108.
  • Unter Verwendung des Verfahrens 100 von 1 kann die Dauer eines Synchronisiererschattens drastisch reduziert werden, ohne eine Zuverlässigkeit eines Synchronisierers zu verringern. Ferner oder alternativ können die Entwurfsanforderungen eines Synchronisierers und von Zwischenspeicherschaltungen eines Empfängers erheblich gelockert werden.
  • Bei einigen Ausführungsbeispielen des Verfahrens 100 kann die Zeit, bei der das Gültig-Signal beginnt, sich aufzulösen, ansprechend auf einen Datentyp einer Gruppe von Datenbits eingestellt werden. In einigen Fällen kann ein Empfänger beispielsweise zum Empfangen von Datentypen in der Lage sein, wie beispielsweise:
    • – FBD (Vollständig-Gepuffert-DIMM) für eine Kommunikation mit Speicherchips;
    • – SP2 und CSI, die Intel-Standards für eine Kommunikation zwischen zentralen Verarbeitungseinheiten (CPUs = Central Processing Units) und Chipsätzen sind;
    • – WJF, das das proprietäre Chipverbindungsprotokoll von Hewlett-Packard Company ist; und
    • – 8b10b, das eine spezielle Codierung von WJF für eine
    • Übertragung über Faseroptiken ist
  • Abhängig davon, welcher von diesen Datentypen empfangen wird, einschließlich der Länge irgendeiner entsprechenden Gruppe von Datenbits, kann es notwenig (oder zumindest möglich) sein, ein Auflösen eines Gültig-Signals einer Gruppe von Datenbits früher oder später zu beginnen.
  • Bei den gleichen oder unterschiedlichen Ausführungsbeispielen des Verfahrens 100 kann es ferner nützlich sein, die Anzahl von Taktflanken zwischen 1) einem Beginnen eines Auflösens des Gültig-Signals und 2) einem Auflösen des Gültig-Signals einzustellen. Bei einem Empfänger, der zum Empfangen der oben aufgelisteten Datentypen in der Lage ist, können beispielsweise bestimmte Datentypen zu einem Ermöglichen einer früheren Auflösung als andere kompatibel sein. Wie es später in dieser Beschreibung detaillierter erläutert wird, kann die Anzahl von Taktflanken, über die ein Gültig-Signal ausgelöst wird, ansprechend auf ein Versatzsignal entsprechend einer Gruppe von Datenbits gesetzt werden.
  • 2 stellt ein exemplarisches Ausführungsbeispiel einer Vorrichtung 200 dar, die verwendet werden kann, um das Verfahren 100 und andere Verfahren zu implementieren. Im Allgemeinen weist die Vorrichtung eine Steuerlogik 202, eine Deserialisierer 204, einen Synchronisierer 206 und eine Datenwarteschlage 208 auf. Die Steuerlogik 202 ist gekoppelt, um Takt-, Daten- und Steuersignale von einer Datenverbindung (oder einem Bus) 210 zu empfangen; und die Datenwarteschlagen ist gekoppelt, um Gültig-Daten zu einem Vorrichtungskern 212 zu liefern.
  • Es ist zu beachten, dass die Steuerlogik 202 und der Deserialisierer 204 unter dem Taktbereich der Verbindung 210 (d. h. unter Takten RxCKP und RxCKN) wirksam sind und der Synchronisierer 206 und die Datenwarteschlange 208 teilweise unter dem Taktbereich der Verbindung 210 und teilweise unter dem Taktbereich (CK) des Vorrichtungskerns 212 wirksam sind.
  • 3 stellt ein exemplarisches Ausführungsbeispiel eines Abschnitts der Steuerlogik 202 dar. Wie es gezeigt ist, empfängt die Steuerlogik 202 eine serialisierte Gruppe von Datenbits (z. B. RxDP[5:0] und RxDN[5:0]) sowie einen entsprechenden Takt oder entsprechende Takte (z. B. RxCKP und RxCKN). Wie es beispielsweise gezeigt ist, empfängt die Steuerlogik 202 die serialisierte Gruppe von Datenbits als einen seriellen Zwei-Bit-Datenstrom (RxDP/RxDN) der mit zwei um 180° außerphasigen Takten (RxCKP/RxCKN) synchronisiert ist. Die Steuerlogik 202 puffert dann diese Signale und/oder wandelt dieselben um und gibt die Takte SET1 und SET2 sowie die serialisierte Gruppe von Datenbits Data[11:0] aus. Bei einigen Ausführungsbeispielen kann die Steuerlogik 202 beginnend mit einem Bit des RxDP-Stroms oder beginnend mit einem Bit des RxDN-Stroms einen Datentausch (Data Swapping) durchführen (d. h. dieselbe kann die Datenströme (RxDP/RxDN) spleißen). Bei anderen Ausführungsbeispielen könnte die Steuerlogik 202 entworfen sein, um lediglich einen einzigen Datenstrom und einen einzigen Takt zu empfangen.
  • Die Länge jedes Datenstroms (RxDP und RxDN), der durch die Steuerlogik 202 empfangen wird, ist beispielsweise als sechs Bit gezeigt. Bei einigen Ausführungsbeispielen jedoch kann die Steuerlogik 202 konfiguriert sein, um Datenströme mit vier, fünf oder sechs Bit zu empfangen, die die Vorrichtung 200 dann in einen 8 (WJF), 10 (8b10b) oder 12 (FBD) Bit breiten Bus umwandelt, der mit dem Taktbereich des Vorrichtungskerns 212 synchronisiert ist. Weil die Länge einer serialisierten Gruppe von Datenbits sich verändern kann, wird die Vorrichtung 200 über die Längen von serialisierten Gruppen von Datenbits über verschiedene Steuersignale (z. B. über Datentypindikatoren) informiert, wie es unten erörtert wird.
  • Die Steuerlogik 202 kann ferner eine Mehrzahl von Steuersignalen empfangen. Eines dieser Steuersignale (RxReset) kann die Steuerlogik 202 initialisieren, um die Ankunft einer serialisierten Gruppe von Datenbits (oder einer Mehrzahl von serialisierten Gruppen von Datenbits) anzugeben. Dieses Signal (RxReset) kann gepuffert oder gekennzeichnet und dann als das „Rücksetz”-Signal ausgegeben werden.
  • Andere Steuersignale (RxMode_8b10b und RxMode_FBD), die durch die Steuerlogik 202 empfangen werden, können einen „Datentyp” einer Gruppe von Datenbits angeben. Diese Datentyp-Steuersignale, sowie andere Steuersignale können gepuffert und/oder kombiniert und als eines oder mehrere Signale Data_Type[x:0] ausgegeben werden.
  • Ein anderer Satz von Signalen (RxMargin_First_Wrq[1:0]), die durch die Steuerlogik 202 empfangen werden, kann eine Verzögerungsspanne angeben. Die Signale RxMargin_First_Wrq[1:0] können gepuffert und/oder gekennzeichnet und als Signale Margin[1:0] ausgegeben werden. Die Verwendung dieser Spanne wird später in dieser Beschreibung detaillierter beschrieben.
  • Noch ein anderer Satz von Signalen (RxValid_Data_Offset[2:0]), die durch die Steuerlogik 202 empfangen werden, kann einen Versatz angeben, der zwischen 1) einem Beginnen eines Auflösens eines Gültig-Signals einer Gruppe von Datenbits und 2) einem Empfangen der serialisierten Gruppe von Datenbits beibehalten sein sollte. Das 3-Bit-RxValid_Data_Offset[2:0]-Signal kann decodiert werden, um die Offset[7:0]-Signale mit einem logisch hohen Zustand (One-High-Offset[7:0]-Signale) zu ergeben.
  • Die Signale, die durch die Steuerlogik 202 empfangen und ausgegeben werden, sind wiederum bloß exemplarisch und einige Ausführungsbeispiele der Steuerlogik 202 können mehr oder weniger Daten- und Steuersignale empfangen und/oder ausgeben. Die Signale, die durch die Steuerlogik 202 empfangen und ausgegeben werden, können auch anderen Zwecken dienen, von denen einige lediglich entfernt mit dem Verfahren und der Vorrichtung zum Reduzieren eines Synchronisiererschattens verwandt sind, die hierin offenbart sind. Folglich werden die Steuersignale, die durch die Steuerlogik 202 empfangen werden, lediglich bis zu dem Ausmaß beschrieben, zu dem dieselben eine Auswirkung auf ein Reduzieren eines Synchronisiererschattens aufweisen.
  • Unter jetziger Bezugnahme auf 4 ist der Zeitverlauf verschiedener Signale der Vorrichtung 200 dargestellt. An dem oberen Ende befindet sich ein Vergleich des Signals CK (des Taktbereichs des Vorrichtungskerns 212) mit dem Signal RxCKP (das der (den) serialisierten Gruppe(n) von Datenbits entspricht, die durch die Vorrichtung 200 empfangen wird (werden)). Es ist beispielsweise gezeigt, dass der Takt RxCKP eine Betriebsfrequenz aufweist, die etwa dreimal die Frequenz des Takts CK beträgt. Vorausgesetzt jedoch, dass die Takte RxCKP und CK nichtausgerichtet sind, könnte sich diese Entsprechung verändern. Das Zeitdiagramm von 4 nimmt ferner beispielsweise an, dass eine empfangene Gruppe von Datenbits 12 Datenbits aufweist, die über eine Periode von sechs Zyklen des Takts RxCKP (in 4 mit 0, 1, 2, 3, 4, 5 nummeriert) empfangen werden. Es ist ferner zu beachten, dass 4 den Empfang der letzten drei Datenzyklen einer ersten serialisierten Gruppe von Datenbits (d. h. Zyklen 3, 4, 5) und die Signale (Wrq[0], Wrd[1], Hold[0], Resolve[0], Valid[0] und Sel[0]) zeigt, die verwendet werden, um dieselben zu synchronisieren und in den Taktbereich des Vorrichtungskerns 212 zu übertragen. 4 zeigt ferner den Empfang einer ganzen zweiten serialisierten Gruppe von Datenbits und den Empfang eines Teils einer dritten serialisierten Gruppe von Datenbits. 4 zeigt jedoch nicht alle der Signale, die verwendet werden, um die zweite und die dritte Gruppe von Datenbits zu synchronisieren und in den Taktbereich des Vorrichtungskerns 212 zu übertragen.
  • Der Zeitverlauf der Signale, der in 4 gezeigt ist, wird unten in dem Kontext von Beschreibungen von Abschnitten der Vorrichtung 200, die dieselben erzeugen, detaillierter beschrieben.
  • 5 stellt ein exemplarisches Ausführungsbeispiel eines Front-End-Logikabschnitts 500 des Synchronisierers 206 (2) dar. Wie es gezeigt ist, weist die Schaltung 500 eine Verzögerungskette 502 (d. h. eine Reihenkette von Verzögerungselementen) auf. Die Elemente der Verzögerungskette sind unter einer Steuerung des RxCK-Taktbereichs getaktet und sind bei einem Ausführungsbeispiel über die abwechselnden Takte SET1 und SET2 (wie gezeigt) getaktet.
  • Die Eingabe zu der Verzögerungskette ist das „Rücksetz”-Signal, das die Ankunft einer neuen serialisierten Gruppe von Datenbits angibt. Das „Rücksetz”-Signal lädt die Verzögerungskette mit vier, fünf oder sechs logischen „1”en, wobei die Anzahl von „1”en von dem Modus (oder von Datentyp-Signalen) abhängt, der (die) durch die Steuerlogik 202 während einer Initialisierung der Steuerlogik 202 empfangen wird (werden). Diese Einsen können dann mit den ankommenden Gruppen von Datenbits ausgerichtet die Verzögerungskette in einer Schleife durchlaufen.
  • Wie es gezeigt ist, werden die Ausgaben einer ersten Mehrzahl von Verzögerungselementen zu einem ersten Multiplexer 504 geliefert und werden die Ausgaben einer zweiten Mehrzahl von Verzögerungselementen zu einem zweiten Multiplexer 506 geliefert. Gemäß einer oder mehr Data_Type[x:0]-Variablen gibt der erste Multiplexer 504 ein Signal Wrq[x] aus, das als ein Synchronisierersteuersignal dient; und gemäß einem oder mehreren Versatzsignalen, Offset[7:0], gibt der zweite Multiplexer 506 ein Signal Wrd[x] aus, das als ein Warteschlangensteuersignal dient. In einigen Fällen kann das Wrq[x]-Signal durch die Synchronisierersteuerlogik 508 modifiziert oder freigegeben (z. B. durch das „Rücksetz”-Signal rückgesetzt) werden. Auf ähnliche Weise kann das Wrd[x]-Signal durch eine Schreibsteuerlogik 510 modifiziert oder freigegeben werden.
  • Die Verzögerungskette 502 liefert zwei primäre Funktionen. Erstens liefert dieselbe das Wrd[x]-Signal auf einen vollständigen Empfang einer Gruppe von Datenbits hin, wodurch eine Aufnahme (d. h. ein Zwischenspeichern) der Gruppe von Datenbits in der Datenwarteschlage 208 (2) freigegeben wird. Zweitens liefert dieselbe das Wrq[x]-Signal zu einer vorbestimmten Zeit vor einem vollständigen Empfang der Gruppe von Datenbits. Auf diese Weise, und wie es später in dieser Beschreibung detaillierter erläutert wird, ermöglicht das Wrq[x]-Signal, dass der Synchronisierer 206 ein Auflösen eines Gültig-Signals für die Gruppe von Datenbits beginnt, bevor die Gruppe von Datenbits vollständig empfangen ist, wodurch die Dauer des „Schattens” des Synchronisierers verringert wird.
  • Falls die Verzögerungskette 502 programmierbar gemacht ist (wie es gezeigt ist), dann kann das Wrd[x]-Signal programmiert sein, um an dem Ende von Gruppen von Datenbits unterschiedlicher Länge anzusteigen, und/oder das Wrq[x]-Signal kann programmiert sein, um eine vorbestimmte Anzahl von R×CKP-Zyklen (oder Bruchteile derselben) vor dem Wrd[x]-Signal aufzutreten. Bei der in 6 gezeigten Schaltung ist die zeitliche Trennung zwischen Wrq[x] und Wrd[x] zum Teil durch den Satz mit einem logisch hohen Zustand von Steuerleitungen Offset[7:0] gesteuert.
  • Bei einigen Ausführungsbeispielen kann eine Instanz der Schaltung für jeden Satz des Wrd[x]- und des Wrq[x]-Signals vorgesehen sein (d. h. Wrd[0] und Wrq[0], etc.). Bei anderen Ausführungsbeispielen kann eine Schaltungsanordnung vorgesehen sein, um das Wrd[x]- und das Wrq[x]-Signal sequentiell mit Entsprechenden der Wrd[7:0]- und Wrq[7:0]-Signale zu koppeln.
  • Es ist zu beachten, dass das Wrq[x]- und das Wrd[x]-Signal beide in dem Taktbereich der Verbindung 210 (d. h. dem RxCKP/N-Taktbereich) erzeugt werden. Unter erneuter Bezugnahme auf 4 ist ein exemplarischer Zeitverlauf des Wrq[0]- und des Wrd[0]-Signals gezeigt, wobei das Wrq[0]-Signal drei RxCKP-Zyklen vor einem vollständigen Empfang einer Gruppe von Datenbits erzeugt wird und das Wrd[0] erzeugt wird, unmittelbar nachdem die Gruppe von Datenbits empfangen ist. Zu einem Vergleich mit dem Signal Wrq[0] ist der Zeitverlauf des Signals Wrq[1] entsprechend einer nächsten empfangenen Gruppe von Datenbits ebenfalls in 4 gezeigt.
  • 6 stellt ein exemplarisches Ausführungsbeispiel eines Stücks 600 des Synchronisierers 206 (2) dar. Wie es in 7 gezeigt ist, kann der Synchronisierer 206 für jeden Eintrag in der Datenwarteschlange 208 ein Stück 600 aufweisen.
  • Das Synchronisiererstück 600 wird anfänglich durch einen Empfang des Signals Wrq[x] ausgelöst, was einen Puls in dem RxCKP/N-Taktbereich liefert, der bewirkt, dass die Logik 602 ein „Hold[x]”-Signal zwischenspeichert und ausgibt. Es ist zu beachten, dass der Zeitverlauf des „Hold[x]”-Signals und der meisten Signale, die in diesem Absatz erwähnt sind, in 4 zu sehen ist. Nach einer Ausgabe des „Hold[x]”-Signals und auf eine ansteigende Flanke des Takts CK hin erzeugt die Logik 604, 606 ein „Resolve[x]”-Signal in dem CK-Bereich. Bei der nächsten ansteigenden Flanke des Takts CK erzeugt die Logik 608 ein „Valid[x]”-Signal. Auf eine Freigabe der Logik 610 hin erzeugt dieses „Gültig”-Signal dann synchron ein „Sel[x]”-Signal, das verwendet werden kann, um Daten auszuwählen, die aus der Datenwarteschlage 208 (und in den Taktbereich des Vorrichtungskerns 212) ausgelesen werden sollen, wie es später in dieser Beschreibung detaillierter erläutert wird. Auf einen Anstieg des „Sel[x]”-Signals hin oder auf einen Empfang eines „Rücksetz”-Signals hin wird bewirkt, dass die Logik 602 das „Hold[x]”-Signal erneut sperrt (z. B. niedrig treibt), wodurch das Synchronisiererstück 600 rückgesetzt wird. Exemplarische Zeitverläufe der Signale Hold[0], Resolve[0], Valid[0] und Sel[0] sind in 4 gezeigt.
  • Mittels des Synchronisiererstücks 600 beginnt ein „Gültig”-Signal einer Gruppe von Datenbits sich aufzulösen, bevor die Gruppe von Datenbits vollständig empfangen ist, wodurch eine Reduzierung eines Synchronisiererschattens ermöglicht ist, wie es in 4 angemerkt ist. Ferner ist dem „Gül tig”-Signal der Gruppe von Datenbits ein vollständiger Taktzyklus des Vorrichtungskerns 212 zum Auflösen gegeben, wodurch eine erhebliche Zeitperiode für das „Gültig”-Signal zum Auflösen gegeben ist und ein Lockern der Entwurfsanforderungen des Synchronisierers 206 und der Datenwarteschlage 208 (2) ermöglicht ist.
  • 7 zeigt eine exemplarische Anordnung einer Mehrzahl von Stücken 600a–f des Synchronisierers 206 (2). Jedes Stück 600a–f empfängt eines der Wrq[5:0]-Signale und erzeugt ein Entsprechendes der Sel[5:0]-Signale. Jedes Stück 600a–f liefert ferner ein Enable_Next_Sel[x]-Signal zu dem nächsten sequentiellen Synchronisiererstück und liefert ferner das Sel[x]-Signal desselben zu dem vorhergehenden Synchronisiererstück. Auf diese Weise sind die Sel[5:0]-Signale in einer sequentiellen und sich wiederholenden Reihenfolge zu einer Freigabe gezwungen.
  • Unter erneuter Bezugnahme auf 6 ist dort eine exemplarische Logik zum Zwingen der Signale Sel[5:0] zu einer Freigabe in sequentieller und sich wiederholender Reihenfolge. Die Logik weist eine Freigabelogik 614, die daraufhin, dass das „Rücksetz”- und das nächste Sequentielle der Auswahlsignale (Next_Sel[x]) sich beide in einem niedrigen Zustand befinden, das nächste Sequentielle der Auswahlsignale freigibt, um bei einer ansteigenden Flanke des Takts CK aktiviert zu werden (z. B. über eine Logik 616 und 618 und über das Ausgangssignal „Enable_Next_Sel[x]”). Jedes der „Enable_Next_Sel[x]”-Signale wird dann in das nächste sequentielle Synchronisiererstück als das Signal „Previous_Sel[x]” (siehe 6) empfangen und gibt auf eine ansteigende Flanke des Takts CK hin die Logik 620 frei, um die Logik 610 freizugeben.
  • 8 stellt eine exemplarische Logik 800, 802, 804 zum Erzeugen (oder Freigeben) eines Stammdaten-Gültig-Signals (RxValid) dar. Das Stammdaten-Gültig-Signal wird auf ein Auflösen eines Gültig-Signals für irgendeinen der Einträge der Datenwarteschlange 208 (2) hin freigegeben. Wie es später in dieser Beschreibung erörtert wird, kann die Logik 500 (5) entworfen sein, um das Stammdaten-Gültig-Signal über den Empfang einer Mehrzahl von sequentiell empfangenen Gruppen von Datenbits kontinuierlich in einem hohen Zustand zu halten. Dies kann bei einem Empfangen von Daten besonders vorteilhaft sein, die erwarten, über eine synchrone Schnittstelle gesendet zu werden (wie beispielsweise FBD-Daten).
  • Auf ein Deserialisieren einer serialisierten Gruppe von Datenbits unter einer Steuerung eines ersten Taktbereichs über den Deserialisierer 204 (2) hin werden dann Daten ansprechend auf eines oder mehrere der Warteschlangensteuersignale Wrd[x] in einen oder mehrere Einträge einer Datenwarteschlange 208 zwischengespeichert. Wie es in 9 gezeigt ist und bei einem exemplarischen Ausführungsbeispiel, kann jedes Bit (Data[x]) einer deserialisierten Gruppe von Datenbits ansprechend auf ein Entsprechendes der Schreibsignale Wrd[5:0] in einen Eintrag (d. h. einen von q[5:0]) der Datenwarteschlange 208 zwischengespeichert werden. Somit kann beispielsweise auf einen Empfang einer ersten Gruppe von Datenbits hin Data[x] in einen Warteschlangeneintrag q[0] zwischengespeichert werden; kann auf einen Empfang einer zweiten Gruppe von Datenbits hin Data[x] in einen Warteschlangeneintrag q[1] zwischengespeichert werden; usw. Auf etwas ähnliche Weise werden Daten aus der Datenwarteschlange 208 über einen Multiplexer 900 übertragen (und möglicherweise durch einen Puffer 902 gepuffert). Das heißt, Dateneingaben des Multiplexers 900 sind mit entsprechenden Einträgen q[5:0] der Datenwarteschlange 208 gekoppelt und Steuereingaben des Multiplexers 900 sind mit Entsprechenden der Auswahlsignale Sel[5:0] gekoppelt. Wenn dann jedes der Auswahlsignale Sel[5:0] aktiviert ist, werden Daten d[5:0] von einem Entsprechenden der Warteschlangeneinträge q[5:0] von dem Taktbereich der Verbindung 210 zu dem Taktbereich des Vorrichtungskerns 212 übertragen.
  • Wie es nach einem Lesen der obigen Beschreibung ersichtlich sein sollte, liefern das Verfahren 100 und die Vorrichtung 200 eine Einrichtung zum Reduzieren von Synchronisiererschatten. Wie es durch die exemplarischen Signalzeitverläufe von 4 gezeigt ist, kann ein Synchronisiererschatten um mehr als die Hälfte reduziert werden. Abhängig von dem Typ von Daten, die empfangen werden, und dem gewählten Versatz (d. h. Offset[7:0]) kann ein Synchronisiererschatten (und üblicherweise eine Latenz) tatsächlich manchmal auf etwa einen Zyklus des Verbindungstaktbereichs reduziert werden (d. h. einen Zyklus des Takts RxCKP oder RxCKN). Je größer der Versatz, desto geringer die Latenz. Falls jedoch der Versatz zu groß ist, können Datenkollisionen auftreten.
  • Das Verfahren 100 und die Vorrichtung 200, die hierin offenbart sind, können auch konfiguriert sein, um zu ermöglichen, dass asynchrone Schnittstellenschaltungen mit Verbindungsprotokollen (z. B. FBD) verwendet werden können, die eine synchrone Schnittstelle erwarten. Wie es unten beschrieben ist, kann dies unter Verwendung einer einfachen digitalen Steuerlogik anstelle komplexer analoger Taktausrichtungsschaltungen erzielt werden.
  • In einem FBD-Modus sind der Verbindungs- und der Kerntakt von dem gleichen Referenztakt abgeleitet und weisen angepasste Bandbreiten auf, aber es gibt keine Ausrichtung zwischen den Taktbereichen. Dies erzeugt eine pseudosynchrone Taktgrenze zwischen dem Deserialisierer 204 (2) und den FBD-Daten. Ein Problem ist jedoch, dass der Verbindungs- und der Kerntakt sich ausrichten können, derart, dass die Synchronisation derselben nicht vohersagbar ist. Falls dies auftritt, könnte RxValid (8) zu irgendeiner Zeit zu einem niedrigen Zustand übergehen und bewirken, dass die FBD-Verbindungssteuerung ausfällt.
  • Um sicherzustellen, dass die oben beschriebene Situation nicht auftritt, kann der erste Schreibvorgang in die Datenwarteschlange 208 (2) verzögert sein. Siehe beispiels weise den Puls 1100 (11) der verglichen mit dem Puls 1000 (10) um 1/2 RxCKP-Zyklus verzögert ist. Dies zwingt das RxValid-Signal, einen zusätzlichen Zyklus am Anfang der Zeit in einem niedrigen Zustand zu bleiben, doch danach kontinuierlich gültig zu bleiben – wodurch dafür gesorgt ist, dass es der FBD-Verbindungssteuerung so erscheint, dass de RxCKP/N- und der CK-Taktbereich synchronisiert und ausgerichtet sind, wenn dieselben es tatsächlich nicht sind. Die „verpassten” Daten werden „gefangen” und einen CK-Zyklus später in die Datenwarteschlange 208 geschrieben (und aus derselben übertragen). Es ist zu beachten, dass diese Lösung lediglich eine Latenz hinzufügt, wenn es eine minimale Spanne gibt, so dass es schwer zu sagen ist, ob dieselbe tatsächlich eine Latenz hinzufügt. Die Größe einer Verzögerung, die zu der ersten Synchronisation hinzugefügt wird, ist durch das RxMargin_First_Wrq[1:0]-Signal (3) bestimmt, das die Steuerlogik 202 zu dem Data_Type[x:0]-Signal kombinieren kann, das dazu dient, den Multiplexer 504 in 5 zu steuern. Eine geringere Spanne bedeutet, dass es eine geringere Wahrscheinlichkeit eines Hinzufügens einer unnötigen Latenz gibt. Im Grunde tauscht diese Lösung Taktausrichtungsschaltungen, die typischerweise analoge Entwürfe sind, die viel Fläche, Leistung, Risiko etc. verbrauchen, gegen eine geringe Sychronisationseinbuße (1/2 bis 1 RxCKP/N-Zyklus) ein. Diese Einbuße kann jedoch beispielsweise durch ein Reduzieren von Synchronisiererschatten unter Verwendung des Verfahrens 100 oder der Vorrichtung 200 ausgeglichen werden.

Claims (20)

  1. Verfahren (100) zum Reduzieren von Synchronisiererschatten, das folgende Merkmale aufweist: Empfangen (102) und Deserialisieren (102) einer serialisierten Gruppe von Datenbits bekannter Länge unter einer Steuerung eines ersten Taktbereichs; Beginnen (104), ein Gültig-Signal für die deserialisierte Gruppe von Datenbits in einem zweiten Taktbereich aufzulösen, vor einem Empfangen der ganzen serialisierten Gruppe von Datenbits, wobei ansprechend auf ein Synchronisierersteuersignal (Wrq[x]), das zu einer vorbestimmten Zeit vor einem vollständigen Empfang der Gruppe von Datenbits geliefert wird, und das in dem ersten Taktbereich erzeugt wird, ein Haltesignal (Hold[x]) zwischengespeichert und ausgegeben wird, und wobei nach einer Ausgabe des Haltesignals (Hold[x]) auf eine Flanke eines Taktes (CK) in dem zweiten Taktbereich hin ein Auflösen-Signal (Resolve[x]) in dem zweiten Taktbereich erzeugt wird; Zwischenspeichern (106) der deserialisierten Gruppe von Datenbits unter einer Steuerung des ersten Taktbereichs auf ein Empfangen und Deserialisieren der ganzen serialisierten Gruppe von Datenbits hin; und i) Auflösen (108) des Gültig-Signals, wobei bei einer weiteren Flanke des Taktes (CK) in dem zweiten Taktbereich das Gültig-Signal (Valid[x]) erzeugt wird; und ii) Übertragen (108) der zwischengespeicherten Gruppe von Datenbits in den zweiten Taktbereich, ansprechend auf das Gültig-Signal nach dem Zwischenspeichern der deserialisierten Gruppe von Datenbits und einer vorbestimmten Anzahl von Taktflanken des zweiten Taktbereichs nach dem Beginnen, das Gültig-Signal aufzulösen.
  2. Verfahren (100) gemäß Anspruch 1 das ferner ansprechend auf einen Datentyp der serialisierten Gruppe von Datenbits ein Beginnen, das Gültig-Signal aufzulösen, aufweist.
  3. Verfahren (100) gemäß Anspruch 1 oder 2, das ferner ein Einstellen der vorbestimmten Anzahl von Taktflanken zwischen dem Beginnen, das Gültig-Signal aufzulösen, und dem Auflösen des Gültig-Signals ansprechend auf ein Versatzsignal aufweist, das für die serialisierte Gruppe von Datenbits empfangen wird.
  4. Verfahren (100) gemäß einem der Ansprüche 1 bis 3, das ferner folgende Schritte aufweist: Beginnen, das Gültig-Signal aufzulösen, ansprechend auf einen Datentyp der serialisierten Gruppe von Datenbits; und Setzen der vorbestimmten Anzahl von Taktflanken ansprechend auf ein Versatzsignal, das für die serialisierte Gruppe von Datenbits empfangen wird.
  5. Verfahren (100) gemäß einem der Ansprüche 1 bis 4, das ferner folgende Schritte aufweist: Empfangen einer sequentiellen Mehrzahl von serialisierten Gruppen von Datenbits; und Verzögern der Auflösung eines Gültig-Signals für eine Erste der serialisierten Gruppen von Datenbits, wenn die Mehrzahl von serialisierten Folgen einen Datentyp aufweist, der eine synchrone Schnittstelle erwartet.
  6. Verfahren (100) gemäß Anspruch 5, bei dem der Datentyp Vollständig-Gepuffert-DIMM (FBD) ist.
  7. Vorrichtung (200) zum Reduzieren von Synchronisiererschatten, die folgende Merkmale aufweist: einen Deserialisierer (204), um unter einer Steuerung eines ersten Taktbereichs eine serialisierte Gruppe von Datenbits bekannter Länge zu empfangen und zu deserialisieren; eine Logik (202, 500), um unter einer Steuerung des ersten Taktbereichs ein Signal zu empfangen, das eine Ankunft der serialisierten Gruppe von Datenbits angibt, und ansprechend darauf i) ein Warteschlangensteuersignal zum Zwischenspeichern der deserialisierten Gruppe von Datenbits unter einer Steuerung des ersten Taktbereichs und ii) ein Synchronisierersteuersignal zum Beginnen einer Auflösung eines Gültig-Signals für die deserialsierte Gruppe von Datenbits in einem zweiten Taktbereich zu erzeugen, wobei das Synchronisierersteuersignal zeitlich gesteuert ist, um eine vorbestimmte Zeit vor dem Warteschlangensteuersignal aufzutreten; einen Synchronisierer (206) unter einer Steuerung des zweiten Taktbereichs, um das Synchronisierersteuersignal zu empfangen und i) vor einem Empfangen der ganzen serialisierten Gruppe von Datenbits zu beginnen, ein Gültig-Signal für die deserialisierte Gruppe von Datenbits aufzulösen, wobei der Synchronisierer ausgelegt ist, um ansprechend auf das Synchronisierersteuersignal ein Haltesignal (Hold[x]) zwischenzuspeichern und auszugeben, und um nach einer Ausgabe des Haltesignals auf eine Flanke eines Taktes (CK) in dem zweiten Taktbereich hin ein Auslösen-Signal (Resolve[x]) in dem zweiten Taktbereich zu erzeugen, und ii) nach dem Empfangen der ganzen serialisierten Gruppe von Datenbits das Gültig-Signal aufzulösen, wobei der Synchronisierer ausgelegt ist, um bei einer weiteren Flanke eines Taktes (CK) in dem zweiten Taktbereich das Gültig-Signal zu erzeugen; eine Datenwarteschlange (208), um die deserialisierte Gruppe von Datenbits ansprechend auf das Warteschlangensteuersignal zwischenzuspeichern und die zwischengespeicherte Gruppe von Datenbits ansprechend auf das Gültig-Signal in den zweiten Taktbereich zu übertragen.
  8. Vorrichtung (200) gemäß Anspruch 7, bei der die Logik (202, 500) folgende Merkmale aufweist: eine Verzögerungskette (502), die eine Mehrzahl von Verzögerungselementen aufweist; und einen Multiplexer, um Ausgaben von einer Mehrzahl der Verzögerungselemente zu empfangen und um das Synchronisierersteuersignal ansprechend auf einen Datentyp der serialisierten Gruppe von Datenbits auszugeben.
  9. Vorrichtung (200) gemäß Anspruch 8, wobei: die Vorrichtung (200) eine sequentielle Mehrzahl von serialisierten Gruppen von Datenbits empfängt; und der Multiplexer Steuereingaben aufweist, die für eine Erste der serialisierten Gruppen von Datenbits und ansprechend auf die Mehrzahl von serialisierten Gruppen von Datenbits, die einen Datentyp aufweisen, der eine synchrone Schnittstelle erwartet, bewirken, dass der Multiplexer ein Signal ausgibt, das von einem Nachgelagerten der Mehrzahl von Verzögerungselementen abgeleitet ist.
  10. Vorrichtung (200) gemäß Anspruch 9, bei der der Datentyp Vollständig-Gepuffert-DIMM (FBD) ist.
  11. Vorrichtung (200) gemäß einem der Ansprüche 7 bis 10, bei der die Logik (202, 500) folgende Merkmale aufweist: eine Verzögerungskette (502), die eine Mehrzahl von Verzögerungselementen aufweist; und einen Multiplexer, um Ausgaben von einer Mehrzahl der Verzögerungselemente zu empfangen und um das Warteschlangensteuersignal ansprechend auf ein Versatzsignal auszugeben, das für die serialisierte Gruppe von Datenbits empfangen wird.
  12. Vorrichtung (200) gemäß einem der Ansprüche 7 bis 11, bei der die Logik (202, 500) folgende Merkmale aufweist: eine Verzögerungskette (502), die eine Mehrzahl von Verzögerungselementen aufweist; einen ersten Multiplexer (504), um Ausgaben von einer ersten Mehrzahl der Verzögerungselemente zu empfangen und um das Synchronisierersteuersignal ansprechend auf einen Datentyp der serialisierten Gruppe von Datenbits auszugeben; und einen zweiten Multiplexer (506), um Ausgaben von einer zweiten Mehrzahl der Verzögerungselemente zu empfangen und um das Warteschlangensteuersignal ansprechend auf ein Versatzssignal auszugeben, das für die serialisierte Gruppe von Datenbits gesendet wird.
  13. Vorrichtung (200) gemäß Anspruch 12, wobei: die Vorrichtung (200) eine sequentielle Mehrzahl von serialisierten Gruppen von Datenbits empfängt; und der erste Multiplexer (504) Steuereingaben aufweist, die für eine Erste der serialisierten Gruppen von Datenbits und ansprechend auf die Mehrzahl von serialisierten Gruppen von Datenbits, die einen Datentyp aufweisen, der eine synchrone Schnittstelle erwartet, bewirken, dass der erste Multiplexer (504) ein Signal ausgibt, das von einem Nachgelagerten der Mehrzahl von Verzögerungselementen abgeleitet ist.
  14. Vorrichtung (200) gemäß Anspruch 13, bei der der Datentyp Vollständig-Gepuffert-DIMM (FBD) ist.
  15. Vorrichtung (200) gemäß einem der Ansprüche 7 bis 14, bei der die Datenwarteschlange (208) eine Mehrzahl von Einträgen aufweist, um eine Mehrzahl von sequentiell empfangenen Gruppen von Datenbits zu speichern; und bei der der Synchronisierer (206) sequentiell ein Gültig-Signal für jeden Eintrag der Datenwarteschlange (208) auflöst.
  16. Vorrichtung (200) gemäß Anspruch 15, die ferner eine Logik aufweist, um auf ein Auflösen eines Gültig-Signals für irgendeinen der Einträge der Datenwarteschlange (208) hin ein Stammdaten-Gültig-Signal freizugeben.
  17. Vorrichtung (200) gemäß Anspruch 15 oder 16, die ferner einen Datenwarteschlangenmultiplexer (900) aufweist, der i) Dateneingänge, die mit jeweiligen Einträgen der Datenwarteschlange (208) gekoppelt sind, und ii) Steuereingänge aufweist, die gekoppelt sind, um Signale zu empfangen, die von den Gültig-Signalen für die Einträge der Datenwarteschlange (208) abgeleitet sind.
  18. Vorrichtung (200) gemäß einem der Ansprüche 7 bis 17, wobei: die Vorrichtung (200) eine sequentielle Mehrzahl von serialisierten Gruppen von Datenbits empfängt; und die Logik (202) für eine erste der serialisierten Gruppen von Datenbits und ansprechend auf die Mehrzahl von serialisierten Gruppen von Datenbits, die einen Datentyp aufweisen, der eine synchrone Schnittstelle erwartet, die Auflösung eines Gültig-Signals für eine Erste der serialisierten Gruppen von Datenbits verzögert.
  19. Vorrichtung (200) gemäß Anspruch 18, bei der der Datentyp Vollständig-Gepuffert-DIMM (FBD) ist.
  20. Vorrichtung (200), die folgende Merkmale aufweist: einen Deserialisierer (204), um unter einer Steuerung eines ersten Taktbereichs serialisierte Gruppen von Datenbits unterschiedlicher, aber bekannter Längen zu empfangen und zu deserialisieren; einen Synchronisierer (206), um ansprechend auf einen Datentyp jeder deserialisierten Gruppe von Datenbits und für jede deserialisierte Gruppe von Datenbits Steuersignale zu erzeugen, um i) zu beginnen, ein Gültig-Signal für die deserialisierte Gruppe von Datenbits aufzulösen, bevor die deserialisierte Gruppe von Datenbits vollständig empfangen ist, wobei der Synchronisierer ausgelegt ist, um ansprechend auf ein Synchronisierersteuersignal ein Haltesignal (Hold[x]) zwischenzuspeichern und auszugeben, und um nach einer Ausgabe des Haltesignals auf eine Flanke eines Taktes (CK) in einem zweiten Taktbereich hin ein Auslösen-Signal (Resolve[x]) in dem zweiten Taktbereich zu erzeugen; ii) die deserialisierte Gruppe von Datenbits unter einer Steuerung eines ersten Taktbereichs zwischenzuspeichern; und iii) die zwischengespeicherte Gruppe von Datenbits ansprechend auf das Gültig Signal in den zweiten Taktbereich zu übertragen, wobei der Synchronisierer ausgelegt ist, um bei einer weiteren Flanke eines Taktes (CK) in dem zweiten Taktbereich das Gültig-Signal zu erzeugen.
DE102006048857A 2005-11-09 2006-10-16 Verfahren und Vorrichtung zum Reduzieren von Synchronisiererschatten Expired - Fee Related DE102006048857B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/271,398 2005-11-09
US11/271,398 US7515667B2 (en) 2005-11-09 2005-11-09 Method and apparatus for reducing synchronizer shadow

Publications (2)

Publication Number Publication Date
DE102006048857A1 DE102006048857A1 (de) 2007-05-10
DE102006048857B4 true DE102006048857B4 (de) 2010-09-09

Family

ID=37950091

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006048857A Expired - Fee Related DE102006048857B4 (de) 2005-11-09 2006-10-16 Verfahren und Vorrichtung zum Reduzieren von Synchronisiererschatten

Country Status (2)

Country Link
US (1) US7515667B2 (de)
DE (1) DE102006048857B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305195A (ja) * 2007-06-07 2008-12-18 Toshiba Corp 電子機器および電源供給方法
US20090265490A1 (en) * 2008-04-04 2009-10-22 Tarun Setya High-Speed Video Serializer and Deserializer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998013768A2 (en) * 1996-09-25 1998-04-02 Philips Electronics N.V. Interface for transferring data between two clock domains
US6425088B1 (en) * 1997-11-27 2002-07-23 Kabushiki Kaisha Toshiba Method of the apparatus for transferring data between circuits

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995080A (en) * 1996-06-21 1999-11-30 Digital Equipment Corporation Method and apparatus for interleaving and de-interleaving YUV pixel data
US6173435B1 (en) * 1998-02-20 2001-01-09 Lsi Logic Corporation Internal clock handling in synthesis script
US6359479B1 (en) * 1998-08-04 2002-03-19 Juniper Networks, Inc. Synchronizing data transfers between two distinct clock domains
US6681337B1 (en) * 2000-04-25 2004-01-20 Sun Microsystems, Inc. Method and apparatus for loading data from an address specified by an address register into a different register wherein the registers are clocked in different time domains
DE10048732A1 (de) * 2000-09-29 2002-04-18 Philips Corp Intellectual Pty Multiprozessor-Anordnung
DE10122702C2 (de) * 2001-05-10 2003-08-21 Infineon Technologies Ag Verfahren und Vorrichtung zum Erzeugen eines zweiten Signals mit einem auf einem zweiten Takt basierenden Takt aus einem ersten Signal mit einem ersten Takt
US7161999B2 (en) * 2002-01-02 2007-01-09 Intel Corporation Synchronizing data or signal transfer across clocked logic domains
US7450616B2 (en) * 2003-01-10 2008-11-11 Texas Instruments Incorporated Area efficient serializer implementation for small functional-to-serial clock ratios
US7275171B2 (en) * 2003-05-22 2007-09-25 Rambus Inc. Method and apparatus for programmable sampling clock edge selection
US6987404B2 (en) * 2003-10-10 2006-01-17 Via Technologies, Inc. Synchronizer apparatus for synchronizing data from one clock domain to another clock domain
US7003423B1 (en) * 2003-12-18 2006-02-21 Altera Corporation Programmable logic resource with data transfer synchronization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998013768A2 (en) * 1996-09-25 1998-04-02 Philips Electronics N.V. Interface for transferring data between two clock domains
US6425088B1 (en) * 1997-11-27 2002-07-23 Kabushiki Kaisha Toshiba Method of the apparatus for transferring data between circuits

Also Published As

Publication number Publication date
US20070104302A1 (en) 2007-05-10
US7515667B2 (en) 2009-04-07
DE102006048857A1 (de) 2007-05-10

Similar Documents

Publication Publication Date Title
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE60002567T2 (de) Dynamische wellenpipelineschnittstellenanordnung und verfahren dafür
DE10235739B4 (de) Register, das auf einem Speichermodul montiert ist sowie Verwendung eines Registers in einem Speichermodul
DE69906793T2 (de) Verfahren und anordnung für hochgeschwindigkeitsdatenerfassung mit korrektur der bit-zu-bit-zeitgebung und speicheranordnung unter verwendung derselben
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE4017494A1 (de) Fehlerdetektor fuer eine fernmeldeschaltung
JP2003308694A (ja) 半導体装置
DE202009019093U1 (de) Vorrichtung und System für automatische Datenausrichter für mehrere serielle Empfänger
DE68922984T2 (de) Programmierbare Zeitsteuerung der Datenübertragung.
DE102005019568B4 (de) Speichereinrichtung, Verwendung derselben und Verfahren zur Synchronisation eines Datenwortes
DE3887249T2 (de) Digitaler Multiplexer.
DE60125673T2 (de) Verfahren und Vorrichtung zur Ausführung einer kryptographischen Funktion
DE102006048857B4 (de) Verfahren und Vorrichtung zum Reduzieren von Synchronisiererschatten
DE602004006236T2 (de) Testen von elektronischen schaltungen
DE102007004713A1 (de) Datenübergabeeinheit zum Übertragen von Daten zwischen unterschiedlichen Taktbereichen
DE102005024917A1 (de) Dynamische Synchronisierersimulation
DE60100808T2 (de) Erfassung eines regeisterwertes zu einem anderen taktbereich
DE102008004857B4 (de) Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
DE10312260A1 (de) Verzögerungsregelschleife, die einen Kantendetektor und eine feste Verzögerung aufweist
DE102004011673B3 (de) Vorrichtung zur Datensynchronisation
DE68923271T2 (de) Verfahren und anordnung zur wahrnehmung bevorstehender überläufe und/oder unterschreitungen eines elastischen puffers.
DE19818430B4 (de) Bidirektionelle Datenein/Ausgabeschaltung eines Synchronspeicherelements und Verfahren zum Steuern derselben
WO2005086408A1 (de) Schnittstellenvorrichtung und verfahren zur synchronisation von daten
DE102006036823B4 (de) Datensynchronisier- und -pufferschaltung zur Synchronisation von seriell empfangenen Datensignalen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130501