-
Die
vorliegende Erfindung betrifft im Allgemeinen Datenkommunikationen
und genauer Verfahren und Anordnungen zur Übertragung von Daten zwischen
Taktregionengrenzen.
-
Anhaltende
Nachfragen nach komplexeren Schaltungen haben zu bedeutenden Leistungen
geführt,
die durch die Herstellung einer sehr hohen Integration von Schaltungen
auf kleinen Flächen
von Siliziumwafern verwirklicht wurden. Diese komplexen Schaltungen
werden häufig
als funktionell definierte Blöcke
gestaltet, die an einer Abfolge von Daten tätig sind und diese Daten dann
zur weiteren Verarbeitung weitergeben. Diese Kommunikation von derartigen funktionell
definierten Blöcken
kann in großen
oder kleinen Mengen von Daten zwischen einzelnen integrierten Schaltungen
("Chips"), innerhalb des
gleichen Chips, und zwischen entfernter befindlichen Kommunikationsschaltungsanordnungen
und -systemen weitergegeben werden. Ungeachtet der Gestaltung benötigt die
Kommunikation typischerweise genau gesteuerte Schnittstellen, um
sicherzustellen, dass die Datenintegrität bewahrt wird, und dass Chipsatz-Gestaltungen
in Bezug auf praktikable Beschränkungen
hinsichtlich des Ausführungsraums und
der verfügbaren
Betriebsleistung empfindlich sind.
-
Mit
der zunehmenden Komplexität
von Schaltungen besteht eine entsprechende Nachfrage nach der Erhöhung der
Geschwindigkeit, mit der Daten zwischen den Schaltungsblöcken weitergegeben werden.
Viele dieser Hochgeschwindigkeits-Kommunikationsanwendungen können unter
Verwendung einer parallelen Datenverbindungsübertragung ausgeführt werden,
wobei mehrere Datenbits gleichzeitig über parallele Kommunikationswege
gesendet werden. Diese "parallele
Busverbindung" ist
ein gut angenommener Ansatz zur Erreichung von Datenübertragungen
mit hohen Datenraten.
-
Ein
typisches System könnte
eine Anzahl von Modulen (d.h., einen oder mehrere gemeinschaftlich
arbeitende Chips) beinhalten, die an einen parallelen Datenbus,
zum Beispiel in der Form eines Kabels, eine andere Verbindung und/oder
einen internen Bus auf einem Chip angeschlossen sind und darüber kommunizieren.
Ein Sendemodul sen det Daten in Synchronisation mit einem Takt am
Sendemodul über
den Bus. Auf diese Weise verlassen die Übertragungen auf den parallelen
Signalleitungen das Sendemodul in einer synchronen Beziehung miteinander
und/oder mit einem Takt am Sendemodul. Am anderen Ende der parallelen
Datenverbindung empfängt
das Empfangsmodul die Daten auf einem parallelen Datenbus. In derartigen
Systemen sollten die empfangenen Signale (und wo anwendbar, der Empfangstakt)
eine bestimmte Phasenbeziehung aufweisen, um eine richtige Datenwiedererlangung bereitzustellen.
-
Viele
integrierte Schaltungen (ICs) beinhalten heute mehr als eine Taktregion;
daher könnte
ein Datensendemodul in einer ersten Taktregion bei einer ersten
Taktfrequenz tätig
sein, während
ein Datenempfangsmodul in einer anderen Taktregion bei einer unterschiedlichen
(und vielleicht nichtsynchronen) Taktfrequenz tätig ist. Die Schnittstelle
zwischen den Taktregionen ist eine Taktregionengrenze, oder ein
Taktregionenübergang,
wo die Informationen die Grenze überqueren.
Die Taktsignalwegentfernung ist typischerweise begrenzt, um Taktsignal"versatzauswirkungen" innerhalb erträglicher
Grenzen zu beschränken;
weshalb eine Taktregion im Allgemeinen mit einer kompakten geographischen
Region einer IC in Übereinstimmung
gebracht ist.
-
Wo
sich das Sende- und das Empfangsmodul in unterschiedlichen Taktregionen
befinden, kann die augenblickliche Rate, mit der die Daten in einer Taktregion
gesendet werden, möglicherweise
nicht mit der augenblicklichen Rate übereinstimmen, mit der die
Daten in einer anderen Region verwendet werden (d.h., konsumiert
werden). Um Datenratenunterschiede unterzubringen, wird zwischen
den Taktregionen herkömmlich
eine diskrete Puffereinrichtung verwendet. Die Daten werden gemäß einem Quellenregionstakt
(d.h., Schreibtakt) in die Puffereinrichtung getaktet und gemäß einem
Empfangsregionstakt (d.h., Lesetakt) aus der Puffereinrichtung getaktet.
-
Herkömmliche
Puffereinrichtungen erfordern, dass die Daten-, Adress- und Schreibeingänge bestimmte
Einstell- und Haltezeittaktanforderungen in Bezug auf einen Schreibtakt
erfüllen,
was erforderlich macht, dass sich das Speicherelement in der Nähe der Schreibtaktregion
befindet, um die benötigten
Zeittaktbeziehungen aufrechtzuerhalten. Gleichzeitig werden Ausgangsdaten
(Lesedaten) von der herkömmlichen
Puffereinrichtung nach einer Veränderung
der Leseadresse mit einer gewissen Verzögerung von nicht Null gültig. Wenn
eine Lesetaktfrequenz nicht äußerst niedrig
ist, sollte sich ein Leseadresszähler
nahe an der Multiplexierfunktion innerhalb der Puffereinrichtung
befinden; daher muss sich die Puffereinrichtung gleichzeitig in
der Nähe
der Lesetaktregion befinden, um die Datenintegrität sicherzustellen.
Typischerweise befindet sich die Puffereinrichtung physisch sehr
nahe an der Taktregionengrenze, damit keine der Taktregionen überausgedehnt
wird. Das Anordnen der Puffereinrichtung in einer der Taktregionen
erfordert das Ausdehnen eines Taktsignals von der anderen Taktregion
in die "fremde" Taktregion, damit
es die Puffereinrichtung erreicht. Diese Praxis erhöht die Versatzbedenken
hinsichtlich des überausgedehnten
Taktsignals.
-
Der
Versatz ist eine Zeitverzögerung
oder eine Versetzung zwischen jeglichen zwei Signalen. Häufig gibt
es ein erwartetes Ausmaß an
Zeitversatz zwischen gesendeten Datensignalen selbst und zwischen
Adress/Datensignalen und einem Taktsignal am Bestimmungsort. Ein
Versatz kann durch eine Anzahl von Erscheinungen einschließlich, zum
Beispiel, Sendeverzögerungen,
die durch die kapazitive und induktive Belastung der Signalleitungen
der parallelen Verbindung eingebracht werden, Schwankungen in der
Eingangs/Ausgangstreiberquelle, einer Nachbarzeichenstörung und
Schwankungen in der Impedanz und der Länge der Übertragungsleitungen verursacht
werden. Ungeachtet dessen, welche Erscheinung den Versatz erzeugt,
stellen die Erscheinungen ein ernstes Integritätsproblem für die kommunizierten Daten
und, in vielen Anwendungen, das gesamte Kommunikationssystem dar.
-
Das
Ausführen
von integrierten Schaltungen unter Verwendung mehrerer Taktregionen
ist aus einer Vielfalt von Gründen
wünschenswert.
Demgemäss
gestattet das Verbessern von Datenkommunikationen über parallele
Busse zwischen Taktregionen praktikablere und schnellere parallele
Busverbindungsanwendungen, die wiederum direkt zur Erfüllung der
Nachfrage nach Hochgeschwindigkeitsschaltungen führen können, während die Datenintegrität in Gegenwart
versatzerzeugender Erscheinungen aufrechterhalten wird. Verschiedenste
Gesichtspunkte der vorliegenden Erfindung befassen sich mit den
oben erwähnten
Schwächen
und schaffen auch Kommunikationsverfahren und -anordnungen, die auch
für andere
Anwendungen nützlich
sind.
-
Die
US-Patentschrift Nr. 4,873,703 offenbart ein Synchronisierungssystem,
das für
eine verlässliche
Weitergabe von Daten über
eine Grenze zwischen zwei unabhängigen,
nichtkorrelierten Takten bereitgestellt ist. Das System verringert
das Auftreten von Fehlern aufgrund von nicht synchronen Abtastungen
auf Basis eines metastabilen Betriebs auf einen beliebig niedrigen
Grad. Das System ist als ein Zweitor-Speicher mit einem Einheitsentfernungscode,
der die Speicherzellen anspricht, organisiert. Es führt einen
Hand schlag zwischen den beiden nichtkorrelierten Taktsystemen durch,
um jedes beliebige Verhältnis
zwischen den beiden Takten zu gestatten.
-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Schaltung
zur Weitergabe von Daten von einer Quellentaktregion zu einer Empfangstaktregion,
die bei einer anderen Frequenz als die Sendetaktregion tätig ist.
Die vorliegende Erfindung ist in einer Anzahl von Ausführungen
und Anwendungen beispielhaft gezeigt, wovon einige davon nachstehend
zusammengefasst sind.
-
Nach
einer beispielhaften Ausführungsform der
vorliegenden Erfindung wird ein Verfahren zur Weitergabe von Daten
von einer Quellentaktregion zu einer nicht synchronen Empfangstaktregion
bereitgestellt. In der Quellentaktregion wird eine Schreib-Adress-Information
mit den Daten verknüpft. Ein
Taktgenerator erzeugt ein Sendetaktsignal, das mit einem Quellentaktregionstakt
synchron ist. Die Daten und die verknüpfte Schreib-Adress-Information
werden zusammen mit dem Sendetaktsignal zur Empfangstaktregion gesendet.
In der Empfangstaktregion werden die Daten an eine Adresse geschrieben,
die ein Speicherelement angibt, das mit der verknüpften Schreib-Adress-Information übereinstimmt.
Die Daten werden in Synchronisation mit dem begleitenden Sendetaktsignal
in das Speicherelement getaktet; doch werden die Daten in Synchronisation
mit einem Empfangstaktregionstakt aus dem Speicherelement gelesen.
-
Nach
einem Gesichtspunkt der vorliegenden Erfindung ist der Empfangstaktregionstakt
bei einer niedrigeren Frequenz als der Quellentaktregionstakt tätig. Nach
einem anderen Gesichtspunkt der vorliegenden Erfindung wird ein
Datensteuersignal von der Quellentaktregion zum Datenspeicherelement
kommuniziert, und werden die Daten im Datenspeicherelement als Reaktion
auf ein Datensteuersignal empfangen.
-
Nach
einer anderen beispielhaften Ausführungsform der vorliegenden
Erfindung wird eine Schaltungsanordnung zur Weitergabe von Daten
von einer Quellentaktregion zu einer nicht synchronen Empfangstaktregion
bereitgestellt. Ein Taktgenerator erzeugt in der Quellentaktregion
ein Sendetaktsignal, das mit einem Quellentakt synchron ist. Eine
erste Verarbeitungsschaltung, die sich in der Quellentaktregion
befindet, ist dazu geeignet, eine Schreib-Adress-Information mit
den Daten zu verknüpfen.
Die erste Verarbeitungsschaltung ist ferner dazu geeignet, die Daten
mit der verknüpften Schreib-Adress-Information, und
das Sendetaktsignal zur Empfangstaktregion zu senden. Eine zweite Verarbeitungsschaltung,
die sich in der Empfangstaktregion befindet, ist dazu geeignet,
die Daten an eine Adresse zu schreiben, die ein Speicherelement
angibt, sich ebenfalls in der Empfangstaktregion befindet, und mit
der verknüpften Schreib-Adress-Information übereinstimmt.
Die zweite Verarbeitungsschaltung ist ferner dazu geeignet, die
Daten in Synchronisation mit dem begleitenden Sendetaktsignal in
das Speicherelement zu takten und die Daten in Synchronisation mit
einem Empfangsregionstakt aus dem Speicherelement zu lesen.
-
Nach
einem anderen Gesichtspunkt der vorliegenden Erfindung ist die erste
Verarbeitungsschaltung ferner dazu geeignet, ein Datensteuersignal
von der Quellentaktregion zum Speicherelement in der Empfangstaktregion
zu senden, wobei das Speicherelement dazu geeignet ist, die Daten
als Reaktion auf ein Datensteuersignal zu empfangen.
-
Die
obige Zusammenfassung soll nicht jede veranschaulichte Ausführungsform
oder jede Ausführung
der vorliegenden Erfindung beschreiben. Die Figuren und die ausführliche
Beschreibung, die folgen, erläutern
diese Ausführungsformen
genauer.
-
Die
Erfindung kann unter Betrachtung der folgenden ausführlichen
Beschreibung verschiedener Ausführungsformen
der Erfindung in Verbindung mit den beiliegenden Zeichnungen vollständiger verstanden
werden, wobei
-
1 ein
Blockdiagramm ist, das eine integrierte Schaltung mit mehreren Taktregionen
nach einer beispielhaften Ausführungsform
der vorliegenden Erfindung veranschaulicht;
-
2 ein
Blockdiagramm für
eine in zwei Takte gegliederte FIFO nach einer beispielhaften Ausführungsform
der vorliegenden Erfindung ist;
-
3A ein
schematisches Diagramm für
die Treiberlogikschaltung nach einer beispielhaften Ausführungsform
der vorliegenden Erfindung ist; und
-
3B ein
Zeittaktdiagramm für
die Treiberlogikschaltung nach einer beispielhaften Ausführungsform
der vorliegenden Erfindung ist.
-
Obwohl
die Erfindung für
verschiedenste Abwandlungen und alternative Formen zugänglich ist, wurden
genaue Beschreibungen davon in den Zeichnungen beispielhaft gezeigt,
und werden sie ausführlich
beschrieben werden. Es sollte sich jedoch verstehen, dass nicht
beabsichtigt ist, die Erfindung auf die besonderen beschriebenen
Ausführungsformen
zu beschränken.
-
Wir
meinen, dass die vorliegende Erfindung auf eine Vielfalt von unterschiedlichen
Arten von elektronischen Schaltungen anwendbar ist, und es wurde
festgestellt, dass sie zur Verwendung in Verbindung mit integrierten
Schaltungen, die mit mehreren Taktregionen und parallelen Datenkommunikationen
dazwischen ausgeführt
sind, besonders geeignet ist. Obwohl die vorliegende Erfindung nicht
notwendigerweise auf derartige Einrichtungen beschränkt ist,
wird durch eine Besprechung verschiedener Beispiele, die diese Anwendung
verwenden, am besten eine Einschätzung
von verschiedenen Gesichtspunkten der Erfindung erzielt.
-
Nach
einer allgemeinen beispielhaften Ausführungsform der vorliegenden
Erfindung werden Daten, die von Schaltungen in einer Quellentaktregion
stammen, durch eine Datenpufferanordnung zu Schaltungen in einer
Empfangstaktregion gesendet. Die Daten werden in Synchronisation
mit einem Quellentakt (einem Schreibtakt) der Quellentaktregion
in die Pufferanordnung geschrieben und in Synchronisation mit einem
Empfangstakt (einem Lesetakt) der Empfangstaktregion aus der Pufferfunktion gelesen.
Die Pufferanordnung muss sich nicht physisch an der Taktregionengrenze
befinden. Tatsächlich
ist die Datenpufferanordnung der vorliegenden Erfindung in zwei
Abschnitte geteilt, wobei sich alle Schaltungsaufbauten, die mit
einem Schreibtakt ("der Schreibseite") synchron sein müssen, in
einer Schreib(d.h., Quellen)taktregion befinden, und sich alle Schaltungsaufbauten,
die mit einem Lesetakt ("der
Leseseite") synchron
sein müssen,
in einer Lese(d.h., Empfangs)taktregion befinden. Ein Speicherelement
der Pufferanordnung ist im Wesentlichen in der Empfangstaktregion
enthalten. Der Schreibtakt ist nicht direkt mit dem Speicherelement
verbunden, weshalb er nicht in die Empfangstaktregion überausgedehnt
werden muss.
-
Die
Schreibseite der Pufferanordnung nimmt die zu schreibenden Daten
zum Beispiel in einem Pipeline-Register an und unterhält einen Schreib-Adress-Zähler. Die
Schreib-Adress-Information wird mit den Daten verknüpft und
unter Verwendung eines quellensynchronen Ansatzes, wobei ein Taktungssignal
mit den Daten (und der verknüpften Schreib-Adress-Information)
gesendet wird, zum Speicherelement gesendet. Das Verwenden eines quellensynchronen
Sendetaktsignals anstelle des Ausdehnens des Quellentakts über lange
Datenübertragungsentfernungen
beseitigt Versatzprobleme zwischen dem Taktungssignal, das verwendet
wird, um Daten in den Speicherabschnitt der Pufferfunktion zu schreiben,
und dem Taktungssignal über
das Gleichgewicht der Quellentaktregion hinweg. Bei der vorliegenden
Erfindung ist ein Versatz zwischen dem Schreib- und dem Lesetakt
des Speicherelements nicht problematisch, da die Schreibtätigkeit
von der Quellentaktregi on und die Lesetätigkeit in die Empfangstaktregion
absichtlich nicht synchron sind. Es bleibt nur ein Taktsignalversatz
zwischen dem Sendetaktsignal und den begleitenden Daten/Adress-Informationen,
und dieser kann gesteuert werden, indem sichergestellt wird, dass
die Zeit, die die Daten/Adress-Informationen benötigen, um die physische Entfernung
von der Quellentaktregion zum Speicherelement in der Empfangstaktregion
zu überqueren,
ungefähr
jener Zeit gleich ist, die der quellensynchrone Takt benötigt, um
die (gleiche) physische Entfernung zu überqueren..
-
In
einer anderen beispielhaften Ausführungsform der vorliegenden
Erfindung ist eine integrierte Schaltung ausgeführt, die mehrere Taktregionen
und parallele Datenkommunikationen dazwischen aufweist. Die integrierte
Schaltung beinhaltet eine Pufferanordnung, die eine Schnittstelle
für die Datenkommunikationen
zwischen den jeweiligen Taktregionen darstellt. Die geteilte Pufferanordnung mit
zwei Takten beinhaltet eine erste Verarbeitungsschaltung, die sich
in einer Quellentaktregion befindet, und eine zweite Verarbeitungsschaltung,
die sich in einer Empfangstaktregion befindet. Die Quellen- und
die Empfangstaktregion verwenden jeweils einen Quellen- bzw. einen
Empfangstakt, die zwischen den Regionen nicht synchron sind. Nach
einem ersten Gesichtspunkt der vorliegenden Erfindung ist der Empfangstakt
bei einer niedrigeren Frequenz als der Quellentakt tätig, so
dass die Daten dazu neigen, sich periodisch in der Pufferanordnung
anzusammeln. Eine Takterzeugungsschaltung erzeugt ein Sendetaktsignal,
wobei das Sendetaktsignal mit dem Quellentakt synchron ist.
-
Die
erste Verarbeitungsschaltung verknüpft Daten, die ihren Ursprung
in Schaltungen der Quellentaktregion haben, mit einer Schreib-Adress-Information
von einer Schreibzeigereinrichtung, die sich ebenfalls in der Quellentaktregion
befindet, und sendet die Daten mit der verknüpften Schreib-Adress-Information
dann zur zweiten Verarbeitungsschaltung. Das Sendetaktsignal wird
ebenfalls von der Quellentaktregion zur Empfangstaktregion gesendet,
wobei es die Daten und die verknüpften
Schreib-Adress-Information
begleitet.
-
Nach
einem Gesichtspunkt der vorliegenden Erfindung wird zusätzlich ein
Datensteuersignal (d.h., ein Schreibsignal) von der Quellentaktregion
zur Empfangstaktregion gesendet. Die zweite Verarbeitungsschaltung
schreibt die Daten als Reaktion auf das Datensteuersignal an eine
Adresse, die ein Speicherelement angibt, wobei die angegebene Adresse mit
der verknüpften
Schreib-Adress-Information übereinstimmt.
Die Daten werden durch die zweite Verarbeitungsschaltung in Synchronisation
mit dem begleitenden Sende taktsignal in das Speicherelement getaktet
und anschließend
in Synchronisation mit dem Empfangstakt aus dem Speicherelement
gelesen.
-
Nach
einem Gesichtspunkt der vorliegenden Erfindung werden quellensynchrone
Schreibbefehle über
eine Taktregionengrenze, möglicherweise
eine verhältnismäßig lange
physische Entfernung (z.B. zumindest eine Größenordnung länger als
Entfernungen, die von Signalen innerhalb einer der Taktregionen überquert
werden), gesendet. Die Anzahl der elektrischen Signalwege, die die
Taktregionengrenze überqueren,
ist ungefähr
der Anzahl der Datenbits (d.h., der Breite der FIFO) plus dem Doppelten
der Anzahl der Adressbits, plus zwei für das Takt- und das Datensteuersignal,
und, für
jeden der jeweiligen Zähler,
einem Bit zur Unterscheidung zwischen voll und leer gleich. Die
Menge der benötigten
elektrischen Signalwege hängt
von der Tiefe des Speicherelements der Pufferfunktion ab. Wenn die
Tiefe des Speicherelements eine Potenz von Zwei ist, kann ein "rundes" Gray-Code-Adressschema
mit den begleitenden Leistungsfähigkeiten
eingesetzt werden. Ein Gray-codierter Schreibzähler und Lesezähler werden verwendet,
um die gegenwärtigen
Adressen für
jede Funktion im Speicherelement zu verfolgen. Die Höchstmenge
der elektrischen Signalwege, die benötigt werden, um die Grenze
zu überqueren,
kann als N + 2 ⌈log2(M)⌉ +
4 elektrische Signalwege ausgedrückt
werden, wobei N die Anzahl der Datenbits (d.h., die Breite des Speicherelements)
ist, M die Anzahl der Stellen im Speicherelement (d.h., die Tiefe des
Speicherelements) ist, wobei M eine Potenz von 2 ist, und ein Gray-Code-Adressierungsschema
verwendet wird, und die vier zusätzlichen
Bits jeweils für das
Taktsignal, das Datensteuersignal, die Voll/Leer-Schreibzähler-Differenziereinrichtung,
und die Voll/Leer-Lesezähler-Differenziereinrichtung
verwendet werden. Wenn der Puffer zum Beispiel 32 Bit breit und
32 Stellen tief ist, ist die Menge der elektrischen Signalwege,
die die Taktregionengrenze überqueren,
32 + 2·⌈log2(32)⌉ + 4 = 32 + 2·5 + 4
= 46, wobei "⌈⌉" den aufgerundeten
Wert für
die Fähigkeit
der Adressierung aller Bits bezeichnet.
-
Wenn
die Tiefe des Speicherelements keine Potenz von Zwei ist (und somit
eine Gray-Code-Adressabfolge Adress"lücken" aufweisen wird) sind
Gray-Code-Werte für
den Lese- und den Schreibzeiger nicht gut zur Verwendung als Speicherelementadressen
geeignet und müssen
zusätzlich
zur Schreib-Adress-Information und davon gesondert Gray-Code-Zeiger gesendet
werden. Die Gray-Code-Zeigerinformation erhöht die Anzahl der elektrischen
Signalwege um ein Ausmaß,
das nötig ist,
um einen weiteren Satz von Adressbits unterzubringen. Falls die
Speicherelementtiefe keine Potenz von Zwei ist, kann die Höchstmenge
der elektrischen Signalwege, die benötigt werden, um die Grenze
zu überque ren,
als N + 3·⌈log2(M)⌉ + 4 elektrische Signalwege
ausgedrückt
werden, wobei N die Anzahl der Datenbits ist, M die Tiefe des Speicherelements ist,
wobei M keine Potenz von Zwei ist, und die anderen vier Bits für die oben
besprochene Signalisierung verwendet werden. 1 veranschaulicht
einen integrierten Schaltungschip 100 der vorliegenden
Erfindung, der mehrere Taktregionen, Taktregion A 110, Taktregion
B 120, bzw. Taktregion C 130, aufweist. Die Taktregionengrenze
AB 115 befindet sich zwischen den Taktregionen A und B,
die Taktregionengrenze BC 125 befindet sich zwischen den
Taktregionen B und C, und die Taktregionengrenze AC 135 befindet
sich zwischen den Taktregionen A und C. Bidirektionale parallele
Datenkommunikationen überqueren
jede der Taktregionengrenzen, wie durch jede Gruppe von Datenflusspfeilen
veranschaulicht ist. Zum Beispiel gibt der Pfeil 140 parallele
Daten- und Adress-Informationen an, gibt der Pfeil 142 ein
Taktsignal an, und gibt der Pfeil 144 ein Datensteuersignal
an.
-
Jede
Taktregion könnte über die
Taktregion hinweg eine einzelne Taktfrequenz benutzen, oder alternativ
mehrere synchrone Taktsignale beinhalten. Zum Beispiel beinhaltet
die Taktregion A zwei Taktfrequenzen, Takt A1 150 und A2 160.
Jede Taktregion ist unabhängig
von den anderen Taktregionen getaktet, und die Taktsignale für jede Taktregion
können möglicherweise
nicht mit Taktsignalen der anderen Taktregionen synchron sein. Zusätzlich kann
jede Taktregion Taktsignale mit einzigartigen Frequenzen beinhalten,
die sich in den anderen Taktregionen nicht finden. Datenkommunikationen über die
Taktregionengrenze AB sind in der Taktregion A zu Schaltungen gerichtet,
die gemäß Takt A1
tätig sind.
Datenkommunikationen über
die Taktregionengrenze AC sind in der Taktregion A zu Schaltungen
gerichtet, die gemäß Takt A2
tätig sind.
-
Die
Taktregion, von der Daten über
eine Taktregionengrenze fließen,
wird als eine Quellentaktregion bezeichnet, und die Taktregion,
zu der die Daten über
die Taktregionengrenze fließen,
wird als eine Empfangstaktregion bezeichnet. Zum Beispiel haben
in 1 Daten wie durch den Pfeil 122 angegeben
ihren Ursprung in der Taktregion B (d.h., der Quellentaktregion),
und werden sie durch eine erste Verarbeitungsschaltung 124 in
der Quellentaktregion erhalten. Die Daten fließen wie durch den Pfeil 140 veranschaulicht über die
Taktregionengrenze AB 115 zu einer zweiten Verarbeitungsschaltung 112 und
anschließend
wie durch den Pfeil 114 angegeben aus der zweiten Verarbeitungsschaltung 112 zu
Schaltungen, die sich in der Taktregion A befinden. Abhängig von
der Ausführung
können
Daten in eine oder in beide Richtungen über die Taktregionengrenze AB,
und optional über
andere Taktregionengrenzen fließen, wie
in 1 weiter angegeben ist.
-
2 ist
ein Blockdiagramm einer beispielhaften Ausführungsform der vorliegenden
Erfindung 200 und veranschaulicht eine erste Verarbeitungsschaltung 224,
die sich in einer Quellentaktregion 220 befindet. Eine
zweite Verarbeitungsschaltung 212 befindet sich in einer
Empfangstaktregion 210. Die Taktregionengrenze 215 befindet
sich zwischen der Quellen- und der Empfangstaktregion. Die Quellentaktregion
stellt der Quellentaktklemme 270 ein Quellentaktsignal
(oder einen Schreibtakt, "clkw") bereit, und die
erste Verarbeitungsschaltung arbeitet synchron mit dem Quellentakt.
Die Empfangstaktregion stellt der Empfangstaktklemme 280 ein
Empfangstaktsignal (oder einen Lesetakt, "clkr")
bereit, und die zweite Verarbeitungsschaltung arbeitet synchron
mit dem Empfangstakt.
-
Die
erste Verarbeitungsschaltung beinhaltet einen quellensynchronen
Sendelogik-Abschnitt 226, und einen Schreibzähler- und
schreibsynchronen Markierungslogik-Abschnitt 228. Die Sendelogik 226 erhält Daten,
die zur Empfangstaktregion kommuniziert werden sollen, über einen
Dateneingangssignalweg 222, erhält eine Schreib-Adress-Information über einen
Schreibadressen("waddtr")signalweg 221,
und ein Datensteuer("z.B.
Schreib)signal über einen
Schreib("wenable")signalweg 223.
Die erste Verarbeitungsschaltung ist dazu geeignet, die Daten mit
der zugehörigen
Schreib-Adress-Information zu verknüpfen und die Daten mit der
verknüpften Schreib-Adress-Information
durch einen parallelen Kommunikationskanal zur zweiten Verarbeitungsschaltung
zu senden. Die Daten werden über
einen Datensignalweg ("ss_data") 240D gesendet
und die verknüpfte
Schreib-Adress-Information
wird über
einen Adressensignalweg ("ss_addr") 240A gesendet, wenn
die Tiefe des Speicherelements keine Potenz von zwei ist. Die erste
Verarbeitungsschaltung erhält den
Quellentakt und andere Informationssignale von Schaltungen in der
Quellentaktregion und erzeugt wie in 2 veranschaulicht
Markierungen und andere Steuersignale an Schaltungen in der Quellentaktregion.
-
Die
erste Verarbeitungsschaltung ist dazu geeignet, ein quellensynchrones
Sendetaktsignal zu erzeugen, das mit dem Quellentakt synchron ist.
Das quellensynchrone Sendetaktsignal wird über einen Taktsignalweg ("ss_clk") 242 zur
zweiten Verarbeitungsschaltung kommuniziert. Die Sendelogik 226 ist ferner
dazu geeignet, das Datensteuersignal über einen Datensteuersignalweg
("ss_wenable") 244 zur zweiten
Verarbeitungsschaltung zu senden.
-
Die
zweite Verarbeitungsschaltung beinhaltet ein Speicherelement 290 und
einen Lesezähler- und
lesesynchronen Markierungslogik-Abschnitt 292. Nach einem
Gesichtspunkt der vorliegenden Erfindung ist das Speicherelement
eine FIFO-Speicheranordnung,
wobei die FIFO über
einen kompilierten Speicher ausgeführt ist. Die FIFO 290 ist
alternativ über
eine Registerdatei ausgeführt,
die aus Zwischenspeichern aufgebaut ist, durch eine Gestaltung von
Flipflops ausgeführt,
oder als ein anderer Datenspeicheraufbau ausgeführt. Ein Gray-Code-Schreibzeigersignal
wird über
einen Gray-Code-Schreibzeigersignalweg
("Gray_Wr_Ptr"), und ein Gray-Code-Lesezeigersignal über einen
Gray-Code-Lesezeigersignalweg ("Gray_Rd_Ptr") wie nötig zwischen der
ersten und der zweiten Verarbeitungsschaltung kommuniziert.
-
Die zweite
Verarbeitungsschaltung erhält
die Daten mit der verknüpften
-
Schreib-Adress-Information,
den Datensteuersignalen, und dem Sendetaktsignal durch die oben beschriebenen
Signalwege. Die zweite Verarbeitungsschaltung erhält wie in 2 veranschaulicht den
Empfangstakt und andere Signale von Schaltungen in der Empfangstaktregion.
Die Daten werden an eine Adresse, die mit der verknüpften Schreib-Adress-Information übereinstimmt,
in das Speicherelement 290 geschrieben, wobei die Daten in
Synchronisation mit dem begleitenden Sendetaktsignal in das Speicherelement
getaktet werden. Die Schreibtätigkeiten
erfolgen, wie herkömmlich
bekannt, als Reaktion auf das begleitende Datensteuer(z.B. Schreib)signal.
-
Der
Lesezähler-
und lesesynchrone Markierungslogik-Abschnitt 292 erhält ein Lesesignal
("rd"), optionale Steuer-
und Markierungsinformationen, erzeugt passende Markierungssignale,
und unterhält ein
Leseadressen("Raddr")signal, das ein
Speicherelement angibt, aus dem Daten aus dem Speicherabschnitt 290 gelesen
werden. Die Daten werden in Synchronisation mit dem Empfangstakt
zu einem Datenausgang("do")signalweg 214 aus
dem Speicherelement 290 getaktet, wobei sie durch ein optionales Register 216 verlaufen.
-
3A ist
ein Schaltbild einer beispielhaften Ausführungsform der vorliegenden
Erfindung 300. Ein Treiberlogikschaltungsabschnitt 324 einer
ersten Verarbeitungsschaltung befindet sich in einer Quellentaktregion
und "fängt" Daten, Adress- und
Steuerinformationen in jeweiligen Pipeline-Registern. Die Treiberlogikschaltung 324 erhält über einen
Quellentaktsignalweg 370 ein Quellentaktsignal (den Quellentakt
oder "clk"). Jedes der Flipflops
der Treiberschaltung 324 wird wie gezeigt durch den Quellentakt getaktet.
Die Daten werden durch die Treiberschaltung über einen Datensignalweg 322 erhalten
und durch ein Datenflipflop 327 auf einen quellensynchronen
Datensignalweg ("ss_data") 340D getaktet.
Die Schreib-Adress-Information wird durch die Treiberschaltung über einen
Schreib-Adressensignalweg 321 erhalten und durch ein Adressenflipflop 325 auf einen
quellensynchronen Adressensignalweg ("ss_addr") 340A getaktet. Ein Datensteuer(z.B. Schreibsignal
("we_n") wird durch ein
Datensteuerflipflop 329 auf einen quellensynchronen Datensteuersignalweg
("ss_we_n") 344 getaktet.
Eine Sendetakterzeugungsschaltung 331 erzeugt ein mit dem Quellentakt
synchrones Sendetaktsignal auf einen quellentaktsynchronen Sendetaktsignalweg ("ss_clk") 342. Der
Sendetakt ist im Wesentlichen ein umgekehrter Quellentakt, wird
aber typischerweise NICHT durch einen Inverter, sondern statt dessen
unter Verwendung einer Technik, die der für die Sendetakterzeugungsschaltung 331 gezeigten ähnlich ist, erzeugt,
was auch eine gewisse nicht unbedeutende Phasenverzögerung in
Bezug auf das Quellentaktsignal in den Sendetakt einbringt.
-
Das
Daten-, das Adress- und das Datensteuersignal werden unter Verwendung
des Schreibtakts abgetastet und über
die quellensynchrone Schnittstelle gesendet. 3B ist
ein Zeittaktdiagramm, das eine beispielhafte Ausführungsform
von repräsentativen
Signalen veranschaulicht, die wie oben beschrieben durch die Treiberlogikschaltung 324 von 3A erzeugt
werden. Das Signal 370' ist
für ein Quellentaktsignal
auf dem Quellentaktsignalweg 370 repräsentativ. Das Signal 342' ist für ein Sendetaktsignal
auf dem quellensynchronen Sendetaktsignalweg ("ss_clk") 342 repräsentativ. Das Signal 340' ist für die Signale,
die dem Datensteuersignalweg ("ss_we_n") 344 entsprechen,
und auch das Daten- und das Adressensignal auf dem quellensynchronen Daten-
bzw. Adressensignalweg ("ss_data") 340D bzw.
("ss_addr") 340A repräsentativ.
-
Unter
erneuter Bezugnahme auf 3A erhält ein Empfängerlogikschaltungsabschnitt 312 einer
zweiten Verarbeitungseinheit das gesendete Daten-, Adressen-, Datensteuer-
bzw. Sendetaktsignal, nachdem sie die Taktregionengrenze 315 überquert haben.
Jedes der Flipflops der Empfängerschaltung 312 ist
wie gezeigt durch den quellentaktsynchronen Sendetakt getaktet.
Der Sendetakt taktet auch das FIFO-Speicherelement der zweiten Verarbeitungsschaltung
(nicht gezeigt). Die Daten werden durch die Empfängerschaltung über den
quellensynchronen Datensignalweg ("ss_data") 340D erhalten und durch ein
Empfangs-Datenflipflop 395 zum FIFO-Speicherelement getaktet.
Die Schreib-Adress-Information
wird durch die Empfängerschaltung über den
quellensynchronen Schreibadressensignalweg ("ss_addr") 340A erhalten und durch ein
Empfangs-Adressenflipflop 397 zur
FIFO getaktet. Das Datensteuer(z.B. Schreibsignal wird durch die Empfängerschaltung über den
quellensynchronen Datensteuersignalweg ("ss_we_n") erhalten und durch ein Empfangs-Datensteuerflipflop 399 zur FIFO
getaktet. Das Gleichgewicht des FIFO-Speicherelements und seine
Steuerung können
wohlbekannten Gestaltungspraktiken für derartige Datenspeichereinrichtungen
folgen.
-
Eine
andere beispielhafte Ausführung
der vorliegenden Erfindung zielt auf eine bedeutende Verringerung
der Leistung während
Zeiträumen,
in denen keine Daten über
die Taktregionengrenze geschrieben werden, ab. Wenn keine Daten über die Taktregionengrenze
geschrieben werden, muss das Sendetaktsignal 342 von 3A nicht
erzeugt werden, und muss der inaktive FIFO-Datenspeicherschaltungsaufbau
nicht durch das Sendetaktsignal umgeschaltet/angetrieben werden.
Dieses Taktdeaktivierungsmerkmal kann zum Beispiel durch Ersetzen des
Inverters am D-Eingang des oberen Flipflops der Sendetakterzeugungsschaltung 331 durch
ein Exklusiv-NOR-Gatter (XNOR-Gatter), das einen zweiten Eingang
aufweist, der mit dem Datensteuersignalweg 323 verbunden
ist, ausgeführt
werden. Auf diese Weise wird das Sendetaktsignal 342 automatisch
angehalten, sofern es nicht zu einem Schreiben in die FIFO kommt.
Ein zusätzlicher
Vorteil ist eine Verringerung der Leistung, die mit den möglicherweise
langen Busleitungen verbunden ist, welche die Taktregionen verbinden;
da diese Busleitungen einen verhältnismäßig hohen
kapazitiven Widerstand offenbaren können, verringert das Deaktivieren
des Sendetaktsignals den normalerweise vorhandenen Antriebsstrom.
-
Obwohl
die vorliegende Erfindung unter Bezugnahme auf mehrere bestimmte
beispielhafte Ausführungsformen
beschrieben wurde, werden Fachleute erkennen, dass daran viele Änderungen
vorgenommen werden können.
Zum Beispiel ist das Verfahren der vorliegenden Erfindung auf entfernte
Informationspufferanordnungen mit einer von der Puffereingangsrate
unterschiedlichen Pufferausgangsrate, bei denen beim Ausdehnen eines
Schreibtaktungssignals zum Puffer ein Versatz eine Sorge darstellt,
anwendbar.
-
Ausführungsform der Erfindung:
-
Eine
Schaltungsanordnung zur Weitergabe von Daten von einer Quellentaktregion
zu einer Empfangstaktregion, wobei die Quellen- und die Empfangstaktregion
jeweils einen Quellen- bzw. einen Empfangstakt verwenden, die nicht
synchron sind, wobei das Verfahren Folgendes umfasst:
- – einen
ersten Taktgenerator, der dazu geeignet ist, in der Quellentaktregion
ein Sendetaktsignal zu erzeugen, wobei das Sendetaktsignal mit dem Quellentakt
synchron ist;
- – eine
erste Verarbeitungsschaltung, die dazu geeignet, ist, in der Quellentaktregion
eine Schreib-Adress-Information mit Daten zu verknüpfen und
die Daten mit der verknüpften Schreib-Adress-Information
und dem Sendetaktsignal zur Empfangstaktregion zu senden;
- – eine
zweite Verarbeitungsschaltung in der Empfangstaktregion, die dazu
geeignet ist, die Daten an eine Adresse zu schreiben, die ein Speicherelement
angibt, wobei die angegebene Adresse mit der verknüpften Schreib-Adress-Information übereinstimmt,
wobei sich das Speicherelement in der Empfangstaktregion befindet
und die Daten in Synchronisation mit dem Sendetaktsignal in das Speicherelement
getaktet werden; und
- – wobei
die zweite Verarbeitungsschaltung ferner dazu geeignet ist, die
Daten in Synchronisation mit dem Empfangstakt aus dem Speicherelement zu
lesen.
-
In
der Schaltungsanordnung ist die erste Verarbeitungsschaltung ferner
dazu geeignet, ein Datensteuersignal von der Quellentaktregion zum
Speicherelement in der Empfangstaktregion zu senden, wobei das Speicherelement
dazu geeignet ist, die Daten als Reaktion auf ein Datensteuersignal
zu empfangen.
-
Die
Schaltungsanordnung umfasst ferner höchstens N + 2·⌈log2(M)⌉ + 4 elektrische Signalwege,
die zwischen der ersten und der zweiten Verarbeitungsschaltung gekoppelt
sind, um die Daten mit der verknüpften
Schreib-Adress-Information zu kommunizieren, wobei die Daten N Bit
breit sind, das Speicherelement M Stellen tief ist, und M eine Potenz von
2 ist.
-
Die
Schaltungsanordnung umfasst ferner höchstens N + 3·⌈log2(M)⌉ + 4 elektrische Signalwege,
die zwischen der ersten und der zweiten Verarbeitungsschaltung gekoppelt
sind, um die Daten mit der verknüpften
Schreib-Adress-Information zu kommunizieren, wobei die Daten N Bit
breit sind, das Speicherelement M Stellen tief ist, und M keine
Potenz von 2 ist.
-
Die
Schaltungsanordnung umfasst ferner eine Schaltung, die dazu geeignet
ist, das Sendetaktsignal während
Zeiträumen,
in denen die erste Verarbeitungsschaltung die Daten mit der verknüpften Schreib-Adress-Information
nicht sendet, zu deaktivieren.
-
1
- CLK
A1
- Takt
A1
- Clock
Domain A
- Taktregion
A
- CLK
A2
- Takt
A2
- Clock
Domain B
- Taktregion
B
- Clock
Domain C
- Taktregion
C
-
2
- di
- Dateneingang
- rstw_n
- rstw_n
- opt
ctrl & flags
- optionale
Steuer und Markierungsinformationen
- flags
- Markierungen
- wr
- Schreibsignal
- clkw
- Quellentaktsignal
- Source
Synch Transmit Logic
- quellensynchrone
Sendelogik
- waddr
- Schreibadressensignal
- wenable
- Schreibsignal
- Write
Counter And Write-Synch Flag Logic
- Schreibzähler und schreibsynchrone
Markierungslogik
-
-
- Synchronous
to CLKW
- in
Synchronisation mit dem Schreibtakt
- Source
Clock Domain
- Quellentaktregion
- ss_data
- Datensignalweg
- ss_addr
- Adressensignalweg
- ss_wenable
- Datensteuersignalweg
- ss_clk
- Taktsignalweg
- gray_wr_ptr
- Gray-Code-Schreibzeigersignalweg
- gray_rd_ptr
- Gray-Code-Lesezeigersignalweg
- FIFO
Storage
- FIFO-Speicher
- (RAM,
RegF,Or Flops)
- (RAM,
Registerdatei oder Flops)
- Optional
Reg
- optionales
Register
- raddr
- Leseadressensignal
- Read
Counter and Read-Synch Flag Logic
- Lesezähler und
lesesynchrone Markierungslogik
- Synchronous
to CLKR
- in
Synchronisation mit dem Lesetakt
- Receive
Clock Domain
- Empfangstaktregion
- do
- Datenausgang
- rstr_n
- rstr_n
- opt
ctrl & flags
- optionale
Steuer und Markierungsinformationen
- flags
- Markierungen
- rd
- Lesesignal
- clkr
- Lesetaktsignal
-
3A
- Driver
Logic Circuit
- Treiberlogikschaltung
- addr
- Schreibadressensignalweg
- data
- Datensignalweg
- we_n
- Datensteuersignalweg
- clk
- Quellentaktsignal
- ss-addr
- quellensynchroner Adressensignalweg
- ss_data
- quellensynchroner
Datensignalweg
- ss_we_n
- quellensynchroner
Datensteuersignalweg
- ss_clk
- quellensynchroner
Sendetaktsignalweg
- Source
Clock Domain
- Quellentaktregion
- Receiver
Logic Circuit
- Empfängerlogikschaltung
- To
FIFO
- an
FIFO
- Receive
Clock Domain
- Empfangstaktregion
-
3B
- CLK
- Takt
- SS_DATA_SS_ADDR
- quellensynchroner
Datensignalweg, quellensynchroner Adressensignalweg
- SS_WE_N
- quellensynchroner
Datensteuersignalweg
- SS_CLK
- quellensynchroner
Sendetaktsignalweg