DE2714106C3 - Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher - Google Patents

Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher

Info

Publication number
DE2714106C3
DE2714106C3 DE19772714106 DE2714106A DE2714106C3 DE 2714106 C3 DE2714106 C3 DE 2714106C3 DE 19772714106 DE19772714106 DE 19772714106 DE 2714106 A DE2714106 A DE 2714106A DE 2714106 C3 DE2714106 C3 DE 2714106C3
Authority
DE
Germany
Prior art keywords
address
memory
line
fifo memory
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.)
Expired
Application number
DE19772714106
Other languages
English (en)
Other versions
DE2714106A1 (de
DE2714106B2 (de
Inventor
Horst Dipl.-Phys. 6382 Friedrichsdorf 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

Die vorliegende Erfindung betrifft ein Verfahren zum Zwischenspeichern 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 herfü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 F i g. 1 und 2 dargestellt. F i g. 1 zeigt in symbolischer Darstellung einen FIFO-Speicher (S), in dem nacheinander die durchnumeriercen Zeilen 1 bis π vorgesehen sind. Mit Hilfe von Eingabeadressen Fwird, beginnend mit der Eingabeadresse »1«, nacheinander eine Zeile des Speichers nach der anderen mit Meldungen vollgeschrieben. Durch einen Pfeil bei E in F i g. 1 ist angedeutet, in welcher Richtung die Eingabeadressen E ansteigen und in welcher Richtung somit die einzelnen Zeilen nacheinander vollgefüllt werden. Wie aus F i g. 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 F i g. 1 ist weiterhin zu erkennen, daß die ersten Zeilen »1« bis »Ar« 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 nachfolgend: Ausgabeadresse A auf den Speicher S angewendet, und die so gegebene Zeile geleert. Aus F i g. 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 F i g. 1 ist weiterhin festgehalten, daß mit dem Vollschreiben auf der letzten Eingabeadresse Emit 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 stehenaen freien Zeilen benennt, wird also zyklisch umlaufen und von der Eingabeadresse »n« auf die Eingabeadresse Nr. »1« 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 5 voll ist oder nicht Nimmt man nämlich in F i g. 1 an, daß der verarbeiteten Einheit aus hier nicht zu erörternden Gründen eine Abarbeitung der hinter der Zeile »Ar« 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 F i g. 1 annimmt, daß die Eingabeadresse Efestgehalten 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 Eist. 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 Λ = £der Speicher voll ist und wann er in diesem Falle leer ist. Ein derartiges Kriterium kann beispielsweise dadurch gefunden werden, daß man bei erzielter 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 = E, so ist der Speicher leer, während in dem umgekehrten Falle, indem also eine Eingabe zu dem 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 verwen-'en, die als nächste für die Eingabe vorgesehen ist. Hat also, wie bei F i g. 1 gezeigt, die letzte Adresse E, bei der eingegeben wurde, den Wert »m«, so wird die Adresse
»/π+1« mit der Ausgabeadresse /4 verglichen, bei der zuletzt eine Zeile freigemacht wurde, also in F i g. 1 die Zeile Nr. »k<c
Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der Zeichnung erläutert. Darin zeigt
Fi g. 1 in symbolischer Darstellung einen FIFO-Speicher zur Erläuterung der bekannten Ein- und Ausgabeverfahren und
Fig.2 ebenfalls in symbolischer Darstellung einen weiteren FIFO-Speicher, an dem die Wirksamkeit des erfindungsgemäßen Verfahrens aufgezeigt werden kann.
F i g. 2 zeigt einen gegenüber F i g. 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 π vollgeschrieben war.
Wendet man nun das erfindungsgemäße Verfahren auf die Konstellation nach F i g. 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 Eingabeadresse den Wert »e-1« Isat, 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 F i g. 1 nachgewiesen werden.
Geht man nämlich, wie in F i g. 1 dargestellt, davon aus, daß eine weitere Eingabe von Meldungen und damit ein Anwachsen der Eingabeadresse Eunterbleibt, diese also ihren Wert »m« beibehält, während durch Abarbeiten der einzelnen Zeilen die Ausgabeadresse A ausgehend von »Ar« in Richtung »/n« 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+\ mit A = 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ß 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.
Hierzu 1 Blatt Zeichnungen

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 (£"+1) markiert werden und danach die beiden so markierten Adressen zur Feststellung des Frei/Besetzt-Zustandes des FIFO-Speichers ^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 DE2714106A1 (de) 1978-10-12
DE2714106B2 DE2714106B2 (de) 1981-04-30
DE2714106C3 true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4635254A (en) * 1984-12-13 1987-01-06 United Technologies Corporation Coherent interface with wraparound receive memory
US4625307A (en) * 1984-12-13 1986-11-25 United Technologies Corporation Apparatus for interfacing between at least one channel and at least one bus
US4623997A (en) * 1984-12-13 1986-11-18 United Technologies Corporation Coherent interface with wraparound receive and transmit memories
DE3689151D1 (de) * 1986-12-30 1993-11-11 Ibm Nicht-sperrender Warteschlangenmechanismus.
FR2636447B1 (fr) * 1988-08-18 1993-03-05 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
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
DE10062458B4 (de) * 2000-12-14 2004-06-17 Whirlpool Corp., Benton Harbor Schließvorrichtung für eine Waschmaschine oder einen Waschtrockner

Also Published As

Publication number Publication date
DE2714106A1 (de) 1978-10-12
DE2714106B2 (de) 1981-04-30

Similar Documents

Publication Publication Date Title
DE2351791C2 (de) Datenverarbeitungsanlage
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE1449765B2 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2551238C3 (de) Datenkonzentrator
DE2222855A1 (de) Schienentransportsystem fuer Selektionsinformation und Daten
DE2756890A1 (de) Datenverarbeitungssystem
DE1774052B1 (de) Rechner
DE2714106C3 (de) Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher
DE2321200B2 (de) Schaltungsanordnung zur Durchführung logischer Verknüpfungen
DE1774053B2 (de) Uebertragungssystem fuer digitale daten
DE2610428C3 (de) Anordnung zur Steuerung der Zwischenspeicherung von zwischen zwei Funktionseinheiten zu übertragenden Daten in einem Pufferspeicher
DE1234054B (de) Byte-Umsetzer
DE69937585T2 (de) Verfahren zum willkürlichen Zugriff auf einen Speicherbereich einer digitalen Verarbeitungsvorrichtung in einem physikalischen Adressierungsmodus und einem virtuellen Adressierungsmodus und Vorrichtung zur Durchführung des Verfahrens
EP0077084B1 (de) Munitionsbehälter, insbesondere Trommelmagazin
DE2404887C2 (de) Schaltungsanordnung für den Informationsaustausch mit einem Rechner
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1474046A1 (de) Anordnung zur Umwandlung von Schluesselworten in Adressen
DE2142948A1 (de) Verfahren und Konverter zur Konvertierung von Daten
DE1069406B (de) Imtpuilsgruppensortierung
DE4435457C2 (de) Verfahren zum Archivieren von Prozeßdaten
DE2626295C3 (de) Datenverarbeitungsanlage
Predöhl Gustav Gassel
DE1263858C2 (de) Verfahren zum periodischen abtasten einer vielzahl von leitungen auf ihren elektrischen zustand hin und vorrichtungen zur durchfuehrung dieses verfahrens
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