DE2853239C2 - - Google Patents
Info
- Publication number
- DE2853239C2 DE2853239C2 DE2853239A DE2853239A DE2853239C2 DE 2853239 C2 DE2853239 C2 DE 2853239C2 DE 2853239 A DE2853239 A DE 2853239A DE 2853239 A DE2853239 A DE 2853239A DE 2853239 C2 DE2853239 C2 DE 2853239C2
- Authority
- DE
- Germany
- Prior art keywords
- buffer memory
- section
- register
- data
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Image Input (AREA)
- Logic Circuits (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
- Communication Control (AREA)
Description
Die Erfindung betrifft einen Datenpufferspeicher vom Typ
"first-in, first-out" nach dem Oberbegriff des Hauptanspruchs.
Datenpufferspeicher vom Typ "first-in, first-out", im folgenden als Pufferspeicher bezeichnet, dienen
u. a. als Pufferspeicheranordnung in digitalen Datenverarbeitungs-
und Kommunikationssystemen an Stellen, an
denen Unterschiede zwischen dem Datenangebot und Datenentnahme
auftreten.
Ein Pufferspeicher der eingangs genannten Art, der außerdem
nicht den Nachteil langer Durchgangszeit hat, ist aus
der US-PS 36 46 526 bekannt. Dabei gibt ein Markierungsbit
an, an welcher Stelle aus einer Eingangssammelleitung
Daten dem Pufferspeicher, der damit einen variablen
Eingang hat, zugeführt werden müssen. Diese Stelle ist ein
leerer Abschnitt, der am nächsten zum Ausgang des Pufferspeichers
liegt und an eine Reihe gefüllter Abschnitte
zwischen dieser Eingangsstelle und dem Ausgang des Pufferspeichers
anschließt. Dieser bekannte Pufferspeicher ist
jedoch auf besondere Weise aufgebaut, wobei nur ein
Markierungsbit als Steuerbit für den Datenteil des Pufferspeichers
einen Datenweg von 1 Bit gewährt. Dabei tritt
der Fall ein, daß bestimmte Teile dieser Pufferspeicheranordnung
sowohl für die Übertragung des Markierungsbits
als auch für die Datenbits dienen. Die Möglichkeit von
Fehlern in diesem Pufferspeicher müssen daher berücksichtigt
werden, denn wenn ein Bit fälschlich als
Markierungsbit verwendet wird, wird die Steuerung des
Datenflusses gestört. Die Möglichkeit einer Instabilität
des Pufferspeichers ist dabei durchaus vorhanden, weil
eine bleibende Unsicherheit hinsichtlich der entsprechenden
Eingangsstelle von der Eingangssammelleitung zum
Pufferspeicher entstehen kann.
Aus der US-PS 39 53 838 ist ein Datenpufferregister vom
Typ "first-in, first-out" bekannt, bei dem jedem Register
eine logische Schaltung zugeordnet ist, die ein Speicherelement
enthält. Bei diesem bekannten Datenpufferspeicher
wird jedoch jedes zugeführte Datenwort zunächst in das
erste Register einer fest in einer Reihe geschalteten
Kette von Registern zugeführt und dann bis an das zuletzt
gefüllte Register herangeschoben, so daß sich eine große
Durchgangszeit der Daten vom Eingang zum Ausgang ergibt.
Aufgabe der Erfindung ist es, einen Pufferspeicher der
eingangs genannten Art anzugeben, bei dem die einzelnen
Pufferspeicherabschnitte einfach und für alle Abschnitte
untereinander gleich aufgebaut sind und der eine stabile
Funktionsweise auch bei eventuellen Störungen aufweist.
Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden
Teil des Hauptanspruchs angegebenen Merkmale
gelöst.
Bei dem erfindungsgemäßen Pufferspeicher ist der durch die
logische Schaltung gebildete Steuerteil und der Datenteil
jedes Abschnitts streng getrennt. Dabei ist die Breite des
Datenweges des Datenteils frei wählbar, d. h. es gibt keine
Beschränkung der Datenwegbreite. Weil das Register, in das
Daten aus der Eingangssammelleitung übernommen werden,
durch das vom Eingang aus gerechnete erste leere Register
eindeutig bestimmt ist, das von einem vollen Register
gefolgt wird (also das Register, das dem ersten vollen
Register vorangeht), ist die Eingangsstelle für die Daten
von der Eingangssammelleitung zu einem Register des
Pufferspeichers immer eindeutig. Eine Instabilität ist
dadurch ausgeschlossen. Außerdem ist damit eine möglichst
kurze Durchgangszeit durch den Pufferspeicher
gewährleistet.
Weitere Ausgestaltungen der Erfindung sind in den
Unteransprüchen gekennzeichnet. Dabei ist es durch die
Modularität des Aufbaus möglich, mindestens pro
Datenpufferspeicherabschnitt das betreffende Register und
die zugeordnete logische Schaltung als eine in einen
Halbleiter integrierte Schaltung auszuführen. Weiter ist
es möglich, jeweils eine Gruppe von Registern und eine
Gruppe logischer Schaltungen in einem Halbleiter zu
integrieren. Die erwähnte Modularität beinhaltet weiter,
daß mehrere Pufferspeicher problemlos hintereinander
geschaltet werden können, um die gewünschten Pufferlängen
zu erhalten.
Ausführungsbeispiele der Erfindung werden nachstehend
anhand der Zeichnung näher erläutert. Es zeigt
Fig. 1 eine Prinzipschaltung eines "first-in, first-out"
Pufferspeichers mit variablem Eingang und festem Ausgang,
Fig. 2 eine Blockschaltung eines Ausführungsbeispiels eines
Pufferspeichers,
Fig. 3 und 4 Beispiele von Untergliederungsmöglichkeiten
des Pufferspeichers im Hinblick auf die Ausführung
als in Halbleitern integrierte Schaltungen,
Fig. 5 ein Beispiel der logischen Schaltung eines
Abschnitts (i) des Pufferspeichers,
Fig. 6 ein Beispiel der logischen Schaltung eines
Abschnitts (0) des Pufferspeichers,
Fig. 7 ein Beispiel der logischen Schaltung eines
Abschnitts (n-1) des Pufferspeichers.
In Fig. 1 ist ein vereinfachtes Schaltbild eines
"first-in, first-out" Pufferspeichers mit variablem Eingang
und festem Ausgang angegeben. Der Pufferspeicher ist mit
FIFO bezeichnet. INB bildet die Eingangssammelleitung,
über die dem Pufferspeicher und insbesondere einem Eingang
eines ausgewählten Registers eines Abschnitts T (0) . . . T(n-2),
T(n-1) Daten zugeführt werden. Dies bildet den variablen
Eingang, was auch noch in Fig. 1 mit einem strichpunktierten
Pfeil angegeben ist. Der feste Ausgang OUT
liegt am Ausgang des Registers des letzten Abschnitts T(n-1)
des Pufferspeichers.
In Fig. 2 ist die Blockschaltung eines Ausführungsbeispiels eines
Pufferspeichers dargestellt. Er besteht
aus einem Registerteil mit Registern REG (0) . . . REG(i-1),
REG(i) . . . REG(n-1). Diese Register dienen zur Speicherung
der zugeführten Daten. Jedes Register REG(i) kann aus einer
oder mehreren Stufen 1, 2, . . . k bestehen. Hiermit ist die
Möglichkeit gegeben, daß die Datenwegbreite wahlfrei ist:
1 Bit Datenweg erfordert pro REG(i) eine Stufe (1) usw.
Die Eingangssammelleitung INB ist in Fig. 2 über den Registern
dargestellt. Jedes Register REG(i) ist mit seinen
Eingängen (jeder Stufe 1, 2, . . . k) mit der Sammelleitung INB
über UND-Gatter IO 1, IO 2, . . . IOk
für die entsprechenden Registerstufen 1, 2, . . . k des Registers
REG (0), Ii 1, Ii 2 . . . Iik für die entsprechenden Registerstufen
1, 2, . . . k des Registers REG(i) verbunden. Welches
der Register REG(i) mit der Sammelleitung INB verbunden wird,
wird durch die logischen Schaltungen LM (0) . . . LM(i-1), LM(i)
. . . LM(n-1) getroffen, die pro Pufferspeicherabschnitt vorhanden
sind. Ein Signal app (0) . . . app(i) . . . oder app(n-1)
wird in den logischen Schaltungen erzeugt und den UND-Gattern
IO 1, . . . IOk . . . oder Ii 1, . . . Iik, . . . oder I(n-1,1), . . .
I(n-1, k) zugeführt. Damit erfolgt die Auswahl des einen
Registers REG(i), dem von der Sammelleitung INB die Daten
des Pufferspeichers zugeführt werden. Das Register REG(n-1)
des letzten Pufferspeicherabschnitts bildet den Ausgang OUT
des Pufferspeichers. Der Inhalt von REG(n-1) steht ständig
am Ausgang OUT zur Verfügung. Das im Pufferspeicher
erzeugte Signal SFI gibt an, ob am Ausgang OUT gültige
Daten vorhanden sind. Wenn diese Daten von der Außenwelt
(Benutzer) aufgenommen worden sind, muß ein von außerhalb
des Pufferspeichers ankommendes Rückmeldesignal "ers" das
Register REG(n-1) für das Aufnehmen der folgenden Daten
freimachen.
Zum Schieben der Daten im Pufferspeicher von einem
Abschnitt zum anderen gibt es zwischen den Stufen der aufeinanderfolgenden
Register Verbindungen, die über UND-Gatter
(UO 1, UO 2, . . . UOk) bzw. Ui 1, Ui 2 . . . Uik usw. zwischen
einem Ausgang einer vorangehenden Registerstufe und einem
Eingang einer folgenden Registerstufe liegen. Gatter UO 1 . . .
UOk sind gestrichelt dargestellt, weil diese am ersten
Abschnitt liegenden Gatter nicht benutzt werden. Im gezeigten
Beispiel der Fig. 2 sind die Eingänge pro Stufe jedes
Registers sowohl für den Eingang der Sammelleitung INB als
auch für den Eingang für Daten gemeinsam dargestellt, die aus
einer vorangehenden Registerstufe weitergeschoben werden.
Dieses Weiterschieben erfolgt auf die Steuerung der Schiebesignale
sh(i), die in den logischen Schaltungen LM(i) erzeugt
werden. Das Ganze wird schließlich mit einem
beim Auftreten von app(i) oder sh(i) freigegebenen
Taktsignal (nicht dargestellt) gesteuert.
Weiter besteht der Pufferspeicher aus einem Steuerteil
mit den bereits erwähnten logischen Schaltungen LM(i) pro
Pufferspeicherabschnitt. Die Signale, die in diesen logischen
Schaltungen erzeugt werden, sind außer den bereits
erwähnten app(i) und sh(i) die folgenden Signale: die
Zustandssignale s(i), die einen Hinweis für den Zustand
voll "1" oder leer "0" eines Registers REG(i) bilden, bzw.
eine kombinatorische Form
d. h. auf der Basis der
Booleschen UND-Funktion aller Register REG (0) bis REG(i) hat
das Zustandssignal s(j) einen Wert gleich Null (d. h. = 1).
Es ist die Definition der Bedingung, daß alle dem REG(i+1)
vorangehenden Register REG (0) . . . REG(i) leer sind. Die
Bezeichnung "leer" bedeutet, daß keine gültigen Daten
vorhanden sind. Weitere Einzelheiten über die logischen
Schaltungen und die dazugehörigen Signale werden an Hand
der Fig. 5, 6 und 7 erläutert. Dies gilt auch hinsichtlich
des in diesem Beispiel angegebenen Signals "cack", das ein
Betätigungssignal ist, das der Pufferspeicher nach außen
liefert, um anzugeben, daß zugeführte Informationen in
ein Register REG(i) übernommen worden sind, des Signals "creq",
das eine Anfrage von außerhalb des Pufferspeichers zum
Aufnehmen von Informationen in den Pufferspeicher ist, und
des Signals "SFI", das angibt, daß mindestens in einem der
Register des Pufferspeichers und insbesondere für diesen
Pufferspeichertyp im letzten Register REG(n-1) Informationen
vorhanden sind.
In Fig. 3 und 4 sind einige Möglichkeiten für die Untergliederung
des Pufferspeichers in Hinblick auf die Ausführung
als in Halbleitern integrierte Schaltungen dargestellt.
Die Modularität des Pufferspeichers nach Fig. 2
ermöglicht viele Lösungen. In Fig. 3 ist mit VI 0 . . . VIi
bezeichnet, daß mindestens pro Pufferspeicherabschnitt
Integration möglich ist: ein Register REG (0) ist zusammen
mit der logischen Schaltung LM (0) in einer integrierten
Schaltung zusammengefaßt. Die Verbindung zwischen allen
diesen Abschnitten VIi wird im Registerteil durch die
Eingangssammelleitung INB und die in der Zeichnung in der
Sammelleitung INB gedachten Verbindungen zwischen den Stufen
der aufeinanderfolgenden Pufferspeicherabschnitten im
Zusammenhang mit dem Schieben von Informationen von einem
vorangehenden nach einem folgenden Abschnitt gebildet.
Die Verbindungen zwischen den logischen Schaltungen und den
weiteren Ein- und Ausgangssignalen sind in Fig. 3 in einem
Signalleitungsbündel CB angegeben.
Auf entsprechende Weise ist in Fig. 4 angegeben, daß
Integration in integrierten Schaltungen pro Gruppe HIR oder
Gruppen HIR 1 . . . HIRp des Registers REG (0) . . . REG(n-1) möglich
ist bzw. pro Gruppe HILM oder Gruppen HILM 1 . . . HILMm der
logischen Schaltungen LM (0) . . . LM(n-1). Selbstverständlich
ist die Ausführung kompletter Pufferspeicher in einem
Halbleiter als eine integrierte Schaltung ebenfalls möglich.
Das Aneinanderschalten jeder ausgewählten Ausführung ergibt
keine Probleme, wie nachstehend an Hand der im einzelnen
ausgearbeiteten Beispiele der logischen Schaltung pro Pufferspeicherabschnitt
erläutert wird.
In Fig. 5 ist ein Ausführungsbeispiel der logischen
Schaltung LM(i) eines Pufferabschnittes (i) für die Steuerung
des Registers REG(i) dieses Abschnitts in Einzelheiten
dargestellt. Die logische Schaltung enthält in diesem Beispiel
ein Flipflop FFi mit einem Setzeingang SI und einem
Rückstelleingang RI und Ausgängen Q und . Weiterhin sind
in diesem Beispiel drei logische UND-Gatter E 1, E 2 und E 3
angegeben. Der Aufbau der logischen Schaltung ist einfach
gehalten. In anderen Ausführungsformen können
selbstverständlich
auch andere Logikelemente wie NAND-Gatter und dergleichen
benutzt werden.
In der logischen Schaltung LM(i)
werden die gewünschten
Signale für die Steuerung des Pufferspeichers erzeugt.
Diese Signale sind:
- a) app(i), das ist das Signal, das das Übertragen der Daten aus der Eingangssammelleitung über die bereits erwähnten Gatter Ii 1 . . . Iik in ein Register REG(i) des Pufferspeichers versorgt. Dieses Signal app(i) ist gleich 1 (logischer 1-Wert) unter der Bedingung, daß die Bedingung den logischen Wert 1 besitzt. Im UND-Gatter E 3 wird bestimmt, ob diese Bedingung erfüllt ist. Dazu wird jedoch zunächst im Gatter E 2 festgestellt, ob der Ausdruck erfüllt ist, d. h. ob die Bedingung, daß das Register REG(i) und alle (daher das -Zeichen als Boolesches UND-Funktionszeichen) vorangehenden Register leer sind, erfüllt sind. In E 3 wird mit dieser Bedingung und mit der Bedingung, ob das folgende Register REG(i+1) voll ist, was mit dem Zustandssignal s(i+1) bezeichnet wird, und mit der Anfrage "creq" von außerhalb des Pufferspeichers die Gültigkeit des erwähnten Ausdrucks nachgeprüft.
- b) sh(i) = s(i-1) · . Es ist das Schiebesignal zum Schieben innerhalb des Puffers, insbesondere wenn Daten am Ausgang des Pufferspeichers abgenommen sind. Dabei wird stets angestrebt, daß die Daten von dem Ausgang aus gesehen im Pufferspeicher aneinanderschließend vorhanden sind. Dies wird durch die Überwachung der Bedingung s(i-1) · mit Hilfe des UND-Gatters E 1 erreicht. Diese Bedingung ist erfüllt, und damit entsteht das Schiebesignal sh(i), wenn das Register REG(i) leer ist (Zustand s(i) = 1) und wenn dabei das vorangehende Register REG(i-1) voll ist (Zustand s(i-1)=1).
- c) Bei der erwähnten Bildung der erwähnten Signale ist ebenfalls bestimmt, welche die Zustandssignale der Abschnitte des Pufferspeichers sind. Unter der Bedingung, daß app(i) oder sh(i) = 1 sind, wird das Register REG(i) gefüllt. Dabei wird der Zustand s(i) = 1 (logische Schreibweise s(i):=1, wobei := für "wird" steht). Das Signal app(i) oder sh(i) setzt das Flipflop FFi in den Zustand Q = 1, der für s(i)=1 steht. Wird jetzt das Register REG(i) entleert, weil sein Inhalt durch das Signal sh(i+1) über die bereits früher erwähnten Gatter Ui 1 . . . Uik vom folgenden Register (REG(i+1), das selbst leer ist bzw. entleert worden ist, übernommen wird, so sorgt sh(i+1) dafür, daß das Flipflop FFi über seinen Rückstelleingang RI wieder in den Zustand Q=0, also =1 gebracht wird. Damit ist = 0 geworden.
Mit diesen drei in der logischen Schaltung LM(i) erzeugten
Signalen app(i), sh(i) und s(i) wird in Zusammenarbeit
mit dem Anfragesignal "creq" der ganze Pufferspeicher gesteuert.
Wie aus Fig. 5 ersichtlich ist, hat die logische Schaltung
LM(i) eine Anzahl von Eingängen für die Signale
und das Anfragesignal
"creq" bzw. die Signale s(i+1) und sh(i+1). Ausgänge
von LM(i) sind für die Signale
und auch "creq" vorhanden, das über LM(i) weitergeleitet
wird.
Diese Eingänge und Ausgänge sind für alle logischen
Schaltungen einschließlich LM (0) und LM(n-1) gleich, was
bedeutet, daß der Aufbau dieser logischen Schaltungen immer
gleich ist. Hiermit ist der untereinander gleiche Aufbau im
Pufferspeicher gewährleistet.
Zur Veranschaulichung obiger Beschreibung ist in Fig. 6
ein Detailschaltbild der logischen Schaltung LM (0) dargestellt,
das zusammen mit dem Register REG (0) den ersten
Abschnitt des Pufferspeichers bildet. Das Schaltbild ist
genau gleich Fig. 5. E 10 führt die gleiche Funktion wie
E 1 in Fig. 5, E 20 wie E 2 und E 30 wie E 3 in Fig. 5 aus.
Den einzigen Unterschied bildet die Situation der Signale
an der in dieser Fig. 6 linken Seite von LM (0). Weil es
keine weiteren vorangehenden Abschnitte gibt, ist kein Signal
(auf der Leitung a) bzw. kein Signal
s(i-1) (auf der Leitung b) möglich. Um hierbei
dennoch die Steuerung durchführen zu können, ist hier ein
Signal mit logischem Wert "1" dem Eingang a (alle "vorangehenden"
leer
und ein Signal mit logischem
Wert "0" dem Eingang b (der vorangehende ist leer s(i-1)=0)
zugeführt. Die von dieser Seite nach vorangehenden Abschnitten
ausgehenden Signale s(i)=s(0) und sh(i)=sh(0)
werden weiter nicht benutzt, oder es müßten bei der Erweiterung
des Pufferspeichers Abschnitte vor diesem ersten
Abschnitt angeordnet werden. In diesem Falle werden Eingänge
a und b auch wieder normal benutzt. Eine Erweiterung des
Pufferspeichers bildet an dieser Seite also kein Problem.
Daß die Kopplung eines Pufferspeichers auch hinsichtlich
der anderen Seite, d. h. der Ausgangsseite eines vorzuschaltenden
Pufferspeichers, kein Problem darstellt, wird
an Hand der Fig. 7 erläutert. Mit der erwähnten Lösung eines
Pufferspeichers ist es nach Bedarf (wie in vielen Verwendungen
datenverarbeitender Systeme) möglich, daß der Pufferspeicher
ein Betätigungssignal "cack" nach außerhalb des
Pufferspeichers liefert, um anzugeben, daß zugeführte Daten
in ein Register des Speichers übernommen worden sind.
Ist der Pufferspeicher vollständig gefüllt, so wird kein
"creq" erwidert und also kein "cack" erzeugt. Dies ist
signalisiert, wenn REG (0) voll ist, also wenn s(0):=1 geworden
ist. In der logischen Schaltung LM(0) ist das Erzeugen
von "cack" mit Hilfe eines UND-Gatters E 40 einfach
möglich, mit dem bestimmt wird, ob die Bedingung · creq
erfüllt ist. Denn solange bei einem Anfragesignal creq=1 das
Register REG (0) leer bleibt (d. h. =1), können weitere
neue Informationen angenommen werden. Auf der Basis von
cack=creq · , das in einen Flipflop (nicht dargestellt)
gespeichert wird, wird also stets eine Bestätigung nach
außerhalb des Pufferspeichers gegeben, um anzugeben, daß
Daten übernommen worden sind. Ist der Pufferspeicher vollständig
gefüllt, kann keine Information übernommen werden
und tritt "cack" nicht auf (der betreffende Flipflop wird
zurückgesetzt), so daß es also in der Außenwelt (beispielsweise
im datenverarbeitenden System) bekannt ist, daß keine
neue zugeführte Informationen vom Pufferspeicher übernommen
worden sind.
In Fig. 7 ist auf entsprechende Weise wie oben ein
Detailschaltbild der logischen Schaltung LM(n-1) dargestellt,
die zusammen mit dem Register REG(n-1) den letzten Abschnitt
des Pufferspeichers bildet. Erneut ist das Schaltbild gleich
Fig. 5: E 1 (n-1) steht für E 1, E 2 (n-1) steht für E 2 und
E 3 (n-1) steht für E 3. Die Signale an der linken Seite der
Fig. 7 entsprechen vollends denen an der linken Seite der
Fig. 5. Den einzigen Unterschied bildet die Situation der
Signale an der in dieser Fig. 7 rechten Seite von LM(n-1).
Weil es keinen weiteren folgenden Abschnitt gibt, ist kein
Signal s(i+1)=s(n) möglich. Um dennoch hier die Steuerung
durchführen zu können, ist hier erneut ein Signal V 1=1
(logischer 1-Wert) an diesen Eingang gelegt. Außerdem tritt
selbstverständlich kein Schiebesignal sh(n) auf. Weil jedoch
REG(n-1) der Ausgang des Pufferspeichers selbst ist, ist
tatsächlich das Signal "ers" vorhanden, das nämlich von
außerhalb des Pufferspeichers ein Rückmeldesignal darstellt,
mit dem angegeben wird, daß Informationen aus dem Pufferspeicher
(also aus REG(n-1)) gelesen sind. Für LM(n-1)
arbeitet "ers" also, als sei geschoben worden, so daß
ers = sh(n) angenommen werden darf. Ausgehende Signale
sind weiter nicht benutzt
worden. Wenn jedoch eine Erweiterung des Pufferspeichers
erforderlich ist bzw. der Pufferspeicher von einem anderen
Pufferspeicher angeordnet wird, können die erwähnten Signale
wieder normal verwendet werden, und es ist ohne weitere
Komplikationen eine Erweiterung des Pufferspeichers möglich.
Als zusätzlicher Vorteil kann festgestellt werden, daß das
Signal s(n-1) als Meldesignal SFI außerhalb des Pufferspeichers
verwendet werden kann, daß mindestens ein Abschnitt
gefüllt ist. Dieser Abschnitt wird im Hinblick
auf den erwähnten Schiebevorgang immer der letzte Abschnitt
sein, so daß, wenn s(n-1)=1 dieser Zustand für diese Information
(SFI) bestimmend ist. Dies gibt an, daß auf den
OUT-Leitungen Daten zur Verfügung stehen.
Hinsichtlich der einfachen Erweiterungsmöglichkeiten
des Pufferspeichers sei noch bemerkt, daß diese Erweiterungen
insbesondere wenn in Halbleitertechnik ausgeführte integrierte
Pufferspeicher benutzt werden, nicht notgedrungen bedeutet,
daß alle Signalleitungen (nach einem folgenden oder vorangehenden
Pufferspeicher) durchgezogen werden müssen. Man
kann damit auskommen, einen "creq" Signaleingang mit einem
SFI-Signalausgang und einen Signaleingang "ers" mit einem
Signalausgang "cack" zweier miteinander zu koppelnder identischer
Pufferspeicher zu verbinden. Zwar sei dabei angenommen,
daß in diesem Fall sich die Durchgangszeit verlängert: je
angekoppelten zusätzlichen Pufferspeicher steigt die Durchgangszeit
um eine Einheit an (die Mindestdurchgangszeit durch einen
Pufferspeicher gilt dabei als eine Einheit). Mit dieser
Lösung wird jedoch vermieden, daß ein Pufferspeicher-IC
mit einer zu großen Anzahl von Eingangs/Ausgangsklemmen
ausgerüstet werden müßte.
Mit den beschriebenen logischen Schaltungen ist ein
Pufferspeicher vom Typ "first-in, first-out" mit variablem
Eingang und festem Ausgang erhalten, der stets eine möglichst
kurze Durchgangszeit für neu zugeführte Daten hat, denn neue
Daten werden immer möglichst nahe dem Ausgang des Pufferspeichers
in den Pufferspeicher aufgenommen. Die dargestellte
Funktion des app(i)-Signals garantiert stets das
Füllen eines vorangehenden leeren Registers (das also weiter
alles leere Register vor sich hat) vor einem ersten vollen
Register (i+1). Zweifel über die Stelle, an der die Daten
von der Eingangssammelleitung in ein Register (i) aufgenommen
werden müssen, ist nicht möglich: es gibt stets nur
eine Stelle, für die app(i)=1 gültig ist. Weiterhin sorgt
das sh(i)-Signal stets dafür, daß nur vorübergehend
"Löcher" im Pufferspeicher stehen, d. h. leere Abschnitte
zwischen gefüllten Abschnitten werden immer nachgefüllt.
Dies bedeutet, daß, wenn durch eine Störung irgendwo
sich ein Zustand s(i)=1 in s(i)=0 ändert, ein derartiges
Loch gleich nachgefüllt wird. Dabei geht im betreffenden
Register (i) zwar die vorhandene Information verloren (wird
von der weiterschiebenden Information überschrieben), aber
es tritt kein Zustand der Ungewißheit auf. Wenn durch eine
Störung irgendwo sich ein Zustand s(i)=0 in s(i)=1 ändert,
so wird diese Situation durch den Schiebevorgang wieder an
den ersten vollen Abschnitt im Pufferspeicher geschoben
und danach normal zum Ausgang (bei Signalen "ers") weitergeschoben.
Dabei ist zwar ein Abschnitt mit ungültigen Daten
entstanden, aber diese Daten verschwinden zum Ausgang hin
und bewirken keine dauernde Unsicherheit im Pufferspeicher.
Hiermit ist also eindeutig erreicht worden, daß der Pufferspeicher
selbststabilisierend ist. Dies ist eine wichtige
Eigenschaft, die im Bereich der Datenverarbeitungs- und
Kommunikationstechnik in vielen Fällen erfordert wird.
Schließlich sei noch bemerkt, daß in Zusammenhang
mit der praktischen Ausführungsform des Pufferspeichers
beispielsweise sogenannte flankengesteuerte
Flipflops benutzt werden (beispielsweise Signetics Typ 74LS74).
Auch ist es möglich, sogenannte Meister-Sklave-Flipflops zu
verwenden.
Claims (7)
1. Datenpufferspeicher vom Typ "first-in, first-out" mit
einer Anzahl untereinander im wesentlichen gleich aufgebauter
Abschnitte, von denen jeder Abschnitt ein Register zur Aufnahme
eines parallel zugeführten Datenwortes und eine logische
Schaltung mit einem Speicherelement enthält, die den Eingang
des Registers mit einer Eingangs-Sammelleitung verbindet, wenn
das Speicherelement in einem vorgegebenen Zustand ist und
ein von außen zugeführtes Anfragesignal zum Einschreiben
eines über die Eingangs-Sammelleitung zugeführten Datenwortes
vorhanden ist, um dieses in das Register des am nächsten
zum Ausgang gelegenen leeren Abschnitts zu schreiben,
und die den Eingang eines Registers mit dem Ausgang des vorhergehenden
Registers verbindet, um mindestens ein im Datenpufferspeicher
enthaltenes Datenwort in Richtung zum Ausgang
zu schieben, wobei jede logische Schaltung Signale von
logischen Schaltungen mindestens des vorhergehenden und des
folgenden Abschnitts empfängt,
dadurch gekennzeichnet,
daß das Speicherelement (FF(i)) jeder logischen Schaltung (LM(i)), deren zugehöriges Registers (REG(i)) ein gültiges Datenwort enthält, im gesetzten Zustand ist,
daß die logische Schaltung (LM(i)) jedes Abschnitts (i), wenn die Speicherelemente (FF(i- 1), . . .) aller weiter vom Ausgang abliegenden Abschnitte (i-1), . . . und des betreffenden Abschnitts (i) im nicht gesetzten Zustand sind, d. h. kein gültiges Datenwort angeben und das Speicherelement (FF(i+1)) im unmittelbar folgenden Abschnitt (i+1) im gesetzten, d. h. ein gültiges Datenwort angebenden Zustand ist und das Anfragesignal zum Einschreiben eines Datenwortes (creq) vorhanden ist, den Eingang des zugehörigen Registers (REG(i)) mit der Eingangs-Sammelleitung (INB) verbindet, das Datenwort eingeschrieben wird und das Speicherelement (FF(i)) des betreffenden Abschnitts (i) in den gesetzten Zustand bringt,
daß die logische Schaltung (LM(i)) jedes Abschnitts (i), wenn das Speicherelement (FF(i-1)) des vorhergehenden Abschnitts (i-1) im gesetzten Zustand und das Speicherelement (FF(i)) des betreffenden Abschnitts (i) im nicht gesetzten Zustand ist, den Eingang des zugehörigen Registers (REG(i)) mit dem Registerausgang des vorhergehenden Abschnitts (i-1) zum Weiterschieben eines Datenwortes verbindet und das Speicherelement (FF(i-1)) in diesem vorhergehenden Abschnitt in den nicht gesetzten Zustand und das Speicherelement (FF(i)) im betreffenden Abschnitt (i) in den gesetzten Zustand bringt, und daß ein von außen zugeführtes Lese-Rückmeldesignal (ers) das Speicherelement (FF(n-1)) des den Ausgang bildenden Abschnitts (n-1) in den nicht gesetzten Zustand bringt, wenn das gültige Datenwort aus dem zugehörigen Register (REG(n-1) gelesen wurde.
daß das Speicherelement (FF(i)) jeder logischen Schaltung (LM(i)), deren zugehöriges Registers (REG(i)) ein gültiges Datenwort enthält, im gesetzten Zustand ist,
daß die logische Schaltung (LM(i)) jedes Abschnitts (i), wenn die Speicherelemente (FF(i- 1), . . .) aller weiter vom Ausgang abliegenden Abschnitte (i-1), . . . und des betreffenden Abschnitts (i) im nicht gesetzten Zustand sind, d. h. kein gültiges Datenwort angeben und das Speicherelement (FF(i+1)) im unmittelbar folgenden Abschnitt (i+1) im gesetzten, d. h. ein gültiges Datenwort angebenden Zustand ist und das Anfragesignal zum Einschreiben eines Datenwortes (creq) vorhanden ist, den Eingang des zugehörigen Registers (REG(i)) mit der Eingangs-Sammelleitung (INB) verbindet, das Datenwort eingeschrieben wird und das Speicherelement (FF(i)) des betreffenden Abschnitts (i) in den gesetzten Zustand bringt,
daß die logische Schaltung (LM(i)) jedes Abschnitts (i), wenn das Speicherelement (FF(i-1)) des vorhergehenden Abschnitts (i-1) im gesetzten Zustand und das Speicherelement (FF(i)) des betreffenden Abschnitts (i) im nicht gesetzten Zustand ist, den Eingang des zugehörigen Registers (REG(i)) mit dem Registerausgang des vorhergehenden Abschnitts (i-1) zum Weiterschieben eines Datenwortes verbindet und das Speicherelement (FF(i-1)) in diesem vorhergehenden Abschnitt in den nicht gesetzten Zustand und das Speicherelement (FF(i)) im betreffenden Abschnitt (i) in den gesetzten Zustand bringt, und daß ein von außen zugeführtes Lese-Rückmeldesignal (ers) das Speicherelement (FF(n-1)) des den Ausgang bildenden Abschnitts (n-1) in den nicht gesetzten Zustand bringt, wenn das gültige Datenwort aus dem zugehörigen Register (REG(n-1) gelesen wurde.
2. Datenpufferspeicher nach Anspruch 1,
dadurch gekennzeichnet, daß eine weitere logische
Schaltung (E 40) vorgesehen ist, die ein Bestätigungssignal
"cack" nach außerhalb des Pufferspeichers abgibt, sobald
der Eingangs-Sammelleitung (INB) zugeführte Daten in ein
Register (REG(i)) übernommen worden sind.
3. Datenpufferspeicher nach Anspruch 2,
dadurch gekennzeichnet, daß die weitere logische
Schaltung (E 40) das Bestätigungssignal nur erzeugt, wenn
das Speicherelement (FF(0)) des ersten Pufferspeicherabschnitts
(0) ungültige Daten anzeigt.
4. Datenpufferspeicher nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß ein Ausgang des Speicherelements
(FF(n-1)) des letzten Pufferspeicherabschnitts
(n-1), der das mit dem Ausgang (OUT) verbundene
Register (REG(n-1)) enthält, mit einem weiteren
Ausgang (SFI) des Datenpufferspeichers verbunden ist.
5. Datenpufferspeicher nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß er als eine in einem Halbleiter
integrierte Schaltung ausgeführt ist.
6. Datenpufferspeicher nach einem der Ansprüche 1
bis 4,
dadurch gekennzeichnet, daß mindestens je ein Pufferspeicherabschnitt
mit dem betreffenden Register und der
zugeordneten logischen Schaltung eine in einem Halbleiter
integrierte Schaltung ist.
7. Datenpufferspeicher nach einem der Ansprüche 1
bis 4,
dadurch gekennzeichnet, daß der Pufferspeicher aus
mindestens einer Gruppe von Registern und aus mindestens
einer Gruppe logischer Schaltungen besteht und jede dieser
Gruppen eine in einem Halbleiter integrierte Schaltung
ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL7713707A NL7713707A (nl) | 1977-12-12 | 1977-12-12 | Informatiebuffergeheugen van het "eerst-in, eerst-uit" type met variabele ingang en vaste uitgang. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2853239A1 DE2853239A1 (de) | 1979-06-13 |
DE2853239C2 true DE2853239C2 (de) | 1989-02-02 |
Family
ID=19829732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782853239 Granted DE2853239A1 (de) | 1977-12-12 | 1978-12-09 | Datenpufferspeicher vom typ first-in, first-out mit variablem eingang und festem ausgang |
Country Status (9)
Country | Link |
---|---|
US (1) | US4236225A (de) |
JP (1) | JPS5920139B2 (de) |
CA (1) | CA1122329A (de) |
DE (1) | DE2853239A1 (de) |
FR (1) | FR2411467A1 (de) |
GB (1) | GB2009984B (de) |
IT (1) | IT1101479B (de) |
NL (1) | NL7713707A (de) |
SE (2) | SE437581B (de) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57164331A (en) * | 1981-04-02 | 1982-10-08 | Nec Corp | Buffer controller |
JPS57185492A (en) * | 1981-05-11 | 1982-11-15 | Matsushita Electric Ind Co Ltd | Data latch circuit |
JPS58220293A (ja) * | 1982-06-15 | 1983-12-21 | Nec Corp | 記憶装置 |
US4510581A (en) * | 1983-02-14 | 1985-04-09 | Prime Computer, Inc. | High speed buffer allocation apparatus |
US4930102A (en) * | 1983-04-29 | 1990-05-29 | The Regents Of The University Of California | Dynamic activity-creating data-driven computer architecture |
JPS59226923A (ja) * | 1983-05-27 | 1984-12-20 | インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン | バスインタ−フエ−ス装置 |
US4598363A (en) * | 1983-07-07 | 1986-07-01 | At&T Bell Laboratories | Adaptive delayed polling of sensors |
US4592019A (en) * | 1983-08-31 | 1986-05-27 | At&T Bell Laboratories | Bus oriented LIFO/FIFO memory |
FR2552916B1 (fr) * | 1983-09-29 | 1988-06-10 | Thomas Alain | File d'attente asynchrone a empilement de registres |
AU575351B2 (en) * | 1983-11-07 | 1988-07-28 | Digital Equipment Corporation | Data processing system |
US5038277A (en) * | 1983-11-07 | 1991-08-06 | Digital Equipment Corporation | Adjustable buffer for data communications in a data processing system |
US4764894A (en) * | 1985-01-16 | 1988-08-16 | Varian Associates, Inc. | Multiple FIFO NMR acquisition system |
US4833655A (en) * | 1985-06-28 | 1989-05-23 | Wang Laboratories, Inc. | FIFO memory with decreased fall-through delay |
NL8502023A (nl) * | 1985-07-15 | 1987-02-02 | Philips Nv | Werkwijze voor het schakelen van tijdsloten in een tdm-signaal en inrichting voor het uitvoeren van de werkwijze. |
US4672646A (en) * | 1986-09-16 | 1987-06-09 | Hewlett-Packard Company | Direct-injection FIFO shift register |
US4995005A (en) * | 1986-09-18 | 1991-02-19 | Advanced Micro Devices, Inc. | Memory device which can function as two separate memories or a single memory |
US4847812A (en) * | 1986-09-18 | 1989-07-11 | Advanced Micro Devices | FIFO memory device including circuit for generating flag signals |
JPS648732A (en) * | 1987-06-30 | 1989-01-12 | Sharp Kk | Digital serial/parallel converter |
US5115496A (en) * | 1988-01-26 | 1992-05-19 | Nec Corporation | Queue device capable of quickly transferring a digital signal unit of a word length different from a single word length |
JP2764908B2 (ja) * | 1988-02-04 | 1998-06-11 | 日本電気株式会社 | カスケード・バッファ回路 |
JP2576616B2 (ja) * | 1988-12-29 | 1997-01-29 | カシオ計算機株式会社 | 処理装置 |
JPH0391188A (ja) * | 1989-09-04 | 1991-04-16 | Matsushita Electric Ind Co Ltd | Fifoメモリ |
US5095462A (en) * | 1990-05-25 | 1992-03-10 | Advanced Micro Devices, Inc. | Fifo information storage apparatus including status and logic modules for each cell |
US5412611A (en) * | 1992-03-17 | 1995-05-02 | Fujitsu, Limited | FIFO memory device capable of writing contiguous data into rows |
US5513224A (en) * | 1993-09-16 | 1996-04-30 | Codex, Corp. | Fill level indicator for self-timed fifo |
WO1997003444A1 (en) * | 1995-07-10 | 1997-01-30 | Xilinx, Inc. | System comprising field programmable gate array and intelligent memory |
WO1999009467A2 (en) | 1997-08-20 | 1999-02-25 | Koninklijke Philips Electronics N.V. | A transient datastream-processing buffer memory organization with software management adapted for multilevel housekeeping |
JP4841314B2 (ja) * | 2006-05-29 | 2011-12-21 | 川崎マイクロエレクトロニクス株式会社 | データ転送回路 |
JP6568560B2 (ja) | 2017-09-15 | 2019-08-28 | 株式会社Subaru | 車両の走行制御装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL6600550A (de) * | 1966-01-15 | 1967-07-17 | ||
US3646526A (en) * | 1970-03-17 | 1972-02-29 | Us Army | Fifo shift register memory with marker and data bit storage |
NL7014737A (de) * | 1970-10-08 | 1972-04-11 | ||
GB1289249A (de) * | 1971-05-05 | 1972-09-13 | ||
US3781821A (en) * | 1972-06-02 | 1973-12-25 | Ibm | Selective shift register |
US3942163A (en) * | 1974-06-21 | 1976-03-02 | Burroughs Corporation | CCD stack memory organization |
US3953838A (en) * | 1974-12-30 | 1976-04-27 | Burroughs Corporation | FIFO Buffer register memory utilizing a one-shot data transfer system |
JPS5247638A (en) * | 1975-10-15 | 1977-04-15 | Toshiba Corp | Information processing device |
US4095283A (en) * | 1976-07-02 | 1978-06-13 | International Business Machines Corporation | First in-first out memory array containing special bits for replacement addressing |
-
1977
- 1977-12-12 NL NL7713707A patent/NL7713707A/xx not_active Application Discontinuation
-
1978
- 1978-11-30 US US05/965,208 patent/US4236225A/en not_active Expired - Lifetime
- 1978-12-07 IT IT30681/78A patent/IT1101479B/it active
- 1978-12-07 CA CA317,576A patent/CA1122329A/en not_active Expired
- 1978-12-08 GB GB7847707A patent/GB2009984B/en not_active Expired
- 1978-12-09 JP JP53152598A patent/JPS5920139B2/ja not_active Expired
- 1978-12-09 DE DE19782853239 patent/DE2853239A1/de active Granted
- 1978-12-11 FR FR7834812A patent/FR2411467A1/fr active Granted
- 1978-12-11 SE SE7812716A patent/SE437581B/sv not_active IP Right Cessation
- 1978-12-11 SE SE7812716D patent/SE7812716L/xx not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
SE7812716L (sv) | 1979-06-13 |
SE437581B (sv) | 1985-03-04 |
JPS5489439A (en) | 1979-07-16 |
IT1101479B (it) | 1985-09-28 |
CA1122329A (en) | 1982-04-20 |
US4236225A (en) | 1980-11-25 |
GB2009984B (en) | 1982-01-27 |
FR2411467A1 (fr) | 1979-07-06 |
NL7713707A (nl) | 1979-06-14 |
JPS5920139B2 (ja) | 1984-05-11 |
IT7830681A0 (it) | 1978-12-07 |
DE2853239A1 (de) | 1979-06-13 |
FR2411467B1 (de) | 1985-01-18 |
GB2009984A (en) | 1979-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2853239C2 (de) | ||
DE2853276C2 (de) | ||
DE1449765C3 (de) | Einrichtung zur Abfrage eines assoziativen Speichers | |
DE2015971A1 (de) | Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden | |
DE2415365B2 (de) | Schaltungsanordnung zum ausblenden von impulsen, deren dauer kuerzer ist als eine vorgegebene pruefdauer t tief p aus einer eingangsseitig anliegenden folge digitaler impulse | |
DE2853240C2 (de) | ||
DE3246432C2 (de) | ||
DE2719531B2 (de) | Digitale Logikschaltung zur Synchronisierung der Datenübertragung zwischen asynchrongesteuerten Datensystemen | |
DE2627788A1 (de) | Dynamischer digitalspeicher mit ununterbrochen umlaufendem datenfluss | |
DE1499206B2 (de) | Rechenanlage | |
DE2752996A1 (de) | Digitale multiplexiervorrichtung fuer plesiochrone bitfolgen | |
DE2321200A1 (de) | Einrichtung zur durchfuehrung boolescher verknuepfungen | |
DE2216465B2 (de) | Asynchrone Pufferanordnung | |
DE1239124B (de) | Vorrichtung zum Einspeichern einer Dezimalzahl in ein Register | |
DE2610428C3 (de) | Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher | |
DE2431975A1 (de) | Vorrichtung zur kontrolle einer multiplex-digital-bitfolge | |
DE2633155A1 (de) | Einrichtung zur erzeugung zeitdefinierter steuersignale | |
DE2458777C2 (de) | Schaltungsanordnung zur Textverarbeitung | |
DE2157515B2 (de) | Digitale Datenverarbeitungs-Einrichtung | |
EP0012794B1 (de) | Verfahren und Einrichtung für eine elektronische Datenverarbeitungsanlage zur Prüfung der aus einer Instruktion abgeleiteten Steuersignale | |
DE3149678A1 (de) | Anordnung zur zwischenspeicherung von zwischen zwei funktionseinheiten in beiden richtungen zu uebertragenden informationen in einem pufferspeicher | |
EP0025511A2 (de) | Steuereinrichtung zur Ausführung von Instruktionen | |
DE1230075B (de) | Verfahren zur UEbertragung von Schluesselzeichen | |
DE2639773A1 (de) | Schaltungsanordnung zur entzerrung von start-stop-zeichen | |
DE2842332C3 (de) | Verfahren und Schaltungsanordnung zur Festlegung der Dauer der Abgabe eines einem Binärwert entsprechenden Ausgangssignals auf das Auftreten eines Auslöseimpulses hin, insbesondere für Eisenbahn-Signalanlagen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |