-
Die vorliegende Erfindung betrifft eine Methode und
Vorrichtung der Verzöger-Verwaltung, die es ermöglicht, in
einem elektronischen Computer Leseanforderungen bezüglich noch
nicht im Computerspeicher gespeicherter Daten zu verzögern.
-
In einem elektronischen Computer, wie beispielsweise
einem Mikrocomputer, kommt es bei einem gewünschten Zugriff
auf in einer Speichervorrichtung des Computers gespeicherte
Daten zu einer Leseanforderung, welche die speziellen
Speicheradressen anzeigt, worin die Daten gespeichert sind.
Die gespeicherten Daten werden dann ausgelesen und nach Bedarf
verarbeitet. Bei bestehenden seriell verarbeitenden Computern
besteht im allgemeinen nicht die Möglichkeit, auf Daten
zuzugreifen, die nicht im Speicher gespeichert sind. Bei
seriell verarbeitenden Computern, in denen Programmbefehle in
individuellen, unabhangigen Vorrichtungen ausgeführt werden,
kommt es bisweilen zu Leseanforderungen, welche Daten
betreffen, die noch nicht den Speicher erreicht haben, und es
muß einen Mechanismus geben, durch den die Leseanforderung
verzögert wird, bis die benötigten Daten den Speicher erreicht
haben.
-
Die Fig. 1a und 1b stellen ein System nach dem Stande der
Technik schematisch dar, in das eine solche Verzöger-
Verwaltungsvorrichtung eingebaut ist, wobei das System eine
Verarbeitungsvorrichtung und eine Speichervorrichtung umfaßt,
welche eine Einrichtung zur Verzögerung von Leseanforderungen
(im folgenden einfach als eine "Leseverzögervorrichtung"
bezeichnet) aufweist. Eine Leseverzogervorrichtung 100 ist in
Fig. 1a dargestellt, wobei die Leseverzögervorrichtung einen
Verteilerteil (Zuordnungsteil) 100a, einen Speicherteil 100b,
einen Verzöger-Verwaltungsteil (Laufzeit-Verarbeitungsteil)
100c und einen Löschsteuerteil 100d umfaßt. Zum Verschicken
von Informationen von der Verarbeitungsvorrichtung 103 an die
Leseverzogervorrichtung 100 und von der
Leseverzögervorrichtung 100 an die Verarbeitungsvorrichtung
103 sind die Kanäle 101 bzw. 102 vorgesehen.
-
Der Austausch von Informationen zwischen der
Verarbeitungsvorrichtung 103 und der Leseverzögervorrichtung
100 umfaßt die Verschickung eines einzelnen Datenpakets
(hierin als ein "Token" bezeichnet). Wenn der Verteilerteil
100a ein Platzanforderung-(SRQ)-Token 104 aus der
Verarbeitungsvorrichtung 103 empfängt, so schickt er ein eine Adresse
für den angeforderten Platz umfassendes Platz-bereitgestellt-
(SP)-Token 107 zurück. Der Speicherteil 100b empfängt auch ein
Schreib-(WRT)-Token 105 und ein Leseanforderung-(READ)-Token
106; auf ersteres hin trägt er einen Parameter V in eine
Adresse A ein, und auf letzteres hin liest er den Inhalt V von
Adresse A und verschickt die gelesenen Daten in Gestalt eines
Daten-(DT)-Tokens 108 an die Verarbeitungsvorrichtung 103. Die
Bedeutung der zurückgeschickten Daten wird durch den Parameter
Ra angezeigt. Der Verzöger-Verwaltungsteil 100c und der
Löschsteuerteil 100d übertragen Token nicht direkt an die
Verarbeitungsvorrichtung 103. Der Verzöger-Verwaltungsteil
100c verwaltet Leseanforderung-Token, die noch nicht im
Speicherteil 100b eingetroffene Daten betreffen, und der
Löschsteuerteil 100d löscht nicht mehr benötigte
Speicherbereiche frei. Jedes Token unterscheidet sich von den
anderen anhand eines Codes, welcher Teil jenes Tokens bildet.
-
Fig. 1b zeigt die Gestalt eines jeden Tokens. Die über
Zahlzeichen 464 bis 468 gekennzeichneten Tokengestalten
entsprechen jeweils den Token 104 bis 108 in Fig. 1a.
-
Aus Fig. 1b ist ersichtlich, daß jedes Token vier Felder
umfaßt, nämlich ein erstes Codefeld 451, ein zweites Codefeld
452, ein drittes Codefeld 453 und ein viertes Codefeld 454.
-
Das Codefeld 451 dient dem Zweck der Unterscheidung
zwischen den verschiedenen Tokenarten. Im Beispiel der Fig.
1b sind dem Feld 451 vier Bit zugewiesen, mit denen eine
Benennung von sechzehn unterschiedlichen Tokenarten möglich
ist. Die zweiten, dritten und vierten Felder 452 bis 454
weisen im gezeigten Beispiel der Einfachheit halber jeweils
vierundzwanzig Bit auf, doch läßt sich jedem Feld eine
beliebige Anzahl an Bits je nach den Anforderungen des Systems
zuweisen. Die schattierten Teile der Diagramme zeigen
-
Felder,
die in den Token, auf welche sich die Diagramme beziehen,
nicht benutzt werden.
-
Die Fig. 2a, 2b und 2c dienen der ausführlichen
Erläuterung der Funktionsweisen von Speicherteil 100b und dem
Verzoger-Verwaltungsteil 100c. In Fig. 2a bezeichnet
Zahlzeichen 100b den Speicherteil, und 201 und 202 sind die
Eingangs- bzw. Ausgangskanäle der in den Speicherteil 100b
hinein- bzw. daraus herausgehenden Token. Die Wörter innerhalb
des Speicherteils 100b enthalten ein "Markierungsflagfeld" und
ein "Datenfeld". Das Markierungsflagfeld der Adresse A umfaßt
ein gültiges Markierungsflag (P) 203, das anzeigt, ob es im
Datenfeld irgendwelche Daten von Belang gibt, und ein
Verzöger-Markierungsflag (D) 204, das anzeigt, ob eine
Leseanforderung-Verzögerung stattgefunden hat. Das will sagen,
daß bei einem durch den Dateneingang erfolgten Eintrag in das
Datenfeld das gültige Markierungsflag 203 des Tokens zur "1"
wird und daß beim Auslöschen dieses Eintrags das
Markierungsflag 203 zur "0" wird. Wenn das Leseanforderung-
Token verzögert ist, so wird das Verzöger-Markierungsflag 204
zur "1". Wenn in einer Speichervorrichtung, wie beispielsweise
100b der Fig. 1a, ein einer bestimmten Adresse A
entsprechendes Leseanforderung-Token 206 - wie in Fig. 2a
gezeigt - eintrifft, so hängt das Verhalten des Speicherteils
100b vom Zustand des gültigen Markierungsflags in Adresse A
ab.
-
Das will sagen:
-
(1) Falls das gültige Markierungsflag auf "1" steht, dann
werden - wie in Fig. 2b gezeigt - die im Datenteil der
Adresse A gespeicherten Daten V gelesen, in das Token
mit dem Parameter Ra eingetragen und als das Daten-Token
207 verschickt.
-
(2) Wenn das vorhandene Markierungsflag auf "0" steht, dann
sind die für Adresse A vorgesehenen Daten noch nicht
eingetroffen, weshalb die Leseanforderung gespeichert
werden muß. Unter Bezugnahme auf Fig. 2c wird das
Leseanforderung-Token im Feld 207 (beispielsweise
Adresse Q) im Ermessen des Verzöger-Verwaltungsteils
100c gespeichert. Zugunsten einer wirtschaftlichen
Verwendung des Speicherplatzes wird der Leseparameter
der Adresse A gelöscht und gespeichert, doch ist diese
Löschung in der Praxis nicht unbedingt notwendig. In
diesen Situationen werden die Informationen, welche das
Vorhandensein eines ersten Verzöger-Tokens in Adresse A
zeigen (in den Zeichnungen durch ein Sternzeichen
gezeigt) in einem Link-Feld 208 gezeigt. Im Datenfeld
der Adresse A, in Bezug auf welche die Verzögerung
stattgefunden hat, wird der Arbeitsspeicheradressen-
Zeiger Q des Leseanforderung-Tokens gespeichert. Ins
Verzöger-Markierungsflag 204 wird eine "1" eingetragen.
-
Bei dieser Vorrichtung können viele Leseanforderung-Token
eintreffen, welche die gleiche Adresse A vom Speicherteil 100b
betreffen. Deshalb können viele Token bezüglich der gleichen
Adresse verzögert sein, und die Verzöger-Token werden, wie in
Fig. 3a gezeigt ist, in einer Serie gespeichert. Unter
Bezugnahme auf die Fig. 3a und 3b kennzeichnen die Zahlzeichen
301 bis 305 Gegenstände, die den durch die Zahlzeichen 201 bis
205 in den Fig. 2a bis 2c gekennzeichneten entsprechen. Die
im Verzöger-Verwaltungsteil 100c gespeicherten Felderserien
werden in der Gestalt von Verzöger-Token eingesetzt. Wenn
somit das der Adresse A entsprechende Schreib-Token 307
eintrifft, werden sämtliche Serien von Verzöger-Token, die
darauf warten, daß in Adresse A Daten eingetragen werden,
freigesetzt, wie in Fig. 3b gezeigt. Wenn das Token 307
eintrifft, so werden die Daten V ins Datenfeld der Adresse A
eingetragen, und gleichzeitig wird eine "1" in das gültige
Markierungsflag 303 eingetragen, und eine "0" wird in das
Verzöger-Markierungsflag 304 eingetragen. Bei ihrem Eintragen
werden die Daten V und jede Adresse in der Verzögerungskette
zueinander in Beziehung gesetzt, und die Daten-Token 308 bis
310 werden gebildet und an die Verarbeitungsvorrichtung
verschickt. Die vorher zur Speicherung der Verzöger-Token
verwendeten Adressen Q&sub1; bis Q&sub3; werden frei und lassen sich
während anschließender Verzöger-Verarbeitung einsetzen.
-
Beim oben erwähnten Verfahren ist es nicht möglich,
während der Verwaltung der Serien der Verzöger-Token neue
Leseanforderungen oder Schreibbefehle zu verwalten, und dies
führt dazu, daß das Verfahren ziemlich langsam ist. Dies
Problem läßt sich nicht durch bloßes Trennen des Speicherteils
100b und des Verzöger-Verwaltungsteils 100c sowie Anwenden des
unter Bezugnahme auf die Fig. 2a bis 2c erläuterten Verfahrens
losen. Eine solche Trennung ist in den Fig. 4a und 4b
dargestellt. Mit einer derartigen Anordnung ist es möglich,
daß ein Speicherteil 100b und ein Verzöger-Verwaltungsteil
100c im Parallelbetrieb arbeiten, doch stellen sich dadurch
neue Probleme eigener Art. Unter Bezugnahme auf die Fig. 4a
bis 4e sollen diese Probleme erläutert werden.
-
Die Zahlzeichen 401 bis 404 in den Fig. 4a bis 4e
entsprechen den Zahlzeichen 301 bis 304 in den Fig. 3a und 3b
und zeigen entsprechende Funktionen an. Die Kanäle 409 bzw.
410 tragen Token, die vom Verzöger-Verwaltungsteil 100c zum
Speicherteil 100b bzw. vom Speicherteil 100b zum Verzöger-
Verwaltungsteil 100c laufen. Unter Bezugnahme auf Fig. 4a sind
zwei Leseanforderung-Token bezüglich der Adresse A der
Speichervorrichtung 100b als vorher verzögert gewesen gezeigt.
Dann trifft ein weiteres Leseanforderung-Token 411, das auf
Adresse A bezogen ist, ein. Wie sich jeder Bestandteil des
Systems unter diesen Umständen verhält, soll nun im folgenden
beschrieben werden:
-
(1) Daten sind noch nicht in die Adresse A eingetragen
worden und somit steht das gültige Markierungsflag 403
der Adresse A auf "0". Das Leseanforderung-Token 411 muß
verzögert werden, und unter Bezugnahme auf Fig. 4b wird
es zum Verzöger-Token DREAD 412 und wird an den
Verzöger-Teil 100c verschickt. Zu diesem Zeitpunkt ist
der Parameter der Adresse A die führende Adresse Q&sub2; der
aufrechterhaltenen Serie von Verzöger-Token bezüglich
Adresse A.
-
(2) Unter Bezugnahme auf Fig. 4c wird beim Eintreffen des
Verzöger-Tokens 412 bei der Verzöger-
Verwaltungsvorrichtung 100c das Token 412 in einer
geeigneten freien Adresse (beispielsweise Q&sub3;)
untergebracht und gleichzeitig wird ein neues führendes
Adress-Token (NQA) 413 an die Speichervorrichtung 100b
ausgegeben. Das Token 413 hat zur Aufgabe, die neue
führende Adresse Q&sub3; der Serie von Verzöger-Token an die
Speichervorrichtung 100b zuzustellen.
-
Die neuen, in oben beschriebener Weise erschienenen Token
DREAD und NQA sind in Fig. 4f gezeigt. Die Felder 751 bis 754
in Fig. 4f entsprechen den Feldern 451 bis 454 in Fig. 1b. Bei
den schattierten Teilen vom Diagramm handelt es sich um nicht
benutzte Felder.
-
Es sei angenommen, daß Token 413 am Speicherteil 100b
gleichzeitig mit einem neuen Leseanforderung-Token 414, das
Adresse A betrifft, eintrifft.
-
(3) Falls das Token 413 vor Token 414 eintrifft, so trägt
die Speichervorrichtung 100b den durch Token 413
benannten Parameter Q&sub3; in Adresse A ein. Unter Bezugnahme
auf Fig. 4d benennt der Zeiger aus Adresse A den ersten
Token in der Serie, und die Token-Verzöger-Verwaltung
wird regulär abgeschlossen.
-
(4) Falls das Token 413 nach Token 414 eintrifft, dann wird
unter Bezugnahme auf Fig. 4e das Token 414 verzögert und
wird zu Token 411, und der Parameter des verzögerten
Tokens 411 wird zum neuen Wert Q&sub2; von oben. Selbst wenn
das Token 411 im Verzöger-Verwaltungsteil 100c
gespeichert ist, so sind der Adresse Q&sub2; zwei Token
zugehörig, und die Verzöger-Token bilden deshalb nicht
die normale Serie von Einzeltoken.
-
Aus der Patentschrift EP-A-0149900 ist es bekannt, in
einer Vorrichtung mit einer Halbbytemodusfunktion einen Puffer
zum Empfangen einer Serie von Lese- und Schreibanforderungen
vorzusehen. Der durch die Halbbytemodusfunktion
bereitgestellte Vorteil liegt darin, daß Datenketten schneller
verarbeitet werden können, aber es ist zweckmäßig, beim
Einsatz einer Halbbytemodusfunktion Doppelleseanforderungen
und Doppelschreibanforderungen zu erzeugen. Dies kann zu Lese-
und Schreibanforderungen führen, deren Reihung außer Tritt
ist. Zur Vermeidung dieses Problems im beschriebenen System
werden Leseanforderungen in einer fifo-Warteschlange
[ersteein/erste-aus] gespeichert. Die Leseanforderungen werden in
der Reihenfolge der Warteschlange ausgeführt, sofern ein für
den Zweck bereitgestellter Logikschaltkreis keine falsch
gereihte Leseanforderung ermittelt. Wird eine falsch gereihte
Leseanforderung ermittelt, so erfolgt eine Ausführung der
ermittelten Leseanforderung außer der Reihe. Somit betrifft
das Dokument eher ein bestimmtes Problem, das aus dem Betrieb
im Halbbytemodus erwächst, denn das generelle Problem einer
Verzögerung der Leseanforderung in Computern, in denen Befehle
in unabhängigen Vorrichtungen ausgeführt werden.
-
Es ist eine Aufgabe der vorliegenden Erfindung, die oben
erwähnten Nachteile im Stande der Technik zu umgehen oder zu
mildern und die Möglichkeit zu einer effektiven Verwaltung des
Betriebs der Speichervorrichtung und der Verzöger-
Verwaltungsvorrichtung zu schaffen.
-
Gemäß der vorliegenden Erfindung ist eine Verzöger-
Verwaltungsmethode zum Verzögern von Leseanforderung-
Anweisungen vorgesehen, welche noch nicht in einem
Speicherteil eines Computers gespeicherte Daten betreffen, bei
der ein Verzöger-Verwaltungsteil des Computers Daten, die
freie Adressen innerhalb des Verzöger-Verwaltungsteils
kennzeichnen, an den Speicherteil verschickt, eine Speicherung
der Daten bezüglich freier Adressen im Speicherteil erfolgt,
der Speicherteil einen Empfang einer Leseanforderung bezüglich
einer noch nicht mit Daten beschriebenen Adresse des
Speicherteils ermittelt, der Speicherteil bei Ermittlung einer
solchen Leseanforderung Daten, die die zu verzögernde
Leseanforderung und eine freie aus den im Speicherteil
gespeicherten Adressen entnommene Adresse kennzeichnen, an den
Verzöger-Verwaltungsteil verschickt, die an den Verzöger-
Verwaltungsteil verschickte freie Adresse aus den im
Speicherteil gespeicherten Adressen ausgelöscht wird, und der
Verzöger-Verwaltungsteil die aus dem Speicherteil empfangenen,
verzögerten Leseanforderung-Daten bei der freien, durch die
empfangenen Daten gekennzeichneten Adresse speichert; und beim
Schreiben von Daten an die die verzögerte Leseanforderung
betreffende Adresse des Speicherteils eine Freigabeanforderung
vom Speicherteil an den Verzöger-Verwaltungsteil verschickt
wird, der Verzöger-Verwaltungsteil auf die Freigabeanforderung
durch Verschicken der verzögerten Leseanforderung an den
Speicherteil reagiert und der Verzöger-Verwaltungsteil Daten
an den Speicherteil verschickt, die anzeigen, daß die Adresse,
aus welcher die verzögerte Leseanforderung freigegeben worden
ist, wieder eine freie Adresse ist, woraufhin der Speicherteil
die vom Verzöger-Verwaltungsteil angezeigte freie Adresse
nochmals bekräftigt.
-
Die vorliegende Erfindung liefert ferner eine Verzöger-
Verwaltungsvorrichtung zum Verzögern von Leseanforderung-
Anweisungen, welche noch nicht in einem Speicherteil eines
Computers gespeicherte Daten betreffen, umfassend einen
Verzöger-Verwaltungsteil, Mittel zur Kennzeichnung freier
Adressen im Verzöger-Verwaltungsteil, Mittel zum Übertragen
freier Adressen aus dem Verzöger-Verwaltungsteil zum
Speicherteil, Mittel im Speicherteil zum Speichern von die
freien Adressen kennzeichnenden Daten, Mittel zur Ermittlung
einer zu verzögernden Leseanforderung, die eine noch nicht mit
Daten beschriebene Adresse des Speicherteils betrifft, Mittel
zum Verschicken von Daten, die eine zu verzögernde ermittelte
Leseanforderung und eine ausgewählte freie Adresse, die aus
dem Speichermittel der freien Adresse entnommen ist,
kennzeichnen, an den Verzöger-Verwaltungsteil, Mittel zum
Auslöschen der ausgewählten freien Adresse aus dem
Speichermittel für freie Adressen, Mittel zum Speichern der
aus dem Speicherteil empfangenen Leseanforderung bei der
ausgewählten freien Adresse des Verzöger-Verwaltungsteils,
Mittel zur Ermittlung des Schreibens von Daten an die besagte
Adresse des Speicherteils, Mittel zum Erzeugen einer
Freigabeanforderung, wenn das Schreiben von Daten an die
besagte Adresse ermittelt wird, Mittel zum Übertragen der
Freigabeanforderung an den Verzöger-Verwaltungsteil, auf die
Freigabeanforderung reagierendes Mittel zur Erzeugung der
verzögerten Leseanforderung, Mittel zum Übertragen der
erzeugten verzögerten Leseanforderung an den Speicherteil,
Mittel zur Ermittlung des Freizustands einer ausgewählten
freien Adresse und Mittel zum Übertragen der freigemachten,
ausgewählten freien Adresse an den Speicherteil zur
Speicherung im Speichermittel für freie Adressen.
-
Wie oben erwähnt, besteht die Aufgabe der vorliegenden
Erfindung darin, daß, wenn eine Leseanforderung nach noch
nicht in der Speichervorrichtung eingetroffenen Daten erfolgt,
die Speichervorrichtung an den Verzöger-Verwaltungsteil nicht
nur vorher aus dem Verzöger-Verwaltungsteil empfangene
Informationen über freie Adressen, sondern auch Daten
bezüglich der zu verzögernden Leseanforderung verschickt,
wobei der Verzöger-Verwaltungsteil die Leseanforderung-Daten
in der freien, durch die mit den Leseanforderung-Daten
verschickten Informationen gekennzeichneten Adresse speichert.
-
Ein Beispiel der vorliegenden Erfindung sei nachfolgend
anhand der beigefügten Zeichnungen beschrieben. Es zeigen in
den Zeichnungen:
-
Fig. 1a ein Blockdiagramm einer Verzöger-
Verwaltungsvorrichtung nach dem Stande der Technik;
-
Fig. 1b ein schematisches Diagramm, das die Gestalt von in
der Vorrichtung der Fig. 1a eingesetzten Token
darstellt;
-
Die Fig. 2a bis 2c, 3a und 3b, sowie 4a bis 4f schematische
Diagramme, die die Betriebsweise der Verzöger-
Verwaltungsvorrichtung nach dem Stande der Technik
darstellen;
-
Fig. 5 ein Blockdiagramm einer Verzöger-
Verwaltungsvorrichtung, die eine Ausführungsform
der vorliegenden Erfindung bildet;
-
Fig. 6 ein Blockdiagramm, das Bestandteile der Vorrichtung
der Fig. 1 darstellt; und
-
die Fig. 7a bis 7j schematische Diagramme, die die
Betriebsweise einer Verzöger-Verwaltungsvorrichtung
darstellen, die eine Ausführungsform der
vorliegenden Erfindung bildet.
-
Als Beispiel sei die vorliegende Erfindung nun
bezugnehmend auf die Fig. 5, 6 sowie 7a bis 7j aus den
beigefügten Zeichnungen beschrieben.
-
Unter Bezugnahme auf Fig. 5 benennt das Zahlzeichen 1
eine Verarbeitungsvorrichtung, die der
Verarbeitungsvorrichtung 103 der Fig. 1 entspricht. Die
Zahlzeichen 2 und 3 bezeichnen einen Speicherteil und einen
Verzöger-Verwaltungsteil, die dem Speicherteil 100b bzw. dem
Verzöger-Verwaltungsteil 100c der Fig. 1 entsprechen. Die
Zahlzeichen 4 und 5 stehen für Übertragungsvorrichtungen,
welche zwischen der Betriebsvorrichtung 1, dem Speicherteil
2 und dem Verzöger-Verwaltungsteil 3 bewegte Token sammeln und
zustellen, und sie entsprechen den Kanälen 101 bzw. 102 der
Fig. 1.
-
Der Speicherteil 2 umfaßt einen Puffer 2a, der
vorübergehend aus der Übertragungsvorrichtung 4 empfangene
Token behält. Ein Steuerteil 2b ist vorgesehen, in dem die
Wesensart empfangener Token analysiert wird und der je nach
der Art empfangener Token entweder die Tokenparameter in
Speicher 2c speichert oder den Inhalt von Speicher 2c
ausliest. Ein Puffer 2d dient dem Zwecke der Verschickung von
aus Steuerteil 2b stammenden Token an die
Übertragungsvorrichtung 5.
-
Im Verzöger-Verwaltungsteil 3 speichert ein Puffer 3a
vorübergehend aus der Übertragungsvorrichtung 4 empfangene
Token. Ein Steuerteil 3b analysiert empfangene Token und je
nach ihrer Art speichert er entweder ihre Parameter in einem
Speicher 3c oder er liest den Inhalt des Speichers 3c. Ein
Puffer 3d verschickt aus dem Steuerteil 3b stammende Token an
die Übertragungsvorrichtung 5.
-
Unter Bezugnahme auf Fig. 6 werden die wesentlichen Teile
des Steuerteils 2b und des Speicherteils 2c erläutert. Die
Fig. 6 zeigt einen Teil des Platzes im Speicher 2c. In dem
Platz sind bereits die freien Adressen in Speicher 3c
gespeichert (in Fig. 5), wie beispielsweise Q&sub3;, Q&sub4;, Q&sub5; . . .
Qn. Der freie Adressplatz des Speichers 3c wird über
Stapelzeiger 20 gekennzeichnet. Ein Puffer 21 überträgt die
Adresse Qn+1 eines freien Adressplatzes des Speichers 3c, der
durch die Verzöger-Verwaltungsvorrichtung 3 freigegeben worden
ist, und diese freien Adressen werden gesammelt.
-
Es folgt nun eine Beschreibung der Verzöger-
Verwaltungsmethode der vorliegenden Erfindung. Die Fig. 5 und
6 zeigen lediglich ein Einzelbeispiel der vorliegenden
Erfindung in groben Zügen, und die vorliegende Erfindung
beschränkt sich nicht beispielsweise auf die Puffer 2a und 2d
sowie den Steuerteil 2b im Speicherteil 2. Das Wesen der
vorliegenden Erfindung läßt sich durch eine Erläuterung der
Funktionsweise der Erfindung unter Bezugnahme auf die Fig. 7a
bis 7j leichter verstehen. Unter Bezugnahme auf Fig. 7a stellt
das Zahlzeichen 30 Speicherplatz im Speicher 2c des
Speicherteils 2 dar, und 30a stellt einen Speicherteil dar,
in dem der freie Adressplatz des Speichers 3c (in Fig. 6
gezeigt) gespeichert wird. Die Zahlzeichen 30b und 30c stellen
gültige und Verzöger-Markierungsflags dar, die den in Fig. 2a
gezeigten entsprechen, und das Zahlzeichen 31 stellt einen
Speicherplatz im Speicher 3c der Speicher-
Verwaltungsvorrichtung 3 dar. Die Zahlzeichen 32, 33, 34 und
35 kennzeichnen Kanäle, entlang derer Token verschickt werden,
und sie entsprechen den Sammel- und Zustellvorrichtungen 4 und
5 der Fig. 5.
-
Es folgt nun eine Beschreibung der Funktionsweise der in
den Fig. 5 und 6 gezeigten Verzöger-Verwaltungsvorrichtung
unter Bezugnahme auf die Fig. 7a bis 7j.
-
Unter Bezugnahme auf Fig. 7a ist im gezeigten Beispiel,
wie in Fig. 4a, eine Verzögerung von zwei Leseanforderung-
Token bezüglich Adresse A des Speicherteils 2 bereits erfolgt
und ein neues Leseanforderung-Token 512 ist im Speicherteil
2 eingetroffen. Ein Token (FA) 511, das eine freie, in
Verzöger-Verwaltungsteil 3 verfügbare Adresse enthält, wird
verschickt und im Speicherteil 30a des Speicherteils 2
gespeichert. So trägt das freie Adress-Token 511 die freie
Adresse in Verzöger-Verwaltungsteil 3 als einen Parameter und
speichert sie im Adress-Unterbringungsteil 30a ab.
-
(1) Wenn der Speicherteil 2 sowohl das freie Adress-Token
511 als auch das Leseanforderung-Token 512 empfängt und
das bestehende Markierungsflag 30b auf "0" steht, so
wird - wie in Fig. 7b gezeigt - das Leseanforderung-
Token 512 in ein Verzöger-Token (DREAD) 513 gewandelt,
und das Verzöger-Token 513 wird an den Verzöger-
Verwaltungsteil 3 verschickt. Der Adressparameter (A)
wird aus dem Leseanforderung-Token 512 gelöscht, und der
in Adresse A vorhandene Wert Q&sub2; und der im freien Adress-
Token 511 gehaltene Parameter Q&sub3; werden zum Verzöger-
Token 513 vereinigt. Anschließend wird die freie Adresse
Q&sub3; in Adresse A gespeichert, und die freie Adresse Q&sub3;
wird aus dem Speicherteil 30a ausgelöscht.
-
(2) Beim Eintreffen am Verzöger-Verwaltungsteil 3 wird das
Verzöger-Token 513 bei der freien Adresse Q&sub3; gespeichert.
Die Adresse (Q&sub3;), bei der es gespeichert wird, ist durch
den in Token 513 enthaltenen Parameter Q&sub3; festgelegt.
Dies geschieht selbst dann, wenn beispielsweise beim
Eintreffen von Token 513 eine sonstige Adresse wie etwa
Q&sub2; frei ist. Der Parameter Q&sub2; wird in Adresse Q&sub3;
untergebracht. Dann ist der anfängliche Verzöger-
Verwaltungsvorgang vollständig.
-
(3) Der Arbeitsspeicher 30a der freien Adressen wird vom
Verzöger-Verwaltungsteil 3 unter Hervorbringung eines
freien, an den Adress-Teil 30a des Speicherteils 2
verschickten Adress-Tokens 514 (vgl. Fig. 7c) wieder
aufgefüllt.
-
Bei der oben erwähnten Anordnung treten die unter
Bezugnahme auf die Fig. 4a und 4b beschriebenen Probleme
nicht auf. Das heißt, daß selbst unter derartigen
Umständen wie in Fig. 7d gezeigt, bei denen das
Verzöger-Token 513 noch nicht beim Verzöger-
Verwaltungsteil 3 eingetroffen ist, der Speicherteil 2
noch einmal ein Leseanforderung-Token, das Adresse A
betrifft, verzögern kann. Falls beispielsweise in Fig.
7d eine neue Tokenverzögerung auftritt, so sollte es die
Parameter < Q&sub4;> < Q&sub3;> und < Ra&sub4;> aufweisen, wie für das Token
520 gezeigt. Bei Q&sub4; handelt es sich um die freie Adresse,
die innerhalb des Verzöger-Verwaltungsteils 3 verfügbar
und die im Adress-Teil 30a im Speicher 2 gespeichert
ist. Wenn das Token 520 am Verzöger-Verwaltungsteil 3
eintrifft, werden Daten bei Adresse Q&sub4; gespeichert.
Selbst unter der Annahme, daß das Token 520 das Token
513 der Fig. 7d überholt und zuerst eintrifft, ändert
sich die Reihenfolge der Kette gespeicherter Verzöger-
Token nicht, und sobald das Token 513 eingetroffen ist,
bildet sich die übliche Kette aus, und als Folge davon
sind Daten bei Adresse Q&sub3; gespeichert worden.
-
Unter Bezugnahme auf die Fig. 7e und 7f erfolgt beim
Eintreffen eines die Adresse A betreffenden Schreib-
Tokens WRT eine Freigabe des Verzöger-Tokens bzw. der
Verzöger-Token, das Adresse A betrifft, und der Vorgang
läuft wie im folgenden beschrieben ab.
-
(4) Beim Empfang des Schreib-Tokens blickt der Speicherteil
2 auf das Verzöger-Markierungsflag 30c und weil dessen
Wert "1" beträgt, legt es fest, daß die Adresse (im
Verzöger-Verwaltungsteil 3) eines Verzöger-Tokens in
Adresse A gespeichert wird. Auf Grund dessen wird
gleichzeitig mit dem Eintragen der Daten V an Adresse A
ein Freigabeanforderung-(RRQ)-Token 516 erzeugt. Wenn
das bestehende Markierungsflag 30b auf "1" steht, wird
dann das Verzöger-Markierungsflag 30c auf "0" gesetzt.
-
(5) Unter Bezugnahme auf Fig. 7e weist das
Freigabeanforderung-(RRQ)-Token 516 die Adresse A sowie
die darin als seine Parameter untergebrachte Adresse Q&sub3;
auf, und es wird zum Verzöger-Verarbeitungsteil 3
verschickt.
-
(6) Beim Empfang des Freigabeanforderung-Tokens 516 erkennt
der Verzöger-Verwaltungsteil 3 aus dem Parameter Q&sub3; das
erste der Serie der Verzöger-Token, die freigegeben
werden sollten, und aus dem Parameter A die Adresse, zu
welcher die freizugebenden Token gehören. Auf Grund
dessen wird die Serie von Lese-Token 517 bis 519 erzeugt
und an den Speicherteil 2 verschickt. Anschließend wird
jede der Adressen, in denen die Verzöger-Token im
Verzöger-Verwaltungsteil 3 gespeichert worden sind, zu
einer freien Adresse.
-
(7) Beim Empfang der Token 517 bis 519 liest der
Speicherteil 2 Daten aus der Adresse A und verschickt
die gelesenen Daten V in einem Daten-Token an die
Betriebsvorrichtung.
-
Die in den Fig. 7a bis 7f gezeigten Token READ bzw. WRT
weisen die gleiche Gestalten wie READ bzw. WRT in Fig. 1b auf.
-
Gestaltbeispiele für die Token DREAD, FA und RRQ, wie sie
in den Fig. 7a bis 7f verwendet werden, sind in Fig. 7g
gezeigt (die schattierten Teile der Zeichnung stehen für nicht
benutzte Felder). In den gleichen Diagrammen haben 551 bis 554
jeweils ihre Entsprechung in 451 bis 454 in Fig. 1b.
-
Bei DREAD in Fig. 7g handelt es sich nicht um das gleiche
wie in Fig. 4f; es wird ein Feld mehr benutzt. FA entspricht
NQA in Fig. 4f, abgesehen davon, daß ein Feld weniger benutzt
wird.
-
Wie bereits erwähnt, da die vom Verzoger-Verwaltungsteil
3 freigegebenen Token 517, 519 die gleiche Gestalt wie vor
ihrer Verzögerung aufweisen, braucht ihr Ursprung in Speicher
2 nicht festgelegt werden. In der dem Zweck der vereinfachten
Erläuterung dienenden Fig. 7a ist das freie Adress-Token 511
in Adress-Arbeitsspeicherteil 30a des Speicherteils 2
zeitgleich mit dem Leseanforderung-Token 512 eingetroffen, und
es ist in Ordnung, wenn sich mehr als ein freiem Adress-Token
im Arbeitsspeicherteil 30a des Speicherteils 2 ansammelt.
-
Falls in dieser Situation der Verzöger-Verarbeitungsteil
3 mit jedem Empfang eines Verzöger-Tokens ein freies Adress-
Token an den Speicherteil 2 verschickt, so wird die Ansammlung
der freien Wort-Token im Speicherteil 2 aufrechterhalten.
-
Es kann die Situation erwachsen, in der Token einander
in den Tokenkanälen 32, 33, 34 und 35 überholen. Zieht man
beispielsweise das Beispiel der Situation in Fig. 7h heran,
in dem ein Schreib-Token aus der Verarbeitungsvorrichtung
verschickt worden ist, so wird das sich daraus ergebende
Verhalten unter Bezugnahme auf die Fig. 7h bis 7j erklärt. In
den Fig. 7h bis 7j ist 31a ein gültiges Markierungsflag,
welches jeder Adresse im Verzöger-Verarbeitungsteil 30
zugehörig ist. Der Zweck des Markierungsflags 31a besteht
darin, zu zeigen, ob die Adresse ein Verzöger-Token hält oder
ob sie frei ist.
-
Unter Bezugnahme auf Fig. 7h befinden sich zwei Verzöger-
Token 513 und 520 im Kanal 34 und es gibt ein Schreib-Token
515 im Kanal 32. Der Speicherteil 2 empfängt das Schreib-Token
515 und verarbeitet es. Das Verzöger-Token 520 überholt das
Verzöger-Token 513 und trifft als erstes beim Verzöger-
Verarbeitungsteil 3 ein und wird verarbeitet. Die Folge davon
ist wie in Fig. 7i gezeigt. Das gültige Markierungsflag 31a
der Adresse Q&sub4; erhält eine "1" eingetragen. Der Speicherteil
2 empfängt dann das Schreib-Token 515 und untersucht die
Adresse A. Da es ein Token gibt, welches in bezug auf diese
Adresse verzögert worden ist, wird ein Freigabe-Token 516
erzeugt. Das Freigabe-Token 516 umfaßt als Parameter die
Adresse A und die Verzöger-Adresse Q&sub4;, welche in Adresse A
gehalten worden ist. Überdies wird der Wert V in die Adresse
A eingetragen. Doch obwohl das Verzöger-Token 520 schon im
Verzöger-Verarbeitungsteil 3 eingetroffen ist und die
Parameter Q&sub3; und Ra&sub4; so in der Verzöger-Adresse Q&sub4; gespeichert
worden sind, daß das Serienfeld der Adresse Q&sub4; die freie
Adresse Q&sub3; anzeigt, ist die Adresse Q&sub3; weiterhin frei, da das
Token 513 noch nicht empfangen worden ist. Somit kann die
Serie gebrochen werden, wenn ein Verzöger-Token ein anderes
überholt.
-
In der in Fig. 7i gezeigten Situation kann das
Freigabeanforderung-Token 516 das Verzöger-Token 513 überholen
und nach erfolgtem Eintreffen beim Verzöger-Verarbeitungsteil
3 die Freigabe der gebrochenen Verzögerserie veranlassen. Um
mit solchen Umständen fertigzuwerden, verhält sich der
Verzögerteil 3 wie folgt:
-
Der Verzöger-Verarbeitungsteil 3 liest die Adresse Q&sub4;,
welche den im Freigabeanforderung-Token 516 gehaltenen
Verzöger-Adressparameter anzeigt, und da das gültige
Markierungsflag darin auf "1" steht, fügt er dem von ihm
gehaltenen Parameter Ra&sub4; den Adressparameter A im Speicherteil
2 an, kehrt das Leseanforderung-Token wieder in seinen
ursprünglichen Zustand zurück und schickt es als das Lese-
Token 518 der Fig. 7j aus. Als nächstes liest er die durch das
Serienfeld der Verzöger-Adresse Q&sub4; gekennzeichnete Verzöger-
Adresse Q&sub3; und überprüft das gültige Markierungsflag von
Adresse Q&sub3;. Da dies Markierungsflag auf "0" steht und folglich
die zur Erzeugung eines Lese-Tokens nötigen Daten noch nicht
in der Adresse Q&sub3; verfügbar sind, wird ein neues, den
Freigabe-Adressparameter Q&sub3; aufweisendes Freigabeanforderung-
Token RRQ erzeugt, und es wird, wie in Fig. 3j [sic] gezeigt,
als ein Freigabeanforderung-Token 521 ausgeschickt. Das
Freigabeanforderung-Token 521 durchläuft den Speicherteil 2,
ohne irgendwelcher Verarbeitung unterzogen zu werden, und wird
über Kanal 34 zurück an den Verzöger-Verarbeitungsteil 3
bewegt. Falls währenddessen das Verzöger-Token 513 beim
Verzöger-Verarbeitungsteil 3 eingetroffen ist, so wird es bei
Adresse Q&sub3; zum Abschließen der Serie gespeichert, und dann
werden sämtliche Verzöger-Token der Serie freigegeben. Falls
das zweite Freigabeanforderung-Token 521 das Verzöger-Token
513 überholt, so stellt der Verzöger-Verarbeitungsteil 3 ein
weiteres Freigabeanforderung-Token her, welches die gleichen
Parameter wie das Freigabeerfordernis-Token 521 aufweist. Was
immer passiert, bis zum Eintreffen des Verzöger-Tokens 513 im
Verzöger-Verarbeitungsteil 3 und seiner Verarbeitung wird der
Freigabeanforderung-Vorgang von oben wiederholt, bis
schließlich sämtliche der Token in der Serie freigegeben sind.
-
Zusammenfassend läßt sich sagen, daß der Verzöger-
Verarbeitungsteil 3 beim Empfang eines Freigabeanforderung-
Tokens die Verzöger-Adresse jenes Tokens liest und dann wie
folgt fortfährt:
-
(a) Er untersucht, ob das gültige Markierungsflag der Adresse
auf "1" steht, und falls es auf "1" steht, befolgt er die
Vorgehensweise (b) unten, und falls es auf "0" steht, befolgt
er die Vorgehensweise (c) unten.
-
(b) Der Verzöger-Verarbeitungsteil fügt den durch das
Freigabeanforderung-Token gehaltenen Speicherteil-
Adressparameter an den durch die Adresse gehaltenen Parameter
an und erzeugt ein dem ursprünglich verzögerten Token
identisches Leseanforderung-Token READ. Die erzeugte
Leseanforderung wird ausgeschickt, und anschließend liest der
Verzöger-Verarbeitungsteil die Adresse, die über das
Serienfeld jener Adresse gekennzeichnet ist, und befolgt die
Vorgehensweise (a) von oben für jene Adresse.
-
(c) Der Verzöger-Verarbeitungsteil erzeugt ein neues
Freigabeanforderung-Token einschließlich der Adresse mit dem
gültigen Markierungsflag "0" als Verzöger-Adressparameter.
Dann wird die erzeugte Freigabeanforderung wieder in Umlauf
gebracht, bis das gültige Markierungsflag eine "1" enthält.
-
Durch die Steuerung des Verhaltens des Verzöger-
Verarbeitungsteils 3 wie oben beschrieben besteht die
Möglichkeit, selbst wenn ein Überholen von Token in den
Tokenkanälen auftritt, die Verzöger-Token korrekt freizugeben.
-
Gemäß der vorliegenden Erfindung wird somit, wenn eine
Leseanforderung bezüglich noch nicht von einem Speicherteil
empfangener Daten versucht wird, die Leseanforderung
verzögert, und zur Ausführung dieser Leseanforderung
wesentliche Informationen werden in einer Verzöger-
Verwaltungsvorrichtung gespeichert. Bei erfolgtem Eintreffen
der zu lesenden Daten kann dann die Erfindung kraft ihrer
Bauart die Leseanforderung durchführen. Die oben erwähnte
Speichervorrichtung und die Verzöger-Verwaltungsvorrichtung
lassen sich deshalb voneinander unterscheiden, und ein Betrieb
der beiden Vorrichtungen ist selbst bei nur über Tokenpakete
ablaufender Übertragung zwischen den beiden möglich, ohne daß
dabei Probleme erwachsen.
-
Die freien Adressen der oben erwähnten Verzöger-
Verwaltungsvorrichtung dürfen sich in der oben erwähnten
Speichervorrichtung ansammeln. Soll eine Leseanforderung
verzögert werden, so wird eine freie Adresse, bei der ein
Verzöger-Token gespeichert werden soll, in der zu lesenden
Adresse gespeichert. Das Verzöger-Token wird dann an die
Verzöger-Verwaltungsvorrichtung verschickt, wobei das
Verzöger-Token das freie Adress-Token aus dem Arbeitsspeicher
in der Speichervorrichtung enthält. Durch Speichern der oben
erwähnten Verzöger-Token und durch ihre Freigabe mit der
Adresse in der oben erwähnten Speichervorrichtung, die zu
lesen ist, läßt sich die Verzögerungsverwaltung und die
Aufrechterhaltung zusammenhängender Informationen einfach und
ohne Widerspruch steuern.
-
Darüber hinaus ist eine Freigabe von Verzöger-Token der
Reihe nach einfach und ohne Widersprüche selbst dann möglich,
wenn ein Token ein anderes überholt, welches eine frühere
verzögerte Leseanforderung betrifft, indem jedem Verzöger-
Token ein gültiges Markierungsflag zugewiesen wird und eine
Verzöger-Token-Freigabeanforderung wiederholt wird, bis das
gültige Markierungsflag anzeigt, daß das zugehörige Verzöger-
Token empfangen worden ist.