DE69332401T2 - Verbesserte ein- und mehrstufige FIFO-Entwürfe für Datenübertragungssynchronisiereinrichtungen - Google Patents
Verbesserte ein- und mehrstufige FIFO-Entwürfe für DatenübertragungssynchronisiereinrichtungenInfo
- Publication number
- DE69332401T2 DE69332401T2 DE69332401T DE69332401T DE69332401T2 DE 69332401 T2 DE69332401 T2 DE 69332401T2 DE 69332401 T DE69332401 T DE 69332401T DE 69332401 T DE69332401 T DE 69332401T DE 69332401 T2 DE69332401 T2 DE 69332401T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- signal
- input
- clock
- output
- 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
Links
- 238000013461 design Methods 0.000 title description 13
- 238000012546 transfer Methods 0.000 title description 8
- 230000015654 memory Effects 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000001934 delay Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/08—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/10—Indexing scheme relating to groups G06F5/10 - G06F5/14
- G06F2205/102—Avoiding metastability, i.e. preventing hazards, e.g. by using Gray code counters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf Datenkommunikationssysteme. Spezieller bezieht sich die vorliegende Erfindung auf Systeme und Techniken zum Synchronisieren von Datenübertragungen über Domänengrenzen hinweg.
- Während die vorliegende Erfindung hierin unter Bezugnahme auf veranschaulichende Ausführungsbeispiele für bestimmte Anwendungen beschrieben ist, sollte man verstehen, daß die Erfindung nicht hierauf beschränkt ist. Fachleute werden zusätzliche Modifizierungen, Anwendungen und Ausführungsbeispiele innerhalb des Schutzbereichs der Erfindung sowie zusätzliche Gebiete, auf denen die vorliegende Erfindung von beträchtlichem Nutzen wäre, erkennen.
- Bei manchen Datenkommunikationsanwendungen besteht ein Bedarf daran, digitale Daten über eine Domänengrenze hinweg zu übertragen. In diesem Zusammenhang ist eine Domäne ein System, das unter einem einzigen Taktsignal arbeitet. Eine Domänengrenze ist somit eine Grenze zwischen zwei Systemen, die mit unterschiedlichen Taktsignalen arbeiten. Datenübertragungen über eine Grenze hinweg müssen synchronisiert werden und sind daher etwas problematisch.
- Eine Technik zum Erreichen einer zuverlässigen Datenübertragung über eine Domänengrenze hinweg wird als "Geschwindigkeitsausgleich" bezeichnet. Ein Geschwindigkeitsausgleich beinhaltet die momentane Speicherung der Daten in einem Zuerst-Hinein-Zuerst-Heraus-Speicher (FIFO-Speicher) und die synchrone Kommunikation von Steuerzeigern auf dieselben zwischen dem sendenden und dem empfangenden System. Das FIFO dient als Verzögerungspuffer, um die Daten zu halten, bis das empfangende System die Daten annehmen kann.
- In der Technik sind viele FIFO-Entwürfe bekannt. Bei einem herkömmlichen Ripple-FIFO-Speicher bzw. Welligkeits-FIFO- Speicher werden Daten in einem Pipeline-Speicher gespeichert und treten nach einer gewissen vorbestimmten Anzahl von Takten in einem Zuerst-Hinein-Zuerst-Heraus-Format aus. Pipeline-FIFOs begrenzen die Rate, bei der Daten gespeichert werden können, auf die Rate, bei der sie gelesen werden. Diese "Durchfall"-Verzögerung ist gleich der Tiefe des FIFO. Daher tendieren Ripple-FIFOs dazu, große Durchfallverzögerungen sowie Synchronisierungsprobleme aufzuweisen.
- In der Patentanmeldungsschrift GB2132456A aus dem Vereinigten Königreich mit dem Titel "Ripple register for transmission of data" ist ein Datenübertragungssystem beschrieben, das aus einer Mehrzahl von identischen Ripple- Registervorrichtungen besteht, die in Reihe geschaltet sind und von denen jede ein Daten-"Ein"-und-"Aus"-Tor, ein mit einer nachfolgenden Vorrichtung verbundenes Halten-"Ein"- Tor und ein mit einer vorhergehenden Ripple- Registervorrichtung verbundenes Halten-"Aus"-Tor und ein mit einer nachfolgenden Ripple-Registervorrichtung verbundenes Voll-"Aus"-Tor und ein mit einem vorhergehenden Ripple-Register verbundenes Voll-"Ein"-Tor aufweist. Das Voll-Tor sendet Informationen, daß eine bestimmte Ripple- Registervorrichtung bereit ist, Daten zu senden. Das Halten-Tor sendet Informationen, daß die bestimmte Ripple- Registervorrichtung keine Daten empfangen kann. Jede bestimmte Ripple-Registervorrichtung weist zumindest zwei Datenrangregister auf, so daß Daten ansprechend auf unab hängige Signale an den Voll-"Ein"- und Halten-"Ein"-Toren gleichzeitig sowohl empfangen als auch gesendet werden.
- In der U.S.-Patentschrift 3972034 ist eine Zuerst-Hinein- Zuerst-Heraus-Pufferspeichervorrichtung offenbart, bei der Signale, einschließlich eines Parallellastsignals (PL- Signal), an ein Eingangsregister geliefert werden, dessen Inhalt an einen Datenspeicherstapel transferiert wird, dessen Ausgang an eine Ausgangsregister- und Gatterschaltung geliefert wird, die ansprechend auf ein Ausgangsfreigabesignal (OE-Signal; OE = output enable) parallele Ausgangssignale liefert.
- In der U.S.-Patentschrift 4,596,026 ist ein Asynchroner- Datentakt-Generator offenbart, der einen Seriell-zu- Parallel-Eingangswandler, einen Parallel-FIFO-Speicher und einen Parallel-zu-Seriell-Ausgangswandler aufweist, wobei die Wandler jeweilige Taktsignale empfangen und der Speicher beide Taktsignale empfängt.
- Ein alternativer FIFO-Entwurf liefert eine Schreibseite, in die Daten geschrieben werden, und eine Leseseite, aus der Daten gelesen werden. Bei diesem beliebteren Entwurf wird auf jeder Seite ein Zeiger verwendet, um die Datenmenge, die in den Speicher eingegeben oder aus dem Speicher herausgenommen wird, nachzuverfolgen. Nach einem Taktzyklus sind Daten auf der Zufuhrseite verfügbar. Während dieser Entwurf eine geringere Durchfallverzögerung auf weist, bleiben jedoch die Synchronisationsprobleme oft bestehen.
- Auf jeden Fall ist bei diesen Geschwindigkeitsausgleichssystemen die Größe oder Tiefe des Speichers eine wichtige Überlegung. In dem am 10. Oktober 1989 an Crandall u. a. erteilten U.S.-Patent Nr. 4,873,703 mit dem Titel SYNCHRO- NIZING SYSTEM wird ein besonders vorteilhaftes Geschwindigkeitsausgleichsschema beschrieben, das einen beliebigen Grad einer Synchronisationszuverlässigkeit ermöglicht, indem die Anzahl von in Kaskade geschalteten Synchronisiereinrichtungen ausgewählt wird.
- Die synchrone Kommunikation von Steuerzeigern über die Grenze hinweg wird mit einem Graucodierungsschema erreicht, durch das sich zu einem bestimmten Zeitpunkt jeweils immer nur ein Bit verändert, um Risiken während einer Synchronisation zu beseitigen. Dies ermöglicht es Flipflops, die als Synchronisiereinrichtungen verwendet werden sollen, den Wert anzunehmen, der den Steuerzeigern an jedem Taktzyklus zugeordnet ist. Da sich das Taktsignal jedoch in einer anderen Zeitdomäne befindet als das Ursprungssignal, könnte es die Einricht- oder Haltezeit des Flipflops übertreten, und das Flipflop könnte metastabil werden. In diesem Zusammenhang ist die Einrichtzeit die Zeit, die benötigt wird, damit das Flipflop eine auslösende Flanke eines Taktpulses identifiziert.
- Daher lehrt die Patentschrift, auf die Bezug genommen wurde, die Verwendung eines FIFO-Speichers mit graucodierten Steuerzeigern, die erlauben, daß lediglich eines der Flipflops entweder auf der Leseseite oder auf der Schreibseite metastabil wird. Eine Verwendung eines zweiten Flipflops gemäß einem Doppelsynchronisationsschema liefert einen vollständigen Taktzyklus, in dem sich das Flipflop im Falle, daß es metastabil wird, stabilisieren kann. Der Begriff "Metastabilität" bezieht sich auf einen fehlerhaften Ausgang, der aus einem Abtasten zwischen einem logischen "0"-Zustand und einem logischen "1"-Zustand resultiert. Dies trägt dazu bei, das Risiko eines Ausfalls zu verringern. Die Patentschrift, auf die Bezug genommen wurde, lehrt ein Verfahren zum Ermitteln der korrekten Größe des FIFO, um einen unnötigen Verzug zu verhindern, während die Synchronisationsanforderung bezüglich Zuverlässigkeit erfüllt wird. Ein unnötiger Verzug findet statt, wenn eine Datensenke und eine Datenquelle in bezug auf eine Geschwindigkeit aufeinander abgestimmt werden und wenn entweder die Senke oder die Quelle gezwungen wird (wenn auch nur momentan), ein Übertragen von Daten zu verzögern.
- Kurz gesagt sind mit dem offenbarten System drei Probleme verbunden. Erstens ist die Eingangseinrichtzeit zu dem FIFO von einem Taktimpulsabstand, einer kapazitiven Belastung (in der Datenstufe des FIFO) aufgrund eines Routens, einer kapazitiven Belastung aufgrund einer Ausgangsverzweigung, von immanenten Einrichtverzögerungen von Flipflops und von Anschlußflächenverzögerungen abhängig. (Die Einrichtzeit ist die Zeit, während derer die Daten stabil sein müssen, bevor die auslösende Flanke des Takts auftritt.) Die meisten dieser Punkte können durch eine Auswahl des Entwurfs, des Puffers und der Komponenten gesteuert werden. Jedoch ist die kapazitive Belastung aufgrund einer Ausgangsverzweigung normalerweise eine Funktion der Größe des FIFO. Je größer das FIFO, desto größer die kapazitive Belastung, und somit um so größer das Einrichtzeiterfordernis.
- Zweitens ist die Ausgangsverzögerungszeit von dem FIFO abhängig von dem Taktimpulsabstand, der kapazitiven Belastung (in der Datenstufe des FIFO) aufgrund eines Routens, von der kapazitiven Belastung aufgrund einer Ausgangsverzweigung und von immanenten Verzögerungen von Flipflops, Multiplexern (oder Dreizustandsbusverzögerungen) und von Anschlußflächen. Die meisten dieser Punkte können durch eine Auswahl des Entwurfs, des Puffers und der Komponenten gesteuert werden. Jedoch ist eine immanente Verzögerung durch Multiplexer oder eine Dreizustandsbusbelastung eine Funktion der Größe des FIFO. Je größer also das FIFO, desto größer die immanente Verzögerung durch den Multiplexer, oder desto größer die Verzögerung an dem gemeinsam verwendeten Dreizustandsbus.
- Drittens ist die Betriebsgesamtgeschwindigkeit des FIFO normalerweise von Anschlußflächenverzögerungen in Kombination mit der Ausbreitungsverzögerung der kombinatorischen Logik in dem Steuerabschnitt des FIFO abhängig. Bei großen FIFOs stellt diese Ausbreitungsverzögerung eine beträchtliche Begrenzung der Geschwindigkeit des Gesamtsystems dar.
- Somit besteht in der Technik ein Bedarf an weiteren Verbesserungen der Systeme und Techniken zum Bewerkstelligen von synchronen Datenübertragungen über Domänengrenzen hinweg bei minimalem Fehler.
- Gemäß der vorliegenden Erfindung ist eine Synchronisiereinrichtung vorgesehen, die angeordnet ist, um zu ermöglichen, daß Daten, die mit einem ersten Taktsignal synchronisiert sind, in Synchronisation mit einem zweiten Taktsignal übertragen werden, wobei die Synchronisiereinrichtung folgende Merkmale aufweist:
- eine Speichereinrichtung, die einen Dateneingang, einen Schreibeingang, einen ersten Takteingang zum Empfangen des ersten Taktsignals, einen zweiten Takteingang zum Empfangen des zweiten Taktsignals, einen Datenausgang, einen Nicht- Leer-Signal-Ausgang auf weist, wobei die Speichereinrichtung eine Mehrzahl von einzelnen mehrstufigen Zuerst-Hinein- Zuerst-Heraus-Speichergeräten umfaßt;
- dadurch gekennzeichnet, daß die Synchronisiereinrichtung zusätzlich folgende Merkmale aufweist:
- ein erstes einstufiges Zuerst-Hinein-Zuerst-Heraus- Speichergerät, das einen Dateneingang zum Empfangen von Daten, einen Takteingang zum Empfangen des ersten Taktsignals, einen mit dem Dateneingang der Speichereinrichtung verbundenen Datenausgang und einen mit dem Schreibeingang der Speichereinrichtung verbundenen Nicht-Leer-Signal- Ausgang auf weist; und
- ein zweites einstufiges Zuerst-Hinein-Zuerst-Heraus- Speichergerät, das einen mit dem Datenausgang der Speichereinrichtung verbundenen Dateneingang, einen Takteingang zum Empfangen des zweiten Taktsignals, einen mit dem Nicht- Leer-Signal-Ausgang der Speichereinrichtung verbundenen Schreibeingang und einen Datenausgang zum Senden von Daten auf weist;
- wobei der Dateneingang der Speichereinrichtung, der Dateneingang des ersten einstufigen Zuerst-Hinein-Zuerst-Heraus- Speichergeräts und der Datenausgang des zweiten einstufigen Zuerst-Hinein-Zuerst-Heraus-Speichergeräts allesamt eine selbe Datenbreite n, n ≥ 2, aufweisen; und
- wobei die Synchronisiereinrichtung ferner so angeordnet ist, daß Daten nur dann in den Dateneingang eingegeben werden, falls der entsprechende Schreibeingang logisch wahr ist.
- Bei einem bevorzugten Ausführungsbeispiel sind die Zuerst- Hinein-Zuerst-Heraus-Speicher entworfen, um zu ermöglichen, daß Daten während eines einzigen Taktzyklus, nachdem der Speicher gefüllt ist, gelesen und geschrieben werden. Dies wird dadurch erreicht, daß ein externes Lesesignal zu dem durch die Vorrichtung erzeugten "Nicht-Voll"-Signal hinzugefügt wird.
- Die Bereitstellung eines einstufigen FIFO-Speichers auf beiden Seiten eines mehrstufigen FIFO-Speichers ermöglicht eine geringere Einrichtzeit und Ausgangsverzögerung bei höheren Betriebsgeschwindigkeiten.
- Fig. 1a ist ein Blockdiagramm, das die Signale veranschaulicht, die mit dem verbesserten N-Wort-FIFO der vorliegenden Erfindung verbunden sind.
- Fig. 1b ist ein vereinfachtes Blockdiagramm, das den verbesserten Mehrstufiges-FIFO-Entwurf der vorliegenden Erfindung veranschaulicht.
- Fig. 2 ist ein Zeitgebungsdiagramm, das den Betrieb des verbesserten mehrstufigen FIFO der vorliegenden Erfindung veranschaulicht.
- Fig. 3a ist ein Blockdiagramm, das die Signale veranschaulicht, die mit dem verbesserten einstufigen FIFO der vorliegenden Erfindung verbunden sind.
- Fig. 3b ist ein schematisches Diagramm des verbesserten einstufigen FIFO der vorliegenden Erfindung.
- Fig. 4 ist ein Zeitgebungsdiagramm, das den Betrieb des vorteilhaften Einstufiges-FIFO-Entwurfs der vorliegenden Erfindung veranschaulicht.
- Unter Bezugnahme auf die beiliegenden Zeichnungen werden nun veranschaulichende Ausführungsbeispiele und exemplarische Anwendungen beschrieben, um die vorteilhaften Lehren der vorliegenden Erfindung zu offenbaren.
- Wie oben erwähnt wurde, wird in dem U.S.-Patent Nr. 4,873,703, dessen Lehren hierin durch Bezugnahme aufgenommen sind, ein besonders vorteilhaftes Geschwindigkeitsausgleichsschema beschrieben, das einen beliebigen Grad an Synchronisationszuverlässigkeit ermöglicht, indem die Anzahl von in Kaskade geschalteten Synchronisiereinrichtungen ausgewählt wird. Das System verwendet ein mehrstufiges N-Wort-FIFO, um eine Datenkommunikation zwischen zwei nicht-korrelierten Systemen, die in unabhängigen Zeitdomänen arbeiten, zu synchronisieren.
- Gemäß den vorliegenden Lehren wird das mehrstufige N-Wort- FIFO durch eine Anordnung ersetzt, die aus zwei einstufigen FIFOs und einem mehrstufigen N-2-Stufen-FIFO besteht. Fig. 1a ist ein Blockdiagramm, das die Signale veranschaulicht, die mit dem verbesserten N-Wort-FIFO der vorliegenden Erfindung verbunden sind. Fig. 1b ist ein vereinfachtes Blockdiagramm, das den verbesserten Mehrstufiges-FIFO- Entwurf der vorliegenden Erfindung veranschaulicht. Das verbesserte mehrstufige FIFO 10 ist mit einem in Kaskade geschalteten ersten und zweiten einstufigen synchronen FIFO 12 und 16 und einem mehrstufigen asynchronen N-2-FIFO 14 implementiert. Bei dem bevorzugten Ausführungsbeispiel sind das erste und das zweite einstufige FIFO auf die nachstehend ausführlicher beschriebene Weise aufgebaut. Das mehrstufige FIFO 14 ist gemäß den Lehren des an Crandall u. a. erteilten Patents, auf das oben Bezug genommen wurde, implementiert.
- Zwei nicht-korrelierte Takte (A und B) werden zusammen mit einem Zurücksetzungssignal, das die Zeiger jedes FIFO zurücksetzt, an das System 10 angelegt. Durch das sendende System (nicht gezeigt) werden dem ersten FIFO 12 Daten geliefert. Als nächstes wird durch das sendende System ein Schreibsignal geliefert, das auf seinen Takt (z. B. Takt A) eingestellt ist. An der nächsten ansteigenden Flanke des Taktsignals werden die Daten an dem DATENEIN-Bus durch das FIFO aufgenommen, falls das Schreibsignal aktiviert ist. Jeder FIFO-Speicher wird in Kaskade geschaltet, indem das "Nicht-Leer"-Signal (nLEER-Signal) eines FIFO mit dem Schreibanschluß des nachfolgenden FIFO, das "Nicht-Voll"- Signal (nVOLL-Signal) mit dem Leseanschluß des vorhergehenden FIFO und der Datenausgangsanschluß (DATENAUS) eines FIFO mit dem Dateneingangsanschluß (DATENEIN) des nachfolgenden FIFO verbunden werden. Das empfangende System (nicht gezeigt) liest Daten aus dem zweiten einstufigen FIFO 16 aus, indem es ein Lesesignal aktiviert und Daten aus dem Datenausgangsanschluß desselben ausliest. Daten werden bei einem Taktpuls geschrieben und beim nächsten Taktpuls übertragen.
- Fig. 2 ist ein Zeitgebungsdiagramm, das den Betrieb der verbesserten Synchronisiereinrichtung der vorliegenden Erfindung veranschaulicht. Datenübertragungen finden an den vorderen Flanken der Taktpulse statt. DATAAB bezieht sich auf die Übertragung von Daten von dem ersten FIFO 12 an den zweiten FIFO 14. DATABC bezieht sich auf die Übertragung von Daten von dem zweiten FIFO 14 an den dritten FIFO 16. DAVAB bedeutet, daß Daten von dem ersten FIFO 12 dem zweiten FIFO 14 zur Verfügung stehen. Desgleichen bedeutet DAVBC, daß Daten von dem zweiten FIFO 14 dem dritten FIFO 16 zur Verfügung stehen. Die Bezeichnung RFD bezieht sich auf einen Bereit-für-Daten-Status (ready for data status). Diese Signale sind an den in Fig. 1b gezeigten Linien zwischen den FIFOs veranschaulicht.
- Im Betrieb, wenn das Schreibsignal aktiviert wird (hoch wird) und Daten an die DATENEIN-Leitung angelegt werden, wird an der vorderen Flanke des nächsten Taktpulses das erste Datenpaket DATA0 durch das erste FIFO 12 aufgenommen. Dies ist mit einem Punkt an dem Schreibsignal und einem Sternchen (*) auf der DATENEIN-Leitung bezeichnet. Man beachte, daß dieses erste Datenpaket (DATA0) ebenfalls gleichzeitig dem zweiten FIFO 14 zur Verfügung gestellt wird, und daher werden das DAVAB-Signal und das nLEER- Signal hoch. Dieser vorteilhafte Betriebsmodus einer hohen Geschwindigkeit und eines niedrigen Verzugs wird durch den einzigartigen Einstufiges-FIFO-Entwurf, wie er nachstehend ausführlicher dargelegt wird, möglich gemacht.
- An der vorderen Flanke des nächsten Taktpulses wird das nächste Datenpaket (DATA1) durch den ersten Speicher 12 aufgenommen, und das erste Datenpaket (DATA0) wird von dem ersten FIFO 12 an den zweiten FIFO 14 übertragen, und so weiter. Man beachte, daß, da das FIFO 10 der vorliegenden Erfindung mit drei FIFOs implementiert ist, drei Taktzyklen erforderlich sind, damit Daten dieselben durchlaufen.
- Nachdem das Lesesignal durch das empfangende System aktiviert ist, werden an der nächsten vorderen Taktflanke Ausgangsdaten aus dem Datenausgangsanschluß des dritten FIFO 16 gelesen, falls Daten zur Verfügung standen.
- Fig. 3a ist ein Blockdiagramm, das die Signale veranschaulicht, die mit dem verbesserten einstufigen FIFO der vorliegenden Erfindung verbunden sind. Fig. 3b ist ein schematisches Diagramm des verbesserten einstufigen FIFO der vorliegenden Erfindung. In der Praxis kann der vorteilhaften Betrieb der vorliegenden Erfindung mit zweistufigen FIFOs statt der einstufigen FIFOs realisiert werden. Jedoch kann die Leistungsfähigkeit sinken, wenn die Größe des ersten und des zweiten FIFO zunimmt. Die einstufigen FIFOs 12 und 16 umfassen ein Ein-Wort-Register 20, das mit den Dateneingangs- bzw. -ausgangsleitungen (DATENEIN) und (DATENAUS) verbunden ist, eine erste Schaltung 22 zum Erzeugen eines "Nicht-Voll"-Signals (nVOLL-Signal) und eine zweite Schaltung 23 zum Erzeugen des "Nicht-Leer"-Signals (nLEER-Signal). Fachleute werden erkennen, daß, wie bei herkömmlichen Systemen, dort, wo das erste FIFO als ein "n"-stufiges FIFO implementiert ist, das Register 20 ein "n"-stufiges Register sein wird. Eine Verwendung von mehrstufigen FIFOs statt der einstufigen FIFOs kann jedoch aufgrund einer Ausgangsverzweigung mehr Kapazität erzeugen. Ein Schreibsignal von dem sendenden System wird durch ein erstes NAND-Gatter 24 in der ersten Schaltung 22 empfangen, das einen zweiten Eingang aufweist, der durch ein Nicht- Voll-Signal (nVOLL) bereitgestellt wird, das auf die nachstehend ausführlicher erörterte Weise erzeugt wird. Das Ausgangssignal des NAND-Gatters liefert dem Ein-Wort- Register 20 ein Lastsignal. Das Ausgangssignal des NAND- Gatters wird ebenfalls in ein erstes Exklusiv-ODER-Gatter (XOR-Gatter) 26 eingegeben. Das Ausgangssignal des ersten XOR-Gatters 26 liefert das D-Eingangssignal für ein D- Flipflop 28, dessen Q-Strich-Ausgangssignal rückgekoppelt wird, um ein zweites Eingangssignal für das erste XOR- Gatter 26 zu liefern. Fachleute werden die XOR-D-Flipflop- Kombination als ein traditionelles T-Flop erkennen. Das Q- Ausgangssignal des Flipflops 28 liefert ein erstes Eingangssignal an ein Exklusiv-NOR-Gatter (XNOR-Gatter) 30. Das zweite Eingangssignal an das XNOR-Gatter 30 wird durch das Q-Ausgangssignal eines zweiten D-Flipflops 38, das Teil der zweiten Schaltung 23 ist, geliefert.
- Die zweite Schaltung 23 umfaßt ein zweites NAND-Gatter 34, das ein Lesesignal von einem empfangenen System als einen ersten Eingang in dasselbe empfängt. Ein zweiter Eingang in das zweite NAND-Gatter 34 wird durch das nLEER-Signal auf die nachstehend ausführlicher beschriebene Weise bereitgestellt. Der Ausgang des zweiten NAND-Gatters liefert einen ersten Eingang an ein zweites Exklusiv-ODER-Gatter 36, das wiederum einen D-Eingang an das zweite D-Flipflop 38 liefert. Die Q-Ausgänge des ersten bzw. des zweiten Flipflops 28 bzw. 38 liefern den ersten und den zweiten Eingang an das XNOR-Gatter 30 und ein drittes XOR-Gatter 40. Das dritte XOR-Gatter 40 liefert das nLEER-Signal. Der Ausgang des XNOR-Gatters 30 und das Lesesignal werden in ein ODER- Gatter 32 eingegeben, dessen Ausgang das nVOLL-Signal liefert.
- Im Betrieb wird ein Zurücksetzungssignal bereitgestellt, das das erste und das zweite Flipflop 28 und 38, die als Zeiger für die Daten agieren, zurücksetzt. Durch das sendende System wird ein Schreibsignal bereitgestellt. Da das Register 20 leer ist, wird das nVOLL-Signal hoch sein, und der Ausgang des NAND-Gatters 24 wird niedrig sein. Dies ermöglicht es dem Register 20, Daten an der ansteigenden Flanke des nächsten Taktpulses zu laden. Ferner wird der niedrige Ausgang des ersten NAND-Gatters 24 mit einem hohen Q-Strich-Ausgang des ersten Flipflops 28 durch das erste XOR-Gatter 26 kombiniert. Dies bewirkt, daß der Ausgang des ersten XOR-Gatters 26 hoch wird, was das erste Flipflop 28 auslöst und einen Schreibzeiger liefert, der anzeigt, daß Daten in dem Register 20 verfügbar sind.
- Der Betrieb auf der Leseseite ist im wesentlichen derselbe, wobei das zweite Flipflop 38 den Lesezeiger bereitstellt. Die Ausgänge der beiden Zeiger werden durch das dritte XOR- Gatter 40 verglichen. Falls diese Zeiger identisch sind, ist der Ausgang des dritten XOR-Gatters 40 niedrig, was anzeigt, daß das Register 20 leer ist. Falls die Zeiger nicht identisch sind, ist der Ausgang des dritten XOR- Gatters 40 hoch, was anzeigt, daß das Register 20 nicht leer ist.
- Ein ähnlicher Vergleich wird durch das XNOR-Gatter 30 geliefert. Der invertierte Ausgang des XNOR-Gatters 30 ermöglicht im wesentlichen, daß eine "1" zu dem Lesezeiger hinzugefügt wird. (Falls das FIFO 12, 16 als ein zweistufiges FIFO implementiert wäre, würde eine "2" hinzugefügt werden, und so weiter.) Durch ein Kombinieren des Lesesignals mit der Ergänzung des Vergleichs der beiden Zeiger ermöglicht das FIFO 12, 16 ein Schreiben an dem nächsten Zyklus, falls das empfangende System lesen wird. Dies ermöglicht es einem einstufigen FIFO, ohne einen unnötigen Verzug zu funktionieren, wodurch die Leistungsfähigkeit des Systems erhöht wird.
- Fig. 4 ist ein Zeitgebungsdiagramm, das den Betrieb des vorteilhaften FIFO-Entwurfs der vorliegenden Erfindung veranschaulicht. Wiederum sind alle Veränderungen relativ zu der vorderen Flanke des Taktes, und die Sternchen (*) zeigen Wörter an, die tatsächlich gespeichert wurden.
- Wenn das Schreibsignal aktiviert wird und Daten an den Dateneingangsbus geliefert werden, werden an dem nächsten Taktpuls Daten durch das FIFO aufgenommen und in dem Register 20 gespeichert. An diesem Punkt wird das nLEER-Signal hoch, und das nVOLL-Signal wird niedrig. Falls nun ein Lesesignal aktiviert wird, wird das nVOLL-Signal auf asynchrone Weise hoch werden, und solange Daten gelesen werden, können Daten ausgegeben werden, auch wenn Daten an dem nächsten Taktpuls geschrieben werden. Wie oben erwähnt wurde, wird das einzigartige und vorteilhafte Merkmal des vorliegenden FIFO-Entwurfs durch die Kombination des Lesesignals mit einem Nicht-Voll-Signal bereitgestellt. Danach kehrt das nVOLL-Signal zu einem hohen Zustand zurück, und der Betrieb wird fortgesetzt.
- Somit wurde die vorliegende Erfindung hierin unter Bezugnahme auf ein bestimmtes Ausführungsbeispiel für eine bestimmte Anwendung beschrieben. Fachleute werden zusätzliche Modifikationen, Anwendungen und Ausführungsbeispiele, die sich im Schutzbereich der Erfindung befinden, erkennen.
- Somit wird beabsichtigt, durch die beigefügten Patentansprüche jegliche und alle derartigen Anwendungen, Modifikationen und Ausführungsbeispiele, die sich in dem Schutzbereich der vorliegenden Erfindung befinden, abzudecken.
Claims (6)
1. Eine Synchronisiereinrichtung (10), die angeordnet
ist, um zu ermöglichen, daß Daten, die mit einem
ersten Taktsignal synchronisiert sind, in
Synchronisation mit einem zweiten Taktsignal übertragen werden,
wobei die Synchronisiereinrichtung folgende Merkmale
aufweist:
eine Speichereinrichtung (14), die einen Dateneingang,
einen Schreibeingang (WRITE), einen ersten Takteingang
zum Empfangen des ersten Taktsignals, einen zweiten
Takteingang zum Empfangen des zweiten Taktsignals,
einen Datenausgang, einen Nicht-Leer-Signal-Ausgang
(nLEER) aufweist, wobei die Speichereinrichtung eine
Mehrzahl von einzelnen mehrstufigen Zuerst-Hinein-
Zuerst-Heraus-Speichergeräten umfaßt;
dadurch gekennzeichnet, daß die
Synchronisiereinrichtung zusätzlich folgende Merkmale aufweist:
ein erstes einstufiges Zuerst-Hinein-Zuerst-Heraus-
Speichergerät (12), das einen Dateneingang zum
Empfangen von Daten, einen Takteingang zum Empfangen des
ersten Taktsignals, einen mit dem Dateneingang der
Speichereinrichtung (14) verbundenen Datenausgang und
einen mit dem Schreibeingang der Speichereinrichtung
verbundenen Nicht-Leer-Signal-Ausgang (nLEER)
aufweist; und
ein zweites einstufiges Zuerst-Hinein-Zuerst-Heraus-
Speichergerät (16), das einen mit dem Datenausgang der
Speichereinrichtung verbundenen Dateneingang, einen
Takteingang zum Empfangen des zweiten Taktsignals,
einen mit dem Nicht-Leer-Signal-Ausgang der
Speicherein
richtung verbundenen Schreibeingang (WRITE) und einen
Datenausgang zum Senden von Daten auf weist;
wobei der Dateneingang der Speichereinrichtung (14),
der Dateneingang des ersten einstufigen Zuerst-Hinein-
Zuerst-Heraus-Speichergeräts (12) und der Datenausgang
des zweiten einstufigen Zuerst-Hinein-Zuerst-Heraus-
Speichergeräts (16) allesamt eine selbe Datenbreite n,
n ≥ 2, aufweisen; und
wobei die Synchronisiereinrichtung ferner so
angeordnet ist, daß Daten nur dann in den Dateneingang, der
einen entsprechenden Schreibeingang auf weist,
eingegeben werden, falls der entsprechende Schreibeingang
logisch wahr ist.
2. Eine Synchronisiereinrichtung gemäß Anspruch 1, bei
der der erste und der zweite einstufige Zuerst-Hinein-
Zuerst-Heraus-Speicher jeweils ein
Datenspeicherelement und eine Einrichtung zum Ermöglichen, daß Daten
während eines einzigen Taktzyklus aus dem
Datenspeicherelement gelesen und in dasselbe geschrieben
werden, auf weisen.
3. Eine Synchronisiereinrichtung gemäß Anspruch 2, bei
der die Einrichtung zum Ermöglichen, daß Daten während
eines einzigen Taktzyklus aus dem Datenspeicherelement
gelesen und in dasselbe geschrieben werden, eine
Einrichtung umfaßt, die auf ein Schreibsignal und ein
Lesesignal zum Erzeugen eines Signals, das einen
Speicherstatus des Datenspeicherelements darstellt,
anspricht.
4. Eine Synchronisiereinrichtung gemäß Anspruch 3, bei
der die Einrichtung zum Ermöglichen, daß Daten während
eines einzigen Taktzyklus aus dem Datenspeicherelement
gelesen und in dasselbe geschrieben werden, eine
Einrichtung zum Kombinieren des Lesesignals mit dem
Si
gnal, das einen Speicherstatus des
Datenspeicherelements darstellt, umfaßt.
5. Eine Synchronisiereinrichtung gemäß Anspruch 4, bei
der die Einrichtung zum Kombinieren des Lesesignals
mit dem Signal, das einen Speicherstatus des
Datenspeicherelements darstellt, ein ODER-Gatter umfaßt.
6. Eine Synchronisiereinrichtung gemäß Anspruch 3, bei
der die Einrichtung zum Ermöglichen, daß Daten während
eines einzigen Taktzyklus aus dem Datenspeicherelement
gelesen und in dasselbe geschrieben werden, ferner
eine zweite Einrichtung umfaßt, die auf ein
Schreibsignal und ein Lesesignal zum Erzeugen des nicht leeren
Signals anspricht.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US256793A | 1993-01-11 | 1993-01-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69332401D1 DE69332401D1 (de) | 2002-11-21 |
DE69332401T2 true DE69332401T2 (de) | 2003-06-26 |
Family
ID=21701382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69332401T Expired - Fee Related DE69332401T2 (de) | 1993-01-11 | 1993-12-15 | Verbesserte ein- und mehrstufige FIFO-Entwürfe für Datenübertragungssynchronisiereinrichtungen |
Country Status (5)
Country | Link |
---|---|
US (1) | US5809521A (de) |
EP (1) | EP0606600B1 (de) |
JP (1) | JP3645584B2 (de) |
CA (1) | CA2106271C (de) |
DE (1) | DE69332401T2 (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU4798793A (en) | 1992-08-10 | 1994-03-03 | Monolithic System Technology, Inc. | Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration |
US5655113A (en) * | 1994-07-05 | 1997-08-05 | Monolithic System Technology, Inc. | Resynchronization circuit for a memory system and method of operating same |
WO1996029654A1 (fr) * | 1995-03-20 | 1996-09-26 | Hitachi, Ltd. | Systeme de commande de l'interface |
KR0176537B1 (ko) * | 1995-10-14 | 1999-05-01 | 김광호 | 가변길이복호화기의 메모리 인터페이스방법 및 회로 |
US6097655A (en) * | 1998-04-03 | 2000-08-01 | International Business Machines Corporation | Pull through FIFO memory device |
US6208703B1 (en) * | 1998-05-15 | 2001-03-27 | Hewlett Packard Company | First-in-first-out synchronizer |
JP3893755B2 (ja) * | 1998-07-03 | 2007-03-14 | 株式会社デンソー | 電子制御装置 |
US7356624B1 (en) * | 1999-03-25 | 2008-04-08 | Texas Instruments Incorporated | Interface between different clock rate components |
CA2407407A1 (en) * | 2000-04-26 | 2001-11-01 | The Trustees Of Columbia University In The City Of New York | A low latency fifo circuit for mixed clock systems |
US6857043B1 (en) * | 2000-04-28 | 2005-02-15 | Altera Corporation | Shift register implementations of first-in/first-out memories utilizing a double increment gray code counter |
ATE370448T1 (de) * | 2000-06-09 | 2007-09-15 | Univ Columbia | Fifo schaltungen mit niedriger verzögerung für gemischte synchrone und asynchrone systeme |
US6810098B1 (en) * | 2000-12-08 | 2004-10-26 | Cypress Semiconductor Corp. | FIFO read interface protocol |
US6694389B2 (en) * | 2001-03-19 | 2004-02-17 | Sun Microsystems, Inc. | Method and apparatus for data flow analysis |
US20040128413A1 (en) * | 2001-06-08 | 2004-07-01 | Tiberiu Chelcea | Low latency fifo circuits for mixed asynchronous and synchronous systems |
US7418616B2 (en) * | 2002-07-15 | 2008-08-26 | Brooktree Broadband Holding, Inc. | System and method for improved synchronous data access |
JP3634334B2 (ja) * | 2002-12-02 | 2005-03-30 | 沖電気工業株式会社 | 拡張用fifo回路及び送受信装置 |
JP4569163B2 (ja) * | 2004-05-07 | 2010-10-27 | 富士ゼロックス株式会社 | データ入出力装置およびデータ入出力方法 |
US20060098770A1 (en) * | 2004-11-09 | 2006-05-11 | Harper William F | Synchronizer for passing data from a first system to a second system |
CN100463443C (zh) * | 2005-07-01 | 2009-02-18 | 中兴通讯股份有限公司 | 一种异步fifo实现系统及实现方法 |
CN102053815B (zh) * | 2009-11-05 | 2012-10-31 | 上海华虹集成电路有限责任公司 | 同步fifo电路系统 |
CN114816319B (zh) * | 2022-04-21 | 2023-02-17 | 中国人民解放军32802部队 | 一种fifo存储器的多级流水读写方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3972034A (en) * | 1975-05-12 | 1976-07-27 | Fairchild Camera And Instrument Corporation | Universal first-in first-out memory device |
US4296477A (en) * | 1979-11-19 | 1981-10-20 | Control Data Corporation | Register device for transmission of data having two data ranks one of which receives data only when the other is full |
JPS6057090B2 (ja) * | 1980-09-19 | 1985-12-13 | 株式会社日立製作所 | データ記憶装置およびそれを用いた処理装置 |
JPS6297036A (ja) * | 1985-07-31 | 1987-05-06 | テキサス インスツルメンツ インコ−ポレイテツド | 計算機システム |
US4873703A (en) * | 1985-09-27 | 1989-10-10 | Hewlett-Packard Company | Synchronizing system |
US4965764A (en) * | 1987-03-04 | 1990-10-23 | Nec Corporation | Memory access control system |
US4839866A (en) * | 1987-05-29 | 1989-06-13 | Texas Instruments Incorporated | Cascadable first-in, first-out memory |
US5179688A (en) * | 1987-06-30 | 1993-01-12 | Tandem Computers Incorporated | Queue system with uninterrupted transfer of data through intermediate locations to selected queue location |
US4965794A (en) * | 1987-10-05 | 1990-10-23 | Dallas Semiconductor Corporation | Telecommunications FIFO |
US5084837A (en) * | 1988-01-22 | 1992-01-28 | Sharp Kabushiki Kaisha | Fifo buffer with folded data transmission path permitting selective bypass of storage |
JP2764908B2 (ja) * | 1988-02-04 | 1998-06-11 | 日本電気株式会社 | カスケード・バッファ回路 |
GB9024084D0 (en) * | 1990-11-06 | 1990-12-19 | Int Computers Ltd | First-in-first-out buffer |
NL9002426A (nl) * | 1990-11-08 | 1992-06-01 | Koninkl Philips Electronics Nv | Elastisch buffergeheugen. |
US5365552A (en) * | 1992-11-16 | 1994-11-15 | Intel Corporation | Buffer fullness indicator |
-
1993
- 1993-09-15 CA CA002106271A patent/CA2106271C/en not_active Expired - Fee Related
- 1993-12-15 EP EP93120213A patent/EP0606600B1/de not_active Expired - Lifetime
- 1993-12-15 DE DE69332401T patent/DE69332401T2/de not_active Expired - Fee Related
-
1994
- 1994-01-11 JP JP01315094A patent/JP3645584B2/ja not_active Expired - Fee Related
- 1994-11-28 US US08/346,107 patent/US5809521A/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
DE69332401D1 (de) | 2002-11-21 |
CA2106271A1 (en) | 1994-07-12 |
EP0606600B1 (de) | 2002-10-16 |
CA2106271C (en) | 2004-11-30 |
JP3645584B2 (ja) | 2005-05-11 |
JPH06259225A (ja) | 1994-09-16 |
US5809521A (en) | 1998-09-15 |
EP0606600A1 (de) | 1994-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69332401T2 (de) | Verbesserte ein- und mehrstufige FIFO-Entwürfe für Datenübertragungssynchronisiereinrichtungen | |
DE60036777T2 (de) | Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen | |
DE3687956T2 (de) | Datensynchronisator zwischen einer sende- und einer empfangsanlage. | |
DE2807175C2 (de) | Anordnung zur Steuerung von Informationsübertragungen zwischen zwei Rechenanlagen | |
DE3213345C2 (de) | Datenübertragungseinrichtung zwischen zwei asynchron gesteuerten Datenverarbeitungssystemen | |
DE19941196B4 (de) | Zweikanal-FIFO mit synchronisierten Lese- und Schreibzeigern | |
DE3587149T2 (de) | Datenuebertragungssysteme. | |
DE3137292A1 (de) | Fifo-speicher und diesen verwendende verarbeitungseinheit | |
DE19914986B4 (de) | Vorrichtung zum Verzögern eines Taktsignals | |
DE10212642A1 (de) | Speichersteuerung mit 1X/MX-Lesefähigkeit | |
DE102005051478A1 (de) | Flashdatenspeichervorrichtung | |
EP0898217A2 (de) | Schaltung zur glitchfreien Umschaltung digitaler Signale | |
DE2853239A1 (de) | Datenpufferspeicher vom typ first-in, first-out mit variablem eingang und festem ausgang | |
DE10108379A1 (de) | Elastische Puffer für eine Serialisierer/Deserialisierer-Wortausrichtung und eine Ratenanpassung zwischen Zeitbereichen | |
DE69118143T2 (de) | Phasen- und Ratenanpassungsschaltung für Zellenübertragung | |
DE69032035T2 (de) | FIFO-Speicher | |
DE69031238T2 (de) | Datenentpacker | |
DE3788783T2 (de) | Multiplexer für Taktsignale. | |
DE69031639T2 (de) | Synchronisiereinrichtung, welche Taktphasenextrapolation verwendet | |
DE3789928T2 (de) | "Fifo"-Schieberegister mit direkter Dateneingabe. | |
DE19924254C2 (de) | Synchronisierschaltung zum Empfangen eines asynchronen Eingangssignals | |
DE102004011672B4 (de) | Vorrichtung zur Datensynchronisation | |
DE102004011673B3 (de) | Vorrichtung zur Datensynchronisation | |
DE68923271T2 (de) | Verfahren und anordnung zur wahrnehmung bevorstehender überläufe und/oder unterschreitungen eines elastischen puffers. | |
DE102006036823B4 (de) | Datensynchronisier- und -pufferschaltung zur Synchronisation von seriell empfangenen Datensignalen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELA |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELA |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: AVAGO TECHNOLOGIES GENERAL IP ( SINGAPORE) PTE. LT |
|
8339 | Ceased/non-payment of the annual fee |