[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69332401T2 - Verbesserte ein- und mehrstufige FIFO-Entwürfe für Datenübertragungssynchronisiereinrichtungen - Google Patents

Verbesserte ein- und mehrstufige FIFO-Entwürfe für Datenübertragungssynchronisiereinrichtungen

Info

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
Application number
DE69332401T
Other languages
English (en)
Other versions
DE69332401D1 (de
Inventor
Vicente V. Cavanna
Joseph H. Steinmetz
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Agilent Technologies Inc
Hewlett Packard Co
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 Agilent Technologies Inc, Hewlett Packard Co filed Critical Agilent Technologies Inc
Application granted granted Critical
Publication of DE69332401D1 publication Critical patent/DE69332401D1/de
Publication of DE69332401T2 publication Critical patent/DE69332401T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/10Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/08Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/102Avoiding 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

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • 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.
  • Beschreibung der verwandten Technik
  • 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.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • BESCHREIBUNG DER ERFINDUNG
  • 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.
DE69332401T 1993-01-11 1993-12-15 Verbesserte ein- und mehrstufige FIFO-Entwürfe für Datenübertragungssynchronisiereinrichtungen Expired - Fee Related DE69332401T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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