DE2853240C2 - - Google Patents
Info
- Publication number
- DE2853240C2 DE2853240C2 DE2853240A DE2853240A DE2853240C2 DE 2853240 C2 DE2853240 C2 DE 2853240C2 DE 2853240 A DE2853240 A DE 2853240A DE 2853240 A DE2853240 A DE 2853240A DE 2853240 C2 DE2853240 C2 DE 2853240C2
- Authority
- DE
- Germany
- Prior art keywords
- buffer memory
- data
- register
- reg
- 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)
- Bus Control (AREA)
- Dram (AREA)
- Time-Division Multiplex Systems (AREA)
- Communication Control (AREA)
Description
Die Erfindung betrifft einen Datenpufferspeicher vom Typ
"first-in, first-out" nach dem Oberbegriff des Haupt
anspruches.
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 in der Geschwindigkeit zwischen Dateneingabe
und Datenausgabe auftreten.
Ein beispielsweise aus der
DE-OS 21 46 108 bekannter Pufferspeicher zeichnet sich
durch einen einfachen Aufbau aus, insbesondere durch einen
untereinander gleichen Aufbau der einzelnen Pufferspeicherabschnitte.
Ein Nachteil dabei ist, daß bei einer
Kapazität des Pufferspeichers von n Abschnitten ein
Datenwort, das einem leeren Pufferspeicher zugeführt wird,
erst nach n Taktimpulszyklen am Ausgang erscheint. Insbesondere
wenn n groß ist, kann dies in der Praxis zu unzulässigen
Verzögerungen führen. Derartige Pufferspeicher
weisen einen festen Eingang und einen festen Ausgang auf.
Aus den niederländischen Patentanmeldungen 74 10 786 und
75 09 269 sind Pufferspeicher bekannt, die eine solche
Verzögerung nicht aufweisen, weil unter Verwendung von
Zählanordnungen sowohl eine variable Eingangsstelle als
auch eine variable Ausgangsstelle des Pufferspeichers
ansteuerbar sind. Dabei brauchen die Daten nicht immer
durch den ganzen Pufferspeicher hindurchgeführt zu werden,
um von einem Eingang auf einen Ausgang übertragen zu
werden. Insbesondere bei einem leeren oder nahezu leeren
Pufferspeicher werden Verzögerungen verhindert. Ein
wesentlicher Nachteil bei diesen Pufferspeicheranordnungen
ist jedoch, daß insbesondere mit einer größeren Anzahl von
Abschnitten die Steuerkomplexität stark ansteigt. Zähler
mit hoher Zählkapazität und umfangreichen Dekodierungs
auswahlnetzwerken für die anzuweisenden Ein- und Ausgänge
oder sonstige Zusatzmaßnahmen sind erforderlich. Außerdem
ist das Zusammenschalten einer Anzahl kleiner Pufferspeicher
zu einem größeren Pufferspeicher nicht ohne
zusätzliche Komplikationen möglich.
Aus der DE-AS 21 17 582 ist ein Pufferspeicher der
eingangs genannten Art bekannt, mit dem aufeinanderfolgende
Daten zusammengefaßt und die jeweils ältesten
Daten als Bytegruppe abgegeben werden. Das Ausgeben der
Bytegruppen erfolgt über einen Assemblierer, der eine
Umorganisation der Reihenfolge ermöglicht. Abgesehen von
dem komplizierten Aufbau der einzelnen Pufferspeicherabschnitte
ist auch dort eine bestimmte Mindestzeit
erforderlich, bis die zuerst am Eingang eingetroffenen
Daten am Ausgang abgegeben werden können.
Aufgabe der Erfindung ist es, einen Pufferspeicher der
eingangs genannten Art anzugeben, der einen einfachen
Aufbau aufweist und bei dem die Durchgangszeit für am
Eingang zugeführte Daten bis zur Abgabe am Ausgang
möglichst kurz ist.
Diese Aufgabe wird erfindungsgemäß durch die im kennzeichnenden
Teil des Hauptanspruches angegebenen Maßnahmen
gelöst.
Der erfindungsgemäße Pufferspeicher kann als ein
Pufferspeicher mit festem Eingang und variablem Ausgang
betrachtet werden. Durch die variable Ausgangsstelle, die
stets möglichst nahe beim Eingang liegt, um so einen
geschlossenen Inhalt des Pufferspeichers zu bilden, wird
eine möglichst kurze Durchgangszeit des Pufferspeichers
erhalten.
Eine zweckmäßige Ausgestaltung der Erfindung zur Steuerung
des Weiterschiebens des Inhalts im Pufferspeicher bei
Zufuhr neuer Daten ist im Anspruch 2 angegeben. Diese
Ausgestaltung sorgt auf einfache Weise dafür, daß die
gespeicherten gültigen Daten im Pufferspeicher stets
zusammenhängend gespeichert bleiben und das Speicherelement
in der jeweiligen logischen Schaltung jederzeit
genau anzeigt, ob der zugehörige Pufferspeicherabschnitt
gültige oder ungültige Daten enthält.
Die Steuerung des Speicherelements in der jeweiligen
logischen Schaltung der einzelnen Pufferspeicherabschnitte
kann auf einfache Weise anhand der Zustände der Speicherelemente
in den beiden unmittelbar benachbarten
Abschnitten erfolgen. Eine Störung beispielsweise aufgrund
eines durch ein Störsignal fälschlicherweise umgeschalteten
Speicherelements kann jedoch zu einer dauerhaften
Fehlfunktion des Pufferspeichers führen. Eine im Anspruch
3 angegebene weitere Ausgestaltung der Erfindung vermeidet
derartige Instabilitäten und weitgehend auch einen
entsprechenden Datenverlust.
Durch die Steuerung pro Pufferspeicherabschnitt mit
vorzugsweise bistabilen Elementen als Teil der logischen
Schaltung wird eine einfache und für Integrationszwecke
geeignete Anordnung erreicht. Durch die Modularität des
Aufbaus ist es möglich, zumindest pro Abschnitt des Datenpufferspeichers
das betreffende Register und die zugeordnete
logische Schaltung als eine in einem 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 bedeutet jedoch auch, daß mehrere
Pufferspeicher problemlos hintereinander geschaltet werden
können, um gewünschte Pufferlängen zu erhalten.
Ausführungsbeispiele des Pufferspeichers werden nachstehend
anhand der Zeichnung näher erläutert. Es zeigen:
Fig. 1 ein Prinzipschaltbild eines Ausführungsbeispiels eines "first-in, first-out"-
Pufferspeichers mit einem festen Eingang und variablem Ausgang,
Fig. 2 eine weiter in Einzelheiten dargestellte Blockschaltung
eines Ausführungsbeispiels eines Pufferspeichers,
Fig. 3 und 4 Beispiele von Untergliederungsmöglichkeiten
des Pufferspeichers im Hinblick auf die Ausführung als in
einem Halbleiter integrierte Schaltungen,
Fig. 5 ein Beispiel der logischen Schaltung eines
Pufferspeicherabschnittes,
Fig. 6 ein Detail der Fig. 2 zusammen mit einem Detail
der Fig. 5 in einer etwas geänderten Ausführungsform.
In Fig. 1 ist ein vereinfachtes Schaltbild eines
"first-in, first-out"-Pufferspeichers mit festem Eingang
und variablem Ausgang angegeben. Der
Pufferspeicher ist mit FIFO bezeichnet. Der feste Eingang IN
liegt am Eingang des ersten Abschnitts T (0) des Pufferspeichers.
OUTB bildet die Ausgangssammelleitung, über die
Daten von Ausgängen eines dazu ausgewählten Registerabschnitts
T (0), T (1) . . . T(n-1) abgegriffen und aus dem Pufferspeicher
herausgeführt wird.
In Fig. 2 ist ein detaillierteres Blockschaltbild als
Beispiel der Ausführung des Pufferspeichers nach Fig. 1
insbesondere in einer Modularanordnung dargestellt. Er besteht
aus einem Registerteil mit Registern REG (0) . . . REG(i-1) . . .
REG(n-1). Diese Register dienen zur Speicherung zugeführter
Daten. Jedes Register kann aus einer oder mehreren Stufen
1, 2, . . . k bestehen. Hiermit ist angegeben, daß die Datenwegbreite
nach Bedarf wählbar ist. Für jedes Bit der Datenwegbreite
wird eine Stufe 1, 2, . . . k pro REG(i) benötigt.
Das Register REG (0) des ersten Abschnitts des Pufferspeichers
dient als Eingangsregister des vollständigen Pufferspeichers.
Die Eingänge IN (ein Eingangsanschluß für jedes Bit des
Datenwegs) sind mit REG (0) verbunden. Die Ausgangssammelleitung
OUTB ist in Fig. 2 über den Registern angeordnet.
Jedes Register REG(i) ist mit seinen Ausgängen (von jeder
Stufe 1, 2, . . . k) mit der Sammelleitung OUTB verbunden.
Dafür sind UND-Gatter benutzt: UO 1 UO 2, . . . UOk für die
entsprechenden Registerstufen 1, 2 . . . k von REG (0); Ui 1,
Ui 2, . . . Uik für die entsprechenden Registerstufen 1, 2, . . . k
von REG(i) usw. Die Wahl, welches der Register REG(i) mit
der Ausgangssammelleitung OUTB verbunden wird, bestimmen
die logischen Schaltungen LM (0) . . . LM(i-1) . . .. LM(n-1), die
pro Pufferspeicherabschnitt vorgesehen sind. Ein Signal
selout (0) . . . selout(i) . . . oder selout(n-1) wird in den
erwähnten logischen Schaltungen erzeugt und den erwähnten
UND-Gattern UOk, . . . UOk . . . oder Ui 1, . . . Uik . . . oder
U(n-1), . . . U(n-1)k zugeführt. Damit erfolgt die Wahl des
einen Registers REG(i), wobei i=0, . . . (n-1), aus dem
Daten der Ausgangssammelleitung OUTB des Pufferspeichers
zugeführt werden.
Zum Schieben der Daten innerhalb des Pufferspeichers
zwischen den Abschnitten, welcher Vorgang auftritt, wenn
neue Daten dem Pufferspeicher zugeführt werden und noch
Raum im Pufferspeicher frei ist, sind zwischen den Stufen
der einzelnen Register Verbindungen angeordnet, die über
UND-Gatter IO 1 IO 2, . . . IOk bzw. Ii 1, Ii 2 . . . Iik, usw.
zwischen einem Ausgang einer bestimmten Registerstufe und
einem Eingang einer Registerstufe des nächsten Abschnitts
des Pufferspeichers liegen. Im angegebenen Beispiel nach
Fig. 2 sind die Ausgänge für jede Registerstufe gemeinsam
dargestellt, d. h. sowohl für den Ausgang zur Ausgangssammelleitung
OUTB als auch für den Ausgang zum Eingang
einer Registerstufe des folgenden Abschnitts des Pufferspeichers.
Dieses Weiterschieben erfolgt durch die Steuerung
der Schiebesignale "sh".
Ferner besteht der Pufferspeicher aus einem Steuerteil
mit der logischen Schaltung LM(i) pro Abschnitt des Pufferspeichers.
Die Signale, die in dieser logischen Schaltung
erzeugt werden, sind außer dem bereits erwähnten Selout(i)-Signal
die Zustandssignale s(i) bzw. , die eine Bezeichnung
"voll" bzw. "leer" eines Registers (i) bilden,
weiter eine vorzugsweise benutzte kombinatorische Form dieses
Signals
d. h. auf Basis der Booleschen UND-
Funktion aller Register REG(i +1) bis REG(n-1) das Zustandssignal
s(j) einen Wert gleich Null hat (d. h. = 1).
Es ist die Bedingung, daß alle REG(i)
folgenden Register leer sind. Die Bezeichnung "leer" besagt,
daß keine gültigen Daten vorhanden sind. Weitere Einzelheiten
werden an Hand der Fig. 5 näher erläutert. Im Steuerteil
wird in diesem Beispiel in einem UND-Gatter P 1 eine
Bedingung creq · überwacht. Das bedeutet, daß beim jeweiligen
Erfüllen dieser Bedingung ein Signal mit dem logischen
Wert "1" am Ausgang von P 1 erscheint. Dieses Signal
wird allen logischen Schaltungen LM(i) zugeführt (Leitung
mit der Bezeichnung creq · ). Das Signal "creq" gibt eine
Anfrage von außerhalb des Pufferspeichers an, um Daten in
den Pufferspeicher zu übernehmen. Das Signal "ers" ist ein
Rückmeldesignal von außerhalb des Pufferspeichers, das
auftritt (logischer 1-Wert), wenn Daten aus dem Pufferspeicher
übernommen worden sind.
Ebenso wird in diesem Beispiel in einem UND-Gatter P 2
die umgekehrte Bedingung creq · ers überwacht. Diese Bedingung
ist erfüllt, wenn beim Auftreten des Rückmeldesignals "ers"
nicht gleichzeitig das Anfragesignal "creq" auftritt. Dieses
Signal wird ebenfalls allen logischen Schaltungen . . . LM(i) . . .
zugeführt. In einem UND-Gatter Esh wird das Signal "sh", wie
oben bereits erwähnt wurde, erzeugt. Beim jeweiligen Auftreten
des Anfragesignals "creq" und bei noch nicht vollständig gefülltem
Pufferspeicher, was mit dem Zustand =1 angegeben
ist, erzeugt das Gatter Esh das Schiebesignal "sh", das jedem
Register aller Abschnitte des Pufferspeichers außer dem
letzten zugeführt wird. Als Gleichung heißt das: sh=creq · .
Wenn diese Bedingung erfüllt ist, erfolgt bei einem Taktsignal
(nicht angegeben) der Schiebevorgang, d. h. das Taktsignal
nur dann zum Schieben durchkommt, wenn "sh" auftritt.
Dieses "sh"-Signal kann nach Bedarf noch als Bestätigungssignal
"cack" benutzt werden, um anzugeben, daß bei der
Anfrage "creq" eine Aktion erfolgt ist, und das bedeutet,
daß auch tatsächlich die dem Eingang IN zugeführten Daten
in den ersten Abschnitt (REG (0)) aufgenommen sind. Der vollständige
Dateninhalt des Pufferspeichers wird dabei also
als ein Block um einen Abschnitt weitergeschoben.
Das Gatter Esh wird betrachtet, als sei es in der logischen
Schaltung LM (0) aufgenommen. Ebenso die Gatter P 1 und
P 2 in beliebigen logischen Schaltungen LM(i), schließlich
gibt es noch in Fig. 2 eine Leitung mit der Bezeichnung SFI
nach einer Stelle außerhalb des Pufferspeichers. SFI = s(0),
d. h. SFI hat ein logisches 1-Wert-Signal, solange s(0)=1 ist,
das bedeutet, solange REG (0) noch Daten enthält. Es ist eine
Angabe dafür, daß der Pufferspeicher noch Daten enthält
und daß also Daten auf den OUTB-Leitungen zur Verfügung
stehen.
In Fig. 3 und 4 sind einige Möglichkeiten zum Untergliedern
des Pufferspeichers im Hinblick auf die Ausführung
als in einem Halbleiter integrierte Schaltungen angegeben.
Die Modularität des Pufferspeichers nach Fig. 2 ermöglicht
viele Lösungen. In Fig. 3 ist mit VI 0, VI 1, . . . VI(n-1)
angegeben, daß mindestens pro Pufferspeicherabschnitt
Integration möglich ist: ein REG (0) ist zusammen mit der
logischen Schaltung LM (0) in einer IC zusammengefaßt.
Die Verbindung zwischen allen Abschnitten VIi wird im
Registerteil (oberer Teil der Fig. 3) durch die Ausgangssammelleitung
OUTB und die in der Zeichnung in der Sammelleitung
OUTB gedachten Verbindungen zwischen den Stufen der
aufeinanderfolgenden Pufferspeicherabschnitte im Zusammenhang
mit dem Weiterschieben von Daten von einem Abschnitt
zu einem folgenden Abschnitt gebildet. Die Verbindungen
zwischen den logischen Schaltungen und den weiteren Ein- und
Ausgangssignalen sind in Fig. 3 in einem Signalleitungen
bündel CB angegeben. Auf entsprechende Weise ist in Fig. 4
angegeben, daß Integration in integrierten Schaltungen pro
Gruppe HIR oder Gruppen HIR 1, . . . HIRp der Register REG (0),
. . . REG(n-1) bzw. pro Gruppe HILM oder Gruppen HILM 1, . . .
HILMm logischer Schaltungen LM (0), . . . LM(n-1) möglich ist.
Selbstverständlich ist die Ausführung kompletter Pufferspeicher
in einer integrierten Schaltung in einem Halbleiter
ebenfalls möglich. Das Zusammenschalten der Teile bzw. vollständiger
Pufferspeicher ergibt keine Komplikationen, was
weiter an Hand der Fig. 5 näher erläutert wird.
In Fig. 5 ist ein Ausführungsbeispiel der logischen
Schaltung LM(i) eines Pufferabschnitts (i) für die Steuerung
des Registers REG(i) dieses Abschnitts detailliert dargestellt.
Die logische Schaltung enthält in diesem Beispiel ein
Flipflop FFi mit einem Setz-Eingang S und einem Rückstelleingang
R und Ausgänge Q und . Weiterhin sind vier UND-Gatter
E 1, E 2, E 3 und E 4 angegeben. Der Aufbau der logischen
Schaltung ist einfach gehalten und ergibt eine gute Wirkungsweise
des Pufferspeichers, wenn für die Speicherelemente
(Flipflops) sowie die Speicherzellen der Register
beispielsweise flankengetriggerte
(edge-triggered) D-Flipflops benutzt werden. Diese Typen sind
im Handel erhältlich (beispielsweise unter der Typenbezeichnung
74LS74). In anderen Ausführungsformen können
andere Logikelemente wie NAND-Gatter und dergl. benutzt werden.
Für die Speicherelemente können namentlich Flipflops vom Typ
Meister-Sklave benutzt werden.
In den logischen Schaltungen
werden die erwünschten Signale für die
Steuerung des Pufferspeichers erzeugt.
a) selout(i) ist das Signal, das die Auswahl des Registers
REG(i) vornimmt, aus dem Daten zur Ausgangssammelleitung OUTB
ausgelesen werden. Dieses Signal selout(i) =1 tritt auf, wenn
die Bedingung
den logischen Wert "1" hat.
Im UND-Gatter E 4 wird festgestellt; ob diese Bedingung erfüllt
ist. Dabei wird der Zustand s(i) des betreffenden Abschnitts
betrachtet: der Abschnitt muß gefüllt sein, also s(i) =1.
Weiterhin muß gelten, daß alle weiteren Abschnitte des
Pufferspeichers leer sind. Der Ausdruck
stellt
dies fest. Dies geschieht im vorangehenden Abschnitt -
logische Schaltung LM(i +1) bzw. in LM(i) für LM(i-1) . . .
Das gleiche geschieht im UND-Gatter E 3: darin wird festgestellt,
ob
ist, d. h. ob die Bedingung erfüllt
ist, daß das Register REG(i) und alle (daher das Zeichen
als Boolesches Funktionszeichen) folgenden Register leer
sind (Zustände s(i) =0).
b) sh = · creq ist das Schiebesignal, das in dem
bereits bei der Beschreibung der Fig. 2 erwähnten Gatter Esh
entsteht. Dieses Gatter Esh und außerdem die in Fig. 2
erwähnten Gatter P 1 und P 2 können in eine der logischen
Schaltungen aufgenommen sein. Dies ist in Fig. 2 durch das
Aufnehmen namentlich von P 1 und P 2 in LM(i) und Esh in LM (0)
angegeben (siehe gestrichelte Linie). Bei der Ausführung
in integrierten Schaltungen können die erwähnten Gatter
mehrfach auftreten (zum Aufrechterhalten des untereinander
gleichen Aufbaus) und dabei nur insoweit mit den Signalen
creq und ers verbunden werden, als erforderlich ist, um die
gewünschten Signale "sh", creq · und · ers zu erhalten.
Siehe auch weiterhin Fig. 6, in der angegeben ist, wie die
Gatter P 1 und P 2 in die Gatter E′ 1 und E′2 pro LM(i) aufgenommen
sein können.
c) Zustandssignale s(i) (und . Zum Setzen und Rückstellen
der Zustände über die S- und R-Eingänge von FFi gibt
es einige Möglichkeiten.
Die erste ist: set(i) = creq · · s(i-1) mit reset(i) = · ers
für die Rückstellung. Diese Bedingungen können mit
logischen UND-Gattern pro logische Schaltung pro Abschnitt
einfach überwacht werden. Der Nachteil dieser Wahl ist jedoch
daß der Pufferspeicher damit nicht selbst-stabilisierend ist.
Ist ein fehlerhafter Zustand s(i) beispielsweise durch eine
Störung entstanden, kann dies zu einer bleibenden Fehlersituation
führen.
Eine zweite Möglichkeit ist:
und
dabei
Diese Bedingungen können auch wieder mit UND-Gattern pro
logischer Schaltung einfach überwacht werden. Für die
-Funktion siehe unter Punkt a). Diese Wahl gewährleistet
die Stabilität im Pufferspeicher: ein Fehler in einem Zustand
s(i) führt nicht zu einer bleibenden Fehlersituation. Der
Fehler verschwindet allmählich. Dabei wird im allgemeinen
Datenverlust auftreten.
Eine dritte Möglichkeit, bei der möglichst geringe Datenverluste
auftreten, ist die bevorzugte Lösung, die darin
besteht, daß
und dabei
ist. Die Verwirklichung
davon ist ebenso wieder mit logischen Schaltungen einfach
erreichbar. Dies ist in Fig. 5 mit Hilfe der UND-Gatter E 1
und E 2 dargestellt. Das Gatter E 1 überwacht die Bedingung
creq · · s(i-1) und das Gatter E 2 die Bedingung
womit bei der Erfüllung dieser Bedingung
der S-Eingang von FFi erregt wird. Im ersten Fall wird
s(i) :=1, im zweiten Fall wird :=1.
Es sei hier noch bemerkt, daß die in Fig. 2 dargestellten
Gatter P 1 und P 2 auch in jede der logischen
Schaltungen LM(i) aufgenommen gedacht werden können, wobei
Signalleitungen "ers" und "creq" statt creq · und · ers
längs aller logischen Schaltungen pro Abschnitt laufen.
Siehe Fig. 6. Für die Funktion kann im Gatter E′ 1 mit "creq"
und mit dem invertierten "ers" und mit dem Zustand s(i-1)
die Bedingung für set(i) überwacht werden. Ebenso kann im
Gatter E 2 mit dem invertierten "creq" und mit "ers" und mit
der Bedingung
die Bedingung für reset(i) überwacht
werden.
Die Anordnung nach Fig. 5 ist für alle logischen
Schaltungen LM (0), . . . LM(n-1) gleich. Für LM (0) kann der
Ausgangszustand s(i-1) nicht auftreten, so daß dieser
Eingang einen logischen Dauerwert "1" haben muß. Ebenso
wird LM(n-1) für den Eingang mit
den logischen
Dauerwert "1" haben. Bei der Erweiterung des Pufferspeichers
können diese Eingänge nach Bedarf wieder in die normalen
Signalwege aufgenommen werden, um eine Kopplung mit einem
vorangehenden oder nachfolgenden Pufferspeicher zu ermöglichen.
Es ist also eine besonders einfache Weise der Erweiterung
erreicht worden.
Hinsichtlich der einfachen Erweiterungsmöglichkeiten
des Pufferspeichers sei noch bemerkt, daß diese Erweiterung,
insbesondere bei in einem Halbleiter integrierter Pufferspeicher,
nicht notgedrungen bedeutet, daß alle Signalleitungen (nach
einem nachfolgenden oder vorangehenden Pufferspeicher) weitergezogen
werden müssen. Es ist die Verbindung eines "creq"-
Signaleingangs eines folgenden Pufferspeichers mit einem
SFI-Signalausgang eines vorangehenden Pufferspeichers und
weiterhin die Verbindung eines Signaleingangs "ers" eines
vorangehenden Pufferspeichers mit einem "cack"-Signalausgang
eines folgenden Pufferspeichers ausreichend. Die OUTB-Sammelleitung
wird selbstverständlich mit den IN-Leitungen aufeinanderfolgender
Pufferspeicher verbunden. Zwar sei dabei
vorausgesetzt, daß in diesem Fall die Durchgangszeit länger
wird: je angekoppeltem zusätzlichem 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- und
Ausgangsklemmen versehen sein müßte.
Claims (8)
1. Datenpufferspeicher vom Typ "first-in, first-out" mit
einer Anzahl Abschnitte, von denen jeder Abschnitt ein
Register zur Aufnahme eines Datenwortes und eine logische
Schaltung mit einem Speicherelement enthält, dessen Speicherzustand
angibt, ob in dem zugehörigen Register gültige
Daten gespeichert sind, wobei die Register hintereinander
geschaltet sind und dem Eingang zugeführte Datenwörter in
der Hintereinanderschaltung der Register verschiebbar sind,
wodurch in den zugehörigen logischen Schaltungen die Speicherelemente
umgeschaltet werden, und mindestens eine vorgegebene
Anzahl Register mit einem Ausgang des Datenpufferspeichers
verbindbar sind,
dadurch gekennzeichnet, daß eine mit dem Ausgang des Datenpufferspeichers
verbundene Ausgangssammelleitung (OUTB)
vorgesehen ist, die mit dem Ausgang jedes Registers
(REG (0), . . . REG(n-1)) verbindbar ist und daß nur diejenige
logische Schaltung (LM(i)), deren Speicherelement (FF(i))
gültige gespeicherte Daten im zugehörigen Register (REG(i))
angibt und die am weitesten vom Eingang (IN) entfernt ist,
die Ausgangssammelleitung (OUTB) mit dem Ausgang des zugehörigen
Registers (REG(i)) verbindet und bei Eintreffen
eines Übernahme-Rückmeldesignals (ers) dieses Speicherelement (FF(i))
in den entgegengesetzten Zustand bringt.
2. Datenpufferspeicher nach Anspruch 1,
dadurch gekennzeichnet, daß durch ein mit einem zugeführten
Datenwort auftretendes Anfragesignal (creq), wenn das am
weitesten vom Eingang (IN) entfernt liegende Speicherelement
(FF(n-1)) keine gültigen Daten im zugehörigen Register (REG(n-1))
anzeigt, der gesamte Inhalt des Pufferspeichers um einen
Abschnitt verschoben und das zugeführte Datenwort in das
Register (REG (0)) des ersten Abschnitts (0) eingeschrieben
und das Speicherelement (FF (0)) in den gültigen Daten angebenden Zustand gebracht
wird, wobei jedes Speicherelement (FF(i)) in den dem Speicherelement
(FF(i-1)) des vorhergehenden Abschnitts (i-1) entsprechenden
Zustand gebracht wird.
3. Datenpufferspeicher nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß jede logische
Schaltung (LM(i)) nur dann die Ausgangssammelleitung
(OUTB) mit dem Ausgang des zugehörigen
Registers (REG(i)) verbindet und anschließend das
Speicherelement in den keine gültigen Daten anzeigenden
Zustand bringt, wenn die Speicherelemente (FF(i +1) bis
FF(n-1)) aller vom Eingang (IN) aus gesehen folgenden
Abschnitte (i+1 bis n-1) keine gültigen Daten anzeigen.
4. Datenpufferspeicher nach Anspruch 1, 2 oder 3,
dadurch gekennzeichnet, daß jede logische
Schaltung (LM(i)) nur dann das Speicherelement (FF(i)) in
den gültige Daten anzeigenden Zustand bringt, wenn die
Speicherelemente (FF(i-1) bis FF (0)) aller vom
Eingang (IN) aus gesehenen vorhergehenden Abschnitte (i-1
bis 0) keine gültigen Daten anzeigen.
5. Datenpufferspeicher nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß ein Ausgang des Speicherelements
(FF (0)) des ersten Pufferspeicherabschnitts (0),
der das mit dem Eingang (IN) verbundene Register (REG (0))
enthält, mit einem weiteren Ausgang (SFI) des Datenpufferspeichers
verbunden ist.
6. Datenpufferspeicher nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß er als eine in einem Halbleiter
integrierte Schaltung ausgeführt ist.
7. Datenpufferspeicher nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß mindestens je ein Pufferspeicherabschnitt
mit dem betreffenden Register und der
zugeordneten logischen Schaltung eine in einem Halbleiter
integrierte Schaltung ist.
8. Datenpufferspeicher nach einem der vorhergehenden
Ansprüche,
dadurch gekennzeichnet, daß der Pufferspeicher mindestens
eine Gruppe von Register und mindestens eine Gruppe
logischer Schaltungen enthält und jede dieser Gruppe eine
in einem Halbleiter integrierte Schaltung ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL7713708A NL7713708A (nl) | 1977-12-12 | 1977-12-12 | Informatiebuffergeheugen van het "eerst-in, eerst-uit" type met vaste ingang en variabele uitgang. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2853240A1 DE2853240A1 (de) | 1979-06-13 |
DE2853240C2 true DE2853240C2 (de) | 1989-02-02 |
Family
ID=19829733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782853240 Granted DE2853240A1 (de) | 1977-12-12 | 1978-12-09 | Datenpufferspeicher vom typ first-in, first-out mit festem eingang und variablem ausgang |
Country Status (6)
Country | Link |
---|---|
US (1) | US4314361A (de) |
JP (1) | JPS5921055B2 (de) |
DE (1) | DE2853240A1 (de) |
FR (1) | FR2411468A1 (de) |
GB (1) | GB2009980B (de) |
NL (1) | NL7713708A (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US4864543A (en) * | 1987-04-30 | 1989-09-05 | Texas Instruments Incorporated | First-in, first-out memory with counter address pointers for generating multiple memory status flags |
US4833655A (en) * | 1985-06-28 | 1989-05-23 | Wang Laboratories, Inc. | FIFO memory with decreased fall-through delay |
CH671476A5 (de) * | 1986-06-16 | 1989-08-31 | Siemens Ag Albis | |
US4899307A (en) * | 1987-04-10 | 1990-02-06 | Tandem Computers Incorporated | Stack with unary encoded stack pointer |
GB2232797B (en) * | 1989-06-16 | 1993-12-08 | Samsung Semiconductor Inc | RAM based serial memory with pipelined look-ahead reading |
US5343435A (en) * | 1991-06-14 | 1994-08-30 | Integrated Device Technology, Inc. | Use of a data register to effectively increase the efficiency of an on-chip write buffer |
EP0932862A2 (de) | 1997-08-20 | 1999-08-04 | Koninklijke Philips Electronics N.V. | Organisation eines pufferspeichers zur verarbeitung transienter datenströme sowie mehrstufiges software-verwaltungssystem |
SE9904685D0 (sv) * | 1999-12-17 | 1999-12-17 | Switchcore Ab | A programmable packet decoder |
US6694389B2 (en) * | 2001-03-19 | 2004-02-17 | Sun Microsystems, Inc. | Method and apparatus for data flow analysis |
US6711494B2 (en) * | 2001-07-30 | 2004-03-23 | Emulex Corporation | Data formatter for shifting data to correct data lanes |
US6836852B2 (en) * | 2001-10-29 | 2004-12-28 | Agilent Technologies, Inc. | Method for synchronizing multiple serial data streams using a plurality of clock signals |
KR102532528B1 (ko) * | 2016-04-07 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE755666A (fr) * | 1969-09-18 | 1971-02-15 | Burroughs Corp | Memoire tampon pour entree d'ordinateur |
NL7014737A (de) * | 1970-10-08 | 1972-04-11 | ||
US3736575A (en) * | 1972-02-01 | 1973-05-29 | Dyad Systems Inc | Single line per bit asynchronous circuit and system |
DE2348452B2 (de) * | 1973-09-26 | 1977-12-29 | Siemens AG, 1000 Berlin und 8000 München | Anschluss taktgebundener datenuebertragungseinrichtungen an ein datenendgeraet, das zur aussendung von daten nach dem start-stop-prinzip ausgelegt ist |
DE2414874B2 (de) * | 1974-03-27 | 1977-05-05 | Synchrones schieberegister mit serien- und paralleleingabe und grundstelleingang | |
DE2441584A1 (de) * | 1974-08-30 | 1976-03-11 | Siemens Ag | Pufferspeicher |
US4090256A (en) * | 1975-05-27 | 1978-05-16 | Motorola, Inc. | First-in-first-out register implemented with single rank storage elements |
DE2729361A1 (de) * | 1976-07-29 | 1978-02-09 | Motorola Inc | Speicherschaltung |
-
1977
- 1977-12-12 NL NL7713708A patent/NL7713708A/xx not_active Application Discontinuation
-
1978
- 1978-12-08 GB GB7847708A patent/GB2009980B/en not_active Expired
- 1978-12-09 DE DE19782853240 patent/DE2853240A1/de active Granted
- 1978-12-11 FR FR7834813A patent/FR2411468A1/fr active Granted
- 1978-12-12 JP JP53153607A patent/JPS5921055B2/ja not_active Expired
-
1980
- 1980-06-06 US US06/157,132 patent/US4314361A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB2009980A (en) | 1979-06-20 |
FR2411468B1 (de) | 1985-01-18 |
FR2411468A1 (fr) | 1979-07-06 |
NL7713708A (nl) | 1979-06-14 |
DE2853240A1 (de) | 1979-06-13 |
GB2009980B (en) | 1982-04-15 |
JPS5921055B2 (ja) | 1984-05-17 |
US4314361A (en) | 1982-02-02 |
JPS5489441A (en) | 1979-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2853239C2 (de) | ||
DE2853276C2 (de) | ||
DE2853240C2 (de) | ||
DE2349377C2 (de) | Schaltwerk zur Durchführung von Datenverarbeitungsoperationen | |
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 | |
DE2853523A1 (de) | Dezentrale erzeugung von taktsteuersignalen | |
DE2015971A1 (de) | Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden | |
DE69610944T2 (de) | Schneller programmierbarer Frequenzteiler | |
EP0190554A1 (de) | Verfahren und Schaltungsanordnung zum Umschalten einer taktgesteuerten Einrichtung mit mehreren Betriebszuständen | |
DE3246432C2 (de) | ||
DE2750400A1 (de) | Schaltungsanordnung fuer das mit dem laden und abrufen von datensaetzen ueberlappende sortieren von datensaetzen | |
DE69626609T2 (de) | Pipeline-datenverarbeitungsschaltung | |
DE2321200A1 (de) | Einrichtung zur durchfuehrung boolescher verknuepfungen | |
DE2755070C2 (de) | Flipflopschaltung | |
DE68913919T2 (de) | Hochfrequenz-Taktimpulszähler. | |
DE2431975A1 (de) | Vorrichtung zur kontrolle einer multiplex-digital-bitfolge | |
EP0042961A2 (de) | Verfahren und Anordnung zur Erzeugung von Impulsen vorgegebener Zeitrelation innerhalb vorgegebener Impulsintervalle mit hoher zeitlicher Auflösung | |
DE2157515A1 (de) | Digitale Datenverarbeitungs-Einrichtung | |
DE2146108A1 (de) | Synchrone Pufferanordnung | |
DE4422784C2 (de) | Schaltungsanordnung mit wenigstens einer Schaltungseinheit wie einem Register, einer Speicherzelle, einer Speicheranordnung oder dergleichen | |
DE102004010562B4 (de) | Schnittstellenvorrichtung und Verfahren zur Synchronisation von Daten | |
DE112020002008T5 (de) | Schaltung zur erzeugung eines synchronen rücksetzsignals und digitale verarbeitungsvorrichtung | |
EP0012794B1 (de) | Verfahren und Einrichtung für eine elektronische Datenverarbeitungsanlage zur Prüfung der aus einer Instruktion abgeleiteten Steuersignale | |
DE1774168A1 (de) | UEbertragungs- und Speicherstufe fuer Schieberregister und aehnliche Anordnungen | |
EP0316458B1 (de) | Digitaler Chip mit Eingangsdaten-Synchronisierung |
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 |