-
Die vorliegende Erfindung betrifft ein Verfahren und eine
Vorrichtung der Datenpaketverkürzung, womit eine Verringerung
der Länge eines Datenpakets in einem elektronischen Computer
möglich ist.
-
In Mikrocomputern wird beim Durchführen eines in einer
Speichervorrichtung gespeicherte Daten nutzenden Vorgangs der
Vorgang des Auslesens bestimmter Daten durch die Verschickung
einer mit einer bestimmten Adresse der Speichervorrichtung
zusammenhängenden Leseanforderung durchgeführt. Bei seriell
verarbeitenden Computern besteht im allgemeinen nicht die
Möglichkeit, Daten auszulesen, die die Speichervorrichtung noch
nicht erreicht haben. Wenn seriell verarbeitende Computersysteme
in einer Weise arbeiten, bei der Befehle eines Programms
getrennt in getrennten Vorrichtungen ausgeführt werden, so kann
es umstandsweise zu dem Versuch kommen, noch nicht in der
Speichervorrichtung eingetroffene Informationen auszulesen.
Solche Systeme müssen einen Aufbau besitzen, wodurch die
Leseanforderung verzögert und nach erfolgtem Eintreffen der
fehlenden Daten in der Speichervorrichtung verarbeitet wird.
-
Fig. 1a stellt die Beziehung zwischen einer Verzögerung-
Verwaltungsvorrichtung, einer Verarbeitungsvorrichtung und einer
Speichervorrichtung in einem Diagramm dar. Die
Speichervorrichtung vermag Leseanforderungen zu verzögern. Die
Speichervorrichtung 100 umfaßt vier Teile, d. h. einen Verteilerteil
(Zuordnungsteil) 100a, einen Speicherteil 100b, einen
Verzögerung-Verarbeitungsteil (Zurückstellung-Verarbeitungsteil)
100c und einen Löschteil 100d. Die Kanäle 101 und 102
ermöglichen eine Verschickung von Daten jeweils von der
Verarbeitungsvorrichtung 103 zur Speichervorrichtung 100, bzw.
von der Speichervorrichtung 100 zur Verarbeitungsvorrichtung
103.
-
Der Austausch von Daten zwischen der
Verarbeitungsvorrichtung 103 und der Speichervorrichtung 100 geschieht
ausschließlich durch die Verschickung individueller Datenpakete
(im folgenden mit "Token" bezeichnet). Beim Empfang eines
Speicherraumanforderung-Tokens 104 im Verteilerteil 100a der
Speichervorrichtung 100 schickt dieser eine Anfangsadresse für
den angeforderten Raum je nach der angeforderten Größe in der
Gestalt eines Tokens 107. Der Speicherteil 100b empfängt ein
Schreib-Token 105 und ein Leseanforderung-Token 106. Gemäß dem
ersteren trägt er einen Parameter V in die Adresse A ein, und
gemäß dem letzteren liest er den Inhalt V von der Adresse A aus
und schickt diesen Inhalt als ein Daten-Token 108 zur
Verarbeitungsvorrichtung 103. Für Token außer dem Schreib-Token besteht
die Notwendigkeit einer Antwort, und Antworten sind durch
Parameter Ra bezeichnet. Der Verzögerung-Verwaltungsteil 100c
und die Löschsteuervorrichtung 100d befassen sich nicht direkt
mit der Übertragung von Token zu oder von der
Verarbeitungsvorrichtung 103. Der Verzögerung-Verarbeitungsteil 100c
führt die Abwicklung von Leseanforderungen in Zusammenhang mit
noch nicht im Speicherteil 100b eingetroffenen Daten durch, und
der Löschsteuerteil 100d führt den Vorgang der Verfügbarmachung
von Speicherraum, wenn er nicht mehr benutzt ist, durch.
-
Die verschiedenen Arten von Token unterscheiden sich anhand
eines Codes. Fig. 1b stellt ein Beispiel zum Aufbau jedes der
Token dar. Die Zahlzeichen 464 bis 468 entsprechen jeweils den
Zahlzeichen 104 bis 108 in Fig. 1a. Jedes Token weist vier
Felder auf, nämlich ein Codefeld 451, ein zweites Feld 452, ein
drittes Feld 453 und ein viertes Feld 454.
-
Das Codefeld 451 wird zur Unterscheidung der verschiedenen
Tokenarten eingesetzt, und in den Beispielen der Fig. 1b weist
das Codefeld vier Bit auf, mit denen sich bis zu sechzehn
unterschiedliche Tokenarten kennzeichnen lassen. Die zweiten,
dritten und vierten Felder 452 bis 454 in den dargestellten
Beispielen umfassen alle der Einfachheit halber vierundzwanzig
Bit, wobei sich diese Werte aber dem Bedarf eines bestimmten
Systems anpassen lassen. Die schattierten Flächen in den
Diagrammen stellen gerade nicht benutzte Felder dar.
-
Die Fig. 2a, 2b und 2c sind Diagramme, welche der
ausführlichen Erläuterung der Funktion des in Fig. 1a gezeigten
Speicherteils 100b und des Verzögerung-Verarbeitungsteils 100c
dienen. In Fig. 2 dienen die Kanäle 201 und 202 der Förderung
von Token vom bzw. zum Speicherteil. Jede Adresse innerhalb des
Speicherteils 100b besteht aus einem Markierungsflagfeld und
einem Datenfeld, wobei das Markierungsflagfeld ein gültiges
Markierungsflag 203, das anzeigt, ob gegebenenfalls innerhalb
des Datenfeldes irgendwelche wichtigen Daten gespeichert sind,
und ein Verzögerung-Markierungsflag 204 umfaßt, das anzeigt, ob
gegebenenfalls eine Leseanforderung in Zusammenhang mit jener
Adresse bereits verzögert worden ist. Das heißt, daß das gültige
Markierungsflag 203 beim Eintragen von Daten im Datenfeld 205
durch ein Schreib-Token zu "1" wird und das gültige
Markierungsflag bei Rückführung jener Adresse in ihren
ursprünglichen Zustand zu "0" wird. Wenn ein Leseanforderung-
Token verzögert worden ist, wird das Verzögerung-Markierungsflag
204 zu "1", und wenn Daten in die Adresse eingetragen worden
sind oder das Wort in seinen ursprünglichen Zustand rückgeführt
ist, wird das Verzögerung-Markierungsflag zu "0".
-
Es wird auf Fig. 2a Bezug genommen. Wenn ein einer Adresse
A entsprechendes Leseanforderung-Token 206 einen Speicherteil
100b erreicht, hängt die Antwort des Speichers 100b vom Status
des gültigen Markierungsflags innerhalb der Adresse A ab. Das
heißt:
-
(1) Falls das gültige Markierungsflag "1" ist, dann wird - wie
in Fig. 2b gezeigt - der im Datenteil der Adresse A gespeicherte
Wert V ausgelesen, der Wert V wird mit dem Kennungsparameter Ra
des Leseanforderung-Tokens zusammengefügt und das Resultat als
ein Daten-Token 207 ausgeschickt.
-
(2) Falls das gültige Markierungsflag "0" ist, dann wird - wie
in Fig. 2c gezeigt - das Leseanforderung-Token in einem Token-
Unterbringungsfeld 207 einer willkürlichen freien Adresse
(beispielsweise Adresse Q) innerhalb des Verzögerung-
Verarbeitungsteils 100c untergebracht. Zugunsten einer
wirtschaftlichen Nutzung von Speicherraum wird allerdings der
Adreßparameter A ausgelöscht, obwohl diese Auslöschung nicht
notwendig ist. Daten werden in ein Link-Feld 208 der Adresse Q
eingetragen. In den Zeichnungen sind diese Daten durch ein
Sternzeichen symbolisiert und zeigen, daß es sich in diesem Fall
um ein erstes mit der Adresse A zusammenhängendes
Verzögerungstoken handelt. Innerhalb des Datenfeldes der mit der
verzögerten Leseanforderung zusammenhängenden Adresse A wird ein
Token-Speicheradreßzeiger Q gespeichert. Ins Verzögerung-
Markierungsflag 204 wird eine "1" eingetragen.
-
Bei dieser Vorrichtung kann mehr als ein Leseanforderung-
Token in Zusammenhang mit einer Einzeladresse des Speicherteils
100b eintreffen. Dementsprechend können mehrere mit einer
Adresse zusammenhängende Token verzögert werden. Unter
Bezugnahme auf Fig. 3a und Fig. 3b werden die Verzögerungstoken
unter solchen Umständen als eine Serie gespeichert. In Fig. 3a
bezeichnen Zahlzeichen 301 bis 305 Elemente, die den Komponenten
201 bis 205 der Fig. 2a entsprechen. Um die Verzögerungstoken in
einer Serie zu ordnen, werden die Serienfelder für die Adressen
im Verzögerung-Verarbeitungsteil 100c eingesetzt. Wenn dann ein
Schreib-Token 307 in Adresse A eintrifft, werden - unter
Bezugnahme auf Fig. 3b - sämtliche mit der Adresse A
assoziierten Verzögerungstoken freigesetzt. In das Datenfeld der
Adresse A des Speicherteils 100b wird der Wert V eingetragen,
und gleichzeitig wird "1" in das gültige Markierungsflag 303 und
"0" in das Verzögerung-Markierungsflag 304 eingetragen. Die
früher im Datenfeld der Adresse A gespeicherte Adresse Q3 wird
erneut überprüft, und dann Adresse Q2 (bei Adresse Q3
gespeichert), und dann Adresse Q1 (bei Adresse Q2 gespeichert).
Damit kann die Serie von drei verzögerten Token regeneriert
werden. Der nunmehr bei Adresse A gespeicherte Wert V wird mit
den gespeicherten Kennungen Ra3, Ra2 und Ra1 zusammengefügt, um
die Daten-Token 308 bis 310, die zur Verarbeitungsvorrichtung
geschickt werden, zu bilden. Bisher die Verzögerungstoken
speichernde Adressen Q1 bis Q3 werden zu freien Adressen und
lassen sich für spätere Verzögerungstoken einsetzen.
-
Beim oben beschriebenen Vorgang ist während der
Ausführungszeit des Serienvorgangs der Verzögerungstoken ein
Aus lesen oder Schreiben von Daten nicht möglich, und dies
bedeutet, daß das System langsam ist. Das Problem läßt sich
nicht schlichtweg durch die Trennung des Speicherteils 100b und
des Verzögerung-Verarbeitungsteils 100c, wie in der Fig. 4a
gezeigt, und durch den Einsatz der unter Bezugnahme auf die Fig.
-
2a bis 2c erläuterten Vorrichtung lösen. Das heißt, daß bei
Systemen wie dem in Fig. 4a und Fig. 4b gezeigten dem
gleichzeitige Betrieb des Speicherteils 100b und des
Verzögerung-Verarbeitungsteils 100c Anlaß zu neuen Problemen
gibt. Unter Bezugnahme auf die Fig. 4a bis 4e werden diese
Probleme im folgenden erläutert:
-
In Fig. 4a entsprechen die Zahlzeichen 401 bis 405 jeweils
301 bis 305 der Fig. 3a und sie bezeichnen Elemente
gleichartiger Funktion. Die Kanäle 409 und 410 fördern Token jeweils
vom Verzögerung-Verarbeitungsteil 100c zum Speicherteil 100b,
bzw. vom Speicherteil 100b zum Verzögerung-Verarbeitungsteil
100c. Zwei mit Adresse A zusammenhängende Leseanforderung-Token
sind in Fig. 4a als verzögert worden gezeigt, und weiterhin ist
ein neues Leseanforderung-Token 411 bei der Adresse A
eingetroffen. Eine Beschreibung der Folgen dieser Situation
folgt unten.
-
(1) Das Leseanforderung-Token 411 wird so verzögert, daß das
gültige Markierungsflag 403 der Adresse A "0" ist und wie in
Fig. 4b zum Verzögerungstoken 412 wird, welches an den
Verzögerung-Verarbeitungsteil 100c geschickt wird. Das
Verzögerungstoken 412 enthält die Anfangsadresse Q2 der
Verzögerungsserie. Die Adresse Q2 wird in der Adresse A
gespeichert.
-
(2) Wenn das Verzögerungstoken 412 am Verzögerung-
Verarbeitungsteil 100c eintrifft, wird - wie in Fig. 4c gezeigt
- das Token 412 in einem willkürlichen freien Wort
(beispielsweise Q3) gespeichert und gleichzeitig wird ein neues
Anfangsadreß-Token 413 an den Speicherteil 100b geschickt. Das
Token 413 enthält die neue Anfangsadresse Q3 der Serie der
Verzögerungstoken, die dem Speicherteil 100b übermittelt werden
muß.
-
Die Fig. 4f zeigt die Anordnung der Token DREAD und NQA.
Die Felder 751 und 754 in Fig. 4f entsprechen den Feldern 451
bis 454 in Fig. 1b. Die schattierten Teile des Diagramms stehen
für nicht benutzte Felder.
-
Unter der Annahme, daß ein neues, mit Adresse A
zusammenhängendes Leseanforderung-Token gleichzeitig beim
Speicherteil 100b eintrifft, ergeben sich die folgenden
Möglichkeiten:
-
(3) Falls das Token 413 vor dem Token 414 eintrifft, trägt der
Speicher 100b den im Token 413 enthaltenen Parameter Q3 in die
Adresse A ein. Dann zeigt - wie in Fig. 4d gezeigt - der in
Adresse A gespeicherte Zeiger den Anfang der Verzögerungsserie
an und die Token-Verzögerung-Verarbeitung kann normal
weitergehen.
-
(3') Falls das Token 413 nach dem Token 414 eintrifft, wird das
Token 414 verzögert und es wird - wie in Fig. 4e gezeigt - zu
einem Token 411. Die Parameter des Verzögerungstokens 411
enthalten den Wert Q2, und obwohl das Token 411 innerhalb des
Verzögerung-Verarbeitungsteils 100c untergebracht ist, gibt es
zwei mit der Adresse Q2 assoziierte Token, und die Einhaltung
der normalen Serie ist nicht möglich.
-
Um dieses Problem anzugehen, ist die in Fig. 5 dargestellte
Vorrichtung entworfen worden. Unter Bezugnahme auf das
Blockdiagramm der Fig. 5 wird eine der Verarbeitungsvorrichtung 103
der Fig. 1a entsprechende Verarbeitungsvorrichtung 1 gezeigt.
Ein Speicherteil 2 und ein Verzögerung-Verarbeitungsteil 3
entsprechen dem Speicherteil 100b und dem
Verzögerung-Verarbeitungsteil 100c der Fig. 1a. Die Übertragungsvorrichtungen 4 und
5 fördern die Token zwischen der Verarbeitungsvorrichtung 1, dem
Speicherteil 2 und dem Verzögerung-Verarbeitungsteil 3, und
diese Vorrichtungen 4 und 5 entsprechen den Kanälen 101 und 102
in Fig. 1a.
-
Der Speicherteil 2 umfaßt einen von der
Übertragungsvorrichtung 4 empfangene Token vorübergehend haltenden Puffer
2a. Ein Steuerteil 2b bezeichnet die verschiedenen Arten der
empfangenen Token und je nach ihrem Typus werden die Parameter
der Token in einem Speicher 2c gespeichert oder der Inhalt des
Speichers 2c ausgelesen. Ein Puffer 2d dient dem Zweck, Token
vom Steuerteil 2d zur Übertragungsvorrichtung 5 zu schicken.
-
Im Verzögerung-Verarbeitungsteil 3 hält ein Puffer 3a
vorübergehend von der Übertragungsvorrichtung 4 empfangene
Token. Ein Steuerteil 3b unterscheidet zwischen den
unterschiedlichen Arten von empfangenen Token und je nach Typus dieser
Token speichert er entweder ihre Parameter in einem Speicher 3c
oder liest den Inhalt des Speichers 3c aus. Ein Puffer 3d dient
der Verschickung von Token vom Steuerteil 3b zur
Übertragungsvorrichtung 5.
-
Es wird auf Fig. 6 Bezug genommen. Diese dient der
Darstellung eines wichtigen Merkmals des Steuerteils 2b und des
Speicherteils 2c des Speichers 2. Der Speicherteil 2c speichert
die Adressen Q3, Q4, Q5 . . . QN usw. des freien Raums im in Fig.
1 gezeigten Speicherteil 3c. Der zur Nutzung verfügbare Raum
freier Adressen im Speicher 3c wird durch einen Stapelzeiger 20
angezeigt. Ein Puffer 21 liefert frische, verfügbar gewordene
Adressen. Somit sammeln sich freie Adressen an und werden
bedarfsweise eingesetzt.
-
Es folgt nun eine Erläuterung eines Verfahrens zur
Verzögerung-Verarbeitung, bei dem eine normale Serie einzelner
Adressen für Verzögerungstoken aufgebaut wird. Die in Fig. 5 und
Fig. 6 gezeigten Anordnungen stehen für einfache Beispiele der
möglichen Aufbauformen, die sich nicht unbedingt beispielsweise
auf die Puffer 2a, 2d sowie den Steuerteil 2b beschränken. Der
Betrieb der beschriebenen Anordnung wird jedoch unter Bezugnahme
auf die Fig. 7a bis 7g beschrieben.
-
Es wird nun auf Fig. 7a Bezug genommen. Ein freier
Speicherraum 30 im Speicher 2c des Speicherteils 2 enthält den
Raum 30a, worin die Adressen des freien Raums im in Fig. 6
gezeigten Speicher 3c gespeichert sind. Ein gültiges
Markierungsflag 30b und ein Verzögerung-Markierungsflag 320c
entsprechen den in Fig. 4a gezeigten Markierungsflags 403 und
404. Das Zahlzeichen 31 zeigt freien Speicherraum innerhalb des
Speichers 3c des Verzögerung-Verarbeitungsteils 3 an. Die Kanäle
32, 33, 34 und 35 sind zur Förderung von Token vorgesehen und
entsprechen den in Fig. 5 gezeigten Übertragungsvorrichtungen 4
und 5.
-
Unter Bezugnahme auf Fig. 7a folgt nun eine Erläuterung zum
Betrieb der in Fig. 5 und Fig. 6 gezeigten
Verzögerung-Verarbeitungsvorrichtung. Wie in Fig. 4a gleichfalls gezeigt, stellt
Fig. 7a die Situation dar, bei der eine Verzögerung von zwei
Leseanforderung-Token bereits stattgefunden hat und ein neues
Leseanforderung-Token 512 gerade am Speicherteil 2 eintrifft. Im
Gegensatz zu Fig. 4a ist der Adreßraum 30a jedoch zur Freie-
Adresse-Speicherung im Verzögerung-Verarbeitungsteil 3
vorgesehen. Ein Freie-Adresse-Token 511 enthält als einen
Parameter eine freie Adresse im Verzögerung-Verarbeitungsteil 3,
und liefert jene Adresse zum Adreßraum 30a. Dies wird im
Anschluß beschrieben.
-
(1) Wenn der Speicherteil 2 das Freie-Adresse-Token 511 und das
Leseanforderung-Token 512 empfängt, steht das gültige
Markierungsflag 30b auf "0" und demnach wird - wie in Fig. 7b
dargestellt - die Leseanforderung in ein Verzögerungstoken 513
gewandelt und zum Verzögerung-Verarbeitungsteil geschickt. Aus
dem Leseanforderung-Token 512 werden die Adreßparameter entfernt
und durch Zugabe des Wertes Q2, welcher in Adresse A gehalten
ist, und Q3, welcher der vom Freie-Adresse-Token gehaltene
Parameter ist, wird das Verzögerungstoken 513 gebildet.
Anschließend wird die freie Adresse Q3 in der Adresse A
gespeichert.
-
(2) Beim Eintreffen des Verzögerungstokens 513 im Verzögerung-
Verarbeitungsteil 3 werden - wie in Fig. 7c gezeigt - die
sonstigen Parameter des Verzögerungstokens in der Adresse Q3
gespeichert. Der Parameter Q2 ist in einem Serienfeld
untergebracht. Die Adresse Q3 ist in der Adresse A des
Speicherteils 2 bereits eingetragen worden, womit die
Verzögerungsserie vollständig ist.
-
(3) Anschließend stellt der Verzögerung-Verarbeitungsteil 3 ein
neues Freies-Wort-Token 514 her, welches er zur Nutzung in einem
späteren Token-Verzögerungsvorgang zum Adreßteil 30a des
Speicherteils 2 schickt.
-
Durch die oben erwähnte Vorgehensweise treten die unter
Bezugnahme auf die Fig. 4a bis 4f umrissenen Probleme nicht auf.
Das heißt, daß sogar in der Situation, wo - wie etwa in Fig. 1b
gezeigt - ein Verzögerungstoken 513 noch nicht beim Verzögerung-
Verarbeitungsteil 3 eingetroffen ist, der Speicherteil 2 immer
noch wirkungsvoll ein mit der Adresse A zusammenhängendes Token
verzögern kann. Wenn beispielsweise in der in Fig. 7b gezeigten
Situation ein mit der Adresse A zusammenhängendes Token
verzögert ist, sollte das verzögerte Token die Parameter Q4, Q3
und Ra4 (Token 520 in Fig. 7d) aufweisen. Bei Q4 handelt es sich
um eine freie Adresse im Verzögerung-Verarbeitungsteil 3, die
früher in den Adreßraum 30a des Speicherteils 2 eingetragen
wurde. Wenn dieses Token im Verzögerung-Verarbeitungsteil 3
eintrifft, dann bildet es ganz offensichtlich eine Serie. Sogar
falls beispielsweise das Token 520 das Token 513 der Fig. 7d
überholt, ändert sich die Reihenfolge der Serie nicht und beim
Eintreffen des Tokens 513 wird schließlich eine normale Serie
abgeschlossen.
-
Auf der anderen Seite werden in der in Fig. 7c gezeigten
Situation beim Eintreffen eines mit Adresse A zusammenhängenden
Schreib-Tokens mit der Adresse A zusammenhängende
Verzögerungstoken entsprechend der Beschreibung wie folgt
freigegeben.
-
(4) Beim Empfang des Schreib-Tokens überprüft der Speicherteil
2 nochmals das Verzögerung-Markierungsflag 504 und weil dessen
Wert "1" beträgt, ist ihm bekannt, daß es zumindest ein mit der
Adresse A assoziiertes Verzögerungstoken gibt. Somit wird
gleichzeitig mit der Eintragung des Wertes V in die Adresse A
das Freigabeanforderung-Token 516 erzeugt. Anschließend erfolgt
eine Änderung des gültigen Markierungsflags 30b zu "1" und eine
Änderung des Verzögerung-Markierungsflags 30c zu "0".
-
(5) Das Freigabeanforderung-Token 516 enthält - wie in Fig. 7e
gezeigt - die Adresse A und den Wert Q3 und liefert diese Daten
zum Verzögerung-Verarbeitungsteil 3.
-
(6) Beim Empfang des Freigabeanforderung-Tokens 516 wird dem
Verzögerung-Verarbeitungsteil 3 aus dessen Parameter Q3 die
Anfangsadresse der freizugebenden Serie bekannt. Den
Verzögerungstoken, die dieser Serie angehören, fügt dem
Verzögerung-Verarbeitungsteil 3 den Adreßparameter A hinzu und
erzeugt mit den ursprünglichen Leseanforderung-Token vor ihrer
Verzögerung identische Leseanforderung-Token, das heißt Token
517 bis 519 in Fig. 7f. Diese Lese-Token werden an den
Speicherteil 2 geschickt. Anschließend wird jede der Adressen,
bei denen die Verzögerungstoken im Verzögerung-Verarbeitungsteil
3 gespeichert wurden, zu einer freien Adresse.
-
(7) Beim Eintreffen der Leseanforderung-Token am Speicherteil
2 lesen sie die Adresse A aus und fügen zur (Ra3-, Ra2-, Ra1-)
Adreßkennung den Wert V hinzu und schicken entsprechende Daten-
Token zur Verarbeitungsvorrichtung 1.
-
Die Token READ und WRT in den Fig. 7a bis 7f weisen genau
die gleiche Gestalt wie die in Fig. 1b dargestellten READ- und
WRT-Token auf.
-
Die Gestalt der in den Fig. 7a bis 7f auftretenden Token
DREAD, FA und RRQ ist in Fig. 7g gezeigt (die schattierten Teile
in den Diagrammen symbolisieren nicht benutzte Felder). Im
gleichen Diagramm haben 551 bis 554 ihre Entsprechung in 451 bis
454 in Fig. 1b.
-
Das Token DREAD in Fig. 7g unterscheidet sich von dem der
Fig. 4f darin, daß es mehr als ein Feld benutzt. FA entspricht
NQA in Fig. 4f, benutzt allerdings ein Feld weniger.
-
Da die vom Verzögerung-Verarbeitungsteil 3 freigegebenen
Leseanforderung-Token 517 bis 519 genau die gleiche Gestalt
haben, wie die mit ihnen zusammenhängenden verzögerten
Leseanforderungen, muß der Speicherteil 2 nicht unterscheiden,
von woher diese Token kamen. Aus Gründen der Einfachheit der
Erläuterung wird - unter Bezugnahme auf Fig. 7a - das freie
Token 511 zeitgleich mit dem Leseanforderung-Token 512 zum
Adreßraum 30a des Speicherteils 2 geschickt. Selbst wenn sich
mehrere Freie-Adresse-Token im Adreßraum 30a angesammelt haben,
ist dies in Ordnung. Hat der Verzögerung-Verarbeitungsteil 3 ein
Freies-Wort-Token an den Speicherteil 2 verschickt, so wird mit
jedem Empfang eines Verzögerungstokens die Ansammlung von
Freies-Wort-Token im Speicherteil 2 aufrechterhalten.
-
Im bezüglich Fig. 7a bis 7g beschriebenen Vorgang weist das
Verzögerungstoken 513 drei Parameter auf. Das bedeutet: die
Adresse Q3, in die das Token 513 einzutragen ist, die
Anfangsadresse Q2 der bereits existierenden Token-Serie und die
Adreßkennung Ra3. Dies bedeutet, daß das Datenpaket des drei
Parameter haltenden Tokens lang ist und für den Token-Kanal
aufwendige Hardware erforderlich wird. Die zur Kennzeichnung von
leerem Raum in der Speichervorrichtung 31 zur Nutzung mit den
Verzögerungstoken erforderliche Adresse wird eher groß sein, und
die Bitpakete zur Eintragung der Adressen Q3 und Q2 sind
gleichermaßen groß.
-
Es ist eine Aufgabe der vorliegenden Erfindung, die oben
aufgeführten Probleme durch Verkürzung der Länge der Token zu
umgehen oder zu mildern.
-
Die vorliegende Erfindung liefert ein Verfahren zur
Verkürzung von zwischen ersten und zweiten Vorrichtungen
weitergegebenen Datenpaketen, wobei die Datenpakete Adreßdaten enthalten,
die von der ersten Vorrichtung zur zweiten Vorrichtung geschickt
und zur ersten Vorrichtung unverändert zurückgeleitet werden,
worin die besagten Adreßdaten vorübergehend bei einer Adresse
einer Speichervorrichtung gespeichert werden, die besagten
Adreßdaten und die Adresse jener Daten in der
Speichervorrichtung als ein Datenpaket von der ersten Vorrichtung zur
zweiten Vorrichtung geschickt werden, zu dem Zeitpunkt, an dem
die Übertragung der besagten Adreßdaten von der zweiten
Vorrichtung zur ersten Vorrichtung erforderlich ist ein
Datenpaket geschickt wird, welches die besagte Adresse jener
Daten enthält, nicht aber die besagten Daten enthält, und die
besagten Daten durch die erste Vorrichtung von der besagten
Adresse jener Daten in der Speichervorrichtung abgeleitet
werden.
-
Die vorliegende Erfindung liefert ferner eine Vorrichtung
zur Verkürzung von Datenpaketen, umfassend erste und zweite
Vorrichtungen, zwischen denen Datenpakete weitergegeben werden,
die Adreßdaten enthalten, die von der ersten Vorrichtung zur
zweiten Vorrichtung geschickt und zur ersten Vorrichtung
unverändert zurückgeleitet werden; eine Speichervorrichtung,
Mittel zur vorübergehenden Speicherung der besagten Adreßdaten
bei einer Adresse der Speichervorrichtung, Mittel zum
Verschicken der besagten Adreßdaten und der Adresse jener Daten in
der Speichervorrichtung als ein Datenpaket von der ersten
Vorrichtung zur zweiten Vorrichtung, Mittel zur Ermittlung des
Zeitpunkts, an dem die Übertragung der besagten Adreßdaten von
der zweiten Vorrichtung zur ersten Vorrichtung erforderlich ist,
Mittel zum Verschicken eines Datenpakets, welches die besagte
Adresse jener Daten enthält, nicht aber die besagten Adreßdaten
enthält, von der zweiten Vorrichtung zur ersten Vorrichtung,
wobei die erste Vorrichtung Mittel zur Ableitung der besagten
Adreßdaten von der besagten Adresse jener Daten in der
Speichervorrichtung umfaßt.
-
Unter Bezugnahme auf die beigefügten Zeichnungen sei die
vorliegende Erfindung nachfolgend beispielhaft beschrieben. Es
zeigen:
-
Fig. 1a ein Blockliniendiagramm einer weiteren Verzögerung-
Verarbeitungsvorrichtung des Standes der Technik;
-
Fig. 1b ein schematisches Diagramm eines in der Vorrichtung
der Fig. 1a eingesetzten Tokens;
-
Die Fig. 2a bis 2c, die Fig. 3a und 3b und die Fig. 4a bis 4f
schematische Diagramme zur Erläuterung des Verfahrens
der Verzögerung-Verarbeitung für den Stand der Technik
der Fig. 1a;
-
Fig. 5 ein Blockliniendiagramm einer Verzögerung-
Verarbeitungsvorrichtung des Standes der Technik;
-
Fig. 6 ein Blockliniendiagramm der Hauptteile der Vorrichtung
der Fig. 5;
-
die Fig. 7a bis 7g schematische Diagramme zum Aufzeigen des
Verfahrens der Verzögerung-Verarbeitung der
Vorrichtung der Fig. 1;
-
die Fig. 8a bis 8c Blockliniendiagramme einer Vorrichtung der
Verkürzung von Datenpaketen gemäß eines erfindungsgemäßen
Beispiels; und
-
die Fig. 9a und Fig. 9b Blockliniendiagramme von Vorrichtungen
zur Verkürzung von Datenpaketen, die in Verbindung mit
der vorliegenden Erfindung allgemein berücksichtigt
sind.
-
Es wird auf die Fig. 8a bis 8c Bezug genommen. Dort tragen
gezeigten Elementen in den Fig. 7a bis 7g entsprechende Elemente
die gleichen Bezugszahlzeichen. Der Unterschied in der Struktur
der Fig. 8a bis 8c zu derjenigen der Fig. 7a bis 7g besteht
darin, daß ein Speichermittel 801 (im folgenden als die "Tabelle
freier Adressen" bezeichnet) vorgesehen ist, worin freie
Adressen vorübergehend untergebracht werden.
-
Fig. 8a stellt die gleichen Bedingungen wie Fig. 7a dar.
Ein Freie-Adresse-Token 801 weist im Vergleich zum Token 511 in
Fig. 7a einen zusätzlichen Parameter T2 auf. Beim Parameter T2
handelt es sich um die Adresse in der Tabelle freier Adressen
801, bei welcher die Adresse Q3 gespeichert ist. Anders
ausgedrückt, indirekt über die Tabelle freier Adressen 801
bezeichnet T2 die freie Adresse Q3.
-
Es folgt nun eine Beschreibung der Antwort auf den Empfang
einer Leseanforderung, die in ein Verzögerungstoken geändert
werden muß.
-
(1) Beim Empfang des Freie-Adresse-Tokens 511 und des
Leseanforderung-Tokens 512 ändert der Speicherteil 2, da das gültige
Markierungsflag 30b auf "0" steht, das Leseanforderung-Token 512
zu einem Verzögerungstoken 513, was er - wie in Fig. 8b gezeigt
- zum Verzögerung-Verarbeitungsteil 3 schickt. Um ein
Verzögerungstoken zu erzeugen, löscht er die Parameter aus dem
Leseanforderung-Token 512 und fügt die in der Adresse A
gehaltene Adresse Q2 sowie den im Freie-Adresse-Token 811
gehaltenen Parameter der Tabelle freier Adressen zusammen. Die
freie Adresse Q3 wird in der Adresse A gespeichert. Dies ist
insofern eine andere als die unter Bezugnahme auf die Fig. 7a
und 7b beschriebene Antwort, als bei der Erzeugung des
Verzögerungstokens 813 die Adresse T2 der Tabelle freier
Adressen anstelle der Adresse Q3 hinzugegeben wurde (Tn im
Freie-Adressen-Stapel 30a).
-
(2)
Beim Eintreffen des Verzögerungstokens 813 am Verzögerung-
Verarbeitungsteil 3 greift der Verzogerung-Verarbeitungsteil 3
auf die Tabelle freier Adressen 801 zurück und er leitet aus der
Adresse T2 der Tabelle freier Adressen die Adresse Q3 ab. Wie in
Fig. 8c gezeigt, werden aus dem Verzögerungstoken 813 entnommene
Daten Ra3, Q2 in der aus dem Freie-Adresse-Parameter T2 des
Verzögerungstokens 813 abgeleiteten Adresse Q2 gespeichert. Da
die Adresse Q3 bereits in Adresse A eingetragen wurde, wie in
Abschnitt 1 oben beschrieben, ist damit eine Verzögerungsserie
abgeschlossen worden.
-
(3) Da die Tabelle freier Adressen T2 nicht mehr benutzt wird,
läßt sie sich wieder benutzen. Der Verzögerung-Verarbeitungsteil
3 trägt eine neue freie Adresse Q4 in T2 ein und liefert aus den
Parametern T2 und Q4 eine neues Freie-Adresse-Token, das er an
den Speicherteil 2 schickt.
-
Auf den Empfang eines Schreib-Tokens hin erfolgt die
gleiche Antwort, wie sie unter Bezugnahme auf Fig. 7e
beschrieben ist.
-
Im vorhergehenden wurde die vorliegende Erfindung dadurch
erläutert, daß man als Beispiele Freie-Adresse-Token und
Verzögerungstoken genommen hat, jedoch ist dies nicht die
einzige Anwendung für die vorliegende Erfindung.
-
Unter Bezugnahme auf Fig. 9a wird in einem System, worin
Datenpakete zwischen zwei Vorrichtungen, das heißt Vorrichtung
A und Vorrichtung B, ausgetauscht werden, ein Teil (x) der
gerade von der Vorrichtung A zu Vorrichtung B geschickten
Informationen von der Vorrichtung B eingesetzt und als Teil
eines Datenpakets von der Vorrichtung B zu Vorrichtung A
geschickt. Die vorliegende Erfindung läßt sich in jeder
beliebigen solchen Situation einsetzen, worin der Wert von x
unverändert bleibt.
-
In Fig. 9a weist das Token 911 die Parameter x und y auf.
Beim Empfang des Tokens 911 fügt die Vorrichtung B dieses mit
einem Parameter x zum Formen eines Tokens 915 zusammen, das sie
zu Vorrichtung A schickt. Bei x handelt es sich um die Adresse
der Vorrichtung A.
-
Bei solchen Systemen lassen sich Verbesserungen durch eine
Anwendung der vorliegenden Erfindung wie in Fig. 9b gezeigt
erzielen. Es ist eine Tabelle 901 vorgesehen, welche den
Parameter x vorübergehend in der Vorrichtung A zurückhält. Der
Parameter T wird im Token 951 den von 911 gehaltenen zugegeben,
und im Token 955 wird x durch T ersetzt und rückgeführt. Durch
diese Maßnahmen ist eine Verringerung der Datenbreite der Token
möglich.
-
Im oben aufgeführten Beispiel der vorliegenden Erfindung
werden - wie in Fig. 9a - Token zwischen einer Vorrichtung A und
einer Vorrichtung B ausgetauscht, und in jedem beliebigen
System, in dem die gleichen Parameter im Kreislauf gehalten
werden, ist eine Verringerung der Datenbreite der Token möglich.
Der Grund hierfür besteht darin, daß der Parameter T des Tokens
955 in Fig. 9b eine geringere Bitbreite als der Parameter x des
Tokens 915 in Fig. 9a aufweist. Die Bitbreite von T hängt von
der Größe der Tabelle 901 ab, und die Bitbreite von x hängt vom
Umfang des in der Vorrichtung A verfügbaren Speicherraums 900
ab.
-
Der Umfang des in der Vorrichtung A verfügbaren
Speicherraums wird durch die vom System verlangten Möglichkeiten
festgelegt, und die Größe der Tabelle 901 sollte größer sein als
die Gesamtsumme der im System umhergeschickten Token sowie der
vorübergehend in der Vorrichtung B angesammelten Token.
Dementsprechend ist die Größe der Tabelle 901 viel kleiner als
der Umfang des Speicherraums der Vorrichtung A 900, und folglich
kann die Bitbreite des Parameters T viel geringer als die
Bitbreite des Parameters x sein. Mit einer verringerten
Bitbreite der Daten in Token 955 läßt sich die Kanal-Hardware
für Token viel preiswerter gestalten.