DE102007004008B4 - Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, entsprechende Vorrichtung und entsprechendes Speichermodul - Google Patents

Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, entsprechende Vorrichtung und entsprechendes Speichermodul Download PDF

Info

Publication number
DE102007004008B4
DE102007004008B4 DE102007004008A DE102007004008A DE102007004008B4 DE 102007004008 B4 DE102007004008 B4 DE 102007004008B4 DE 102007004008 A DE102007004008 A DE 102007004008A DE 102007004008 A DE102007004008 A DE 102007004008A DE 102007004008 B4 DE102007004008 B4 DE 102007004008B4
Authority
DE
Germany
Prior art keywords
clock
ring buffer
buffer memory
data bits
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.)
Expired - Fee Related
Application number
DE102007004008A
Other languages
English (en)
Other versions
DE102007004008A1 (de
Inventor
Peter Gregorius
Thomas Rickes
Martin Streibl
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.)
Polaris Innovations Ltd
Original Assignee
Qimonda AG
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 Qimonda AG filed Critical Qimonda AG
Publication of DE102007004008A1 publication Critical patent/DE102007004008A1/de
Application granted granted Critical
Publication of DE102007004008B4 publication Critical patent/DE102007004008B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Dram (AREA)

Abstract

Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, umfassend: Empfangen von Datenbits auf Basis eines Empfangtakts, sequentielles Speichern der Datenbits in einem Ringpufferspeicher (50), gleichzeitiges Übertragen einer Anzahl der gespeicherten Datenbits aus dem Ringpufferspeicher (50) auf Basis eines ersten Sendetakts, wobei der Schritt des gleichzeitigen Übertragens der Anzahl von gespeicherten Datenbits aus dem Ringpufferspeicher (50) bei Lesevorgängen ein Zugreifen auf den Ringpufferspeicher (50) auf Basis eines ersten Lesezeigers (52) und ein Vorbewegen des ersten Lesezeigers (52) um eine Anzahl von Bitpositionen, welche der Anzahl von Datenbits entspricht, mit jedem Zyklus des ersten Sendetakts umfasst, und Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher (50) auf Basis eines zweiten Sendetakts, wobei der Schritt des Übertragens der gespeicherten Datenbits aus dem Ringpufferspeicher (50) bei Lesevorgängen ein Zugreifen auf den Ringpufferspeicher (50) auf Basis eines zweiten Lesezeigers (53) umfasst.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, eine entsprechende Vorrichtung und ein entsprechendes Speichermodul, bei welchem das Verfahren und die Vorrichtung verwendet werden. Die Erfindung ist insbesondere geeignet zur Verwendung bei Hochgeschwindigkeitsspeicheranwendungen, wie zum Beispiel Speicher vom DRAM- und DDR-Typ (DRAM: Dynamic Random Access Memory, DDR: Double Data Rate).
  • Verwandte Technik
  • Bei derzeitigen Hochgeschwindigkeitsspeichervorrichtungen, wie zum Beispiel bei Speichervorrichtungen vom DRAM- und DDR-Typ, ist es erforderlich, Daten zwischen verschiedenen Taktdomänen zu übertragen. Insbesondere werden serielle Mehrkanalverbindungen verwendet, um Daten zwischen einem Speicher-Controller und Speichermodulen einer Speichervorrichtung zu übertragen. Gleichzeitig wird eine rahmenbasierte parallele Datenverbindung verwendet, um Daten innerhalb eines Speichermoduls zu und von einem Speicherkern, wie zum Beispiel ein DRAM-Array, zu übertragen. Zu diesem Zweck ist es erforderlich, den seriellen Datenstrom in einen parallelen Datenstrom zu konvertieren, wobei die verschiedenen Takte zur Übertragung der seriellen und parallelen Datenströme berücksichtigt werden müssen. Bei einem Typ von Speicherkonfiguration ist es erforderlich, den seriellen Datenstrom auf einem Kanal einer seriellen Multikanalverbindung in Datenrahmen von neun Datenbits zu konvertieren, welche parallel an den Speicherkern übertragen werden. Bei dieser Konfiguration werden die Datenrahmen mit einer Frequenz übertragen, welche 1/9 der Frequenz entspricht, bei welcher Datenbits aus dem seriellen Datenstrom empfangen werden.
  • Bei der obigen Konfiguration besteht dahingehend ein Problem, dass die Frequenz, mit welcher Datenbits empfangen werden, ein ungerades Vielfaches der Frequenz ist, mit welcher die Datenrahmen ausgesendet werden. Insbesondere wenn ein Sendetakt zum übertragen der Datenrahmen erzeugt wird aus einem Empfangstakt, auf dessen Basis die Datenbits empfangen werden, besteht ein gewisses Ausmaß an Fehlanpassung zwischen dem Empfangstakt und dem Sendetakt. Es ist somit äußerst schwierig, die Konvertierung des seriellen Datenstroms in die Rahmen auf Basis von herkömmlichen Techniken zu bewerkstelligen.
  • Angesichts dieses Problems wurde vorgeschlagen, einen Ringpufferspeicher zu verwenden, um die Konvertierung des seriellen Datenstroms in ein rahmenbasiertes paralleles Format zu bewerkstelligen. Ein solcher Ringpufferspeicher ist schematisch in 5 dargestellt.
  • Wie dargestellt, umfasst der Ringpufferspeicher 100 eine Anzahl von Datenregistern, welche von 0–19 nummeriert sind. Um wenigstens einen aus neun Datenbits bestehenden Datenrahmen speichern zu können, umfasst der Ringpufferspeicher 100 k = 20 Datenregister. Datenbits werden in dem Ringpufferspeicher auf eine sequentielle Weise gespeichert, d. h. ein Schreibzeiger 101 wird mit jedem Zyklus des Empfangstakts um eine Bitposition vorbewegt. Um die gespeicherten Datenbits auszulesen, werden mit jedem Zyklus des Sendetakts neun Bits parallel ausgelesen, und ein Lesezeiger 102 wird um neun Bits vorbewegt.
  • Der Ringpufferspeicher bietet den Vorteil, dass die Positionen des Schreibzeigers 101 und des Lesezeigers 102 relativ zueinander variieren können, d. h. ein Phasenversatz zwischen dem Empfangstakt und dem Sendetakt ist möglich. Typischerweise wird ein größerer Wert für k auch einen größeren Phasenversatz ermöglichen.
  • In 5 bezeichnet das Bezugszeichen 112 einen Abschnitt von alten Datenbits, welche bereits aus dem Ringpufferspeicher 100 übertragen wurden, jedoch noch nicht überschrieben wurden. Das Bezugszeichen 114 bezeichnet einen Rahmen von neun Datenbits, welcher an der Position des Lesezeigers 102 beginnt. Das Bezugszeichen 116 bezeichnet einen Abschnitt von neuen Datenbits, welche bereits in den Ringpufferspeicher 100 geschrieben wurden, jedoch noch nicht übertragen wurden. Der Schreibzeiger 101 und der Lesezeiger 102 werden im Uhrzeigersinn vorbewegt.
  • Es wurden Architekturen für Speichervorrichtungen vorgeschlagen, bei welchen Daten nicht nur von einem Speicher-Controller zu einem Speichermodul übertragen werden, sondern auch von einem Speichermodul zu einem nächsten Speichermodul einer Reihenanordnung. Ein Beispiel für eine solche Architektur ist eine so genannte Parallel-Loop-Forward-Konfiguration (parallele Vorwärtsschleifenkonfiguration), welche schematisch in 6 dargestellt ist.
  • Wie in 6 dargestellt, umfasst eine Speichervorrichtung 200 zwei Speichermodule 210a, 210b, welche in einer Reihenanordnung angeordnet sind. Das erste Speichermodul 210a der Reihenanordnung empfängt Daten CA/WD ausgehend von einem Speicher-Controller (nicht dargestellt) auf Basis eines Taktsignals CL. Aus dem ersten Speichermodul 210a werden die Daten CA/WD an das zweite Speichermodul 210b der Reihenanordnung weitergeleitet. Ein Lesedatensignal RD, welches aus dem ersten Speichermodul 210a kommt, wird auf Basis des Taktsignals CL an das zweite Speichermodul 210b übertragen. Aus dem zweiten Speichermodul 210b wird das Lesedatensignal RD an den Speicher-Controller (nicht dargestellt) übertragen. Folglich kommen unterschiedliche Signalwege A, B zum Einsatz, wenn ein Lesevorgang an dem Speichermodul 210a und an dem Speichermodul 210b ausgeführt wird. Die Verbindung zwischen dem Speicher-Controller und den Speichermodulen 210a, 210b ist eine serielle Mehrkanalverbindung. Innerhalb der Speichermodule 210a, 210b werden aus einem Kanal der seriellen Mehrkanalverbindung stammende Daten in einem neun parallele Datenbits verwendenden rahmenbasierten Format übertragen.
  • Folglich besteht bei der in 6 veranschaulichten Architektur ein Bedarf für einen effektiven Weg zur Konvertierung eines empfangenen seriellen Datenstroms in Rahmen von parallelen Datenbits, welcher es ferner ermöglicht, den empfangenen Datenstrom wiederauszusenden oder weiterzuleiten. Es ist eine Aufgabe der Erfindung, diesem Bedarf Rechnung zu tragen.
  • Die US 6,732,205 B2 beschreibt eine Schaltung zur Seriell-Parallel-Wandlung, welche einen Ringpufferspeicher umfasst. Daten werden auf Basis eines ersten Taktsignals in den Ringpufferspeicher eingelesen und in Gruppen von acht Bits auf Grundlage eines zweiten Taktsignals aus dem Ringpufferspeicher ausgelesen.
  • Die DE 103 61 496 A1 beschreibt eine Speicherschnittstellenanordnung, welche auf Grundlage eines ersten Taktsignals, eines zweiten Taktsignals und eines dritten Taktsignals arbeitet. Das erste Taktsignal wird einer Speichereinrichtung zugeführt, wobei die Speichereinrichtung bei einem Lesezugriff die aus der Speichereinrichtung angeforderten Daten im Takt des zweiten Taktsignals an die Speicherschnittstelle überträgt. Die Speicherschnittstelle erzeugt aus dem ersten Taktsignal das dritte Taktsignal, welches dieselbe Frequenz wie das erste und das zweite Taktsignal aufweist, aber gegenüber dem zweiten Taktsignal eine vorgegebene Phasenverschiebung hat. Die Speicherschnittstelle übernimmt die ihr zugeführten Daten mit den steigenden und/oder fallenden Flanken des dritten Taktsignals oder des invertierten dritten Taktsignals.
  • Die US 2004/0228429 A1 beschreibt einen Empfänger für Digitaldaten. Der Empfänger umfasst einen Ringpufferspeicher, welcher empfangene Daten speichert. Ein Schreibzeiger ist vorgesehen, um das Schreiben der empfangenen Daten in den Ringpufferspeicher zu steuern, und ein Lesezeiger ist vorgesehen, um das Auslesen der Daten aus dem Ringpufferspeicher zu steuern.
  • Die US 2005/0273641 A1 beschreibt eine Vorrichtung zur Deserialisierung von Datenströmen. Die Vorrichtung beinhaltet einen Ringpufferspeicher, in welchem seriell empfangene Datenbits eingespeichert werden und aus welchem diese parallel wieder ausgegeben werden. Bei der parallelen Ausgabe der Datenbits kann zwischen verschiedenen möglichen Taktfrequenzen ausgewählt werden.
  • Die EP 11 308 42 A2 beschreibt eine Kommunikationsschnittstelle, bei welcher Ringpufferspeicher vorgesehen sind, um einen Übergang zwischen verschiedenen Taktdomänen zu ermöglichen. Das Schreiben in den Ringpufferspeicher erfolgt auf Grundlage eines Schreibzeigers, und das Lesen aus den Ringpufferspeichern erfolgt auf Grundlage eines Lesezeigers.
  • Zusammenfassung der Erfindung
  • Zur Lösung dieser Aufgabe bietet die vorliegende Erfindung ein Verfahren zur Übertragung von Daten zwischen verschiedenen Taktdomänen gemäß dem unabhängigen Anspruch 1, eine Vorrichtung zur Übertragung von Daten zwischen verschiedenen Taktdomänen gemäß dem unabhängigen Anspruch 11 und ein Speichermodul gemäß dem unabhängigen Anspruch 23. Die abhängigen Ansprüche definieren bevorzugte und vorteilhafte Ausführungsbeispiele der Erfindung.
  • Gemäß einem Ausführungsbeispiel bietet die vorliegende Erfindung somit ein Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen gemäß Anspruch 1, wobei das Verfahren umfasst: Empfangen von Datenbits auf Basis eines Empfangstakts, sequentielles Speichern der Datenbits in einem Ringpufferspeicher, gleichzeitiges Übertragen einer Anzahl der gespeicherten Datenbits aus dem Ringpufferspeicher auf Basis eines ersten Sendetakts und Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher auf Basis eines zweiten Sendetakts. Folglich wird durch das erfindungsgemäße Verfahren sowohl eine Konvertierung zwischen einem seriellen und einem parallelen Datenformat bewerkstelligt als auch ein Übergang zwischen verschiedenen Taktdomänen ermöglicht, indem die gespeicherten Datenbits auf Basis des zweiten Sendetakts wiederausgesendet werden.
  • Der zweite Sendetakt weist vorzugsweise dieselbe Frequenz auf wie der Empfangstakt, es kann jedoch eine Phasenverschiebung zwischen dem Empfangstakt und dem zweiten Sendetakt bestehen. Abhängig von der Anzahl n von parallel aus dem Ringpufferspeicher übertragenen Datenbits wird der erste Sendetakt vorzugsweise derart ausgewählt, dass er im Durchschnitt 1/n mal die Frequenz des Empfangstakts aufweist. Indem der Ringpufferspeicher verwendet wird, ist es möglich, eine ungerade Anzahl von Datenbits zur gleichzeitigen Übertragung zu verwenden, wodurch ein Phasenversatz und Phasenvariationen zwischen dem Empfangstakt und dem ersten Sendetakt möglich werden.
  • Gemäß einem bevorzugten Ausführungsbeispiel ist der Ringpufferspeicher derart in eine Anzahl von N zyklischen Registern unterteilt, dass benachbarte Datenbits des Ringpufferspeichers sich in verschiedenen zyklischen Registern befinden. In diesem Fall umfasst das Verfahren bei Schreibvorgängen ein Zugreifen auf die zyklischen Register auf Basis eines entsprechenden geteilten Takts, welcher 1/N mal die Frequenz des Empfangstakts aufweist, und Vorbewegen eines Schreibzeigers für jedes zyklische Register mit jedem Zyklus des entsprechenden geteilten Takts.
  • Vorzugsweise sind die den verschiedenen zyklischen Registern entsprechenden geteilten Takte zueinander phasenverschoben. Die Phasenverschiebung kann 1/N mal dem Taktzyklus der geteilten Takte betragen. Dies hat den Vorteil, dass zur Implementierung des Ringpufferspeichers keine Schaltungen erforderlich sind, welche schneller als die Frequenz des geteilten Takts arbeiten. Insbesondere ist es nicht erforderlich, Schaltungskomponenten einzusetzen, welche mit der vollen Frequenz des Empfangstakts arbeiten, d. h. der Empfangstakt kann ein virtueller Takt sein, welcher in dem System nicht tatsächlich in Form eines Taktsignals vorliegt.
  • Gemäß einem weiteren Ausführungsbeispiel betrifft die Erfindung eine Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen gemäß Anspruch 11. Die Vorrichtung umfasst einen Empfänger zum Empfangen von Datenbits auf Basis eines Empfangstakts, einen Ringpufferspeicher zur sequentiellen Speicherung der Datenbits, einen ersten Sender zum gleichzeitigen Übertragen einer Anzahl der gespeicherten Datenbits aus dem Ringpufferspeicher auf Basis eines ersten Sendetakts und einen zweiten Sender zum Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher auf Basis eines zweiten Sendetakts. Vorzugsweise ist die Vorrichtung dazu ausgestaltet, gemäß dem oben beschriebenen Verfahren zu arbeiten.
  • Gemäß einem weiteren Ausführungsbeispiel betrifft die Erfindung ein Speichermodul gemäß Anspruch 23, welches die zuvor genannte Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen umfasst. Insbesondere umfasst das Speichermodul einen Speicherkern zur Speicherung von Daten, einen Empfänger zum Empfangen von Datenbits von einem Speicher-Controller oder einem weiteren Speichermodul auf Basis eines Empfangstakts, einen Ringpufferspeicher zur sequentiellen Speicherung der Datenbits, einen ersten Sender zum gleichzeitigen Übertragen einer Anzahl der gespeicherten Datenbits aus dem Ringpufferspeicher an den Speicherkern auf Basis eines ersten Sendetakts und einen zweiten Sender zum Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher an ein weiteres Speichermodul auf Basis eines zweiten Sendetakts.
  • Nachfolgend wird die Erfindung anhand bevorzugter Ausführungsbeispiele und unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert.
  • Kurzbeschreibung der Zeichnungen
  • 1 veranschaulicht schematisch eine Vorrichtung zur Daenübertragung zwischen verschiedenen Taktdomänen gemäß einem Ausführungsbeispiel der Erfindung.
  • 2 veranschaulicht schematisch zyklische Register in einem Ringpufferspeicher gemäß einem Ausführungsbeispiel der Erfindung.
  • 3 veranschaulicht schematisch eine Schaltung zur Implementierung eines zyklischen Registers gemäß einem Ausführungsbeispiel der Erfindung.
  • 4 veranschaulicht schematisch eine Schaltung zur Implementierung der Vorrichtung von 1.
  • 5 veranschaulicht schematisch einen Ringpufferspeicher gemäß dem Stand der Technik.
  • 6 veranschaulicht schematisch eine Speichervorrichtung gemäß einer so genannten Parallel-Loop-Forward-Architektur.
  • Detaillierte Beschreibung bevorzugter Ausführungsbeispiele
  • Im Folgenden wird die Erfindung mit Bezug auf ein spezielles Ausführungsbeispiel erläutert, welches die Datenübertragung zwischen verschiedenen Taktdomänen in einer Speichervorrichtung betrifft. Insbesondere kann die Speichervorrichtung eine Architektur aufweisen wie in 6 dargestellt. Dies bedeutet speziell, dass die Erfindung verwendet wird, um einen seriellen Datenstrom einer seriellen Mehrkanalverbindung zu konvertieren in Datenrahmen, welche aus einer Anzahl von parallelen Bits zur gleichzeitigen Übertragung an einen Speicherkern, z. B. ein DRAM-Array, bestehen, und um den empfangenen seriellen Datenstrom zwischen verschiedenen Speichermodulen wiederauszusenden. Wie für den Fachmann ersichtlich, sind auch verschiedenartige andere Anwendung der Erfindung möglich.
  • In der folgenden Beschreibung wird angenommen, dass Daten zwischen dem Speicher-Controller und den Speichermodule, einer Speichervorrichtung mittels einer seriellen Mehrkanalverbindung übertragen werden, welche auf Basis eines Empfangstakts arbeitet. Innerhalb der Speichermodule werden die Daten in Form von aus neun parallelen Datenbits bestehenden Datenrahmen auf Basis eines ersten Sendetakts übertragen. Die Frequenz des ersten Sendetakts entspricht im Mittel 1/9 mal der Frequenz des Empfangstakts. Auf Basis eines zweiten Sendetakts, welcher dieselbe Frequenz wie der Empfangstakt aufweist, jedoch eine Phasenverschiebung mit Bezug auf den Empfangstakt aufweisen kann, werden die Daten aus einem Speichermodul an das nächste Speichermodul einer Reihenanordnung wiederausgesendet oder weitergeleitet. Die elektronischen Schaltungen zur Implementierung der Erfindung werden auf Basis eines geteilten Takts mit einer langsameren Frequenz betrieben, welche 1/4 mal der Frequenz des Empfangstakes entspricht. Spezieller verwendet die Erfindung vier geteilte Takte, welche zueinander um 1/4 Taktzyklus der geteilten Takte phasenverschoben sind. Folglich entspricht die Phasenverschiebung zwischen den geteilten Takten einem Taktzyklus des Empfangstakts.
  • 1 veranschaulicht schematisch eine Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen in der Speichervorrichtung. Die Vorrichtung umfasst einen Empfänger 20 zum Empfangen eines seriellen Datenstroms von einem Speicher-Controller oder einem benachbarten Speichermodul der Speichervorrichtung. Um die empfangenen Datenbits zu speichern, umfasst die Vorrichtung einen Ringpufferspeicher 50. Ferner umfasst die Vorrichtung einen ersten Sender 40, um die in dem Ringpufferspeicher 50 gespeicherten Datenbits in Form von Datenrahmen an den Speicherkern des Speichermoduls zu übertragen, und einen zweiten Sender 30, um die gespeicherten Datenbits an ein benachbartes Speichermodul der Speichervorrichtung auszusenden. Der Empfänger 20 ist dazu ausgestaltet, den seriellen Datenstrom auf Basis eines Empfangstakts zu empfangen. Der erste Sender 40 ist dazu ausgestaltet, die Datenrahmen auf Basis eines ersten Sendetakts zu übertragen. Der zweite Sender 30 ist dazu ausgestaltet, einen serieller Datenstrom auf Basis eines zweiten Sendetakts zu übertragen. Die Frequenz des zweiten Sendetakts entspricht der Frequenz des Empfangstakts. Die von dem ersten Sender 40 ausgesendeten Rahmen bestehen aus neun parallelen Datenbits, und die Frequenz des ersten Sendetakts entspricht somit im Mittel 1/9 mal der Frequenz des Empfangstakts und des zweiten Sendetakts.
  • In 1 sind Datenregister des Ringpufferspeichers 50, weiche zur Speicherung der empfangenen Datenbits verwendet werden, von 0 bis 19 nummeriert. Ein Schreibzeiger 51 bezeichnet die Position des Datenregisters zur Speicherung des nächsten Datenbits, welches von dem Empfänger 20 empfangen wird. Ein erster. Lesezeiger 52 bezeichnet die Position des ersten Datenbits eines Datenrahmens zur Übertragung durch den ersten Sender 40. Ein zweiter Lesezeiger 53 bezeichnet die Position des Datenbits zur Übertragung durch den zweiten Sender 30. Der Abschnitt des Ringpufferspeichers 50, welche neue Datenbits enthält, welche von dem Empfänger 20 empfangen wurden, jedoch noch nicht von dem ersten Sender 40 ausgesendet wurden, ist durch 76 bezeichnet. Der Abschnitt des Ringpufferspeichers 50, welcher den Rahmen zur Übertragung durch den ersten Sender 40 enthält, ist mit 74 bezeichnet. Der Abschnitt 74 beginnt an der Position des ersten Lesezeigers 52 und umfasst neun Datenregister. Der Abschnitt des Ringpufferspeichers 50, welcher alte Datenbits beinhaltet, welche bereits von dem ersten Sender ausgesendet wurden, jedoch noch nicht mit neuen Datenbits überschrieben wurden, ist mit 72 bezeichnet.
  • Wie nachfolgend näher erläutert, weist der Ringpufferspeicher 50 eine spezielle segmentierte Struktur auf, d. h. ist in vier zyklische Register unterteilt. Jedes der zyklischen Register wird auf Basis eines geteilten Takts betrieben, welcher eine Frequenz aufweist, die 1/4 mal der Frequenz des Empfangstakts und des zweiten Sendetakts beträgt. Somit ist der Ringpufferspeicher 50 auf Basis von Komponenten implementiert, welche bei einer Frequenz arbeiten, welche erheblich kleiner ist als die Frequenz des Empfangstakts und des Sendetakts. Als Ergebnis können für den Empfangstakt und den zweiten Sendetakt höhere Frequenzen verwendet werden.
  • Um die gespeicherten Datenbits aus dem Ringpufferspeicher 50 auf Basis des zweiten Sendetakts wieder auszusenden, wird dem zweiten Sender 30 eine Gruppe von vier Datenbits zugeführt, wobei jedes der vier Bits aus einem unterschiedlichem zyklischen Register stammt. Der zweite Sender 30 führt dann die Gruppe von vier Datenbits zu einem seriellen Datenstrom zusammen. Der Abschnitt des Ringpufferspeichers 50, welcher die Gruppe von Datenbits beinhaltet, beginnt an der Position des zweiten Lesezeigers 53 und ist mit 78 bezeichnet.
  • Die Vorrichtung von 1 arbeitet wie folgt: Datenbits werden mit jedem Taktzyklus des Empfangstakts sequentiell in dem Ringpufferspeicher 50 gespeichert, wobei der Schreibzeiger 51 mit jedem Taktzyklus um eine Position vorbewegt wird. Mit jedem Zyklus des ersten Sendetakts werden neun Datenbits parallel aus dem Ringpufferspeicher 50 ausgelesen, und der erste Lesezeiger 52 wird um neun Positionen vorbewegt. Mit jedem Zyklus eines geteilten Takts, welcher einem der vier zyklischen Register entspricht, wird eine Gruppe von vier Datenbits aus dem Ringpufferspeicher 50 dem zweiten Sender 30 zugeführt, und der zweite Lesezeiger 53 wird um vier Positionen vorbewegt. In der Darstellung von 1 werden der Schreibzeiger 51 und der erste und zweite Lesezeiger 52, 53 im Uhrzeigersinn vorbewegt. Nachdem die Datenbits von dem ersten Sender 40 und dem zweiten Sender 30 übertragen wurden, werden sie im Verlauf des Vorbewegens der Schreib- und Lesezeiger 51, 52, 53 mit neuen Datenbits überschrieben. Der zyklische Aufbau des Ringpufferspeichers 50 bedeutet, dass der Schreibzeiger 51 und die Lesezeiger 52 und 53 von einer Bitposition am Ende des Ringpufferspeichers 50 zu einer Bitposition am Anfang des Ringpufferspeichers 50 bewegt werden, wenn de Zeiger über die letzte Bitposition hinausbewegt wird (d. h. die Bitposition mit der Nummer 19 erreicht hat).
  • 2 veranschaulicht schematisch die Unterteilung des Ringpufferspeichers 50 in vier zyklische Register. In 2 sind die zyklischen Register mit 55, 56, 57 und 58 bezeichnet. Die Datenregister des Ringpufferspeichers 50 zum Speichern der Datenbits sind wiederum von 0 bis 19 nummeriert. Wie zu erkennen ist, befinden sich benachbarte Datenregister oder Datenregister, welche benachbarte Datenbits enthalten, in unterschiedlichen zyklischen Registern. So enthält ein erstes zyklisches Register 55 die Datenregister 0, 4, 8, 12 und 16. Ein zweites zyklisches Register 56 enthält die Datenregister 1, 5, 9, 13 und 17. Ein drittes zyklisches Register 57 enthält die Datenregister 2, 6, 10, 14 und 18. Ein viertes zyklisches Register 58 enthält die Datenregister 3, 7, 11, 15 und 19.
  • Jedes der zyklischen Register 55, 56, 57, 58 wird auf Basis eines entsprechenden geteilten Takts betrieben. Mit Bezug auf den geteilten Takt des ersten zyklischen Register 55 ist der geteilte Takt des zweiten zyklischen Registers 56 um 90° phasenverschoben. Diese Phasenverschiebung entspricht 1/4 mal dem Zyklus der geteilten Takte oder einem vollem Zyklus des Empfangstakts oder des zweiten Sendetakts. Der dem dritten zyklischen Register 57 entsprechende Takt ist mit Bezug auf den geteilten Takt des ersten zyklischen Registers 55 um 180° phasenverschoben. Der dem vierten zyklischen Register 58 entsprechende geteilte Takt ist mit Bezug auf den dem ersten zyklischen Register 55 entsprechenden geteilten Takt um 270° phasenverschoben. Folglich sind die geteilten Takte, welche den zyklischen Registern 55, 56, 57, 58 entsprechen, mit Bezug auf den geteilten Takt, welcher demjenigen zyklischen Register entspricht, das benachbarte Datenbits enthält, um 90° phasenverschoben.
  • Um Daten in den zyklischen Registern 55, 56, 57, 58 zu speichern, wird ein entsprechender Schreibzeiger des jeweiligen zyklischen Registers 55, 56, 57, 58 mit jedem Zyklus des entsprechenden geteilten Takts um eine Position vorbewegt. In 2 ist dies mittels einer Drehung der zyklischen Register 55, 56, 57, 58 gegen den Uhrzeigersinn und mit Bezug auf die horizontalen Pfeile veranschaulicht. Mit anderen Worten werden Datenbits in dem Ringpufferspeicher 50 mit einer Rate von einem Bit für jeden Taktzyklus der geteilten Takte gespeichert, was einer Rate von einem Bit für jeden Zyklus des Empfangtakts entspricht.
  • 3 veranschaulicht schematisch eine Schaltungsanordnung zur Implementierung eines zyklischen Registers wie in 2 dargestellt. Beispielhaft wurde das erste zyklische Register 55 zur Darstellung ausgewählt. Die anderen zyklischen Register 56, 57, 58 weisen einen ähnlichen Aufbau auf.
  • Wie in 3 veranschaulicht, umfasst das zyklische Register eine Reihe von Datenregistern 84 zum Speichern der Datenbits. Die Datenregister 84 werden auf eine sequentielle Weise mittels eines Schieberegisters aktiviert, welches durch eine Reihe von D-Flip-Flops 82 gebildet ist. Jedes der Datenregister 84 stellt eine entsprechende Ausgabe an den parallelen Ausgang des zyklischen Registers bereit. Die Ausgangssignale der zyklischen Register sind mit D0, D4, D8, D12 und D16 bezeichnet, was den Datenregistern 0, 4, 8, 12, 16 des zyklischen Registers 55 wie in 2 dargestellt entspricht. Ein komplementärer zweiter Ausgang ist ausgehend von den Datenregistern 84 einem Multiplexer 90 zugeführt. Der Multiplexer 90 ist durch ein Auswahlsignal SEL derart angesteuert, dass einer der Ausgänge der Datenregister 84 als Wiederholungsausgangssignal RP0 des zyklischen Registers bereitgestellt wird. Zusammen mit entsprechenden Wiederholungsausgangssignalen der anderen zyklischen Register 56, 57, 58 bildet das Wiederholungsausgangssignal RP0 die Gruppe der vier Datenbits, welche dem zweiten Sender 30 zugeführt wird. Folglich steuert das Auswahlsignal SEL die Position des zweiten Lesezeigers 53 in 1.
  • Das Auswahlsignal SEL wird auf Basis eines Eingangstaktsignals TCL0 erzeugt. Zu diesem Zweck umfasst die Schaltung eine Wiederholungsauswahllogik 95. Die Wiederholungsauswahllogik 95 kann einen Aufbau aufweisen, welcher ähnlich zu demjenigen des Schieberegisters zum aktivieren der Datenregister 84 ist.
  • Wie oben erwähnt, wird ein Schiebregister verwendet, um die Datenregister 84 sequentiell zur Datenspeicherung zu aktivieren. Das Schieberegister wird gebildet, indem der Datenausgang von einem der D-Flip-Flops 82 mit dem Dateneingang des nächsten D-Flip-Flops 82 derart verbunden wird, dass eine Reihe von D-Flip-Flops 82 ausgebildet wird, und indem der Datenausgang des letzten D-Flip-Flops 82 der Reihe mit dem Dateneingang des ersten D-Flip-Flops 82 der Reihe verbunden wird. Ein Rücksetzsignal RES ist einem SET-Eingang des ersten D-Flip-Flops 82 und einem CLR-Eingang der anderen D-Flip-Flops 82 zugeführt. Mittels des SET-Eingangs kann der Zustand des D-Flip-Flops 82 derart gesetzt werden, dass der Zustand des Datenausgangs aktiv ist. Mittels des CLR-Eingangs kann der Zustand des D-Flip-Flops 82 derart gesetzt werden, dass der Zustand des Datenausgangs nicht aktiv ist. Folglich kann mittels des Rücksetzsignals RES das Schieberegister derart initialisiert werden, dass nur eines der D-Flip-Flops 82 seinen Ausgang in einem aktiven Zustand hat.
  • In 3 sind die Dateneingänge der D-Flip-Flops 82 und die Datenregister 84 mit D bezeichnet. Die Datenausgänge sind mit Q bezeichnet, und die komplementären Datenausgänge sind mit Q bezeichnet.
  • In 3 ist das dem geteilten Takt des ersten zyklischen Registers 35 entsprechende Taktsignal mit RCL0 bezeichnet. Das Taktsignal RCL0 ist den Takteingängen der D-Flip-Flops 82 des Schieberegisters und den Takteingängen der Datenregister 84 zugeführt. Folglich wird mit jedem Zyklus des Taktsignals RCL0 der aktive Zustand des Ausgangs eines der D-Flip-Flops 82 des Schieberegisters von einem D-Flip-Flop 82 zu dem nächsten D-Flip-Flop 82 der Reihe bzw. von dem letzten D-Flip-Flop 82 der Reihe zu dem erstem D-Flip-Flop 82 der Reihe verschoben.
  • Die Signale an den Eingängen und Ausgängen der D-Flip-Flops 82 des Schieberegisters werden verwendet, um entsprechende Aktivierungssignale für die Datenregister 84 zu erzeugen. Zu diesem Zweck sind die Dateneingänge der D-Flip-Flops 82 des Schieberegisters jeweils mit einem Aktivierungseingang eines entsprechenden Datenregisters 84 verbunden. In 3 sind die Aktivierungseingänge der Datenregister 84 mit e bezeichnet. Als Ergebnis ist nur eines der Datenregister 84 zur Zeit aktiviert, um Daten zu speichern, welche aus einem Dateneingangssignal DIN0, welches seinem Dateneingang zugeführt ist, verfügbar sind. Die Position dieses Datenregisters 84 wird mit jedem Zyklus des Taktsignals RCL0 von einem Datenregister 84 zu dem nächsten vorbewegt. Gleichzeitig sind die in den Datenregistern 84 gespeicherten Daten an den entsprechenden Datenausgängen der Datenregister 84 verfügbar.
  • 4 veranschaulicht schematisch ein Übersichtsdiagram der Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen. Wie dargestellt, umfasst die Vorrichtung die zyklischen Register 55, 56, 57, 58. Die zyklischen Register sind jeweils wie in 3 dargestellt aufgebaut. Die Daten werden über ein Dateneingangssignal DIN empfangen, aus welchem vier individuelle Dateneingangssignale DIN0, DIN1, DIN2 und DIN3 extrahiert werden, um den zyklischen Registern 55, 56, 57, 58 zugeführt zu werden. Das erste zyklische Register 55 empfängt das Dateneingangssignal DIN0 und gibt parallele Datensignale D0, D4, D8, D12, D16 und ein Wiederholungsausgangssignal RP0 aus. Das zweite zyklische Register 56 empfängt das Dateneingangssignal DIN1 und gibt parallele Datensignale D1, D5, D9, D13, D17 und ein Wiederholungsausgangssignal RP1 aus. Das dritte zyklische Register 57 empfängt das Dateneingangssignal DIN2 und gibt parallele Datensignale D2, D6, D10, D14, D18 und ein Wiederholungsausgangssignal RP2 aus. Das vierte zyklische Register 58 empfängt das Dateneingangssignal DIN3 und gibt parallele Datensignale D3, D7, D11, D15, D19 und ein Wiederholungsausgangssignal RP3 aus. Die parallelen Datensignale D0–D19 entsprechen den Datenregistern 0–19 des Ringpufferspeichers 50. Die Wiederholungsausgangssignale RP0–RP3 entsprechen der Gruppe von Datenbits, welche aus dem Ringpufferspeicher an den zweiten Sender 30 übertragen wird.
  • Wie dargestellt, werden der Vorrichtung vier individuelle Taktsignale RCL0–RCL3 zugeführt, welche den jeweiligen geteilten Takten der zyklischen Register 55, 56, 57, 58 entsprechen. Die Taktsignale RCL0–RCL3 sind wie mit Bezug auf 2 erläutert zueinander phasenverschoben. Vorzugsweise wird tatsächlich nur eines der Taktsignale, z. B. das Taktsignal RCL0, tatsächlich ausgehend von dem Speicher-Controller oder dem benachbarten Speichermodul in dem Speichermodul empfangen, und die weiteren Taktsignale werden daraus erzeugt. Selbstverständlich ist es auch möglich, jedes der Taktsignale RCL0–RCL3 zusammen mit dem Datensignal DIN zu übertragen.
  • Das Taktsignal RCL0 ist dem ersten zyklischen Register 55 zugeführt. Das Taktsignal RCL1 ist dem zweiten zyklischen Register 56 zugeführt. Das Taktsignal RCL2 ist dem dritten zyklischen Register 57 zugeführt, und das Taktsignal RCL3 ist dem vierten zyklischen Register 58 zugeführt.
  • Ferner sind der Vorrichtung vier Taktsignale TCL0–TCL3 zugeführt, welche von dem zweiten Sendetakt auf dieselbe Weise abhängen wie die Taktsignale RCL0 und RCL3 von dem Empfangstakt abhängen. Das heißt, dass die Taktsignale TCL0–TCL3 jeweils eine Frequenz aufweisen, welche 1/4 mal der Frequenz des zweiten Sendetakts entspricht, und dass die Taktsignale TCL1, TCL2 und TCL3 mit Bezug auf das Taktsignal TCL0 um 90°, 180° bzw. 270° phasenverschoben sind. Das Taktsignal TCL0 ist dem ersten zyklischen Register 55 zugeführt, das Taktsignal TCL1 ist dem zweiten zyklischen Register 56 zugeführt, das Taktsignal TCL2 ist dem dritten zyklischen Register 57 zugeführt, und das Taktsignal TCL3 ist dem vierten zyklischen Register 58 zugeführt. In den zyklischen Registern 55, 56, 57, 58 werden die Taktsignale TCL0, TCL1, TCL2 bzw. TCL3 verwendet, um mittels der Wiederholungsauswahllogik 95 das Auswahlsignal SEL für den Multiplexer 90 zu erzeugen. Insbesondere wird das Auswahlsignal SEL für den Multiplexer 90 derart erzeugt, dass mit jedem Zyklus des Taktsignals TCL0 der Datenausgang eines unterschiedlichen Datenregisters 84 ausgewählt wird. Insbesondere werden die Datenausgänge der Datenregister 84 auf eine ähnliche Weise, wie sie zum Speichern von Daten aktiviert werden, nacheinander ausgewählt.
  • Die Taktsignale TCL0–TCL3 werden vorzugsweise innerhalb des Speichermoduls derart erzeugt, dass sie eine geeignete Phasenverschiebung mit Bezug auf die Taktsignale RCL0–RCL3 aufweisen.
  • 4 zeigt auch den Empfänger 20, welcher das Dateneingangssignal DIN auf Basis der vier Taktsignale RCL0–RCL3 abtastet, um die jeweiligen Dateneingangssignale DIN0, DIN1, DIN2, DIN3 der zyklischen Register 55, 56, 57 bzw. 58 zu erzeugen.
  • Ebenfalls in 4 dargestellt ist ein Rahmenzähler 44, welcher auf Basis eines Rahmensendetaktsignals FTCL betrieben wird. Das Rahmensendetaktsignal FTCL entspricht dem ersten Sendetakt und kann aus einem der Taktsignale RCL0–RCL3 durch Frequenzteilungstechniken erzeugt werden. Der Rahmenzähler 44 liefert ein Rahmensteuersignal FCTRL an eine Rahmenauswahllogik 45, welche eine Gruppe von neun Datensignalen aus den Datensignalen D0–D19 auswählt, um als paralleles Datenausgangssignal DOUT dem Speicherkern zugeführt zu werden. Der Rahmenauswahllogik 45 ist ferner ein Versatzsignal OFFS zugeführt, welches verwendet werden kann, um die relative Position des ersten Lesezeigers 52 und des Schreibzeigers 51 einzustellen. Der Rahmenzähler 44 und die Rahmenauswahllogik 45 bilden einen Teil des in 1 dargestellten ersten Senders 40.
  • Schließlich zeigt 4 auch den zweiten Sender 30, welchen die Wiederholungsausgangssignale RP0–RP3 von den zyklischen Registern 5558 empfängt, um sie zu einem seriellen Datenstrom zusammenzuführen, welcher auf Basis eines zweiten Sendetakts ausgesendet wird. Die zyklischen Register 55, 56, 57, 58 können mittels eines Rücksetzsignals RES zurückgesetzt und initialisiert werden. Der Rahmenzähler 44 kann mittels eines Rahmenrücksetzsignals FRES zurückgesetzt und initialisiert werden.
  • Der oben erläuterte Ansatz zur Datenübertragung zwischen verschiedenen Taktdomänen bietet erhebliche Vorteile im Vergleich zu den bestehenden Lösungen. Insbesondere bietet die vorgeschlagene erfindungsgemäße Lösung eine niedrige Latenz, da sie es ermöglich in einem einzigen Vorgang von einer Empfangstaktdomäne zu zwei Sendetaktdomänen überzugehen. Die Latenz kann für jeden Übergang in Schritten von einer Bitposition eingestellt werden. Hierdurch ist es möglich, gerade ausreichend Freiraum für eine Phasenverschiebung bereitzustellen, welche zwischen der Empfangstaktdomäne und den Sendetaktdomänen besteht. Der Empfangstakt und der zweite Sendetakt können derart eingestellt werden, dass sie eine konstante Phasendifferenz aufweisen. Ferner ist bei dem oben erläuterten Ausführungsbeispiel gewährleistet, dass die schnellsten zur Implementierung der Erfindung erforderlichen Schaltungen mit einer vergleichsweise niedrigen Taktfrequenz arbeiten, welche 1/4 mal der vollen Frequenz des Empfangstakts und des zweiten Sendetakts entspricht, d. h. der Empfangstakt und der zweite Sendetakt bilden virtuelle Taktsignale, welche innerhalb der Vorrichtung nicht in Form eines realen Taktsignals mit der vollen Frequenz verteilt werden.
  • Als weiterer Vorteil kann die oben beschriebene Vorrichtung auf einfache Weise skaliert werden, um unterschiedlichen Größen des Ringpufferspeichers Rechnung zu tragen. Insbesondere kann die Größe des Ringpufferspeichers in Schritten von vier Bit verändert werden, indem bei jedem der zyklischen Register ein Bit hinzugefügt oder entfernt wird.
  • Selbstverständlich ist die vorliegende Erfindung nicht auf die oben erläuterten Ausführungsbeispiele beschränkt. Wie es für den Fachmann mit Kenntnis der in der obigen Beschreibung angegebenen Lehren ersichtlich ist, können verschiedenartige Änderungen in den oben beschriebenen Ausführungsbeispielen vorgenommen werden, ohne vom Geist und Umfang der Erfindung abzuweichen. Beispielsweise könnte eine unterschiedliche Anzahl von zyklischen Registern verwendet werden. Ferner könnten dies obigen Konzepte bei anderen Anwendungen als bei Speichervorrichtungen verwendet werden.

Claims (24)

  1. Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, umfassend: Empfangen von Datenbits auf Basis eines Empfangtakts, sequentielles Speichern der Datenbits in einem Ringpufferspeicher (50), gleichzeitiges Übertragen einer Anzahl der gespeicherten Datenbits aus dem Ringpufferspeicher (50) auf Basis eines ersten Sendetakts, wobei der Schritt des gleichzeitigen Übertragens der Anzahl von gespeicherten Datenbits aus dem Ringpufferspeicher (50) bei Lesevorgängen ein Zugreifen auf den Ringpufferspeicher (50) auf Basis eines ersten Lesezeigers (52) und ein Vorbewegen des ersten Lesezeigers (52) um eine Anzahl von Bitpositionen, welche der Anzahl von Datenbits entspricht, mit jedem Zyklus des ersten Sendetakts umfasst, und Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher (50) auf Basis eines zweiten Sendetakts, wobei der Schritt des Übertragens der gespeicherten Datenbits aus dem Ringpufferspeicher (50) bei Lesevorgängen ein Zugreifen auf den Ringpufferspeicher (50) auf Basis eines zweiten Lesezeigers (53) umfasst.
  2. Verfahren nach Anspruch 1, wobei die Anzahl von gleichzeitig aus dem Ringpufferspeicher (50) übertragenen Datenbits eine ungerade Zahl ist.
  3. Verfahren nach Anspruch 2, wobei die Anzahl von gleichzeitig aus dem Ringpufferspeicher (50) übertragenen Datenbits neun ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des sequentiellen Speicherns der Datenbits in dem Ringpufferspeicher (50) bei Schreibvorgängen ein Zugreifen auf den Ringpufferspeicher (50) auf Basis eines Schreibzeigers (51) und ein Vorbewegen des Schreibzeigers (51) um eine Bitposition mit jedem Zyklus des Empfangstakts umfasst.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Frequenz des zweiten Sendetakts der Frequenz des Empfangstakts entspricht.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Ringpufferspeicher (50) derart in eine Anzahl von N zyklischen Registern (55, 56, 57, 58) unterteilt ist, dass benachbarte Bits des Ringpufferspeichers (50) sich in unterschiedlichen zyklischen Registern (55, 56, 57, 58) befinden, und wobei das Verfahren bei Schreibvorgängen ein Zugreifen auf die zyklischen Register (55, 56, 57, 58) auf Basis eines entsprechenden geteilten Takts mit 1/N mal der Frequenz des Empfangstakts und ein Vorbewegen eines entsprechenden Schreibzeigers jedes zyklischen Registers (55, 56, 57, 58) mit jedem Zyklus des entsprechenden geteilten Takts umfasst.
  7. Verfahren nach Anspruch 6, wobei die Anzahl N von zyklischen Registern (55, 56, 57, 58) vier ist.
  8. Verfahren nach Anspruch 6 oder 7, wobei die den verschiedenen zyklischen Registern (55, 56, 57, 58) entsprechenden geteilten Takte zueinander phasenverschoben sind.
  9. Verfahren nach Anspruch 8, wobei die Phasenverschiebung zwischen den geteilten Takten von zyklischen Registern (55, 56, 57, 58), welche benachbarte Bits des Ringpufferspeichers (50) enthalten, 1/N mal dem Taktzyklus der geteilten Takte entspricht.
  10. Verfahren nach einem der Ansprüche 6–9, wobei der Schritt des Übertragens der gespeicherten Datenbits aus dem Ringpufferspeicher (50) bei Lesevorgängen ein Vorbewegen des zweiten Lesezeigers (53) um eine Anzahl von Bitpositionen, welche der Anzahl N von zyklischen Registern (55, 56, 57, 58) entspricht, mit jedem Taktzyklus von einem der geteilten Takte umfasst.
  11. Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen, umfassend: einen Empfänger (20) zum Empfangen von Datenbits auf Basis eines Empfangstakts, einen Ringpufferspeicher (50) zum sequentiellen Speichern der Datenbits, einen ersten Sender (40) zum gleichzeitigen Übertragen einer Anzahl von gespeicherten Datenbits aus dem Ringpufferspeicher (50) auf Basis eines ersten Sendetakts, und einen zweiten Sender (30) zum Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher (50) auf Basis eines zweiten Sendetakts, wobei der Ringpufferspeicher (50) für einen Zugriff zum gleichzeitigen Auslesen der Anzahl von Datenbits auf Basis eines ersten Lesezeigers (52) ausgestaltet ist, wobei der erste Lesezeiger (52) mit jedem Zyklus des ersten Sendetakts um eine Anzahl von Bitpositionen vorbewegt wird, welche der Anzahl von Datenbits entspricht, und wobei der Ringpufferspeicher (50) darüber hinaus für einen Zugriff zum Auslesen der gespeicherten Datenbits auf Basis eines zweiten Lesezeigers (53) ausgestaltet ist.
  12. Vorrichtung nach Anspruch 11, wobei die Anzahl von gleichzeitig aus dem Ringpufferspeicher (50) übertragenen Datenbits eine ungerade Zahl ist.
  13. Vorrichtung nach Anspruch 12, wobei die Anzahl von gleichzeitig aus dem Ringpufferspeicher (50) übertragenen Datenbits neun ist.
  14. Vorrichtung nach einem der Ansprüche 11–13, wobei der Ringpuffer (50) dazu ausgestaltet ist, die Datenbits sequentiell auf Basis eines Schreibzeigers (51) zu speichern, wobei der Schreibzeiger (51) mit jedem Zyklus des Empfangstakts um eine Bitposition vorbewegt wird.
  15. Vorrichtung nach einem der Ansprüche 11–14, wobei die Frequenz des zweiten Sendetakts der Frequenz des Empfangstakts entspricht.
  16. Vorrichtung nach einem der Ansprüche 11–15, wobei der Ringpufferspeicher (50) derart in eine Anzahl von N zyklischen Registern (55, 56, 57, 58) unterteilt ist, dass benachbarte Bits des Ringpufferspeichers (50) sich in verschiedenen zyklischen Registern (55, 56, 57, 58) befinden, und dass die zyklischen Register (55, 56, 57, 58) bei Schreibvorgängen für einen Zugriff auf Basis eines entsprechenden geteilten Takts mit 1/N mal der Frequenz des Empfangstakts ausgestaltet sind, wobei ein entsprechender Schreibzeiger des jeweiligen zyklischen Registers mit jedem Zyklus des entsprechenden geteilten Takts vorbewegt wird.
  17. Vorrichtung nach Anspruch 16, wobei die Anzahl N von zyklischen Registern (55, 56, 57, 58) vier ist.
  18. Vorrichtung nach Anspruch 16 oder 17, wobei die den verschiedenen zyklischen Registern (55, 56, 57, 58) entsprechenden geteilten Takte zueinander phasenverschoben sind.
  19. Vorrichtung nach Anspruch 18, wobei die Phasenverschiebung zwischen den geteilten Takten von zyklischen Registern (55, 56, 57, 58), welche benachbarte Bits des Ringpufferspeichers (50) enthalten, 1/N mal dem Taktzyklus der geteilten Takte entspricht.
  20. Vorrichtung nach einem der Ansprüche 16–19, wobei der zweite Lesezeiger (53) mit jedem Taktzyklus von einem der geteilten Takte um eine Anzahl von Bitpositionen vorbewegt wird, welche der Anzahl N von zyklischen Registern (55, 56, 57, 58) entspricht.
  21. Vorrichtung nach einem der Ansprüche 16–20, wobei jedes der zyklischen Register (55, 56, 57, 58) eine Anzahl von Datenregistern (84) zum Speichern der Datenbits und ein Schiebregister zum sequentiellen Aktivieren eines der Datenregister (84) zum Speichern der Datenbits umfasst.
  22. Vorrichtung nach einem der Ansprüche 11–21, wobei der Ringpufferspeicher (50) eine Anzahl von Datenregistern (84) zum Speichern der Datenbits und ein Schieberegister zum sequentiellen Aktivieren eines der Datenregister (84) zum Speichern der Datenbits umfasst.
  23. Speichermodul mit einem Speicherkern (220) zum Speichern von Daten mit einer Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen, umfassend: einen Empfänger (20) zum Empfangen von Datenbits von einem Speicher-Controller oder einem weiteren Speichermodul auf Basis eines Empfangstakts, einen Ringpufferspeicher (50) zum sequentiellen Speichern der Datenbits, einen ersten Sender (40) zum gleichzeitigen Übertragen einer Anzahl der gespeicherten Datenbits aus dem Ringpufferspeicher (50) an den Speicherkern (220) auf Basis eines ersten Sendetakts, und einen zweiten Sender (30) zum Übertragen der gespeicherten Datenbits aus dem Ringpufferspeicher (50) an ein weiteres Speichermodul auf Basis eines zweiten Sendetakts, wobei der Ringpufferspeicher (50) für einen Zugriff zum gleichzeitigen Auslesen der Anzahl von Datenbits auf Basis eines ersten Lesezeigers (52) ausgestaltet ist, wobei der erste Lesezeiger (52) mit jedem Zyklus des ersten Sendetakts um eine Anzahl von Bitpositionen vorbewegt wird, welche der Anzahl von Datenbits entspricht, und wobei der Ringpufferspeicher (50) darüber hinaus für einen Zugriff zum Auslesen der gespeicherten Datenbits auf Basis eines zweiten Lesezeigers (53) ausgestaltet ist.
  24. Speichermodul nach Anspruch 23, wobei die Vorrichtung zur Datenübertragung zwischen verschiedenen Taktdomänen nach einem der Ansprüche 11–22 ausgestaltet ist.
DE102007004008A 2006-01-30 2007-01-26 Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, entsprechende Vorrichtung und entsprechendes Speichermodul Expired - Fee Related DE102007004008B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/343,946 2006-01-30
US11/343,946 US20070208980A1 (en) 2006-01-30 2006-01-30 Method of transmitting data between different clock domains

Publications (2)

Publication Number Publication Date
DE102007004008A1 DE102007004008A1 (de) 2007-08-09
DE102007004008B4 true DE102007004008B4 (de) 2012-07-12

Family

ID=38282406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007004008A Expired - Fee Related DE102007004008B4 (de) 2006-01-30 2007-01-26 Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, entsprechende Vorrichtung und entsprechendes Speichermodul

Country Status (2)

Country Link
US (1) US20070208980A1 (de)
DE (1) DE102007004008B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500132B1 (en) * 2008-04-11 2009-03-03 International Business Machines Corporation Method of asynchronously transmitting data between clock domains
US8132036B2 (en) * 2008-04-25 2012-03-06 International Business Machines Corporation Reducing latency in data transfer between asynchronous clock domains
US8212594B2 (en) 2010-08-11 2012-07-03 Integrated Device Technology, Inc. Methods and apparatuses for clock domain crossing
US8848731B2 (en) 2011-01-31 2014-09-30 Qualcomm Incorporated System and method for facilitating data transfer using a shared non-deterministic bus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1130842A2 (de) * 2000-02-29 2001-09-05 Texas Instruments Incorporated Kommunikationszwischenstelle zwischen Uhrtaktbereichen mit minimaler Latenz
US6732205B2 (en) * 2000-10-25 2004-05-04 Seiko Epson Corporation Serial/parallel conversion circuit, data transfer control device, and electronic equipment
US20040228429A1 (en) * 2003-05-15 2004-11-18 Morten Schanke Data transfer
DE10361496A1 (de) * 2003-12-23 2005-08-04 Infineon Technologies Ag Anordnung mit einer Speichereinrichtung und einer programmgesteuerten Einheit
US20050273641A1 (en) * 2004-06-08 2005-12-08 Magne Sandven Comma detection

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231130A (ja) * 1996-02-26 1997-09-05 Mitsubishi Electric Corp マイクロコンピュータ
TW413785B (en) * 1998-04-15 2000-12-01 Fujitsu Ltd Signal processor having feedback loop control for decision feedback equalizer
US6604179B2 (en) * 2000-03-23 2003-08-05 Intel Corporation Reading a FIFO in dual clock domains
US20030038681A1 (en) * 2000-06-02 2003-02-27 Masoud Djafari System and method of digital tuning a voltage controlled oscillator
US6570417B2 (en) * 2000-11-14 2003-05-27 Broadcom Corporation Frequency dividing circuit
US7275171B2 (en) * 2003-05-22 2007-09-25 Rambus Inc. Method and apparatus for programmable sampling clock edge selection
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
JP4456432B2 (ja) * 2004-08-02 2010-04-28 富士通株式会社 基準信号を用いて同期伝送を行う装置および方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1130842A2 (de) * 2000-02-29 2001-09-05 Texas Instruments Incorporated Kommunikationszwischenstelle zwischen Uhrtaktbereichen mit minimaler Latenz
US6732205B2 (en) * 2000-10-25 2004-05-04 Seiko Epson Corporation Serial/parallel conversion circuit, data transfer control device, and electronic equipment
US20040228429A1 (en) * 2003-05-15 2004-11-18 Morten Schanke Data transfer
DE10361496A1 (de) * 2003-12-23 2005-08-04 Infineon Technologies Ag Anordnung mit einer Speichereinrichtung und einer programmgesteuerten Einheit
US20050273641A1 (en) * 2004-06-08 2005-12-08 Magne Sandven Comma detection

Also Published As

Publication number Publication date
DE102007004008A1 (de) 2007-08-09
US20070208980A1 (en) 2007-09-06

Similar Documents

Publication Publication Date Title
DE10334779B4 (de) Halbleiterspeichermodul
DE102006043413A1 (de) Hochgeschwindigkeitsschnittstellenschaltung für Halbleiterspeicherchips und ein diese enthaltendes Speichersystem
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE4432061C1 (de) Paketübertragungssystem
DE102007004044A1 (de) Verfahren und Anlage zur optimierten Übertragung von Daten zwischen einer Steuereinrichtung und mehreren Feldgeräten
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE10220334A1 (de) Verfahren und System zur Übertragung von Daten über schaltbare Datennetze
DE102007004008B4 (de) Verfahren zur Datenübertragung zwischen verschiedenen Taktdomänen, entsprechende Vorrichtung und entsprechendes Speichermodul
EP1940654A1 (de) Verfahren zur anbindung eines flexray-teilnehmers mit einem mikrocontroller an eine flexray-kommunikationsverbindung über eine flexray-kommunikationssteuereinrichtung, und flexray-kommunikationssteuereinrichtung, flexray-teilnehmer und flexray-kommunikationssystem zur realisierung dieses verfahrens
DE2707783B2 (de) Datenverarbeitungsanlage
EP1776808B1 (de) Verfahren zur speicherung von botschaften in einem botschaftsspeicher und botschaftsspeicher
DE2822896C2 (de)
EP0920154A2 (de) Verfahren und Schaltungsanordnung zur selektiven digitalen seriellen Übertragung
EP2085890A1 (de) Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
DE2937903C2 (de) Schaltungsanordnung zum Übertragen von Daten
DE102006050362A1 (de) Synchronisationsvorrichtung und Verfahren zur Datensynchronisation
DE102006039797B4 (de) Verfahren zum Trainieren von Verbindungen in einer Speicheranordnung und entsprechend ausgestaltete Speicheranordnungen
DE2437393B2 (de) Schaltungsanordnung zum uebertragen von asynchronen datensignalen unbekannter symbolstruktur
DE4123007C2 (de) Verfahren und Anordnung zur Anpassung von Datenraten
DE19846914C2 (de) Datenbus und Verfahren zum Kommunizieren zweier Baugruppen mittels eines solchen Datenbusses
DE2707800A1 (de) Datenverarbeitungsanlage
DE102006042858B4 (de) Schaltungsanordnung zum Abtasten angeforderter Datenbits und Speicherbaustein
DE1937923A1 (de) Kanalwerk fuer einen Rechner
DE2630711A1 (de) Speichersteuersystem
EP3824393A1 (de) Schaltung zur gepufferten übertragung von daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20121013

R081 Change of applicant/patentee

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

R082 Change of representative
R081 Change of applicant/patentee

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee