DE3855274T2 - Botschafts-Fifo-Puffersteuergerät - Google Patents

Botschafts-Fifo-Puffersteuergerät

Info

Publication number
DE3855274T2
DE3855274T2 DE3855274T DE3855274T DE3855274T2 DE 3855274 T2 DE3855274 T2 DE 3855274T2 DE 3855274 T DE3855274 T DE 3855274T DE 3855274 T DE3855274 T DE 3855274T DE 3855274 T2 DE3855274 T2 DE 3855274T2
Authority
DE
Germany
Prior art keywords
signal
counter
output
comparator
logic
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
DE3855274T
Other languages
English (en)
Other versions
DE3855274D1 (de
Inventor
Carmine Antonio Ciancibello
Youssef Alfred Geadah
Martin Claude Lefebvre
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.)
Nortel Networks Ltd
Original Assignee
Northern Telecom Ltd
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 Northern Telecom Ltd filed Critical Northern Telecom Ltd
Application granted granted Critical
Publication of DE3855274D1 publication Critical patent/DE3855274D1/de
Publication of DE3855274T2 publication Critical patent/DE3855274T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • 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/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/062Allowing rewriting or rereading data to or from the buffer

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Multi Processors (AREA)

Description

  • Diese Erfindung bezieht sich allgemein auf FIFO-Speicher (Speicher, bei dem die zuerst gespeicherten Daten auch zuerst wieder ausgegeben werden), und insbesondere auf eine Steuerschaltung für FIFO-Speicher.
  • Ausgangspunkt der Erfindung
  • FIFO-Speicher sind gut bekannt. Eine Art von FIFO-Speicher besteht aus einem Direktzugriffsspeicher (RAM), der mit Steuerschaltungen verbunden ist. Die Steuerschaltung wird zur Steuerung des Einschreibens von Daten in den RAM und des Auslesens von Daten aus dem RAM verwendet.
  • Derartige FIFO-Systeme sind beispielsweise in den folgenden US-Patenten beschrieben, auf die ausdrücklich verwiesen wird:
  • US-Patent 4 592 019 von Huang et al vom 27. Mai 1986;
  • US-Patent 4 433 394 von 5. Torii et al vom 21. Februar 1984
  • US-Patent 4 163 291 von 5. Suzuki et al vom 31. Juli 1979; und
  • US-Patent 3 601 809 von H. J. Grey et al vom 24. August 1971.
  • Eine weitere FIFO-Speicheranordnung ist in dem US-Patent 4 507 760 beschrieben. Diese Anordnung sieht Register zum Speichern von Zeigern zum Schreiben, Lesen und zum Identizieren des letzten Wortes einer Mehrfachwort-Nachricht vor. Eine weitere FIFO-Anordnung, die in dem US-Patent 4 616 338 beschrieben ist, verwendet eine in Form einer Wartedatei organisierte Einheit für eine vorübergehende Datenspeicherung zusammen mit einem Direktzugriffsspeicher, um eine Zugriffszeit zu erzielen, die von der Kapazität unabhängig ist.
  • Einige Nachteile bei diesen vorhandenen FIFO-Speichern bestehen darin, daß sie nicht in einer Nachrichten-Betriebsart arbeiten und daß sie nicht die Fähigkeit haben, Daten von einem Speicher erneut zu lesen oder diese erneut in den Speicher zu schreiben. Zusätzlich verwenden sie Vorwärts-/Rückwärts-Zähler, die relativ groß und kompliziert sind.
  • Gemäß der vorliegenden Erfindung, wie sie im Anspruch 1 angegeben ist, wird eine Steuerschaltung für eine FIFO-Speicherschaltung zur Lieferung von Adresseninformationen (224) an eine FIFO-Speichereinrichtung (212) geschaffen, die ein Adressenfeld von n Bits aufweist, wobei die Steuerschaltung Einrichtungen (217, 243) zur Erzeugung eines Schreibadressensignais, Einrichtungen (218, 244) zur Erzeugung eines Leseadressensignais und Einrichtungen (219) zur Auswahl entweder des einen oder des anderen der Schreibadressensignale und der Leseadressensignale als Adresseninformation für die FIFO-Speichereinrichtung umfaßt, wobei die Steuerschaltung dadurch gekennzeichnet ist, daß:
  • die Schreibadressen- und die Leseadressen-Signale n+1 Bits aufweisen, von denen die n niedrigstbewerteten Bits von den Einrichtungen (219) zur Auswahl als die Adresseninformation der FIFO-Speichereinrichtung abgegeben werden,
  • ein erster Vergleicher (248) zum Vergleich des höchstbewerteten Bits des Schreibadressensignais mit dem hächstbewerteten Bit des Leseadressensignals vorgesehen ist, wodurch ein erstes Vergleichssignal (249) erzeugt wird, das die Gleichheit oder die Ungleichheit dieser hächstbewerteten Bits anzeigt,
  • ein zweiter Vergleicher (251) zum Vergleich der n niedrigstbewerteten Bits des Schreibadressensignals mit den n niedrigstbewerteten Bits des Leseadressensignals vorgesehen ist, wodurch ein zweites Vergleichssignal (252) erzeugt wird, das die Gleichheit oder Ungleichheit der niedrigstbewerteten Bits anzeigt, und
  • Logikeinrichtungen (253) vorgesehen sind, die auf die Anzeige einer Ungleichheit durch das erste Vergleichssignal und die Anzeige einer Gleichheit durch das zweite Vergleichssignal ansprechen, um ein Signal (247) zu erzeugen, das anzeigt, daß die Speichereinrichtung voll ist.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird nunmehr ausführlicher unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen gleiche Teile in jeder der einzelnen Figuren mit den gleichen Bezugzeichen bezeichnet sind, und in denen:
  • Fig. 1 ein vereinfachtes Blockschaltbild eines bekannten FIFO-Speichers ist,
  • Fig. 2 ein vereinfachtes Blockschaltbild eines FIFO- Speichers ist, das zum Verständnis der Betriebsweise der vorliegenden Erfindung nützlich ist,
  • Fig. 3 ein vereinfachtes Blockschaltbild einer Ausführungsform eines FIFO-Speichers ist, der gemäß der vorliegenden Erfindung aufgebaut ist, und
  • Fig. 4 ein vereinfachtes Blockschaltbild einer bevorzugten Ausführungsform eines FIFO-Speichers ist, der gemäß der vorliegenden Erfindung aufgebaut ist.
  • Ausführliche Beschreibung
  • Fig. 1 zeigt in vereinfachter Form eine FIFO-Speicherschaltung 10, die gemäß bekannter Techniken aufgebaut ist.
  • Die Schaltung 10 umfaßt eine FIFO-Steuerschaltung 11 und einen FIFO-Speicher 12. Der FIFO-Speicher 12 ist ein Direktzugriffsspeicher (RAM), der einen Dateneingangsanschluß 13, einen Datenausgangsanschluß 14 und einen Adressenanschluß 16 aufweist.
  • Die FIFO-Steuerschaltung 11 umfaßt einen Vorwärtszähler 17, einen Vorwärtszähler 18, einen Multiplexer 19 und einen Vorwärts-/Rückwärts-Zähler 20, die gemäß Fig. 1 miteinander verbunden sind. Die Zähler 17 und 18 werden durch ein Taktsignal A in der dargestellten Weise getaktet. Der Vorwärts-Zähler 17 weist in der gezeigten Weise einen Schreibfreigabeeingang E auf, während der Vorwärts-Zähler 18 in der gezeigten Weise einen Lese-Freigabeeingang E aufweist. Der Ausgang des Zählers 18 an den Bus 22 wird dem Eingangsanschluß A des Multiplexers 19 zugeführt, während der Ausgang des Zählers 17 an den Bus 23 dem Eingangsanschluß B des Multiplexers 19 zugeführt wird. Der Ausgangsanschluß C des Multiplexers 19 legt an den Bus 24 entweder das Signal von dem Eingangsanschluß A oder dem Eingangsanschluß B an, und zwar entsprechend der Auswahl durch Steuersignale am Steueranschluß 21. Es sei bemerkt, daß der Vorwärtszähler 17 vom Typ 74F163 ist, der Vorwärtszähler 18 vom Typ 74F163 ist, der Multiplexer 19 vom Typ 74F157 ist und der Vorwärts-/Rückwärts-Zähler 20 von Typ 74F199 ist.
  • Es sei ein Anfangszustand für die FIFO-Speicherschaltung 10 angenommen, bei dem keine Daten in dem RAM 12 gespeichert sind und die Zähler 17 und 18 einen Ausgang von Null aufweisen, während der Zähler 20 an seinem Ausgang 0 anzeigt, daß der RAM 12 leer ist (d.h. der Ausgang 0 ist Null). Es sein nun angenommen, daß Daten in dem RAM 12 gespeichert werden sollen. Daten werden sequentiell an den Eingangsanschluß 13 des RAM 12 angelegt, während ein Freigabesignal (d.h. eine logische 1) an den E-Eingang des Zählers 17 angelegt wird. Der Zähler 17 vergrößert seine Zählung, die dem Multiplexer 19 über den Bus 23 zugeführt wird. Das dem Steuereingang 21 des Multiplexers zugeführte Steuersignal bewirkt, daß der Eingangsanschluß B des Multiplexers 19 mit dem Ausgangsanschluß C des Multiplexers 19 und damit mit dem Bus 24 und dann mit dem Adressenanschluß 16 des RAM 12 verbunden wird. Entsprechend werden an den Eingangsanschluß 13 angelegte Daten in aufeinanderfolgenden Speicherplätzen in dem RAM 12 gespeichert, wobei die Adressen dieser Speicherplätze durch den Zähler 17 bestimmt werden.
  • Es sei angenommen, daß alle zu speichernden Daten nunmehr in dem RAM 12 gespeichert sind und es nunmehr erwünscht ist, alle oder einige dieser Daten wiederzugewinnen (d.h. von dem RAM 12 auszulesen). Ein Lesefreigabesignal (d.h. eine logische 1) wird dem E-Eingang des Vorwärts-Zählers 18 zugeführt. Der Zähler 18 vergrößert seine Zählung, die dem Nultiplexer 19 über den Bus 22 zugeführt wird. Das dem Steuereingang 21 des Multiplexers 19 zugeführte Steuersignal bewirkt, daß der Eingangsanschluß A des Multiplexers 19 mit dem Ausgangsanschluß C des Multiplexers 19 und damit mit dem Bus 24 und somit dem Adressenanschluß 16 des RAM 12 verbunden wird. Entsprechend werden aufeinanderfolgende Adressen dem RAM 12 zugeführt, und an diesen adressierten Speicherplätzen gespeicherte Daten werden ihrerseits dem Datenausgangsanschluß 14 des RAM 12 zugeführt.
  • Der Vorwärts-/Rückwärts-Zähler 20 wird dazu verwendet, den Zustand des RAM zu verfolgen, d.h. ob der RAM 12 voll oder leer ist oder irgenwo zwischen diesen Zuständen liegt. Das Schreibfreigabesignal vom Eingang E des Zählers 17 wird dem Vorwärts- Eingangsanschluß U des Zählers 20 zugeführt (ein an dieser Stelle zugeführtes Signal bewirkt, daß der Zähler 20 seine Zählung vergrößert, d.h. vorwärts zählt). Das Lese-Freigabesignal vom Eingang E des Zählers 18 wird den Rückwärts-Eingangsanschluß D des Zählers 20 zugeführt (ein an dieser Stelle angelegtes Signal bewirkt, daß der Zähler 20 seine Zählung verringert, d.h. rückwärts zählt). Der Ausgangsanschluß 0 des Zählers 20 führt eine Zählung (d.h. Zahl), die den Zustand des RAM 12 anzeigt. Dies heißt mit anderen Worten, daß, wenn der RAM 12 leer ist, der Ausgang 0 gleich 0 ist, während, wenn der RAM 12 voll ist, der Ausgang gleich FFF (Hexadezimal) für dieses Beispiel ist. Irgendeine Zahl zwischen 0 und FFF (hex) zeigt ein Maß dafür an, wie voll der RAM 12 ist. Je größer die Zahl, desto größer ist der RAM 12.
  • Dies ist selbstverständlich ein Ergebnis der Tatsache, daß der Zähler 20 bei 0 gestartet wird, wenn der RAM 12 leer ist. Wenn Daten in dem RAM 12 gespeichert wurden (unter der Adressierung durch den Zähler 17), so zählte der Zähler 20 vorwärts, während, wenn Daten aus dem RAM 12 wiedergewonnen wurden (gelesen wurden) (unter Adressierung des Zählers 18), so zählte der Zähler 20 rückwärts.
  • Fig. 2 zeigt in vereinfachter Form eine FIFO-Speicherschaltung 110. Die Schaltung 110 umfaßt eine FIFO-Steuerschaltung 111 und einen FIFO-Speicher 112. Der FIFO-Speicher 112 ist ein Direktzugriffsspeicher (RAM) mit einem Dateneingangsanschluß 113, einem Datenausgangsanschluß 114 und einem Adressenanschluß 116.
  • Die FIFO-Steuerschaltung 111 umfaßt einen Schreib-Zähler 117 (beispielsweise einen Vorwärts-Zähler vom Typ 74F163), einen Lese-Zähler 118 (beispielsweise einen Vorwärts-Zähler vom Typ 74F163), einen Multiplexer 119 (vom Typ 74F157), einen Vergleicher 126 (vom Typ 74688) und einen Vergleicher 127, die in der in Fig. 2 gezeigten Weise miteinander verbunden sind.
  • Die Zähler 117 und 118 werden durch ein Taktsignal A (4.096MHz) in der dargestellten Weise getaktet. Es sei darauf hingewiesen, daß, obwohl die Zähler 117 und 118 so dargestellt sind, daß sie von einem gemeinsamen Takt A getaktet werden, sie auch durch zwei verschiedene Takte getaktet werden können. Zur Vereinfachung der Steuerung (beispielsweise der Einstellzeit) wird es jedoch bevorzugt, daß die Zähler 117 und 118 durch zwei um 180 Grad phasenverschobene Signale von einem gemeinsamen Takt (beispielsweise A und ) getaktet werden. Der Schreibzähler 117 weist in der dargestellten Weise einen Schreib-Freigabeeingang E auf, während der Lesezähler 118 in der dargestellten Weise einen Lese-Freigabeeingang E aufweist. Der Ausgang des Zählers 118 abzüglich des höchstbewerteten oder Überlauf-Bits MSB wird sowohl dem Eingangsanschluß A des Multiplexers 119 als auch dem Eingangsanschluß A des Vergleichers 127 über den Bus 122 zugeführt. Es sei bemerkt, daß wenn n Bits zur Adressierung des RAM 112 benötigt werden, der Zähler 117 ein (n+1) Bit-Zähler ist, und daß der Zähler 118 ebenfalls ein (n+1) Bit-Zähler ist.
  • Der Ausgangsanschluß C des Multiplexers 119 legt an den Bus 124 entweder das Signal von dem Eingangsanschluß A oder von dem Eingangsanschluß B an, und zwar in Abhängigkeit von der Auswahl durch das Steuersignal am Steueranschluß 121.
  • Es sei darauf hingewiesen, daß das höchstbewertete Bit MSB des Zählers 117 dem Eingang IN1 des Vergleichers 126 über eine Leitung 131 zugeführt wird, während das höchstbewertete Bit MSB des Zählers 118 dem Eingang IN2 des Vergleichers 126 über eine Leitung 132 zugeführt wird. Der Vergleicher 126 weist einen mit '=' bezeichneten Ausgang auf. Wenn die beiden Eingänge an den Vergleicher 126 gleich sind (d.h. beide durch eine logische 0 oder beide durch eine logische 1 gebildet sind), so weist der Ausgang '=' (d.h. das Ausgangssignal 125) des Vergleichers 126 eine logische 1 auf. Wenn die beiden Eingänge des Vergleichers 126 nicht gleich sind, so ist der Ausgang '=' (d.h. das Ausgangssignal 125) des Vergleichers 126 gleich einer logischen 0. Das Ausgangssignal 125 wird einem Inverter 128 zugeführt, dessen Ausgang das Ausgangssignal 129 ist.
  • Die Ausgangssignale 125 und 129 werden in der in Fig. 2 gezeigten Weise UND-Gliedern 133 bzw. 134 zugeführt. Der andere Eingang der UND-Glieder 133 und 134 ist das Ausgangssignal 136 von dem Ausgangsanschluß 137 des Vergleichers 127 gemäß Fig. 2. Wenn das dem Eingangsanschluß A des Vergleichers 127 zugeführte Signal gleich dem dem Eingangsanschluß B des Vergleichers 127 zugeführten Signal ist, so ist das Ausgangssignal 136 am Anschluß 137 eine logische 1, während in anderen Fällen das Ausgangssignal 136 eine logische 0 ist.
  • Es sei ein Anfangszustand für die FIFO-Speicherschaltung 110 angenommen, bei dem keine Daten in dem RAM 112 gespeichert sind und die Zähler 117 und 118 einen Ausgang von 0 aufweisen. Entsprechend sind die Signale an den Leitungen 131 und 132 gleich (beide entsprechen einer logischen 0) und der Ausgang des Vergleichers 126 (d.h. das Signal 125) am Augang '=' ist eine logische 0. In gleicher Weise sind die Signale an den Bus-Leitungen 122 und 123, die den Eingängen A bzw. B des Vergleichers 127 zugeführt werden, identisch, und das Ausgangssignal 136 von dem Vergleicher 127 ist ein logisches 1-Signal.
  • Als Ergebnis ist das Ausgangssignal des UND-Gliedes 133, d.h. die Leeranzeige, ein logisches 1-Signal. Der Ausgang des UND- Gliedes 134, d.h. die Vollanzeige, ist ein logisches 0-Signal.
  • Es sei angenommen, daß Daten in dem RAM 112 gespeichert werden sollen. Daten werden sequentiell dem Eingangsanschluß 113 des RAM 112 zugeführt, während ein Freigabesignal (d.h. eine logische 1) dem E-Eingang des Zählers 117 zugeführt wird. Der Zähler 117 vergrößert seine Zählung, die dem Multiplexer 119 über den Bus 123 zugeführt wird. Das dem Steuereingang 121 des Multiplexers 119 zugeführte Steuersignal bewirkt, daß der Eingangsanschluß B des Multiplexers 119 mit dem Ausgangsanschluß C des Multiplexers 119 und damit mit dem Bus 124 und dann mit dem Adressenanschluß 116 des RAM 112 verbunden wird. Entsprechend werden die dem Eingangsanschluß 113 zugeführten Daten in aufeinanderfolgenden Speicherplätzen in dem RAM 112 gespeichert, deren Adressen durch den Zähler 117 bestimmt werden.
  • Wenn der Zähler 117 seine Zählung vergrößert, ist das Signal an dem Bus 123 nicht mehr gleich dem Signal an dem Bus 122, und entsprechend ändert sich das Ausgangssignal 136 von dem Vergleicher 127 auf ein logisches 0-Signal. Dies führt dazu, daß der Ausgang des UND-Gliedes 133 zu einem logischen 0-Signal wird, während der Ausgang des UND-Gliedes 134 ein logisches 0-Signal bleibt. Es sei darauf hingewiesen, daß sich der Ausgang des Vergleichers 126 noch nicht geändert hat.
  • Es sein angenommen, daß der RAM 112 lediglich teilweise gefüllt ist (beispielsweise 1k), wenn der Zähler 117 gestoppt wird und der Zähler 118 freigegeben wird, um mit dem Auslesen von Daten aus dem RAM 112 zu beginnen. Die Ausgangszustände der UND-Glieder 133 und 134 bleiben unverändert (d.h. auf einer logischen 0 bzw. auf einer logischen 0), bis der Ausgang des Zählers 118 gleich dem Inhalt des Zählers 117 wird. Zu diesem Zeitpunkt wird das Ausgangssignal 136 von dem Vergleicher 127 zu einer logischen 1, und entsprechend ist der Ausgang des UND- Gliedes 133 eine logische 1, während der Ausgang des UND- Gliedes 134 eine logische 0 bleibt. Dies zeigt an, daß der RAM 112 leer ist, weil alles, was in dem RAM 112 gespeichert wurde (d.h. unter der Steuerung des Zählers 117) aus dem RAM 112 zurückgewonnen wurde (d.h. unter der Steuerung des Zählers 118).
  • Es sein nun angenommen, daß mehr Daten in dem RAM 112 gespeichert werden sollen. Wie vorher werden Daten sequentiell dem Eingangsanschluß 113 des RAM 112 zugeführt, während ein Freigabesignal (d.h. eine logische 1) dem E-Eingang des Zählers 117 zugeführt wird. Der Zähler 117 vergrößert seine Zählung, die dem Multiplexer 119 über den Bus 123 zugeführt wird. Das dem Steuereingang 121 des Multiplexers 119 zugeführte Steuersignal bewirkt, daß der Eingangsanschluß B des Multiplexers 119 mit dem Ausgangsanschluß C des Multiplexers 119 und damit mit dem Bus 124 und dann mit dem Adressenanschluß 116 des RAM 112 verbunden wird. Entsprechend werden dem Eingangsanschluß 113 zugeführte Daten in aufeinanderfolgenden Speicherplätzen in dem RAM 112 gespeichert, wobei die Adressen dieser Speicherplätze durch den Zähler 117 bestimmt sind.
  • Wenn der Zähler 117 seine Zählung vergrößert, so ist das Signal an dem Bus 123 nicht mehr gleich dem Signal an dem Bus 122, und entsprechend wechselt das Ausgangssignal 136 von dem Vergleicher 127 auf ein logisches 0-Signal. Dies führt dazu, daß der Ausgang des UND-Gliedes 133 zu einem logischen 0-Signal wird, während der Ausgang des UND-Gliedes 134 ein logisches 0-Signal bleibt. Dies zeigt an, daß der RAM 112 weder leer noch voll ist. Es sei darauf hingewiesen, daß sich der Ausgang des Vergleichers 126 noch nicht geändert hat.
  • Es sei angenommen, daß der Zähler 117 seine Zählung weiter vergrößert und den Zustand erreicht, bei dem sein hächstbewertetes Bit MSB eine logische 0 ist, während seine übrigen Bits alle logische 1-Signale sind. Dies heißt mit anderen Worten, daß der Bus 123 die höchstmögliche Adresse für den RAM 112 führt (es sei daran erinnert, daß der Zähler 117 ein zusätzliches Bit über diejenigen hinaus aufweist, die erforderlich sind, um den RAM 112 zu adressieren, d.h. wenn n Bits erforderlich sind, um den RAM 112 zu adressieren, so weist der Zähler 117 n+1 Bits auf). Beim nächsten Taktimpuls wechselt das höchstbewertete Bit MSB des Zählers 117 auf eine logische 1, während die übrigen Bits dieses Zählers alle eine logische 0 sind.
  • Dies führt dazu, daß das Ausgangssignal 136 des Vergleichers 127 ein logisches 0-Signal bleibt (d.h. die Eingänge an seinen Anschlüssen A und B sind nicht gleich), während der Ausgang des Vergleichers 126 auf ein logisches 0-Signal übergeht. Dies bedeutet, daß das UND-Glied 136 logische 0-Signale an seinen beiden Eingängen aufweist (wobei sich entsprechend ein logisches 0-Signal an seinem Ausgang ergibt, während das UND-Glied 134 sowohl eine logische 0 als auch eine logische 1 an ihren beiden Eingängen aufweist (was entsprechend zu einem logischen 0-Signal an seinem Ausgang führt). Die Ausgänge der UND-Glieder 133 und 134 zeigen damit weiterhin an, daß der RAM 112 weder voll noch leer ist.
  • Wenn der Zähler 117 seine Zählung weiter vergrößert, gelangt er zu dem Zustand, bei dem sein Ausgang an dem BUS 123 gleich dem Ausgang des Zählers 118 an dem Bus 122 ist. Zu diesem Zeitpunkt wird das Ausgangssignal 136 von dem Vergleicher 127 zu einer logischen 1. Dies führt dazu, daß der Ausgang des UND-Gliedes 133 weiterhin ein logisches 0-Signal ist, während der Ausgang des UND-Gliedes 136 zu einem logischen 1-Signal wird (weil seine beiden Eingänge nunmehr logische 1-Signale führen), was anzeigt, daß der RAM 112 nunmehr voll ist.
  • Fig. 3 zeigt in vereinfachter Form eine FIFO-Speicherschaltung 210, die gemäß der vorliegenden Erfindung aufgebaut ist. Die Schaltung 210 weist eine FIFO-Steuerschaltung 211 und einen FIFO-Speicher 212 auf. Der FIFO-Speicher 212 ist ein Direktzugriffsspeicher (RAM) mit einem Dateneingangsanschluß 213, einem Datenausgangsanschluß 214 und einem Adressenanschluß 216.
  • Die FIFO-Steuerschaltung 212 umfaßt einen Schreib-Zähler 217 (beispielsweise einen Vorwärts-Zähler vom Typ 74F163), einen Lese-Zähler 218 (beispielsweise einen Vorwärts-Zähler vom Typ 74F163), einen Multiplexer 219 (Typ 74F157), einen Vergleicher 241 (Typ 74688), einen Vergleicher 248 (Typ 74688), einen Vergleicher 251 (Typ 74688), ein Schreibregister 243 und ein Leseregister 244, die alle in der in Fig. 3 gezeigten Weise miteinander verbunden sind.
  • Die Zähler 217 und 218 werden in der dargestellten Weise durch ein Taktsignal A getaktet. Der Schreibzähler 217 weist in der dargestellten Weise einen Schreibfreigabe-Eingang E auf, während der Lese-Zähler 218 in der dargestellten Weise einen Lesefreigabe-Eingang E aufweist. Der Ausgang des Zählers 218 unter Einschluß des höchstbewerteten oder Überlauf-Bits MSB wird dem Eingangsanschluß A des Multiplexers 219, dem Register 244 und dem Eingangsanschluß A des Vergleichers 241 über den Bus 222 zugeführt (es sein darauf hingewiesen, daß das MSB weder von dem Multiplexer 219 noch von dem RAM 212 benötigt wird). Der Ausgang des Zählers 217 unter Einschluß des höchstbewerteten oder Überlauf-Bits MSB wird dem Eingangsanshcluß B des Multiplexers 219, dem Register 243 und dem Eingangsanschluß B des Vergleichers 242 über den Bus 223 zugeführt (es sei darauf hingewiesen, daß das MSB von dem Multiplexer 219 oder dem RAM 212 nicht benötigt wird.
  • Der Ausgangsanschluß C des Multiplexers 219 führt dem Bus entweder das Signal von dem Eingangsanschluß A oder von dem Eingangsanschluß B zu, und zwar in Abhängigkeit von der Auswahl durch das Steuersignal am Steueranschluß 221.
  • Es sei darauf hingewiesen, daß die Register 243 und 244 durch einen Einzelereignis-Takt B bzw. durch einen Einzelereignis- Takt C getaktet werden. Der Einzelereignis-Takt B ist ein Impuls, der auftritt, wenn der Schreib-Zähler 217 seine Aufwärtszählung gestoppt hat (d.h. das Schreiben ist beendet) und die abschließende, von dem Zähler 217 erreichte Zählung, in dem Schreibregister 243 gespeichert werden soll. Der Einzelereignis- Takt C ist ein Impuls, der auftritt, wenn der Lese-Zähler 218 seine Vorwärtszählung gestoppt hat (d.h. wenn das Lesen beendet ist) und die abschließende, von dem Zähler 218 erreichte Zählung in dem Leseregister 244 gespeichert werden soll.
  • Es sei bemerkt, daß die FIFO-Speicherschaltung 210 nach Fig. 3 in einer 'Nachrichten'-Betriebsart arbeitet. Dies heißt, daß aufgrund der Tatsache, daß die in den Registern 243 und 244 gespeicherten Werte erst dann erneuert werden, wenn das Schreiben bzw. Lesen abgeschlossen ist, mehrfache Schritte erforderlich sind, bevor eine Zustandsänderung (d.h. voll oder leer) an den Anzeigern wiedergegeben wird. Dies heißt mit anderen Worten, daß eine vollständige 'Nachricht' geschrieben oder gelesen werden muß, bevor eine Zustandsänderung auftritt.
  • Ein Vergleich wird bei der Ausführungsform nach Fig. 3 zwischen dem Schreib-Zähler 217 und dem Lese-Register 244 über den Vergleicher 242 durchgeführt, um den Voll-Zustand anzuzeigen, während ein weiterer Vergleich zwischen dem Lese-Zähler 218 und dem Schreib-Register 243 über den Vergleicher 241 durchgeführt wird, um den Leer-Zustand anzuzeigen.
  • Im einzelnen wird der Inhalt des Schreib-Registers 243 dem B-Eingang des Vergleichers 241 zugeführt, während der Ausgang des Lese-Zählers 218 dem A-Eingang des Vergleichers 241 zugeführt wird. Wenn die Signale an den A- und B-Eingängen des Vergleichers 241 die gleichen sind (d.h. gleich sind), so ist das Ausgangssignal 246 von dem Vergleicher 241 ein logisches 1-Signal, während es in anderen Fällen ein logisches 0-Signal ist.
  • In ähnlicher Weise wird der Inhalt des Lese-Registers 244 den A-Eingängen der Vergleicher 251 und 248 zugeführt, während der Ausgang des Schreib-Zählers 217 den B-Eingängen der Vergleicher 251 und 248 zugeführt wird, wie dies in Fig. 3 gezeigt ist. Es sei darauf hingewiesen, daß der vergleicher 248 die höchstbewerteten Bits (MSB) vergleicht, während der Vergleicher 251 die übrigen Bits jedes Signals vergleicht.
  • Wenn die Signale an den A- und B-Eingängen des Vergleichers 248 gleich sind, so ist das Ausgangssignal 249 von dem Vergleicher 248 ein logisches 0-Signal, anderenfalls ist es ein logisches 1-Signal. Wenn die Signale an den A- und B-Eingängen des Vergleichers 251 gleich sind, so ist das Ausgangssignal 252 von dem '='-Ausgang des Vergleichers 251 ein logisches 1- Signal, während es in anderen Fällen ein logisches 0-Signal ist.
  • Die Signale 249 und 252 werden dem UND-Glied 253 in der dargestellten Weise zugeführt, wobei der Ausgang des UND-Gliedes 253 das Signal 247 gemäß Fig. 3 ist (dies ist selbstverständlich auch das Ausgangssignal des Vergleichers 242).
  • Es sei ein Anfangszustand der FIFO-Speicherschaltung 210 angenommen, bei dem keine Daten in dem RAM 212 gespeichert sind und die Zähler 217 und 218 jeweils einen Ausgang von 0 aufweisen, wobei auch die Register 243 und 244 jeweils einen Inhalt von 0 aufweisen. Entsprechend sind die Signale an den Eingängen A und B des Vergleichers 241 gleich (beide sind logische 0-Signale), und das Ausgangssignal 246 von dem Vergleicher 241 ist ein logisches 1-Signal (was den Leerzustand anzeigt). In gleicher Weise sind die Signale an den Eingängen A und B des Vergleichers 248 gleich (beide sind logische 0-Signale), und die Signale an den Eingängen A und B des Vergleichers 251 sind gleich (alle sind logische 0-Signale), so daß entsprechend das Ausgangssignal 249 von dem Vergleicher 248 ein logisches 0- Signal ist und das Ausgangssignal 252 von dem Vergleicher 251 ein logisches 1-Signal ist. Als Ergebnis ist das Ausgangssignal 247 von dem Vergleicher 242 ein logisches 0-Signal (was anzeigt, daß der Speicher nicht voll ist).
  • Es sei angenommen, daß Daten in dem RAM 212 gespeichert werden sollen. Die Daten werden sequentiell dem Eingangsanschluß 213 des RAM 212 zugeführt, während ein Freigabesignal (d.h. ein logisches 1-Signal) an den E-Eingang des Zählers 217 angelegt ist. Der Zähler 217 vergrößert seine Zählung, die dem Multiplexer 219 über den Bus 223 zugeführt wird. Das dem Steuereingang 221 des Multiplexers 219 zugeführte Steuersignal bewirkt eine Verbindung des Eingangsanschlusses B des Multiplexers 219 mit dem Ausgangsanschluß C des Multiplexers 219 und damit mit dem Bus 224 und dem Adressenanschluß 216 des RAM 212. Entsprechend werden dem Eingangsanschluß 213 zugeführte Daten in aufeinanderfolgenden Speicherplätzen in dem RAM 212 gespeichert, wobei die Adressen dieser Speicherplätze durch den Zähler 217 bestimmt sind.
  • Wenn der Zähler 217 seine Zählung vergrößert, so ist das Signal an dem B-Eingang des Vergleichers 251 nicht mehr gleich dem Signal an dem A-Eingang des Vergleichers 251. Solange die Zählung nicht sehr groß wird (d.h. bevor das höchstbewertete Bit eine logische 1 wird), bleibt das Ausgangssignal 249 von dem Vergleicher 248 ein logisches 0-Signal, und das Ausgangssignal 252 von dem Vergleicher 251 wird zu einem logischen 0-Signal (weil die Signale an den A- und B-Eingängen des Vergleichers 251 sich voneinander unterscheiden, sobald der Zähler 217 zu zählen beginnt). Als Ergebnis weist das UND-Glied 253 zwei logische 0-Signale als Eingänge auf, und das Ausgangssignal 247 bleibt ein logisches 0-Signal, was den nicht vollen Zustand des Speichers anzeigt.
  • Während dies erfolgt, steht der Zähler 218 nach wie vor auf 0, und das Register 243 befindet sich ebenfalls auf 0. Entsprechend haben sich die den A- und B-Eingängen des Vergleichers 241 zugeführten Signale nicht geändert, und sie sind immer noch gleich (d.h. beide sind 0-Signale). Als Ergebnis bleibt das Ausgangssignal 246 ein logisches 1-Signal, was den Leerzustand des Speichers anzeigt.
  • Es ein angenommen, daß der RAM 212 lediglich teilweise gefüllt ist (beispielsweise 1K), wenn der Zähler 217 gestoppt wird. Zu diesem Zeitpunkt wird das Register 243 durch den Einzelereignis- Takt B getaktet, und das Signal an dem Bus 223 (d.h. die von dem Zähler 217 erreichte Zählung) wird in dem Register 243 gespeichert. Wenn dies erfolgt, führen die A- und B-Eingänge des Vergleichers 241 nicht mehr länger gleiche Signale, und das Ausgangssignal 246 von dem Vergleicher 241 wird zu einem logischen 0-Signal, was einen vom Leerzustand abweichenden Zustand anzeigt. Das Ausgangssignal 247 von dem Vergleicher 242 bleibt unverändert ein logisches 0-Signal, was einen vom vollen Zustand abweichenden Zustand anzeigt.
  • Es sei nunmehr angenommen, daß der Zähler 218 freigegeben wird, um das Lesen von Daten von dem RAM 212 zu beginnen. Das Ausgangssignal 247 ändert sich nicht, weil sich die Eingangssignale an den Vergleicher 242 noch nicht geändert haben. Das Ausgangssignal 246 bleibt unverändert (ein logisches 0-Signal), bis der Ausgang des Zählers 218 gleich dem Inhalt des Registers 243 wird. Zu diesem Zeitpunkt sind die beiden Eingänge an den Vergleicher 241 gleich, und das Ausgangssignal 246 wird zu einem logischen 1-Signal, was anzeigt, daß der RAM 212 leer ist.
  • Zu dem Zeitpunkt, zu dem der Zähler 218 gestoppt wird, wird das Register 244 durch den Einzelereignis-Takt c getaktet, und das Signal an dem Bus 221 (d.h. die von dem Zähler 218 erreichte Zählung> wird in dem Register 244 gespeichert. Wenn dies eintritt, führen die A- und B-Eingänge des Vergleichers 251 gleiche Signale, und das Ausgangssignal 247 von dem Vergleicher 242 bleibt ein logisches 0-Signal, was anzeigt, daß der Speicher nicht voll ist.
  • Es sei nunmehr angenommen, daß weitere Daten in dem RAM 212 gespeichert werden sollen. Wie vorher werden Daten sequentiell dem Eingangsanschluß 213 des RAM 212 zugeführt, während ein Freigabesignal (d.h. ein logisches 1-Signal) dem E-Eingang des Zählers 217 zugeführt wird. Der Zähler 217 vergrößert seine Zählung, die über den Bus 223 dem Multiplexer 219 zugeführt wird. Das dem Steuereingang 221 des Multiplexers 219 zugeführte Steuersignal bewirkt, daß der Eingangsanschluß B des Multiplexers 219 mit dem Ausgangsanschluß C des Multiplexers 219 und damit mit dem Bus 224 und dann mit dem Adressenanschluß 216 des RAM 212 verbunden wird. Entsprechend werden die dem Eingangsanschluß 213 zugeführten Daten in aufeinanderfolgenden Speicherplätzen in dem RAM 212 gespeichert, wobei die Adressen dieser Speicherplätze durch den Zähler 217 bestimmt sind.
  • Wenn der Zähler 217 seine Zählung vergrößert, so ändern sich die dem Vergleicher 241 zugeführten Signale (noch) nicht, und das Ausgangssignal 246 bleibt ein logisches 1-Signal, was anzeigt, daß der RAM 212 leer ist.
  • Wenn der Zähler 217 seine Zählung vergrößert, so ändert sich das dem B-Eingang des Vergleichers 251 zugeführte Signal. Das dem A-Eingang des Vergleichers 252 zugeführte Signal bleibt gleich (d.h. der Inhalt des Registers 244). Als Ergebnis ist das Ausgangssignal 247 ein logisches 0-Signal, das den nicht vollständig vollen Zustand anzeigt.
  • Es sei angenommen, daß der Zähler 217 seine Zählung weiter vergrößert und zu einem Fall gelangt, bei dem sein MSB ein logisches 0-Signal ist, während die übrigen Bits alle logische 1-Signale sind. Dies heißt mit anderen Worten, daß der Bus 223 die höchstmögliche Adresse für den RAM 212 führt (es sei daran erinnert, daß der Zähler 217 ein zusätzliches Bit über die Bits hinaus aufweist, die zur Adressierung des RAM 212 benötigt werden, d.h. wenn n Bits für die Adressierung des RAM 212 benötigt werden, so weist der Zähler 217 n+1 Bits auf). Beim nächsten Taktimpuls ändert sich das höchstbewertete Bit MSB des Zählers 217 auf ein logisches 1-Signal, während die übrigen Bits dieses Zählers alle ein logisches 0-Signal darstellen.
  • Dies führt dazu, daß die B- und A-Eingänge des Vergleichers 248 logische 1- bzw. 0-Signale sind. Entsprechend ist das Ausgangssignal 249 von dem Vergleicher 248 ein logisches 1-Signal. Der B-Eingang des Vergleichers 251 besteht vollständig aus logischen 0-Signalen, während der A-Eingang 1k in Binärform entspricht. Entsprechend ist das Ausgangssignal 252 von dem Vergleicher 251 ein logisches 0-Signal (ungleiche Eingänge). Dies bedeutet, daß die Eingänge an das UND-Glied ein logisches 1- und ein logisches 0-Signal sind, mit dem Ergebnis, daß das Ausgangssignal 247 ein logisches 0-Signal ist, das einen nicht vollständig vollen Zustand darstellt.
  • Wenn der Zähler 217 seine zählung weiter vergrößert, so wird das dem Eingang B des Vergleichers 251 zugeführte Signal (d.h. der Ausgang des Zählers 217 abzüglich des höchstbewerteten Bits) schließlich gleich dem Signal, das dem Eingang A des Vergleichers 251 zugeführt wird (d.h. der Ausgang des Registers 244 abzüglich des höchstbewerteten Bits. Wenn dies eintritt, so wird das Ausgangssignal 252 von dem Vergleicher 251 zu einem logischen 1-Signal (Eingangssignale gleich). Das Ausgangssignal 249 von dem Vergleicher 248 bleibt ein logisches 1-Signal, und das Ausgangssignal 247 von dem UND-Glied 253 wird zu einem logischen 1-Signal, was anzeigt, daß der RAM 212 voll ist. Es sei darauf hingewiesen, daß das Signal 246 von dem Vergleicher 241 immer noch ein logisches 0-Signal ist, was anzeigt, daß der RAM 212 nicht leer ist.
  • Wenn das Signal 241 zu einem logischen 1-Signal wird, was anzeigt, daß der RAM 212 voll ist, so stoppt der Zähler 217 die Vergrößerung seiner Zählung. Das Register 243 wird durch den Einzelereignis-Takt B getaktet, mit dem Ergebnis, daß der Inhalt des Zählers 217 in dem Register 243 gespeichert wird. Dies führt dazu, daß der Eingang B des Vergleichers 241 nunmehr einen neuen Wert aufweist. Der Wert am Eingang B des Vergleichers 241 ist gleich dem Wert am Eingang A, mit Ausnahme des höchstbewerteten Bits; der Wert am Eingang B weist eine logische 1 für sein höchstbewertetes Bit auf, und der Wert am Eingang A weist ein logisches 0-Signal für sein höchst bewertetes Bit auf. Entsprechend sind die Eingänge des Vergleichers 241 nicht gleich, und das Ausgangssignal 246 ist ein logisches 0-Signal, was einen vom Leerzustand abweichenden Zustand anzeigt.
  • Weil der RAM 212 nunmehr voll ist (das Signal 246 ist ein logisches 0-Signal und das Signal 247 ist ein logisches 1- Signal) können keine weiteren Daten in den RAM 212 eingeschrieben werden, so daß Daten lediglich im nächsten Schritt gelesen werden können.
  • Es sei nunmehr angenommen, daß der Zähler 218 freigegeben wird, um mit dem Lesen von Daten von dem RAM 212 zu beginnen. Das Ausgangssignal 247 ändert sich nicht unmittelbar, weil sich die Eingangssignale an den Vergleicher 242 noch nicht geändert haben (d.h. das Signal 247 bleibt ein logisches 1-Signal, was einen vollständig gefüllten Zustand anzeigt). Das Ausgangssignal (246) bleibt unverändert (ein logisches 0-Signal), bis der Ausgang des Zählers 218 gleich dem Inhalt des Registers 243 wird. Zu diesem Zeitpunkt werden die beiden Eingänge des Vergleichers 241 gleich, und das Ausgangssignal 246 wird zu einem logischen 1-Signal, was anzeigt, daß der RAM 212 leer ist.
  • Zu diesem Zeitpunkt (d.h. wenn das Signal 246 ein logisches 1-Signal wird), wird der Zähler 218 gestoppt, das Register 244 wird durch den Einzelereignis-Takt C getaktet, und das Signal an dem Bus 222 (d.h. die von dem Zähler 218 erreichte Zählung) wird in dem Register 244 gespeichert. Wenn dies erfolgt, führen die A- und B-Eingänge der Vergleicher 248 und 251 gleiche Signale, und das Ausgangssignal 247 wird zu einem logischen 0-Signal, was den nicht vollständig gefüllten Zustand anzeigt.
  • Eine in der Betriebsart der Ausführungsform nach Fig. 3 betriebene Schaltung weist die Vorteile auf, daß sie Nachrichtenorientiert ist und damit eine relativ sanfte Überführung von Daten ermöglicht, die Nachrichen-orientiert sind.
  • Fig. 4 zeigt in vereinfachter Form eine bevorzugte Ausführungsform einer FIFO-Speicherschaltung 310, die gemäß der vorliegenden Erfindung aufgebaut ist. Die Ausführungsform nach Fig. 4 ist ähnlich der in Fig. 3 gezeigten Ausführungsform, sie weist jedoch zusätzlich einen Bus 261 zwischen dem Register 244 und dem Zähler 218 und einen Bus 262 zwischen dem Register 243 und dem Zähler 217 auf.
  • Die Hinzufügung der Busleitungen 261 und 262 führt zusätzlich eine Rückführung zwischen den Registern 243 und 244 und ihren entsprechenden Zählern 217 bzw. 218 ein und ermöglicht eine weitergehende Steuerung des Inhaltes des FIFO-Speichers 212.
  • Durch Rückladen des Schreibzählers 217 von dem Schreibregister 243 kann die gerade in den Speicher 212 gespeicherte (geschriebene Nachricht) gelöscht werden. Dies tritt ein, weil das Register 243 die Anfangszählung des Zählers 217 enthält und das Register 243 die abschließende Zählung des Zählers 217 erst dann speichert, wenn es durch den Einzelereignis-Takt B getaktet wird. Entsprechend enthält, weil das Einzelereignis-Taktsignal B nicht geliefert wird, das Register 243 die Anfangszählung des Zählers 217; diese Zählung kann dann in den Zähler 217 über den Bus 262 eingegeben werden. Als Ergebnis beginnt, wenn der Zähler 217 erneut mit dem Zählen beginnt, er bei seiner früheren Zählung, und die nunmehr in dem FIFO-Speicher 212 gespeicherten Daten überschreiben Daten, die in diesem bereits gespeichert waren.
  • In ähnlicher Weise kann durch Rückladen des Lesezählers 218 aus dem Leseregister 244 die gerade aus dem FIFO-Speicher 212 ausgelesene Nachricht für ein erneutes Lesen gehalten werden. Dies erfolgt, weil das Register 244 die Anfangszählung des Zählers 218 enthält und das Register 244 erst dann die abschließende Zählung des Zählers 218 speichert, wenn es durch den Einzelereignis-Takt C getaktet wird. Entsprechend enthält, wenn das Einzelereignis-Taktsignal T nicht zugeführt wird, das Register 244 die Anfangszählung des Zählers 218, und diese Zählung kann dann in den Zähler 218 über den Bus 261 eingegeben werden. Als Ergebnis hiervon beginnt, wenn der Zähler 218 erneut zu zählen beginnt, er an seiner früheren Zählung, und die nunmehr aus dem FIFO-Speicher 212 ausgelesenen (adressierten) Daten sind die Daten, die bereits aus dem Speicher 212 ausgelesen wurden.
  • Bei einer typischen Anwendung wird nach dem Schreiben einer Nachricht (über den Schreibzähler 217) das Schreibregister 243 mit dem Inhalt des Schreibzählers 217 aktualisiert, wodurch die Nachricht 'angenommen' wird. Wenn das (nicht gezeigte) Steuergerät, das die Nachricht schreibt, ein Integritätsproblem (beispielsweise einen Paritätsfehler) feststellt, so wird durch erneutes Laden des Schreibzählers 217 mit dem Inhalt des Schreibregisters 243 diese Nachricht 'verworfen'.
  • Bei einem Lesevorgang wird das Leseregister 244 normalerweise von dem Lesezähler 218 aktualisiert, wodurch die in dem FIFO- Speicher 212 gespeicherte Nachricht 'ausgespült' wird. Wenn jedoch das (nicht gezeigte) Empfangs-Steuergerät ein Integritätsproblem anzeigt (beispielsweise einen Paritätsfehler), so kann es den Zähler 218 mit dem Inhalt des Leseregisters 244 neu laden, um die Nachricht in dem Speicher 212 'zu halten', um einen erneuten Versuch (eine erneute Übertragung) zu ermöglichen.
  • Es sind einige eingebaute Verriegelungen zwischen den beiden Anzeigern (d.h. dem Leer-Anzeiger oder dem Signal 246 und dem Voll-Anzeiger oder dem Signal 247) und den Zählern 217 und 218 vorgesehen, um ein Weiterschalten des Schreibzählers 217 zu verhindern, wenn der FIFO-Speicher 212 voll ist, so daß ein Überschreiben vermieden wird. Tatsächlich tritt in diesem Fall ein automatisches Verwerfen des Teils der Nachricht am Ende dieser Nachricht auf. Weiterhin wird der Lese-Zähler 218 an einer Vergrößerung seiner Zählung geehindert, wenn der FIFO- Speicher 212 leer ist, wodurch fehlerhafte Voll-Anzeigen vermieden werden. Diese Merkmale sind in den Zeichnungen nicht gezeigt, um zu verhindern, daß die Beschreibung der vorliegenden Erfindung schwerer verständlich wird.

Claims (9)

1. Steuerschaltung für eine FIFO-Speicherschaltung (eine Speicherschaltung, bei der die zuerst gespeicherten Daten zuerst wieder ausgegeben werden) zur Lieferung von Adresseninformationen (224) an eine FIFO-Speichereinrichtung (212), die ein Adressenfeld von n Bits aufweist, wobei die Steuerschaltung Einrichtungen (217, 243) zur Erzeugung eines Schreibadressensignals, Einrichtungen (218, 244) zur Erzeugung eines Lese-Adressensignals und Einrichtungen (219) zur Auswahl des einen oder des anderen der Schreib-Adressensignale und der Lese- Adressensignale als Adresseninformation für die FIFO-Speichereinrichtung umfaßt, dadurch gekennzeichnet, daß:
die Schreib-Adressen- und die Lese-Adressen-Signale n+1 Bits aufweisen, von denen die n niedrigstbewerteten Bits von den Einrichtungen (219) zur Auswahl als die Adresseninformation für die FIFO-Speichereinrichtung abgegeben werden,
ein erster Vergleicher (248) zum Vergleich des höchstbewerteten Bits des Schreib-Adressen-Signals mit dem höchstbewerteten Bit des Leseadressensignals vorgesehen ist, wodurch ein erstes Vergleichssignal (249) erzeugt wird, das die Gleichheit oder die Ungleichheit der höchstbewerteten Bits anzeigt, ein zweiter Vergleicher (251) zum Vergleich der n niedrigstbewerteten Bits des Schreibadressensignals mit dem n niedrigstbewerteten Bits des Lese-Adressen-Signals vorgesehen ist, wodurch ein zweites Vergleichssignal 252 erzeugt wird, das die Gleichheit oder Ungleichheit dieser niedrigstbewerteten Bits anzeigt, und
Logik-Einrichtungen (253) vorgesehen sind, die auf die Anzeige einer Ungleichheit durch das erste Vergleichssignal und die Anzeige einer Gleichheit durch das zweite Vergleichssignal ansprechen, um ein Signal (247) zu erzeugen, das anzeigt, daß die Speichereinrichtung voll ist.
2. Steuerschaltung nach Anspruch 1, dadurch gekennzeichnet, daß die Logikeinrichtungen (133) auf das eine Gleichheit anzeigende erste Vergleichssignal (125) und das eine Gleichheit anzeigende zweite Vergleichssignal (136) ansprechen, um ein Signal zu erzeugen, das anzeigt, daß die Speichereinrichtung leer ist.
3. Steuerschaltung nach Anspruch 2, dadurch gekennzeichnet, daß die Einrichtungen zur Erzeugung eines Schreib-Adressen-Signals und die Einrichtungen zur Erzeugung eines Lese-Adressen-Signals jeweils einen Zähler (117, 118) umfassen.
4. Steuerschaltung nach Anspruch 1, gekennzeichnet durch einen dritten Vergleicher (241) zum Vergleich der n+1 Bits der Schreib-Adressen- und Lese-Adressen- Signale, wodurch ein Anzeigesignal (246) für den leeren Zustand der Speichereinrichtung erzeugt wird, wenn die Schreib- und Lese-Adressen-Signale gleich sind.
5. Steuerschaltung nach Anspruch 4, dadurch gekennzeichnet, daß die Einrichtungen zur Erzeugung des Schreib-Adressensignals einen ersten Zähler (217) und erste Speichereinrichtungen (243) zum selektiven Empfangen und Speichern des Ausganges des ersten Zählers umfassen.
6. Steuerschaltung nach Anspruch 5, dadurch gekennzeichnet, daß die Einrihctungen zur Erzeugung des Lese-Adressensignals einen zweiten Zähler (218) und eine zweite Speichereinrichtung (244) zum selektiven Empfangen und Speichern des Ausganges des zweiten Zählers umfassen.
7. Steuerschaltung nach Anspruch 6, dadurch gekennzeichnet, daß die Schaltung folgende Teile einschließt:
erste Bus-Einrichtungen (262) zum Zuführen des Ausganges der ersten Speichereinrichtung an den ersten Zähler, wodurch im Gebrauch ein erneutes Schreiben der Daten an den Speicher bewirkt wird, und
zweite Bus-Einrichtungen (261) zum Zuführen des Ausganges der zweiten Speichereinrichtung an den zweiten Zähler, wodurch im Betrieb ein erneutes Lesen der Daten aus dem Speicher bewirkt wird.
8. Steuerschaltung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Einrichtungen zur Auswahl der Adressensignale einen Multiplexer umfassen, der sowohl die Schreib- als auch Lese-Adressen-Signale empfängt und so ausgebildet ist, daß er die n niedrigstbewerteten Bits des einen oder des anderen dieser Signale als Adresseninformation abgibt.
9. Speicheranordnung, bei der die zuerst eingespeicherten Daten auch zuerst ausgelesen werden, mit einer Steuerschaltung nach einem der vorhergehenden Ansprüche.
DE3855274T 1987-10-14 1988-10-05 Botschafts-Fifo-Puffersteuergerät Expired - Fee Related DE3855274T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA000549274A CA1286421C (en) 1987-10-14 1987-10-14 Message fifo buffer controller

Publications (2)

Publication Number Publication Date
DE3855274D1 DE3855274D1 (de) 1996-06-13
DE3855274T2 true DE3855274T2 (de) 1996-09-19

Family

ID=4136650

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3855274T Expired - Fee Related DE3855274T2 (de) 1987-10-14 1988-10-05 Botschafts-Fifo-Puffersteuergerät

Country Status (7)

Country Link
US (1) US4873666A (de)
EP (1) EP0312239B1 (de)
JP (1) JP2702181B2 (de)
KR (1) KR890007284A (de)
CN (1) CN1012396B (de)
CA (1) CA1286421C (de)
DE (1) DE3855274T2 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778991B2 (ja) * 1988-07-26 1995-08-23 株式会社東芝 半導体メモリ
US5255238A (en) * 1988-09-08 1993-10-19 Hitachi, Ltd. First-in first-out semiconductor memory device
US5113398A (en) * 1989-06-01 1992-05-12 Shackleton System Drives Corporation Self-healing data network and network node controller
US5084841A (en) * 1989-08-14 1992-01-28 Texas Instruments Incorporated Programmable status flag generator FIFO using gray code
US5283763A (en) * 1989-09-21 1994-02-01 Ncr Corporation Memory control system and method
US5455913A (en) * 1990-05-14 1995-10-03 At&T Global Information Solutions Company System and method for transferring data between independent busses
JPH0437904A (ja) * 1990-06-01 1992-02-07 Mitsubishi Electric Corp カウンタ装置
US5214607A (en) * 1990-11-26 1993-05-25 Ncr Corporation Look-ahead FIFO byte count apparatus
US5255241A (en) * 1991-05-20 1993-10-19 Tandem Computers Incorporated Apparatus for intelligent reduction of worst case power in memory systems
US5291468A (en) * 1991-09-16 1994-03-01 International Business Machines Corporation Method and apparatus for synchronizing the readout of a sequential media device with a separate clocked device
US5551054A (en) * 1991-11-19 1996-08-27 Adaptec, Inc. Page mode buffer controller for transferring Nb byte pages between a host and buffer memory without interruption except for refresh
JP3049343B2 (ja) * 1991-11-25 2000-06-05 安藤電気株式会社 メモリ試験装置
US5323272A (en) * 1992-07-01 1994-06-21 Ampex Systems Corporation Time delay control for serial digital video interface audio receiver buffer
JP3057591B2 (ja) * 1992-12-22 2000-06-26 富士通株式会社 マルチプロセッサシステム
JP3229066B2 (ja) * 1993-04-21 2001-11-12 セイコーインスツルメンツ株式会社 半導体集積回路
US5487049A (en) * 1994-11-23 1996-01-23 Samsung Semiconductor, Inc. Page-in, burst-out FIFO
US5809268A (en) * 1995-06-29 1998-09-15 International Business Machines Corporation Method and system for tracking resource allocation within a processor
DE19529966A1 (de) * 1995-08-14 1997-02-20 Thomson Brandt Gmbh Verfahren und Schaltungsanordnung zur Resynchronisation einer Speicherverwaltung
US5717954A (en) * 1995-10-13 1998-02-10 Compaq Computer Corporation Locked exchange FIFO
US5555214A (en) * 1995-11-08 1996-09-10 Altera Corporation Apparatus for serial reading and writing of random access memory arrays
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US6003107A (en) * 1996-09-10 1999-12-14 Hewlett-Packard Company Circuitry for providing external access to signals that are internal to an integrated circuit chip package
US5887003A (en) * 1996-09-10 1999-03-23 Hewlett-Packard Company Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
US5974482A (en) * 1996-09-20 1999-10-26 Honeywell Inc. Single port first-in-first-out (FIFO) device having overwrite protection and diagnostic capabilities
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
KR100301653B1 (ko) * 1998-08-14 2001-09-06 김영환 고속 엠티 플래그 발생기
US6374370B1 (en) 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
DE10081643D2 (de) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
WO2003042811A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Efficient fifo communication using semaphores
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
EP2043000B1 (de) 2002-02-18 2011-12-21 Richter, Thomas Bussysteme und Rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
DE60304468T2 (de) * 2002-06-07 2007-03-15 Koninklijke Philips Electronics N.V. Spacecake coprozessor kommunikation
US7477649B2 (en) * 2002-07-17 2009-01-13 Lsi Corporation Active FIFO threshold adjustment
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
JP2004246979A (ja) * 2003-02-14 2004-09-02 Fujitsu Ltd 半導体試験回路、半導体記憶装置および半導体試験方法
EP1676208A2 (de) 2003-08-28 2006-07-05 PACT XPP Technologies AG Datenverarbeitungseinrichtung und verfahren
CN100396052C (zh) * 2004-03-12 2008-06-18 华为技术有限公司 高可靠性的先入先出存储器及其实现方法
US7447812B1 (en) 2004-03-23 2008-11-04 Integrated Device Technology, Inc. Multi-queue FIFO memory devices that support flow-through of write and read counter updates using multi-port flag counter register files
US7870310B2 (en) * 2004-07-26 2011-01-11 Integrated Device Technology, Inc. Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
US7523232B2 (en) * 2004-07-26 2009-04-21 Integrated Device Technology, Inc. Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system
US7805552B2 (en) 2004-07-26 2010-09-28 Integrated Device Technology, Inc. Partial packet write and write data filtering in a multi-queue first-in first-out memory system
US8230174B2 (en) * 2004-07-26 2012-07-24 Integrated Device Technology, Inc. Multi-queue address generator for start and end addresses in a multi-queue first-in first-out memory system
US20060155940A1 (en) 2005-01-10 2006-07-13 Mario Au Multi-queue FIFO memory systems that utilize read chip select and device identification codes to control one-at-a-time bus access between selected FIFO memory chips
US20100180095A1 (en) * 2005-12-02 2010-07-15 Matsushita Electric Industrial Co., Ltd. Buffer control device and buffer memory device
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
DE112008003643A5 (de) * 2007-11-17 2010-10-28 Krass, Maren Rekonfigurierbare Fliesskomma- und Bit- ebenen Datenverarbeitungseinheit
EP2217999A2 (de) * 2007-11-28 2010-08-18 Krass, Maren Compiler für rekonfigurierbare architekturen mit besonderem zwischenformat
US8681526B2 (en) * 2008-07-02 2014-03-25 Cradle Ip, Llc Size and retry programmable multi-synchronous FIFO
CN116107795B (zh) * 2023-04-14 2023-07-14 苏州萨沙迈半导体有限公司 报错电路及芯片设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3601809A (en) * 1968-11-04 1971-08-24 Univ Pennsylvania Addressable list memory systems
US4163291A (en) * 1975-10-15 1979-07-31 Tokyo Shibaura Electric Co., Ltd. Input-output control circuit for FIFO memory
DE2639895C2 (de) * 1976-09-04 1983-06-16 Nixdorf Computer Ag, 4790 Paderborn Verfahren zur Übertragung von Informationssignalen aus einem Informationsspeicher in einem Datenkanal in Datenverarbeitungsanlagen und Einrichtung zur Durchführung des Verfahrens
US4171538A (en) * 1978-01-23 1979-10-16 Rockwell International Corporation Elastic store slip circuit apparatus for preventing read and write operations interference
US4258418A (en) * 1978-12-28 1981-03-24 International Business Machines Corporation Variable capacity data buffer system
JPS6057090B2 (ja) * 1980-09-19 1985-12-13 株式会社日立製作所 データ記憶装置およびそれを用いた処理装置
US4378594A (en) * 1980-10-24 1983-03-29 Ncr Corporation High speed to low speed data buffering means
JPS58191043A (ja) * 1982-04-30 1983-11-08 Nec Home Electronics Ltd フア−ストイン・フア−ストアウトレジスタ制御回路
US4507760A (en) * 1982-08-13 1985-03-26 At&T Bell Laboratories First-in, first-out (FIFO) memory configuration for queue storage
FR2536200B1 (fr) * 1982-11-15 1987-01-16 Helen Andre Unite de stockage temporaire de donnees organisee en file d'attente
US4592019A (en) * 1983-08-31 1986-05-27 At&T Bell Laboratories Bus oriented LIFO/FIFO memory
JPS60262242A (ja) * 1984-06-08 1985-12-25 Matsushita Electric Ind Co Ltd Fifo回路
US4694426A (en) * 1985-12-20 1987-09-15 Ncr Corporation Asynchronous FIFO status circuit

Also Published As

Publication number Publication date
US4873666A (en) 1989-10-10
JP2702181B2 (ja) 1998-01-21
JPH01129323A (ja) 1989-05-22
CN1012396B (zh) 1991-04-17
EP0312239B1 (de) 1996-05-08
EP0312239A2 (de) 1989-04-19
CA1286421C (en) 1991-07-16
EP0312239A3 (de) 1991-02-13
KR890007284A (ko) 1989-06-19
CN1035382A (zh) 1989-09-06
DE3855274D1 (de) 1996-06-13

Similar Documents

Publication Publication Date Title
DE3855274T2 (de) Botschafts-Fifo-Puffersteuergerät
DE69031658T2 (de) Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz
DE69525531T2 (de) Dataverarbeitungssystem mit ringförmiger Warteschlange in einem Seitenspeicher
DE2756352C3 (de) Schaltungsanordnung zum Aussuchen und Sortieren von Daten in gleichartig aufgebauten Sätzen
DE69826863T2 (de) Verfahren und vorrichtung zur abstimmung eines zur verrieglung digitaler signalen gebrauchten taktsignals und speichervorrichtung die sie verwendet
DE2351791C2 (de) Datenverarbeitungsanlage
DE2806024C2 (de)
DE69217761T2 (de) Lese- und Schreibschaltung für einen Speicher
DE4019135C2 (de) Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung
DE2551239C3 (de) Datenverarbeitungsanlage
DE69934401T2 (de) Datenerfassungssystem mit mitteln zur analyse und zum abspeichern in echtzeit
DE2340547B2 (de) Schaltungsanordnung zum testen logischer schaltungen
EP0974977A2 (de) Integrierter Speicher
DE3852562T2 (de) Datenschreibverfahren für EEPROM.
DE68919464T2 (de) Halbleiterspeichereinrichtung, die einen Speicher mit Seriengriff aufweist.
DE3327379A1 (de) Einrichtung und verfahren zum umordnen von datensaetzen
DE69028265T2 (de) Verfahren zur Datenerfassung für einen Logikanalysator
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE2721599C2 (de) Schaltungsanordnung zur Verhinderung der Ausgabe von Datenworten aus einer EDV-Anlage ohne Sicherheitsverifizierung
DE2719291C3 (de) Datenspeichersystem
DE2432608A1 (de) Speicheranordnung fuer datenverarbeitungseinrichtungen
DE2064473C3 (de) Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenden, gesuchten Information
DE3789987T2 (de) Halbleiterspeichervorrichtung mit einem Testmodus und einem Standardmodusbetrieb.
DE1260532B (de) Speicher mit Kenn-Wert-Aufruf
EP0203409B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes eines digitalen Zählers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee