DE2714106A1 - Verfahren zum zwischenspeichern von informationen in einem fifo-speicher - Google Patents

Verfahren zum zwischenspeichern von informationen in einem fifo-speicher

Info

Publication number
DE2714106A1
DE2714106A1 DE19772714106 DE2714106A DE2714106A1 DE 2714106 A1 DE2714106 A1 DE 2714106A1 DE 19772714106 DE19772714106 DE 19772714106 DE 2714106 A DE2714106 A DE 2714106A DE 2714106 A1 DE2714106 A1 DE 2714106A1
Authority
DE
Germany
Prior art keywords
address
memory
line
addresses
input
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.)
Granted
Application number
DE19772714106
Other languages
English (en)
Other versions
DE2714106B2 (de
DE2714106C3 (de
Inventor
Horst Dipl Phys Mayr-Stein
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.)
Tenovis GmbH and Co KG
Original Assignee
Telefonbau und Normalzeit GmbH
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 Telefonbau und Normalzeit GmbH filed Critical Telefonbau und Normalzeit GmbH
Priority to DE19772714106 priority Critical patent/DE2714106C3/de
Publication of DE2714106A1 publication Critical patent/DE2714106A1/de
Publication of DE2714106B2 publication Critical patent/DE2714106B2/de
Application granted granted Critical
Publication of DE2714106C3 publication Critical patent/DE2714106C3/de
Expired 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
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Description

  • Verfahren zum Zwischenspeichern von Informationen
  • in einen FIFO-Speicher Die vorliegende Erfindung betrifft ein Verfahren zum Zwischen speichern einer Mehrzahl von Informationen in einen FIFO-Speicher, bei dem Informationen in beliebiger Reihenfolge eingeschrieben und ausgelesen werden. Derartige Speicher zeichnen sich dadurch aus, daß die zuerst eingegebene Information auch als erste wieder ausgelesen wird. Dies ist dann beispielsweise der Fall, wenn die Zustandsmeldungen, die nacheinander anfallen, in der gleichen Reihenfolge wieder abgearbeitet werden sollen. Diese Zustandsmeldungen gelangen dann in der Reihenfolge ihres Auftretens in den Speicher und werden, sobald die hierfür geeigneten Steuereinrichtungen frei sind, und auch gerade keine neuen Eingabewünsche vorliegen, in der Reihenfolge ihrer Eingabe wieder abgearbeitet.
  • Dieses an sich bekannte Verfahren ist symbolisch in den Figuren 1 und 2 dargestellt. Fig.7 zeigt in symbolischer Darstellung einen FIFO-Speicher (S), in dem nacheinander die durchnumerierten Zeilen 1 bis n vorgesehen sind. Mit Hilfe von Eingabeadressen E wird, beginnend mit der Eingabeadresse "1" nacheinander eine Zeile des Speichers nach der anderen mit Meldungen vollgeschrieben. Durch einen Pfeil bei E in Fig.1 ist angedeutet, in welcher Richtung die Eingabeadresse E ansteigen und in welcher Richtung somit die einzelnen Zeilen nacheinander vollgefüllt werden. Wie aus Fig.1 ersichtlich, ist als letzte Eingabeadresse gerade die Adresse m verwendet worden, so daß diese Zeile die letzte volle Zeile ist.
  • Die mit Meldungen angefüllten Zeilen sind symbolisch durch Strichlinien ausgefüllt, während Frei-Zeilen ungestrichelt gezeichnet sind.
  • Aus Fig.1 ist weiterhin zu erkennen, daß die ersten Zeilen ~1" bis "k" durch eine entsprechende Adressierung mittels der Ausgabeadresse A ausgelesen wurden, so daß diese Zeilen wieder frei sind. Das Auslesen geschieht immer dann, wenn eine angeschlossene Bearbeitungseinheit hierzu in der Lage ist. In diesem Falle wird die nachfolgende Ausgabeadresse A auf den Speicher S angewendet, und die so gegebene Zeile geleert. Aus Fig.1 ist ersichtlich, daß die zuletzt ausgelesene Ausgabeadresse die Nr."k" hatte. Die Richtung, in der die Ausgabeadresse fortschreitet, ist ebenfalls durch einen Pfeil angedeutet.
  • In Fig.1 ist weiterhin festgehalten, daß mit dem Vollschreiben auf der letzten Eingabeadresse E mit der Nr."n" der Speicher S nicht unbedingt vollkommen voll sein muß, da in der Zwischenzeit schon eine ganze Reihe von am Anfang des Speichers S liegende Zeilen (in Fig.1 beispielsweise die Zeilen 1 bis "k") wieder ausgelesen sein können.
  • Der Adressengeber, welcher die für das Eingaben zur Verfügung stehenden freien Zeilen benennt, wird also zyklisch umlaufen und von der Eingabeadresse "n" auf die Eingabeadresse Nr."1 n zurückspringen. Entsprechendes gilt für die Ausgabeadresse. Dieser Vorgang ist durch eine mit einem Pfeil versehene Verbindungslinie zwischen der letzten Zeile n und der ersten Zeile 1 angedeutet.
  • Bei der Einspeicherung von Meldungen in den FIFO-Speicher S muß nun sichergestellt werden, daß nicht Meldungen in Zeilen eingeschrieben werden können, die bereits voll sind.
  • Anders ausgedrückt bedeutet dies, daß ein voller FIFO-Speicher keine Meldungen mehr aufnehmen darf.
  • Im Prinzip ist es nun möglich, aufgrund des Vergleichs der beiden Adressen A und E eine Aussage zu machen, ob der Speicher S voll ist oder nicht. Nimmt man nämlich in Fig.1 an, daß der verarbeiteten Einheit aus hier nicht zu erörternden Gründen eine Abarbeitung der hinter der Zeile "k" liegenden Zeile Z gerade nicht möglich ist, und daß aber ständig neue Meldungen eingegeben werden, so wird der Speicher, nachdem er bis zu seinem unteren Ende mit der Zeile "n" vollgefüllt ist, auch von oben her beginnend mit der Zeile "1" in Richtung zur Zeile k hin aufgefüllt. Es läßt sich daher sagen, daß, sobald die Eingabeadresse E die Ausgabeadresse A erreicht, (die Differenz zwischen der letzten Ausgabeadresse und der letzten Eingabeadresse also 0 wird) der Speicher voll sein muß. Leider ist aber dies einfache Kriterium doppeldeutig.
  • Dies läßt sich daran erkennen, wenn man in Fig.1 annimmt, daß die Eingabeadresse E festgehalten wird, also keine weiteren Eingaben erfolgen und die Verarbeitungseinheit eine Zeile nach der anderen abarbeitet, so daß sich die Ausgabeadresse A ständig erhöht. Hier wird schließlich ein Zeitpunkt erreicht, bei dem die letzte Ausgabeadresse A gleich der letzten Eingabeadresse E ist. Es liegt also das gleiche für einen vollen Speicher angegebene Kriterium vor, nur mit dem Unterschied, daß diesmal der Speicher vollkommen leer ist.
  • Es läßt sich nun zwar durch zusätzliche Kriterien eine Unterscheidung schaffen, wann bei der Bedingung A 5 E der Speicher voll ist und wann er in diesem Falle leer ist. Ein derartiges Kriterium kann beispielsweise dadurch gefunden werden, daß man bei erzielt er Adressengleichheit noch beachtet, welche der beiden Adressen zuletzt verändert wurde. Wurde nämlich zuletzt die Ausgabeadresse geändert, führt also eine Ausgabe zu dem Ergebnis A P E, so ist der Speicher leer, während in dem umgekehrten Falle, indem also eine Eingabe zu der Ergebnis E - A führt, der Speicher gerade vollgefüllt wurde. Derartige Abhängigkeiten lassen sich nun nur durch relativ komplizierte Schaltungen logisch darstellen.
  • Aufgabe der Erfindung ist es, ein Verfahren anzugeben, durch welches mittels einer einfach ausgestalteten Schaltung eine Überlastung des FIFO-Speichers S verhindert werden kann. Die Lösung dieser Aufgabe ist in dem Hauptanspruch dargelegt.
  • Die Erfindung besteht also im Prinzip darin, nicht die beiden Adressen miteinander zu vergleichen, bei denen zuletzt die Ausgabe bzw. Eingabe erfolgt ist, sondern hinsichtlich der Eingabeadresse die Adresse zu verwenden, die als nächste für die Eingabe vorgesehen ist. Hat also, wie bei Fig.1 gezeigt, die letzte Adresse E,bei der eingegeben wurde, den Wert "m", so wird die Adresse "m + 1" mit der Ausgabeadresse A verglichen, bei der zuletzt eine Zeile freigemacht wurde, also in Fig.1 die ZeileNr."k".
  • Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der Zeichnung erläutert. Darin zeigt: Fig.1 in symbolischer Darstellung einen FIFO-Speicher zur Erläuterung der bekannten Ein- und Ausgabe verfahren, und Fig.2 ebenfalls in symbolischer Darstellung einen weiteren FIFO-Speicher, an dem die Wirksamkeit des erfindungsgemäßen Verfahrens aufgezeigt werden kann.
  • Fig.2 zeigt einen gegenüber Fig.1 fortgeschrittenen Zustand der Zwischenspeicherung von Meldungen. Gegenüber Fig.1 sind in Fig.2 schon alle Zeilen "1" bis "e" abgearbeitet, während in die hierdurch frei gewordenen Zeilen Z bis zur Zeile Nr."h" neue Meldungen eingegeben wurden, nachdem der FIFO-Speicher S vorher schon bis zur Zeile n vollgeschrieben war.
  • Wendet man nun das erfindungsgemäße Verfahren auf die Konstellation nach Fig.2 an, so kann man sich vorstellen, daß aus irgendwelchen Gründen eine weitere Ausgabe und damit ein Entleeren der gefüllten Zeile Nr."e+1" unterbleibt. Die letzte angewendete Ausgabeadresse A hat also die Nummer "e". An dieser Größe von A wird sich, wie schon erläutert, auch nichts ändern, während der Speicher S, ausgehend von der Eingabeadresse Nr."h", immer mehr aufgefüllt wird. Zu irgendeinem Zeitpunkt wird dann der Moment gekommen sein, wo die Eingangsadresse den Wert "e-1" hat, so daß also diese Zeile ebenfalls ausgefüllt ist. Ist dieser Moment erreicht, so lautet die Adresse der Zeile, die als nächste vollgeschrieben werden soll Nr."e". Wendet man jetzt das erfindungsgemäße Verfahren an, so ist die letzte Ausgabeadresse "e" und die nächste Einschreibeadresse ebenfalls "e", die Differenz dieser beiden Adressen ist also Null. Dieses sehr einfach zu gewinnende Kriterium wird erfindungsgemäß dafür ausgewertet, die Zufuhr weiterer Meldungen zu dem Speicher S zu sperren.
  • Wie sich zeigt, versagt also das Verfahren hinsichtlich der Anzeige eines vollen Speichers nicht, es muß allerdings festgestellt werden, daß bei der einfachsten Ausführung immer eine einzige Zeile (im vorliegenden Ausführungsbeispiel ist es gerade die Zeile "e") nicht gefüllt werden kann.
  • Somit verbleibt nur noch der Nachweis, daß es bei leerem Speicher nicht zu der eingangs erläuterten Doppeldeutigkeit kommt. Dies soll nachfolgend anhand der Konstellation nach Fig.1 nachgewiesen werden. Geht man nämlich, wie in Fig.l dargestellt, davon aus, daß eine weitere Eingabe von Meldungen und damit ein Anwachsen der Eingabeadresse E unterbleibt, diese also ihren Wert "m" beibehält, während durch Abarbeiten der einzelnen Zeilen die Ausgabeadresse A ausgehend von "k" in Richtung "m" wächst, so erhält man schließlich den Zustand, daß A = E = m gilt, der Speicher S also leer ist. In diesem Falle wird aber nicht die Zufuhr weiterer Meldungen für den Speicher S unterbrochen, da ja die erfindungsgemäße Bedingung nicht erfüllt ist. Dies kommt daher, daß bei dem Vergleich der Adressen E = m+1 mit A P m für diesen gegebenen Zustand miteinander verglichen werden. Eine Übereinstimmung der beiden miteinander verglichenen Adressen ist also hier nicht gegeben, und es wird folglich auch nicht die Zufuhr weiterer Meldungen zu dem Speicher unterbrochen.
  • Es ist aber auch ausgeschlossen, daß sich im vorliegenden Fall der Wert der Ausgabeadresse über "m" anwachsen könnte, da Ja die letzte überhaupt verfügbare Meldung in der Zeile m eingeschrieben steht, die Zeilen also mit höheren Adressen gar nicht abgerufen werden können.
  • L e e r s e i t e

Claims (1)

  1. Patentanspruch Verfahren zum Zwischenspeichern einer Mehrzahl von Informationen in einen FIFO-Speicher, bei dem Informationen in beliebiger Folge eingeschrieben und ausgelesen werden, dadurch gekennzeichnet, daß die zuletzt verwendete Ausgabeadresse (A) und die nächste Eingabeadresse (E+1) markiert werden und danach die beiden so markierten Adressen zur Feststellung des Frei/Besetzt-Zustandes des FIFO-Speichers (S) miteinander verglichen werden und daß dann die Zufuhr neuer Informationen in den FIFO-Speicher (S) unterbrochen wird, wenn die Differenz der beiden Adressen Null wird.
DE19772714106 1977-03-30 1977-03-30 Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher Expired DE2714106C3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19772714106 DE2714106C3 (de) 1977-03-30 1977-03-30 Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19772714106 DE2714106C3 (de) 1977-03-30 1977-03-30 Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher

Publications (3)

Publication Number Publication Date
DE2714106A1 true DE2714106A1 (de) 1978-10-12
DE2714106B2 DE2714106B2 (de) 1981-04-30
DE2714106C3 DE2714106C3 (de) 1982-01-14

Family

ID=6005125

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772714106 Expired DE2714106C3 (de) 1977-03-30 1977-03-30 Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher

Country Status (1)

Country Link
DE (1) DE2714106C3 (de)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0184976A2 (de) * 1984-12-13 1986-06-18 United Technologies Corporation Interface-Vorrichtung zwischen mindestens einem Kanal und mindestens einem Bus
EP0185609A2 (de) * 1984-12-13 1986-06-25 United Technologies Corporation Kohärentes Interface mit zurückgeschleiften Sende- und Empfangsspeichern
EP0188990A2 (de) * 1984-12-13 1986-07-30 United Technologies Corporation Kohärentes Interface mit zurückgeschleiftem Empfangsspeicher
EP0273083A1 (de) * 1986-12-30 1988-07-06 International Business Machines Corporation Nicht-sperrender Warteschlangenmechanismus
FR2636447A1 (fr) * 1988-08-18 1990-03-16 Telemecanique Electrique Procede de gestion d'une memoire de messages dans une station d'un reseau de transmission de donnees et station concue pour la mise en oeuvre du procede
EP0507571A2 (de) * 1991-04-05 1992-10-07 Fujitsu Limited Empfangspuffersteuerungssystem
US6685241B2 (en) * 2000-12-14 2004-02-03 Whirlpool Corporation Closing device for a washing machine or a clothes dryer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS ERMITTELT *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0184976A2 (de) * 1984-12-13 1986-06-18 United Technologies Corporation Interface-Vorrichtung zwischen mindestens einem Kanal und mindestens einem Bus
EP0185609A2 (de) * 1984-12-13 1986-06-25 United Technologies Corporation Kohärentes Interface mit zurückgeschleiften Sende- und Empfangsspeichern
EP0188990A2 (de) * 1984-12-13 1986-07-30 United Technologies Corporation Kohärentes Interface mit zurückgeschleiftem Empfangsspeicher
EP0185609A3 (en) * 1984-12-13 1989-01-18 United Technologies Corporation Coherent interface with wraparound receive and transmit memories
EP0188990A3 (en) * 1984-12-13 1989-01-18 United Technologies Corporation Coherent interface with wraparound receive memory
EP0184976A3 (en) * 1984-12-13 1989-01-25 United Technologies Corporation Apparatus for interfacing between at least one channel and at least one bus
EP0273083A1 (de) * 1986-12-30 1988-07-06 International Business Machines Corporation Nicht-sperrender Warteschlangenmechanismus
FR2636447A1 (fr) * 1988-08-18 1990-03-16 Telemecanique Electrique Procede de gestion d'une memoire de messages dans une station d'un reseau de transmission de donnees et station concue pour la mise en oeuvre du procede
EP0507571A2 (de) * 1991-04-05 1992-10-07 Fujitsu Limited Empfangspuffersteuerungssystem
EP0507571A3 (en) * 1991-04-05 1993-10-20 Fujitsu Ltd Receiving buffer control system
US5765187A (en) * 1991-04-05 1998-06-09 Fujitsu Limited Control system for a ring buffer which prevents overrunning and underrunning
US6685241B2 (en) * 2000-12-14 2004-02-03 Whirlpool Corporation Closing device for a washing machine or a clothes dryer

Also Published As

Publication number Publication date
DE2714106B2 (de) 1981-04-30
DE2714106C3 (de) 1982-01-14

Similar Documents

Publication Publication Date Title
DE2351791C2 (de) Datenverarbeitungsanlage
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2829668C3 (de) Kanaldatenpufferspeicher
DE2551238C3 (de) Datenkonzentrator
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE1449765B2 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2222855A1 (de) Schienentransportsystem fuer Selektionsinformation und Daten
DE1774052B1 (de) Rechner
DE3015875A1 (de) Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem
DE2714106C3 (de) Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher
DE2811318C2 (de) Einrichtung zur Übertragung und Speicherung eines Teilwortes
DE2221442A1 (de) Assoziativspeicher
DE3123382A1 (de) "verfahren und einrichtung zum uebertragen von daten zwischen zentraleinheiten oder prozessoren von mehrprozessorsystemen"
DE3343348A1 (de) Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher
DE1774053B2 (de) Uebertragungssystem fuer digitale daten
DE2404887C2 (de) Schaltungsanordnung für den Informationsaustausch mit einem Rechner
DE1234054B (de) Byte-Umsetzer
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1474046A1 (de) Anordnung zur Umwandlung von Schluesselworten in Adressen
DE4435457C2 (de) Verfahren zum Archivieren von Prozeßdaten
DE2605066A1 (de) Kanalzuordnungsschaltung zur herstellung einer zeitvielfach-breitbandverbindung
DE1474090B2 (de) Datenverarbeitungsanlage
DE2626295C3 (de) Datenverarbeitungsanlage
EP1224509B1 (de) Verfahren zum initialisieren oder konfigurieren einer elektrischen schaltung
DE2815636C2 (de) Verfahren zur Abwicklung des Vermittlungsbetriebes einer Vermittlungsanlage, insbesondere Fernsprechvermittlungsanlage

Legal Events

Date Code Title Description
OD Request for examination
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee