-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft eine Einrichtung und ein Verfahren
zum Transportieren von Daten durch einen Puffer vom FIFO-Typ.
-
STAND DER TECHNIK
-
In
EP 0 886 454 A2 ist
ein Verfahren und Gerät
zum Expandieren eines auf einem Chip bereitgestellten FIFO Speicher
in einem lokalen Speicher beschrieben. Eine FIFO Queue ist auf einem
Halbleiterchip angeordnet, zum Empfangen und Übertragen von Daten in ein
Computersystem, typischerweise in einem Computernetzwerk. Die FIFO
Queue hat eine zusätzliche
Speicherkapazität
in der Form einer Erweiterung in einen lokalen Speicher des Computersystems.
Die Eingangsseite und die Ausgangsseite der FIFO Queue, die bei
dem Empfang und Übertragen
von Daten involviert sind, sind auf dem Chip implementiert. Die
FIFO Queue wird in einen Speicherbereich erweitert, der auf dem
lokalen Speicher vorgesehen ist, sofern die auf dem Chip bereitgestellte FIFO
Queue gefüllt
ist. Der Mittelabschnitt der FIFO Queue liegt in der Erweiterung
in dem lokalen Speicher. Auf dem lokalen Speicher wird lediglich
in Form von Datenbündeln
zugegriffen, sowohl bei Lese- als auch bei Schreibtransaktionen.
-
Ferner
ist in
US-A-5,526,508 ein
Cashleitungs-Ersatzsystem beschrieben, für ein gleichzeitiges Speichern
von Daten in Lese- und Schreibpuffern mittels einem Multiplexer,
der über
einen Zählwert
das Umgehen des Lesepuffers steuert.
-
Wie
erläutert,
findet Datenverarbeitung oft in integrierten Schaltungen statt.
Wenn ein Datenstrom eine Datenverarbeitungseinheit in einer Schaltung erreicht,
ist es wichtig, dass jedes individuelle Datenelement in einer vorbestimmten
Reihenfolge behandelt wird und dass zwischen jeder Verarbeitung
Zeit verstreichen kann. Wenn ein Datenelement ankommt, sollte die
Verarbeitung des Elementes unabhängig
davon sein, wann das nächste
Element ankommt. Zum Puffern des Datenelementes kann ein Puffer
verwendet werden und oft wird ein Puffer vom erst-in-erst-aus-Typ,
ein sogenanntes FIFO-Register verwendet. Das erste in ein FIFO-Register zu schreibende
Element ist also das erste zu lesende Element. Oft finden Schreiben
und Lesen mit einer hohen Rate statt und FIFO-Register, die verwendet
werden, müssen
die Erfordernisse dieser Rate erfüllen. Es ist wichtig, dass
das Schreiben eines Elementes in das FIFO-Register, der Transport
des Elementes von dem Eingang zu dem Ausgang sowie das Lesen aus
dem FIFO-Register schnell sind. Um die Erfordernisse der Schnelligkeit
zu erfüllen,
ist ein Puffer, wenn er in einer integrierten Schaltung verwendet wird,
als Teil dieser integrierten Schaltung hergestellt.
-
Wenn
der Puffer einen Teil der integrierten Schaltung bildet, können Schreiben
und Lesen schnell sein. Andererseits tritt dadurch ein Problem auf,
dass so manche Siliziumoberfläche
auf der integrierten Schaltung geopfert werden muss, um Platz für den Puffer
zu schaffen. Das Problem wird speziell spürbar, falls der Puffer befähigt sein
muss, viele Datenelemente zu speichern. In der japanischen Patentanmeldung
JP 3212776 ist der Puffer
in zwei Teile geteilt. Der erste Pufferteil ist ein Teil der integrierten Schaltung
und ist entsprechend auf demselben Silizium vorhanden, während der
zweite Pufferteil von der integrierten Schaltung separiert ist.
Der zweite Pufferteil ist derart verbunden, dass Daten zuerst in
den zweiten Pufferteil geschrieben werden und danach zu dem ersten
Pufferteil transportiert und aus diesem gelesen werden. Das Erfordernis
der Puffergröße wird
erfüllt
durch den zweiten Pufferteil, der nicht Teil der integrierten Schaltung
ist und entsprechend keinen Siliziumraum beansprucht. Da der erste
Teil auf derselben Schaltung aufgebaut ist, wie der Datenverarbeitungsteil,
kann auf Daten von diesem Pufferteil verzögerungsfrei zugegriffen werden.
Das verbleibende Problem ist das Schreiben in und das Lesen aus
dem zweiten Pufferteil, der wieder von der integrierten Schaltung
separiert ist. Da der zweite Pufferteil sowohl von der Einheit,
von der die Daten hineinkommen als auch von der Einheit, zu der
Daten gesendet werden, separiert ist, tritt eine Verzögerung im Vergleich
zu Fall auf, dass diese Einheiten auf derselben Schaltung anwesend
sind, wie der Puffer. Das Erfordernis der Schnelligkeit ist speziell
wichtig, wenn der Puffer nur ein paar Elemente enthält.
-
BESCHREIBUNG DER ERFINDUNG
-
Die
vorliegende Erfindung löst
das Problem des Schaffens von ausreichender Speicherkapazität in einem
Puffer vom FIFO-Typ, der in einer integrierten Schaltung verwendet
wird, ohne unnötigen Schaltungsraum
in Anspruch zu nehmen und ohne das Erfordernis der Schnelligkeit
aufzugeben.
-
Dieses
Problem wird erfindungsgemäß gemäß den Merkmalen
des Patentanspruchs 1 gelöst durch
Aufteilen der Puffervorrichtung in drei Pufferteile:
- – Einen
Eingangspuffer, der ein Teil der integrierten Schaltung ist.
- – Einen
Ausgangspuffer, der ein Teil der integrierten Schaltung ist.
- – Einen
Speicherpuffer, der von der integrierten Schaltung separiert ist.
-
Das
Ziel der Erfindung ist es, eine flexible Puffereinrichtung zu schaffen,
die abhängig
von dem Datenverkehrspegel in dem Puffer angepasst werden kann,
um die Erfordernisse der Schnelligkeit sowie des Speicherplatzes
zu erfüllen.
-
Genauer
betrachtet umfasst die Puffereinrichtung gemäß der Erfindung einen Dateneingang und
einen Datenausgang und ebenfalls einer Anordnung zum Kombinieren
des Eingangs mit dem Ausgang über
entweder einen der Pufferteile oder über eine Vielzahl von Pufferteilen,
die in Serie verbunden sind. Die unterschiedlichen FIFO-Konstellationen werden
unter unterschiedlichen Betriebsbedingungen verwendet.
-
Die
Wahl der Betriebsbedingungen hängt von
der Anzahl von Elementen ab, die in der Puffereinrichtung momentan
vorhanden sind und außerdem
davon, an welche Pufferteile diese verteilt werden. Der Dateneingang
ist mit dem Datenausgang über unterschiedliche
Pufferteile kombiniert unter Verwendung eines erfindungsgemäßen Verfahrens mit
den Merkmalen des Patentanspruchs 4, das die folgenden Schritte
umfasst:
- – Kombinieren
des Dateneingangs mit dem Datenausgang über einen der Puffer auf der
integrierten Schaltung;
- – Kombinieren
des Dateneingangs mit dem Datenausgang über mindestens zwei der Puffer,
die in Serie verbunden sind.
-
Schließlich wird
das genannte technische Problem gelöst durch ein Puffersystem mit
den Merkmalen des "Patentanspruchs
7.
-
Ein
Vorteil der Erfindung ist, dass eine große Zahl von Datenelementen
von dem Puffer verwendet werden kann, ohne für mehr als ein paar Elemente Schaltungsraum
in der integrierten Schaltung zu benutzen.
-
Ein
anderer Vorteil der Erfindung ist, dass Schreiben und Lesen zum/vom
Puffer bei einer hohen Rate stattfinden kann.
-
Ein
weiterer Vorteil ist, dass die Zeit zum Transportieren von Daten
minimiert werden kann, da der Zugriff auf den separierten Speicher
mit Hilfe von Bursts bzw. Datenblöcken stattfinden kann oder
alternativ, durch eine große
Busbreite zu dem externen Speicher.
-
Noch
ein weiterer Vorteil ist, dass eine Vielzahl von Puffereinrichtungen
in effektiver Weise denselben externen Speicherraum gemeinsam nutzen können.
-
Noch
ein weiterer Vorteil der Erfindung ist, dass Konfliktsituationen
beim Lesen und Schreiben von Daten minimiert werden könnten.
-
Die
Erfindung wird nun mit Hilfe bevorzugter Ausgestaltungen näher beschrieben
unter Bezugnahme auf die beiliegenden Zeichnungen.
-
FIGURENBESCHREIBUNG
-
1 zeigt
ein Blockdiagramm einer Puffereinrichtung gemäß der Erfindung.
-
2a–c zeigen
Blockdiagramme dreier unterschiedlicher Betriebsbedingungen für die Puffereinrichtung
gemäß der Erfindung.
-
3 zeigt
durch ein Flussdiagramm ein erfindungsgemäßes Verfahren zum Schalten
zwischen unterschiedlichen Betriebsbedingungen der Puffereinrichtung.
-
4 zeigt
ein Blockdiagramm eines Systems einer erfindungsgemäßen Puffereinrichtung.
-
BEVORZUGTE AUSGESTALTUNGEN
-
1 zeigt
eine erfindungsgemäße Puffereinrichtung 1.
Die Puffereinrichtung ist vom FIFO-Typ, d. h., das Datenelement,
das zuerst in die Puffereinrichtung geschrieben wird, ist auch das
Element, das zuerst aus der Puffereinrichtung ausgelesen wird. Die
Puffereinrichtung umfasst einen Dateneingang In, zu dem Datenelemente
geschrieben werden können.
Die Puffereinrichtung umfasst auch einen Datenausgang Out, von dem
Daten gelesen werden können,
nachdem sie den Puffer durchlaufen haben. Zusätzlich umfasst die Puffereinrichtung
einen integrierten Schaltungsteil IC1, der einen Ausgangspuffer
OUTFIFO umfasst, der sich entsprechend der Ausführungsform mit acht Datenelementen
befassen kann und auch einen Eingangspuffer INFIFO, der sich ebenfalls
mit acht Datenelementen befassen kann. Der Ausgangspuffer sowie
der Eingangspuffer sind vom FIFO-Typ und bilden einen Teil der integrierten
Schaltung, d. h., sie sind ein Teil des Siliziums, aus dem die integrierte
Schaltung gebildet wird. Das Datenelement kann geschrieben werden
zu oder gelesen werden von sowohl dem Ausgangspuffer OUTFIFO als
auch dem Eingangspuffer INFIFO. Schreiben von der integrierten Schaltung
zu einem der Puffer INFIFO, OUTFIFO kann verzögerungsfrei stattfinden, da
der Puffer ein Teil der integrierten Schaltung ist. Auf dieselbe
Weise wird das Lesen zu der integrierten Schaltung von den Puffern verzögerungsfrei
ausgeführt.
Schreiben zu dem Ausgangpuffer findet bei aktiviertem Schreibeingang
OW statt. Lesen von dem Puffer findet in gleicher Weise statt bei
aktiviertem Leseeingang OR des Ausgangspuffers. Neben den beiden
Puffern in der integrierten Schaltung IC1 umfasst die Puffereinrichtung 1 einen zusätzlichen
Puffer, einen sogenannten Speicherpuffer MEMFIFO1. Der Speicherpuffer,
der eine von der integrierten Schaltung separierte Speichereinheit
ist, umfasst entsprechend der Ausführungsform eine Speicherkapazität von 1024
Datenelementen. Schreiben und Lesen zu oder von dem Speicherpuffer
wird ausgeführt
mit Hilfe des Schreibeingangs MW des Puffers beziehungsweise des
Leseeingangs MR. Schreiben zu oder Lesen von den unterschiedlichen
Puffern OUTFIFO, INFIFO und MEMFIFO1 wird erledigt von einer Prüflogik CL1.
Die Prüflogik
CL1 berücksichtigt
auch die Anzahl der in den unterschiedlichen Puffern INFIFO, OUTFIFO
und MEMFIFO1 vorhandenen Datenelemente. Ein Puffer gemäß der Ausführungsform
umfasst vier Adressregister, nämlich
ein Startadressregister, ein Stoppadressregister, ein Schreibadressregister
und auch ein Leseadressregister. Start- und Stoppadressregister
bewahren die Ordnung bezüglich
wo im Speicher der Puffer startet und endet. Bei der Startbedingung sind
das Schreibadressregister und das Leseadressregister gleichgesetzt
zu dem Startadressregister. Jedes Schreiben zählt das Schreibadressregister aufwärts und
jedes Lesen zählt
das Leseadressregister aufwärts.
Wenn der Wert im Schreibadressregister gleich dem Wert im Stoppadressregister
wird, wird der Wert im Startadressregister in das Schreibadressregister
geschrieben, d. h., das Schreiben findet wieder von Beginn an statt.
Entsprechendes passiert, wenn das Leseadressregister die Stoppadresse erreicht.
Es gibt auch einen Zähler,
der für
das Schreiben aufwärts
zählt und
für das
Lesen abwärts. Wenn
dieser Null ist, kann nichts aus dem Puffer gelesen werden (er ist
leer) und wenn der Zähler
gleich dem Stoppregister minus dem Startregister ist, ist es nicht
möglich,
in den Puffer zu schreiben (er ist voll). Die Puffereinrichtung 1 umfasst
eine Anordnung, die aus unterschiedlichen Typen von Multiplexeinheiten besteht.
Mit Hilfe der Multiplexeinheiten können die Puffer INFIFO, OUTFIFO
und MEMFIFO1 auf unterschiedliche Weise verbunden werden in Bezug
zueinander, so dass Datenelemente durch unterschiedliche FIFO-Konstellationen
hindurchwandern können,
abhängig
von den unterschiedlichen Betriebssituationen. Diese Konstellationen
werden näher
unter Bezugnahme auf 2 erklärt. Der
Dateneingang In ist mit einer ersten Demultiplexeinheit DMUX1 verbunden,
die zwei Ausgänge
hat. Einer der Ausgänge ist
mit dem Eingang des Eingangspuffers INFIFO verbunden. Der andere
Ausgang ist mit einem von drei Eingängen einer Multiplexeinheit
MUX1 verbunden. Eine zweite Demultiplexeinheit DMUX2 umfasst auch einen
Eingang und zwei Ausgänge.
Der Eingang ist mit dem Ausgang des Eingangspuffers INFIFO verbunden.
Einer der beiden Ausgänge
ist mit einem der Eingänge
der Multiplexeinheit MUX1 verbunden und der andere der beiden Ausgänge ist
mit dem Eingang des Speicherpuffers MEMFIFO1 verbunden. Der Ausgang
des Speicherpuffers ist mit dem verbleibenden der drei Eingänge der
Multiplexeinheit MUX1 verbunden. Der Ausgang der Multiplexeinheit
ist mit dem Eingang des Ausgangspuffers OUTFIFO verbunden. Mit welchem
der Ausgänge
der Eingang einer Demultiplexeinheit DMUX1 oder DMUX2 kombiniert
werden soll, wird durch die Adresse entschieden, die dem entsprechenden
Adresseingang DM1 oder DM1 der Multiplexeinheit zur Verfügung gestellt wird.
In gleicher Weise legt die Adresse eines Adresseingangs M1 fest,
welcher der Eingänge
der Multiplexeinheit MUX1 mit dem Ausgang zu kombinieren ist. Die
Adresseingänge
der jeweiligen Multiplexeingänge
DMUX1, DMUX2 UND MUX1 sind mit der Prüflogik CL1 verbunden. Dadurch
kann die Prüflogik regeln,
zu welchem der Ausgänge
in den Multiplexeinheiten DMUX1 und DMUX2 ankommende Daten zu richten
sind und von welchem Eingang diese Daten zu der Multiplexeinheit
MUX1 kommen sollen.
-
2a–c zeigen
die Puffereinrichtung in 1, wenn diese mit Hilfe von
Multiplexeinheiten unterschiedliche Betriebszustände angenommen hat. In 2a ist
ein erster Betriebszustand gezeigt. Die Prüflogik hat in 2a die
erste Demultiplexeinheit DMUX1 derart beeinflusst, dass der Dateneingang
In über
die Demultiplexeinheit mit einem Eingang der Multiplexeinheit MUX1
kombiniert ist. Die Prüflogik
hat auch die Multiplexeinheit MUX1 beeinflusst, so dass der Eingang
mit dem Eingang I1 des Ausgangspuffers verbunden ist. Der Ausgang
O1 des Ausgangspuffers ist mit dem Patenausgang Out verbunden. Im
ersten Betriebszustand ist der Dateneingang In entsprechend mit
dem Datenausgang Out über
den Ausgangspuffer OUTFIFO verbunden.
-
In 2b wird
ein zweiter Betriebszustand gezeigt. Die Prüflogik CL1 hat hier die erste
Demultiplexeinheit DMUX1 derart beeinflusst, dass der Dateneingang
In mit dem Eingang I2 des Eingangspuffers INFIFO verbunden ist.
Der Ausgang O2 des Eingangspuffers ist mit dem Eingang der zweiten
Demultiplexeinheit DMUX2 verbunden. Die zweite Demultiplexeinheit
DMUX2 wurde von der Prüflogik
CL1 derart beeinflusst, dass eine Verbindung zwischen dem Eingang
der zweiten Demultiplexeinheit und einem der Eingänge der
Multiplexeinheit MUX1 eingerichtet worden ist. Die Prüflogik hat
auch die Multiplexeinheit MUX1 derart beeinflusst, dass dieser Eingang
verbunden ist mit dem Eingang I1 des Ausgangspuffers OUTFIFO. Entsprechend
ist in dieser zweiten Betriebsbedingung der Dateneingang In mit
dem Datenausgang Out über
den Eingangspuffer INFIFO und über
den Ausgangspuffer OUTFIFO verbunden.
-
In 2c ist
eine dritte Betriebsbedingung gezeigt. Hier hat die Prüflogik CL1
die erste Demultiplexeinheit DMUX1 derart beeinflusst, dass der
Dateneingang In mit dem Eingang I2 des Eingangspuffers INFIFO verbunden
ist. Der Ausgang O2 des Eingangspuffers ist mit dem Eingang der
zweiten Demultiplexeinheit DMUX2 verbunden. Die zweite Demultiplexeinheit
wurde von der Prüflogik
beeinflusst, sodass eine Verbindung zwischen dem Eingang der Demultiplexeinheit
und dem Eingang des Speicherpuffers MEMFIFO1 eingerichtet worden
ist. Der Ausgang des Speicherpuffers ist mit einem der Eingänge der
Multiplexeinheit MUX1 verbunden und die Multiplexeinheit wurde von
der Prüflogik
CL1 derart beeinflusst, dass dieser Eingang mit dem Eingang I1 des Ausgangspuffers
OUTFIFO verbunden ist. In dieser dritten Betriebsbedingung ist der
Dateneingang In mit dem Datenausgang Out über den Eingangspuffer INFIFO,
den Speicherpuffer MEMFIFO1 und den Ausgangspuffer OUTFIFO verbunden.
-
Die
erste Betriebsbedingung, bei der der Dateneingang In mit dem Datenausgang
Out über
das Ausgangspuffer OUTFIFO verbunden ist, wird verwendet, wenn die
Puffereinrichtung leer ist oder nur ein paar Datenelemente enthält. Ein
Datenelement am Dateneingang In wird zu dem Eingang I1 des Ausgangspuffers
transportiert. Eine negative Impulsflanke an dem Schreibeingang
OW von der Prüflogik schreibt
das Datenelement in den Ausgangspuffer OUTFIFO und stellt das Element
als letztes in eine Schlange. Eine negative Impulsflanke an dem
Leseeingang OR liest so oft wie gewünscht das nächste Datenelement in der Reihe,
d. h. das erste in der Schlange im Ausgangspuffer. Da die Puffereinrichtung
in dieser Betriebsbedingung durch nur einen Pufferteil aufgebaut
ist, der ein Teil der integrierten Schaltung IC ist, kann der Transport
zwischen dem Dateneingang In und dem Datenausgang Out sehr schnell
sein. Die erste Betriebsbedingung kann so lange verwendet werden,
wie der Ausgangspuffer nicht voll ist, d. h., weniger als acht Elemente
entsprechend der Ausführungsform
enthält.
-
In
der zweiten Betriebsbedingung ist der Dateneingang In zu dem Datenausgang
Out über
den Eingangspuffer INFIFO und den Ausgangspuffer OUTFIFO verbunden.
Ein Datenelement am Dateneingang In wird zu dem Eingangspuffer transportiert, wo das
Element in den Eingangspuffer geschrieben wird und als letztes in
einer Schlange angeordnet wird. Wenn der Ausgangspuffer OUTFIFO
nicht voll ist. d. h. weniger als acht Datenelemente enthält, wird das
erste Element in der Schlange von dem Eingangspuffer INFIFO gelesen
und das Element wird zu dem Ausgangspuffer OUTFIFO transportiert.
Daraufhin wird ein Schreiben des Ausgangspuffers OUTFIFO ausgeführt, wobei
das Element nun als letztes in der Schlange des Ausgangspuffers
angeordnet wird. Die Puffereinrichtung ist unter dieser Betriebsbedingung
aus zwei Pufferteilen aufgebaut, die beide zu der integrierten Schaltung
IC gehören.
Daher findet der Transport zwischen dem Dateneingang In und dem
Datenausgang Out unverzögert
statt. Für die
Elementetransaktion durch die Puffereinrichtung wird noch eine zufriedenstellende
Geschwindigkeit erreicht. Zusätzlich
hat die Einrichtung verglichen mit der ersten Betriebsbedingung
nun mehr Platz für
weitere Elemente.
-
In
der dritten Betriebsbedingung ist der Dateneingang In mit dem Datenausgang
Out über
den Eingangspuffer INFIFO, den Speicherpuffer MEMFIFO1 und den Ausgangspuffer
OUTFIFO verbunden. Ein Datenelement am Dateneingang In wird zu dem
Eingangspuffer INFIFO transportiert. Wenn der Eingangspuffer nun
vier Datenelemente enthält, findet
ein Wechsel zu der dritten Betriebsbedingung statt. Die vier Datenelemente
in dem Eingangspuffer INFIFO werden zu dem Speicherpuffer MEMFIFO1
in Form eines Datenblocks (Burst) gesendet, d. h. alle vier Elemente
werden sequentiell in einen Speicherbereich im Speicherpuffer MEMFIFO1
eingeschrieben. Ein sequentielles Schreiben aller vier Datenelemente
bedeutet, dass alle vier Elemente aufeinanderfolgend geschrieben
werden, was es ermöglicht, den
Speicher effektiv im Datenblockzugriffsmodus zu benutzen. Datenblöcke gruppieren
auch Lesevorgänge
und Schreibvorgänge
derart, dass es weniger Änderungen
zwischen ihnen gibt, was die Verwendung des Speichers in der Serienanordnung
(Pipeline) effektiver macht. Das Schreiben wird unterbrechungsfrei
ausgeführt,
d. h. ohne durch das Lesen von einem Puffer bedingte Unterbrechung.
Die vier Datenelemente werden als letztes in die Schlange in dem
Speicherpuffer MEMFIFO eingegeben. Wenn der Ausgangspuffer OUTFIFO
Platz für
vier weitere Datenelemente hat, findet ein Lesen der vier Datenelemente,
die als erstes in der Schlange im Speicherpuffer angeordnet sind,
in Datenblockform statt. Obwohl nun Speicherkapazität ebenfalls
außerhalb
der integrierten Schaltung verwendet wird, kann eine befriedigende
Schnelligkeit erhalten werden mit Hilfe des simultanen Transportes
einer Vielzahl von Elementen in Form eines Datenblocks.
-
In 3 wird
ein Verfahren gemäß der Erfindung
gezeigt. Die Fig. zeigt mit unterschiedlichen Blöcken die drei unterschiedlichen
Betriebsbedingungen und wann zwischen diesen ein Wechsel stattfindet.
Die Richtung von einem Block zum nächsten ist in der Figur durch
Pfeile angezeigt. Die Übertragung
von einem eine Betriebsbedingung symbolisierenden Block zu dem nächsten Block,
der eine Betriebsbedingung symbolisiert, wird entweder durch ein
Datenelement initiiert, das in die Speichereinrichtung geschrieben
wird oder ein Datenelement, das aus der Puffereinrichtung gelesen
wird. Wenn man sich beispielsweise in der dritten Betriebsbedingung befindet,
die in 3 durch einen Block 105 gezeigt ist,
findet ein Wechsel zu dem nächsten
Block 106 statt und daraufhin weiter zu der nächsten Betriebsbedingung,
entweder wenn ein Datenelement in die Puffereinrichtung geschrieben
worden ist oder wenn ein Datenelement von der Puffereinrichtung
gelesen worden ist. Die erste Betriebsbedingung ist in der Figur
durch einen Block 101 gezeigt. Die erste Betriebsbedingung
bedeutet, dass der Dateneingang In mit dem Datenausgang Out über den
Ausgangspuffer OUTFIFO verbunden ist. In der Ausführungsform ist
vorausgesetzt, dass der Ausgangspuffer sieben Elemente umfasst,
während
der Eingangspuffer INFIFO sowie der Speicherpuffer MEMFIFO1 null
Elemente umfassen. Beim Schreiben oder Lesen eines Elementes findet
in der Figur ein Übergang
zu Block 102 statt. In dem Block 102 wird geprüft, ob der
Ausgangspuffer nun nach dem Schreiben oder Lesen acht Elemente umfasst.
Wenn das Prüfergebnis
die Antwort "Nein" liefert, findet
ein Übergang
zu dem Block 101 statt und die Puffereinrichtung bleibt
in der ersten Betriebsbedingung. Wenn stattdessen das Prüfergebnis
als Antwort "Ja" hat, was, wie wir
wissen, entsprechend der Ausführungsform
nach einem Schreiben der Fall ist, d. h., wenn der Ausgangspuffer
nach dem Schreiben acht Elemente enthält, findet in der Figur ein Übergang
zu einem Block 103 statt und ein Wechsel zu der zweiten
Betriebsbedingung findet statt! In der zweiten Betriebsbedingung
ist der Dateneingang In mit dem Datenausgang Out über den
Eingangspuffer INFIFO und den Ausgangspuffer OUTFIFO verbunden.
Entsprechend der Ausführungsform
umfasst der Ausgangspuffer jetzt, nach der Transaktion, acht Elemente,
während
der Eingangspuffer und der Speicherpuffer kein Element enthalten.
Die nächste
Elementetransaktion, die ein Lesevorgang aus der Puffereinrichtung
ist, hat zum Ergebnis, dass der Ausgangspuffer nun sieben Elemente
umfasst. Als erstes nach der Transaktion findet ein Übergang
in der Figur zu Block 104 statt, wo geprüft wird,
ob der Eingangspuffer vier Elemente umfasst. Da dies nicht der Fall
ist, findet ein Übergang
in der Figur zu Block 107 statt. Im Block 107 wird
geprüft,
ob der Eingangspuffer null Elemente enthält. Da der Eingangspuffer gemäß der Ausführungsform
null Elemente enthält,
findet ein Übergang in
der Figur zu Block 101 statt und die Puffereinrichtung
wird noch einmal auf die erste Betriebsbedingung eingestellt. Nun
wird stattdessen vorausgesetzt, dass die Puffereinrichtung sich
in der zweiten Betriebsbedingung befindet und dass der Ausgangspuffer
OUTFIFO acht Elemente umfasst, der Eingangspuffer INFIFO 1–3 Elemente.
Wenn die nächste
Elementetransaktion ein Lesevorgang ist, wird die Einrichtung in
der Betriebsbedingung 2 verbleiben. Das Leseelement ist
das, welches als erstes im Ausgangspuffer steht und das erste Element
im Eingangspuffer wird zur letzten Position im Ausgangspuffer bewegt,
d. h., nach dem Lesevorgang sind acht Elemente im Ausgangspuffer
und 0–2
Elemente im Eingangspuffer. Wenn ein Element in der Einrichtung
geschrieben wird, wenn der Ausgangspuffer acht Elemente enthält und der
Eingangspuffer weniger als drei Elemente enthält, führt dies dazu, dass das neue
Element als letztes in den Eingangspuffer eingegeben wird und die
Einrichtung in der Betriebsbedingung 2 verbleibt. Wenn
ein Element in der Einrichtung geschrieben wird, wenn der Ausgangspuffer acht
Elemente und der Eingangspuffer drei Elemente enthält, findet
in der Figur ein Übergang
zu Block 104 statt und, da der Eingangspuffer nun vier
Elemente umfasst, findet ein Übergang
zu Block 105 statt, d. h., die Einrichtung wird in die
dritte Betriebsbedingung versetzt. In der dritten Betriebsbedingung
ist der Dateneingang In mit dem Datenausgang Out über den Eingangspuffer
INFIFO, den Speicherpuffer MEMFIFO1 und den Ausgangspuffer OUTFIFO
verbunden. Die vier ersten Elemente in der Schlange in dem Eingangspuffer
INFIFO werden in einem Datenblock zu dem Speicherpuffer MEMFIFO1 übertragen, der
nun entsprechend vier Elemente umfasst. Wenn die nächste Transaktion
ein Schreiben in die Puffereinrichtung ist, findet ein Schreiben
im Eingangspuffer INFIFO statt. In der Figur findet ein Übergang
zu Block 106 statt, aber da der Speicherpuffer nicht leer ist,
verbleibt die Einrichtung in der dritten Betriebsbedingung. Nach
drei zusätzlichen
Schreibvorgängen in
die Speichereinrichtung werden die ersten vier Elemente in der Schlange
im Eingangspuffer INFIFO in einem Datenblock übertragen zum Speicherpuffer MEMFIFO1.
Entsprechend umfasst der Speicher MEMFIFO1 nun acht Elemente, der
Eingangspuffer INFIFO umfasst null Elemente und der Ausgangspuffer
OUTFIFO umfasst immer noch vier Elemente. In der Figur findet ein Übergang
von Block 105 zu Block 106 statt. Im Block 106 wird
geprüft,
ob der Speicherpuffer null Elemente enthält. Da die Antwort auf die Frage "Nein" ist, findet ein Übergang
in der Figur zurück
zu Block 105 statt und die Einrichtung verbleibt in der
dritten Betriebsbedingung. Wenn vier oder mehr freie Plätze im Ausgangspuffer
OUTFIFO vorliegen während
die Puffereinrichtung sich in der dritten Betriebsbedingung befindet,
werden von dem Speicherpuffer MEMFIFO1 Datenelemente gelesen und
in den Ausgangspuffer OUTFIFO geschrieben. Die Übertragung der Datenelemente
von dem Speicherpuffer zu dem Ausgangspuffer findet in Form eines
Datenblocks statt. Vier Elemente werden in dem Datenblock gemäß der Ausführungsform übertragen.
-
In 4 ist
ein erfindungsgemäßes Puffersystem
in einer zweiten Ausführungsform
gezeigt. In der Figur ist derselbe integrierte Schaltungsteil IC1 gezeigt,
der zuvor in 1 gezeigt worden ist. Die Teile,
die in der integrierten Schaltung IC1 enthalten sind, sind in 4 nicht
mit Bezugszeichen versehen. Daher werden die Bezugszeichen nur in 1 gefunden
und die unterschiedlichen Teile sind in 4 nur durch
die Symbole der entsprechenden Teile gekennzeichnet. Der integrierte
Schaltungsteil IC1, der sogenannte erste Schaltungsteil, umfasst den
Dateneingang In, den Datenausgang Out, den Ausgangspuffer OUTFIFO,
den Eingangspuffer INFIFO und auch eine Multiplexeinheit MUX1 und
zwei Demultiplexeinheiten DMUX1, DMUX2. Der erste Schaltungsteil
IC1 bildet einen Teil einer größeren integrierten
Schaltung IC. Die größere integrierte Schaltung
IC umfasst entsprechend der Ausführungsform
vier zusätzliche
Schaltungsteile. Die vier Schaltungsteile werden als zweiter Schaltungsteil IC2,
als dritter Schaltungsteil IC3, als vierter Schaltungsteil IC4 und
als fünfter
Schaltungsteil IC5 bezeichnet. Entsprechend sind die fünf Schaltungsteile in
derselben integrierten Schaltung IC, d. h. auf derselben Siliziumoberfläche. Die
fünf Schaltungsteile sind
entsprechend der Ausführungsform
identisch, aber nur der erste Schaltungsteil ist in 4 detailliert
gezeigt, während
die anderen Teile nur symbolisch dargestellt sind. Die zweite Demultiplexeinheit DMUX2
war in dem ersten Ausführungsbeispiel
mit einem Eingang des Speicherpuffers MEMFIFO1 verbunden. In diesem
zweiten Ausführungsbeispiel teilen
sich die fünf
Schaltungsteile IC1, IC2, IC3, IC4 und IC5 denselben Speicherpuffer
MEMFIFO. Die zweite Demultiplexeinheit DMUX2 des ersten Schaltungsteils
IC1 ist in dem zweiten Ausführungsbeispiel mit
einem ersten Eingang einer Multiplexeinheit MUX der integrierten
Schaltung IC verbunden. Der Ausgang der Multiplexeinheit MUX ist
mit einem Eingang des Speicherpuffers MEMFIFO verbunden. Der Ausgang
des Speicherpuffers MEMFIFO ist mit einem Eingang der Demultiplexeinheit
DMUX verbunden. Ein erster Ausgang der Demultiplexeinheit DMUX ist mit
einem der Eingänge
der Multiplexeinheit MUX1 des ersten Schaltungsteils IC1 verbunden.
Ein zweiter Eingang der Multiplexeinheit MUX ist mit einer zweiten
Multiplexeinheit des zweiten Schaltungsteils IC2 verbunden. In 4 ist
die zweite Multiplexeinheit des zweiten Schaltungsteils IC2 nicht
gezeigt. Nur eine Verbindung von dem zweiten Schaltungsteil zu der
Multiplexeinheit MUX ist gezeigt. Die verbleibenden Schaltungsteile
IC3, IC4 und IC5 sind ebenfalls mit der Multiplexeinheit MUX in
derselben Weise verbunden, aber nur die Verbindung selbst ist in 4 dargestellt.
Ein zweiter Ausgang der Demultiplexeinheit DMUX ist mit einer Multiplexeinheit
des zweiten Schaltungsteils IC2 verbunden. Die verbleibenden Ausgänge der
Demultiplexeinheit DMUX sind in derselben Weise mit den anderen
Schaltungsteilen IC3, IC4 und IC5 in der integrierten Schaltung IC
verbunden. Der Speicherpuffer ist aufgeteilt in die gleiche Anzahl
von Teilen MEM1, MEM2, MEM3, MEM4 und MEM5, wie es Schaltungsteile
IC1, IC2, IC3, IC4 und IC5 in der integrierten Schaltung IC gibt und
jeder Schaltungsteil verwendet seinen Teil des Speicherpuffers MEMFIFO.
Eine Puffereinrichtung wird aus einem Schaltungsteil IC1 gemeinsam
mit dem zugeordneten Speicherpufferteil MEM1 gebildet. Auch ist
in 4 eine Prüflogik
CL gezeigt, die im Großen
und Ganzen dieselben Merkmale und Funktionen wie die Prüflogik CL1
hat, die vorstehend in Verbindung mit dem ersten Ausführungsbeispiel beschrieben
worden ist. Die Prüflogik
CL handhabt das Schreiben eines Datenelementes zu einer Puffereinrichtung,
den Transport des Datenelementes durch die Puffereinrichtung und
auch das Lesen des Datenelementes von der Puffereinrichtung. Der
Unterschied zu dem ersten Ausführungsbeispiel
ist, dass in diesem zweiten Ausführungsbeispiel
die Prüflogik
CL alle Puffereinrichtungen handhabt, d. h., entsprechend dem Ausführungsbeispiel
werden alle fünf
Puffereinrichtungen IC1 + MEM1, IC2 + MEM2, IC3 + MEM3, IC4 + MEM4
und IC5 + MEM5 gehandhabt. Einige der Verbindungspunkte zwischen
der Prüflogik
CL1 und den Teilen, die von der Prüflogik CL1 geprüft werden,
sind in 4 mit Kontaktsymbolen gekennzeichnet.
-
Gemäß dem Ausführungsbeispiel
ist das Schreiben in und auch das Lesen aus einer der fünf Puffereinrichtungen
unabhängig
von den verbleibenden vier Puffereinrichtungen. Das Schreiben in
eine Puffereinrichtung findet sporadisch statt, wenn Daten angekommen
sind und nicht beeinflusst von den anderen Puffern im Puffersystem.
Das gleiche gilt für das
Lesen aus den Puffereinrichtungen. Wie bereits beschrieben, wechselt
eine Puffereinrichtung von einer zweiten Betriebsbedingung zu einer
dritten Betriebsbedingung, wenn der Betrag der Datenelemente im
Eingangspuffer einen vorbestimmten Wert überschritten hat. Beim Wechseln
in die dritte Betriebsbedingung entsprechend dem ersten Ausführungsbeispiel
war der Speicherpuffer MEMFIFO1 zwischen dem Eingangspuffer INFIFO
und dem Ausgangspuffer OUTFIFO verbunden. In diesem Ausführungsbeispiel
verbindet die Prüflogik
nur den Teil des Speicherpuffers MEMFIFO, der zu der Schaltung gehört. Die
Verbindung findet über
die Multiplexeinheit MUX und die Demultiplexeinheit DMUX statt.
Ein Verbinden des ersten Schaltungsteils IC1 mit dem ersten Teil
MEM1 in dem Speicherpuffer MEMFIFO wird beim Wechseln in die dritte
Betriebsbedingung ausgeführt,
d. h., wenn der Eingangspuffer nach einem Lesevorgang vier Elemente
enthält.
Ein Transport zwischen dem Eingangspuffer INFIFO und dem Speicherpuffer
MEMFIFO wird in Datenblockform ausgeführt. Wenn der Transport abgeschlossen
ist, verbleibt die Multiplexeinheit MUX in ihrer Betriebsbedingung,
bis ein anderes Datenelement in einen anderen Eingangspuffer in
einer anderen der Puffereinrichtungen geschrieben werden muss, deren
Eingangspuffer bereits eine vorbestimmte Anzahl von Datenelementen
umfasst. Dieselbe Prozedur findet beim Lesen von dem Speicherpuffer
MEMFIFO über die
Demultiplexeinheit DMUX zu einem der Schaltungsteile statt. Demnach
findet der Transport von Datenelementen zwischen einem Teil MEM1
des Speicherpuffers und einem Schaltungsteil IC1 in Datenblockform
statt. Da vier Datenelemente nacheinander von dem Eingangspuffer
zu dem Speicherpuffer und von dem Speicherpuffer zu dem Ausgangspuffer
transportiert werden, kann der Speicherplatz in dem Puffer schnell
verfügbar
gemacht werden, verglichen mit dem Fall, wenn nur ein Element auf
einmal transportiert wird. Dies bedeutet, dass das Risiko von Konfliktsituationen
beim Schreiben und Lesen von Datenelementen zu oder von dem Speicherpuffer
minimiert ist. Das Risiko von Konfliktsituationen kann auch minimiert
werden durch Erhöhen
der Größe des Eingangspuffers
und/oder des Ausgangspuffers. Die Erfindung ist nicht auf die vorstehend
beschriebenen Ausgestaltungen beschränkt. Beispielsweise kann die
Größe der unterschiedlichen
Puffer variieren. Auch die Größe des Eingangspuffers
und des Ausgangspuffers braucht nicht gleich zu sein. Die unterschiedliche
Zahl von Elementen, die in den unterschiedlichen Pufferteilen benötigt werden,
um einen Wechsel von einer Betriebsbedingung in eine andere stattfinden
zu lassen, kann auch variieren. Beispielsweise braucht ein Ausgangspuffer
nicht voll zu sein, um einen Wechsel in die nächste Betriebsbedingung stattfinden
zu lassen. Die Implementierung eines Puffers braucht nicht bis ins
Detail aufgebaut zu sein, wie es vorstehend beschrieben worden ist, sondern
signifikant ist lediglich, dass der Eingangspuffer und der Ausgangspuffer
auf der Schaltung angeordnet sind und schnell sind, während der
Speicherpuffer extern ist und eine größere Speicherkapazität hat. Das
Schreiben in einen Speicherpuffer kann stattfinden, ohne dass es
in Datenblockform geschehen muss, wie es in den beiden Ausführungsbeispielen
der Fall war. Eine andere Möglichkeit
ist, dass das Schreiben des Speicherpuffers in Datenblockform stattfinden
kann, während
nur einzelne Elemente aus den Speicherpuffer pro Lesezyklus gelesen
werden können
oder vice versa. Der Betrag der Elemente, die in einem Datenblock übertragen
werden, kann variieren und der Betrag der Elemente, die in den Speicherpuffer
in einem Datenblock eingeschrieben werden, kann auch von dem Betrag
der Elemente abweichen, der aus dem Speicherpuffer in einem anderen Datenblock
ausgelesen wird. Auch ist es vorstellbar, dass der in dem zweiten
Ausführungsbeispiel
gezeigte Speicherpuffer gleichzeitig von unterschiedlichen Puffereinrichtungen
sowie anderen Einheiten des Systems benutzt wird.
-
Entsprechend
ist die Erfindung nicht beschränkt
auf die oben beschriebenen und in den Zeichnungen gezeigten Ausgestaltungen,
sondern kann innerhalb des Schutzbereiches der beiliegenden Patentansprüche modifiziert
werden.