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
Application number
DE2853239A
Other languages
English (en)
Other versions
DE2853239A1 (de
Inventor
Pierre Gerardus Jansen
Jozef Laurentius Wilhelmus Kessels
Benny Louisa Angelina Eindhoven Nl Waumans
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE2853239A1 publication Critical patent/DE2853239A1/de
Application granted granted Critical
Publication of DE2853239C2 publication Critical patent/DE2853239C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

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.
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.
DE19782853239 1977-12-12 1978-12-09 Datenpufferspeicher vom typ first-in, first-out mit variablem eingang und festem ausgang Granted DE2853239A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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