DE3855274T2 - Botschafts-Fifo-Puffersteuergerät - Google Patents
Botschafts-Fifo-PuffersteuergerätInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims description 58
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
- G06F5/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
- G06F5/14—Means 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/062—Allowing 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1987
- 1987-10-14 CA CA000549274A patent/CA1286421C/en not_active Expired - Lifetime
- 1987-10-15 US US07/108,655 patent/US4873666A/en not_active Expired - Lifetime
-
1988
- 1988-10-05 EP EP88309253A patent/EP0312239B1/de not_active Expired - Lifetime
- 1988-10-05 DE DE3855274T patent/DE3855274T2/de not_active Expired - Fee Related
- 1988-10-11 JP JP63253939A patent/JP2702181B2/ja not_active Expired - Fee Related
- 1988-10-13 KR KR1019880013345A patent/KR890007284A/ko not_active Application Discontinuation
- 1988-10-14 CN CN88108439A patent/CN1012396B/zh not_active Expired
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 |