VERFAHREN ZUR STEUERUNG EINES VERTEILTEN VERARBEITUNGSSYSTEMS
BEREICH DER ERFINDUNG
-
Die vorliegende Erfindung betrifft ein Verfahren zur
Steuerung eines Mehrprozessorsystems.
BESCHREIBUNG DER VERWANDTEN TECHNIK
-
Was herkömmliche Verfahren zur Steuerung des Sendens und
Empfangens von Daten für Mehrprozessorsysteme betrifft, so
wird in einem codeunabhängigen Steuerverfahren
(HDLC-Verfahren) oder ähnlichem ein Befehl/Antwort-Schema verwendet, wie
in "Information Processing", Information Processing Society
of Japan, Band 23, Nr. 12, 1982, Seiten 1154 bis 1160
beschrieben. Bei diesem Schema handelt es sich um eine Eins-zu-
Eins-Kommunikation, bei der ein Prozessor zum Senden von
Daten einen Prozessor bestimmt, der die Daten empfangen soll,
und der Prozessor, der die Daten empfangen hat, sendet an den
Prozessor, der die Daten gesendet hat, eine Antwort, die den
erfolgreichen Empfang mitteilt. Der Prozessor der Sendeseite
erfaßt den Erfolg der Datenübertragung bei Empfang der
Antwort, wohingegen er auf der Grundlage der Tatsache, daß keine
Antwort zurückkommt, einen Fehler der Datenübertragung
erfaßt. Dieses Schema basiert auf der Voraussetzung, daß der
Prozessor der Sendeseite die Adresse des Prozessors der
Empfangsseite kennt.
-
Ferner gibt es auch ein Sendesystem mit allgemeiner
Adressierung, bei dem die Daten ohne genaue Angabe eines
bestimmten Empfangsprozessors gesendet werden und sämtliche
Prozessoren im System die Daten empfangen. Bei diesem System
wird die den Empfang von Daten bestätigende Antwort vom
empfangenden Prozessor nicht gesendet. Selbst wenn in einem
Prozessor des Systems ein Eehler auftritt oder ein Prozessor neu
hinzugefügt wird, kann daher der Prozessor der Sendeseite
Daten senden, ohne von einer derartigen Tatsache Kenntnis zu
haben.
-
Bei der Eins-zu-Eins-Kommunikation, bei der es sich um
die oben beschriebene verwandte Technik handelt, kommt es
aufgrund der Rückgabe einer Antwort für jede Sendung auf der
Datenübertragungsebene zu keiner Datenauslassung. Da die
Eins-zu-Eins-Kommunikation auf der Voraussetzung basiert, daß
der Prozessor der Sendeseite die Adressen sämtlicher
Prozessoren der Empfangsseite kennt, ist es jedoch erforderlich,
sämtliche Prozessoren über eine Änderung der
Systemkonfiguration, wenn es durch Erweiterung zu einer solchen kommt, einen
Fehler oder ähnliches zu informieren, was hinsichtlich der
Erweiterbarkeit zu einem Problem führt. Bei einer
Kommunikation mit allgemeiner Adressierung wird eine derartige
Notwendigkeit umgangen, und die Erweiterbarkeit ist hoch. Da keine
Antwort zurückgegeben wird, besteht jedoch die Möglichkeit,
daß es zu einer Datenauslassung kommt, wenn beispielsweise
eine erhöhte Belastung einen Überlauf eines Empfangspuffers
bewirkt und mit allgemeiner Adressierung gesendete Daten
nicht empfangen werden können.
-
Ein weiteres verteiltes Prozessorsystem, das auf der
Grundlage der Eins-zu-Eins-Kommunikation arbeitet und somit
die oben erläuterten Einschränkungen aufweist, wird von A.
Hopper et al. in "Local Area Network Design", Addison-Wesley
Publishing Company, 1986, Seiten 10 bis 13, 94 bis 103 und
155 bis 163, beschrieben. Der erste Teil von Anspruch 1
umfaßt diejenigen Merkmale der Erfindung, die aus diesem
Dokument bekannt sind.
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es ist eine Aufgabe der vorliegenden Erfindung, ein
Verfahren zur Steuerung eines verteilten Prozessorsystems zu
schaffen, das durch Vorsehen eines sehr zuverlässigen
Übertragungssystems ohne Datenauslassung die Zuverlässigkeit,
Erweiterbarkeit und Effizienz der Wartung des Systems
verbessert
-
Diese Aufgabe ist durch das in Anspruch 1 definierte
Verfahren gelöst.
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Fig. 1A, Fig. 1B und Fig. 1C sind Betriebs-Flußdiagramme
eines ersten Ausführungsbeispiels der vorliegenden Erfindung;
-
Fig. 2A und Fig. 2B sind Systemkonfigurationsdiagramme;
-
Fig. 3 ist ein Kofigurationsdiagramm eines
Empfangspuffers;
-
Fig. 4 ist ein Formatdiagramm von Sendedaten;
-
Fig. 5 ist ein Systemkonfigurationsdiagramm eines
zweiten Ausführungsbeispiels der vorliegenden Erfindung;
-
Fig. 6 ist ein Konfigurationsdiagramm eines Sende- und
Empfangspuffers;
-
Fig. 7A, Fig. 7B und Fig. 7C sind
Betriebs-Flußdiagramme;
-
Fig. 8 bis Fig. 10 sind jeweils Flußdiagramme einer
Empfangsdaten-Überwachungseinrichtung, einer
Nachrichtensendeeinrichtung und einer Daten-Sendeeinrichtung eines dritten
Ausführungsbeispiels;
-
Fig 11 ist ein Diagramm zur Erläuterung von Wirkungen
eines vierten Ausführungsbeispiels;
-
Fig. 12A ist ein Blockdiagramm einer
Gesamtsystemkonfiguration eines fünften Ausführungsbeispiels der vorliegenden
Erfindung;
-
Fig. 12B ist ein Blockdiagramm einer detaillierten BCP-
Konfiguration;
-
Fig. 12C und 12D sind Diagramme zur Erläuterung einer
Empfangsverarbeitung und einer Besetzt-Signal-Aussendung;
-
Fig. 13 ist ein Diagramm zur Erläuterung eines
Empfangspuffers;
-
Fig. 14 ist ein Verarbeitungs-Flußdiagramm einer
Verarbeitung bei Erfassen eines vollen Puffers und einer
Verarbeitung einer Besetzt-Signal-Aussendung;
-
Fig. 15 ist ein Flußdiagramm einer Sendeverarbeitung;
-
Fig. 16 ist ein Flußdiagramm einer Empfangsverarbeitung;
-
Fig. 17 ist ein Diagramm zur Erläuterung eines
Nachrichtenformats;
-
Fig. 18 ist ein Verarbeitungs-Flußdiagramm einer
Empfangsverarbeitung und einer Besetzt-Signal-Aussendung bei
einem sechsten Ausführungsbeispiel;
-
Fig. 19 ist ein Flußdiagramm einer im sechsten
Ausführungsbeispiel durchgeführten Sendeverarbeitung;
-
Fig. 20 ist ein Blockdiagramm einer detaillierten BCP-
Konfiguration bei einem siebten Ausführungsbeispiel;
-
Fig. 21A und Fig. 21B sind Diagramme einer internen NCP-
Konfiguration;
-
Fig. 22 ist eine Darstellung einer
Gesamtsystemkonfiguration;
-
Fig. 23A und Fig. 23B sind Darstellungen eines
Nachrichtenformats;
-
Fig. 24A, Fig. 24B und Fig. 24C sind Diagramme zur
Erläuterung einer in jedem NCP durchgeführten
Empfangsverarbeitung;
-
Fig. 25A und Fig. 25B sind Flußdiagramme zur Erläuterung
der Sendeverarbeitung;
-
Fig. 26A und Fig. 26B sind Diagramme zur Erläuterung
eines neunten Ausführungsbeispiels;
-
Fig. 27 ist ein Flußdiagramm zur Erläuterung eines
zehnten Ausführungsbeispiels;
-
Fig. 28 ist ein Diagramm zur Erläuterung eines elften
Ausführungsbeispiels; und
-
Fig. 29A und 29B sind Diagramme zur Erläuterung eines
zwölften Ausführungsbeispiels
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Nachfolgend wird unter Bezugnahme auf Zeichnungen ein
erstes Ausführungsbeispiel der vorliegenden Erfindung
beschrieben. Fig 2A ist eine Übersicht der Konfiguration des
Gesamtsystems. Prozessoren 10, 20 und 30 sind über einen
Übertragungspfad ol miteinander verbunden. Die Prozessoren
10, 20 und 30 verfügen jeweils über Schnittstellen 11, 21 und
31 zum Übertragungspfad 01. Obwohl drei Prozessoren 10, 20
und 30 dargestellt sind, kann jede beliebige Anzahl von
Prozessoren
angeschlossen werden, solange die Anzahl nicht
kleiner als zwei ist. In diesem Fall ändert sich der Betrieb der
jeweiligen Prozessoren nicht. Fig. 2B zeigt die Struktur der
Schnittstelle 11 des Prozessors 10 zum Übertragungspfad 01.
Andere Prozessoren weisen ebenfalls die gleiche Struktur wie
der Prozessor 10 auf. Die Schnittstelle 11 umfaßt eine
Datenempfangseinrichtung 13 zum Empfangen von Daten vom
Übertragungspfad 01, einen Empfangspuffer 14, um darin die
empfangenen Daten zu speichern, eine
Empfangsdaten-Überwachungseinrichtung 15 zum Überwachen der Anzahl von im Empfangspuffer
14 gespeicherten Daten, eine Nachrichtensendeeinrichtung 16
zum Senden einer Datensendeverzögerungs-Anforderungsnachricht
an den Übertragungspfad 01, eine Datensendeeinrichtung 17 zum
Senden von Daten an den Übertragungspfad 01, einen
Sendepuffer 18, um darin die zu sendenden Daten zu speichern, und
einen Zeitgeber 19. Diese jeweiligen Einrichtungen lassen sich
durch Verwendung eines gemeinsamen Prozessors oder
individueller Prozessoren implementieren. Die Verarbeitungseinheit 12
erhält vom Empfangspuffer 14 Daten, verarbeitet diese und
speichert zu sendende Daten im Sendepuffer 18. Fig. 3 zeigt
die Konfiguration des Empfangspuffers 14. Der Empfangspuffer
umfaßt mehrere Datenspeicherbereiche. Jeder Bereich umfaßt
einen Datenabschnitt 200 und einen Flag-Abschnitt 201. Das
Flag 201 ist "1" wenn in diesem Bereich Daten gespeichert
sind, wohingegen es "0" ist, wenn in diesem Bereich keine
Daten gespeichert sind. Die Datenempfangseinrichtung 13
speichert Daten im untersten Bereich in der Figur, in dem keine
Daten gespeichert sind, das heißt, dessen Flag "0" ist. Ist
das Flag des untersten Bereichs "1", so nimmt die
Verarbeitungseinheit 12 die Daten dieses untersten Bereichs auf und
verschiebt Daten von Bereichen, die über diesem Bereich
liegen, der Reihe nach nach unten. Die
Empfangsdaten-Überwachungseinrichtung überwacht den Empfangszustand, indem sie
alle Bereiche zählt, deren Flag 201 eine logische "1"
aufweist. Fig. 1A ist ein Betriebs-Flußdiagramm der
Empfangsdaten-Überwachungseinrichtung 15. Überwacht wird die Anzahl der
im Empfangspuffer gespeicherten Daten (Schritt 101). Liegt
die Anzahl nicht unter einem vorbestimmten Wert N, so wird
die Nachrichtensendeeinrichtung hierüber informiert (Schritt
102). Unmittelbar nach Empfangen der Information von der
Empfangsdaten-Überwachungseinrichtung 15 sendet die
Nachrichtensendeeinrichtung 16 eine
Datensendeverzögerungs-Anforderungsnachricht an den Übertragungspfad 01. Fig. 1B ist ein
Betriebs-Flußdiagramm der Datenempfangseinrichtung 13. Die
Datenempfangseinrichtung 13 empfängt Daten (Schritt 110).
Handelt es sich bei den Daten um eine
Datensendeverzögerungs-Anforderungsnachricht (Schritt 111), so wird die
Datensendeeinrichtung 17 hierüber von der Datenempfangseinrichtung 13
informiert (Schritt 112). Ist dies nicht der Fall, so legt die
Datenempfangseinrichtung die Daten in den Empfangspuffer 14
(Schritt 113) und schließt die Verarbeitung ab (Schritt 114).
Fig. 1C ist ein Betriebs-Flußdiagramm der
Datensendeeinrichtung 17. Hat die Datenempfangseinrichtung 13 die
Datensendeeinrichtung 17 über den Empfang der Datensendeverzögerungs-
Anforderungsnachricht (Schritt 121) informiert, so startet
die Datensendeeinrichtung 17 den Zeitgeber (Schritt 122).
Stoppt der Zeitgeber (Schritt 123), so kehrt der Betrieb zu
seinem ursprünglichen Zustand zurück. Die im Zeitgeber
eingestellte Zeitspanne weist entweder einen konstanten Wert oder,
alternativ hierzu, einen variablen Wert auf, der von der
Häufigkeit des Empfangs der
Datensendeverzögerungs-Anforderungsnachricht abhängt. In letzterem Fall wird eine ab einem
vorherigen Empfang der gleichen Nachricht bis zu ihrem Empfang
zu diesem Zeitpunkt verstreichende Zeit T gemessen, und der
Wert des Zeitgebers wird derart geändert, daß er bei großem T
kleiner, bei kleinem T größer wird. Mittels dieses Verfahrens
wird es möglich, das Senden von Daten je nach
Überlastungsgrad des Übertragungspfads D1 und Belastung anderer
Prozessoren zu verzögern. Sollen Daten an den Übertragungspfad D1
gesendet werden, so wird das Verfahren des Sendens mit
allgemeiner Adressierung verwendet. Fig. 4 ist eine
Formatdarstellung von auf dem Übertragungspfad übertragenen Daten. Die
Bezugszeichen 211 und 216 bezeichnen jeweils Symbole, die den
Anfang und das Ende der Daten darstellen. Das Bezugszeichen
212 bezeichnet einen Inhaltscode zum Darstellen des Inhalts
der Daten. Das Bezugszeichen 213 bezeichnet eine Seriennum
mer. Das Bezugszeichen 214 bezeichnet die Prozessornummer des
Daten übertragenden Prozessors, und das Bezugszeichen 215
bezeichnet Information. Daten mit einem derartigen Format
werden mit allgemeiner Adressierung gesendet. Folglich empfangen
sämtliche Prozessoren am Übertragungspfad 01 die Daten und
beurteilen anhand des Inhaltscodes 212, ob es sich bei den
Daten um notwendige Daten handelt oder nicht. Die Prozessoren
beurteilen anhand der Seriennummer 213, ob die gleichen Daten
bereits früher empfangen wurden oder nicht und sondern neue
Daten im Falle einer Überlappung aus. Anhand der
Prozessornummer 214 beurteilt jeder Prozessor, ob die empfangenen
Daten in seinem eigenen Prozessor generiert wurden. Entspricht
auch die Datensendeverzögerungs-Anforderungsnachricht dem
Format von Fig. 4, so ist es möglich, zu verhindern, daß die
selbst gesendete Datensendeverzögerungs-Nachricht das Senden
von zu sendenden Daten, die in ihrem eigenen Prozessor
generiert wurden, stoppt.
-
Bei einem zweiten Ausführungsbeispiel der vorliegenden
Erfindung überwacht jeder Prozessor seine eigene
Datenempfangsfähigkeit, wenn die Belastung sämtlicher Prozessoren am
Übertragungspfad und die Kapazitäten der Empfangspuffer
äquivalent sind. Ist die eigene Datenempfangsfähigkeit eines
Prozessors herabgesetzt, so nimmt jeder Prozessor an, daß die
Datenempfangsfähigkeiten anderer Prozessoren in ähnlicher
Weise herabgesetzt sind und stoppt vorübergehend seine eigene
Datenaussendung. Nachfolgend wird unter Bezugnahme auf
Zeichnungen das zweite Ausführungsbeispiel beschrieben. Fig. 5 ist
ein Konfigurationsdiagramm eines Schnittstellenabschnitts 51
zwischen dem Übertragungspfad 01 und dem Prozessor. Die
Schnittstelle 51 umfaßt eine Datenempfangseinrichtung 53 zum
Empfangen von Daten vom Übertragungspfad, eine
Datensendeeinrichtung 54 zum Senden von von einer Verarbeitungseinheit 52
gelieferten Daten und zum Informieren der Empfangseinrichtung
über die Daten, einen Zeitgeber 55, einen Sende- und
Empfangspuffer 56 und eine Pufferüberwachungseinrichtung 57 zum
Überwachen der im Sende- und Empfangspuffer 56 gespeicherten
Anzahl der Daten. Diese Einrichtungen lassen sich durch einen
gemeinsamen Prozessor oder durch individuelle Prozessoren
implementieren. Fig. 6 ist ein Konfigurationsdiagramm des
Sende- und Empfangspuffers 56. Der Sende- und Empfangspuffer
56 umfaßt einen Datenabschnitt 300, ein Sende/Empfangs-Flag
301 und ein Datenspeicherungs-Flag 302. Das Sende/Empfangs-
Flag 301 wird zu "0", wenn es sich bei den im entsprechenden
Abschnitt enthaltenen Daten um zu sendende Daten handelt, und
es wird zu "1", wenn die im entsprechenden Abschnitt
enthaltenen Daten empfangene Daten sind. Das Datenspeicherungs-Flag
302 wird zu "1", wenn die entsprechende Zeile Daten enthält,
es wird zu "0", wenn die entsprechende Zeile keine Daten
enthält. Speichert die Datenempfangseinrichtung 53 Daten im
Sende- und Empfangspuffer 56, so werden daher beide Flags zu
"1". Die Verarbeitungseinheit nimmt Daten auf, deren zwei
Flags "1" sind, und ändert das Speicherungs-Flag 302 auf "0".
Speichert die Verarbeitungseinheit 52 zu speichernde Daten im
Sende- und Empfangspuffer 56, so setzt sie das
Sende/Empfangs-Flag 301 auf "0" und das Speicherungs-Flag 302
auf "1". Führt die Datensendeeinrichtung 54 eine Datensendung
durch, so sendet sie Daten, die ein auf "0" gesetztes
Sende/Empfangs-Flag 301 und ein auf "1" gesetztes
Speicherungs-Flag aufweisen, und setzt das Speicherungs-Flag auf
"0". Mittels der Verwendung eines Puffers und eines
Verwaltungsverfahrens wird es möglich, das Senden von Daten zu un
terdrücken und einen freien Bereich des Sende- und
Empfangspuffers 56 ausschließlich für Daten zu verwenden, wenn ein
Datenempfang häufig ausgeführt wird. Dies entspricht einer
vorübergehenden Kapazitätserhöhung des Empfangspuffers, so
daß sich ein Abfall der Empfangsfähigkeit unterdrücken läßt.
Fig. 7A ist ein Betriebs-Flußdiagramm der
Datenempfangseinrichtung 53 des vorliegenden Ausführungsbeispiels. Empfängt
die Datenempfangseinrichtung 53 Daten oder wird sie durch die
Sendeeinrichtung 54 über Daten informiert (Schritt 310), so
speichert die Einrichtung 53 diese Daten im Sende- und
Empfangspuffer 56 (Schritt 311). Fig. 7B ist ein
Betriebs-Flußdiagramm der Datensendeeinrichtung 54. Wird die
Datensendeeinrichtung 54 durch die Pufferüberwachungseinrichtung 57
über einen Abfall der Datenempfangsfähigkeit informiert
(Schritt 321), so startet sie den Zeitgeber (Schritt 324).
Stoppt der Zeitgeber (Schritt 325), so kehrt die
Datenübertragungseinrichtung 54 in ihren ursprünglichen Zustand
zurück. Liegt von der Pufferüberwachungseinrichtung 57 keine
Information vor, so entscheidet die
Datenübertragungseinrichtung 54 anhand des Sende/Empfangs-Flags 301 und des
Speicherungs-Flags 302, ob im Sende- und Empfangspuffer 56 zu
sendende Daten vorliegen oder nicht (Schritt 322). Liegen zu
sendende Daten vor, so sendet die Datensendeeinrichtung 54
Daten und informiert die Datenempfangseinrichtung 53 hierüber
(Schritt 323). Bei einem Verfahren ist der im Zeitgeber
eingestellte Wert konstant, bei einem anderen Verfahren ist er
variabel und hängt von der Häufigkeit der von der
Pufferüberwachungseinrichtung 57 gelieferten Information ab. Fig. 7C
ist ein Betriebs-Flußdiagramm der
Pufferüberwachungseinrichtung 57. Die Pufferüberwachungseinrichtung 57 überwacht durch
Prüfen des Sende/Empfangs-Flags 301 und des Speicherungs-
Flags 302, die gesetzt sind, die Anzahl der im Sende- und
Empfangspuffer gespeicherten empfangenen Daten. Übersteigt
die Anzahl der empfangenen Daten den Wert N (Schritt 331), so
informiert die Pufferüberwachungseinrichtung die
Datensendeeinrichtung 54 und die Verarbeitungseinheit 52 hierüber
(Schritt 332). Bei Empfangen von Information von der
Pufferüberwachungseinrichtung 57 stoppt die Verarbeitungseinheit
das Speichern von zu sendenden Daten im Sende- und
Empfangspuffer 56 vorübergehend. Die Dauer des Stillstands ist gleich
oder größer als der Zeitgeberwert der Datensendeeinrichtung
54. Dadurch nimmt die Verarbeitungseinheit 52 empfangene
Daten auf, ohne zu sendende Daten in den Puffer zu legen.
Folglich
erhöht sich das Verhältnis der Anzahl der im Sende- und
Empfangspuffer 56 gespeicherten empfangenen Daten zur Anzahl
der zu sendenden Daten, was zu einer gesteigerten
Datenempfangsfähigkeit führt. Ferner wird das Senden von Daten
vorübergehend und gleichzeitig in sämtlichen Prozessoren
gestoppt, wenn die Belastungen sämtlicher Prozessoren und die
Kapazitäten sämtlicher Sende- und Empfangspuffer 56
zueinander äquivalent sind. Daher fließen auf dem Übertragungspfad
01 keine Daten mehr, und auch die Anzahl der im Sende- und
Empfangspuffer jedes Prozessors gespeicherten empfangenen
Daten nimmt ab, was zu einer verbesserten
Datenempfangsfähigkeit führt.
-
Erfaßt die Empfangsdaten-Überwachungseinrichtung 15 oder
die Pufferüberwachungseinrichtung 57 mittels Prüfung der
Anzahl der im Puffer gespeicherten Daten einen abnormalen
Zustand, so wird bei den oben beschriebenen beiden
Ausführungsbeispielen die Nachrichtensendeeinrichtung 16 oder die
Datensendeeinrichtung 54 hierüber direkt von der Einrichtung 15
und 57 informiert. Alternativ hierzu können jedoch die
Einrichtungen 15 oder 57 den abnormalen Zustand über ein Flag
mitteilen. Bei Empfangen einer Anomalität setzt die
Empfangsdaten-Überwachungseinrichtung 15 oder die
Pufferüberwachungseinrichtung 57 ein Flag. Die Nachrichtensendeeinrichtung 16
oder die Datensendeeinrichtung 54 überwacht dieses Flag
ständig. Ist das Flag gesetzt, so sendet die
Nachrichtensendeeinrichtung 16 bzw. die Datensendeeinrichtung 54 eine Nachricht
aus bzw. stoppt das Senden von Daten.
-
Nachfolgend wird unter Bezugnahme auf Zeichnungen ein
drittes Ausführungsbeispiel der vorliegenden Erfindung be
schrieben. Bei dem vorliegenden Ausführungsbeispiel wird die
Sendeverzögerung durch eine Aufhebungs-Anforderungsnachricht
aufgehoben, die von dem Prozessor geliefert wird, der die
Verzögerungsanforderung ausgegeben hat. Nachfolgend wird
unter Bezugnahme auf die Figuren 8 bis 10 der Betrieb der Emp
fangsdaten-Überwachungseinrichtung 15, der
Nachrichtensendeeinrichtung 16 und der Datensendeeinrichtung 17, die in Fig.
2B dargestellt sind, beschrieben. Zuerst wird unter Bezug
nahme auf Fig. 8 der Betrieb der
Empfangsdaten-Überwachungseinrichtung 15 beschrieben. Die
Empfangsdaten-Überwachungseinrichtung 15 überwacht die Anzahl der im Empfangspuffer
gespeicherten Daten ständig. Übersteigt die Anzahl der Daten
eine festgesetzte Anzahl N (Schritt 421), so erfaßt die
Empfangsdaten-Überwachungseinheit 15 ein Großwerden der
Belastung der Verarbeitungseinheit 12 und ein Vollwerden des
Empfangspuffers, und die Einrichtung 15 gibt an die
Nachrichtensendeeinrichtung 16 ein Verzögerungsanforderungs-Signal aus
(Schritt 422). Anschließend überwacht die
Empfangsdaten-Überwachungseinheit 15 wieder die Anzahl der im Empfangspuffer 14
gespeicherten Daten. Wird die Anzahl Daten kleiner als eine
festgesetzte Anzahl N' (Schritt 423), so liefert die
Empfangsdaten-Überwachungseinheit 15 an die
Nachrichtensendeeinrichtung 16 ein Aufhebungsanforderungs-Signal (Schritt 424)
und kehrt zu ihrem ursprünglichen Zustand zurück. N' weist
einen Wert auf, der kleiner oder gleich dem Wert von N ist.
Das Verzögerungsanforderungs-Signal und das
Aufhebungsanforderungs-Signal, die der Nachrichtensendeeinrichtung 16
zuzuführen sind, sind zwischen der
Empfangsdaten-Überwachungseinrichtung 15 und der Nachrichtensendeeinrichtung 16 definiert.
Diese Signale lassen sich beispielsweise mittels der
Definition einer Bool'schen Variablen als Verzögerungsanforderungs-
Signal, wenn sie "1" ist, und als Aufhebungssignal, wenn sie
"0" ist, realisieren, die so lange auf "0" gesetzt ist, bis
ein Verzögerungsanforderungs-Signal ausgegeben wird.
Nachfolgend wird unter Bezugnahme auf Fig. 9 der Betrieb der
Nachrichtensendeeinrichtung 16 beschrieben. Bei Empfangen des
Verzögerungsanforderungs-Signals (Schritt 430) beginnt die
Nachrichtensendeeinrichtung 16 mittels Verwendung eines
Zeitgebers mit einer Zeitmessung (Schritt 431) und sendet eine
Datensendeverzögerungs-Anforderungsnachricht mit einem in
Fig. 4 dargestellten Format an das Netzwerk 01. Bei dem
Datenübertragungsverfahren dieses Systems wird eine Übertragung
mit allgemeiner Adressierung verwendet, die nicht mit der
Empfangszieladresse arbeitet. Daher wird die
Datensendeverzögerungs-Anforderungsnachricht von sämtlichen anderen am
Netzwerk 01 befindlichen Prozessoren empfangen. Anschließend
beurteilt die Nachrichtensendeeinrichtung 16, ob das
Aufhebungsanforderungs-Signal von der
Empfangsdaten-Überwachungseinrichtung 15 geliefert wurde oder nicht (Schritt 433).
Wurde das Aufhebungsanforderungs-Signal geliefert, so wird
das Verzögerung-Aufheben-Signal mit allgemeiner Adressierung
zum Netzwerk 01 gesendet (Schritt 435). Wird das
Aufhebungsanforderungs-Signal nicht geliefert, so prüft die
Nachrichtensendeeinrichtung 16 den Wert des Zeitgebers. Liegt der
Wert des Zeitgebers nicht unter einer festgesetzten Zeit T,
so kehrt die Nachrichtensendeeinrichtung zu Schritt 431
zurück. Ist der Wert des Zeitgebers kleiner als T, so kehrt die
Nachrichtensendeeinrichtung 16 zu Schritt 433 zurück (Schritt
434). Durch Wiederholen dieses Vorgangs ist es möglich, ab
dem Empfang des Verzögerungsanforderungs-Signals bis zum
Empfang des Aufhebungssignals in festgesetzten Zeitintervallen
eine Datensendeverzögerungs-Anforderungsnachricht zu senden.
Nachfolgend wird unter Bezugnahme auf Fig. 10 der Betrieb der
Datensendeeinrichtung 17 beschrieben. Die
Datensendeeinrichtung 17 beurteilt anhand der Nachricht der
Datenempfangseinrichtung 13, ob diese eine
Datensendeverzögerungs-Anforderungsnachricht empfangen hat oder nicht (Schritt 441). Hat
die Datenempfangseinrichtung bereits die
Datensendeverzögerungs-Anforderungsnachricht empfangen, so beginnt die
Datensendeeinrichtung 17 mittels Verwendung des Zeitgebers Zeit zu
messen (Schritt 442) und ersetzt die in der Nachricht
enthaltene Prozessornummer 214 durch eine Variable P (Schritt 443).
Die Datensendeeinrichtung beurteilt anschließend, ob eine
Verzögerung-Aufheben-Nachricht empfangen wurde oder nicht
empfangen, so beurteilt die Datensendeeinrichtung, ob die
Datensendeverzögerungs-Anforderungsnachricht neu empfangen
wurde (Schritt 445). Wurde sie neu empfangen, so kehrt die
Datensendeeinrichtung zu Schritt 442 zurück und startet das
Zählen des Zeitgebers. Ferner wird die Prozessornummer des
Sendeursprungs der neuen Nachricht durch P ersetzt (Schritt
443). Wird in Schritt 445 beurteilt, daß die Nachricht nicht
empfangen wurde, so wird der Wert des Zeitgebers geprüft
(Schritt 449). Ist der Wert des Zeitgebers größer als ein
festgesetzter Zeitwert T', so kehrt die Datensendeeinrichtung
zu Schritt 441 zurück. Ist der Wert des Zählers größer als
T', so kehrt die Datensendeeinrichtung zu Schritt 444 zurück.
T' muß länger sein als die festgesetzte Zeitspanne T der
Nachrichtensendeeinrichtung. Wird in Schritt 444 beurteilt,
daß die Verzögerung-Aufheben-Nachricht empfangen wurde, so
kehrt die Datensendeeinrichtung zu Schritt 441 zurück, wenn
die Nummer des Prozessors, der die
Verzögerung-Aufheben-Nachricht gesendet hat, gleich P ist. Ist die Nummer des
Prozessors nicht gleich P, so fährt die Datensendeeinrichtung mit
Schritt 445 fort. Folglich wird der Verzögerungszustand immer
durch die letzte Datensendeverzögerungs-Anforderungsnachricht
und die Verzögerung-Aufheben-Nachricht vom gleichen
Sendeursprung aufgehoben. Wird in Schritt 441 beurteilt, daß eine
Nachricht nicht empfangen wurde, so wird geprüft, ob im
Sendepuffer 18 Daten vorliegen oder nicht (Schritt 446). Liegen
keine Daten vor, so kehrt die Datensendeeinrichtung zu
Schritt 441 zurück. Liegen Daten vor, so sendet die
Datensendeeinrichtung mit allgemeiner Adressierung im Sendepuffer 18
gespeicherte Daten an das Netzwerk und setzt das den
Sendedaten entsprechende Flag 201 auf "0" (Schritt 447). Im
Sendepuffer gespeicherte Daten können gesendet werden, indem
sämtliche im Sendepuffer gespeicherten Daten gleichzeitig
gesendet werden, oder, alternativ hierzu, indem die Daten der
Reihe nach gesendet werden. Findet das letztere Verfahren
Anwendung, so sollen die im Puffer gespeicherten Daten
beginnend mit dem ältesten Dateneintrag gesendet werden. Als Folge
des bis zu dieser Stelle beschriebenen, durch die jeweiligen
Einrichtungen ausgeführten Vorgangs werden die unten
beschriebenen Wirkungen erhalten. Zuerst wurde mittels
Verwendung eines Flags, das anzeigt, ob in jedem
Datenspeicherbereich
des Empfangspuffers 14 und des Sendepuffers 18 Daten
vorliegen, die Beurteilung erleichtert, wie viele Daten
bereits im Puffer enthalten sind. Nachfolgend wird eine zweite
Wirkung beschrieben. Da die Datensendeeinrichtung 17 die
Sendeursprungs-Prozessornummer der letzten
Datensendeverzögerungs-Anforderungsnachricht speichert, wird verhindert, daß
der Verzögerungszustand des Gesamtsystems durch eine
Verzögerung-Aufheben-Nachricht eines anderen Prozessors aufgehoben
wird, selbst wenn es einen Prozessor gibt, den der
Verzögerungsanforderungs-Zustand noch nicht erreicht hat.
Nachfolgend wird die zweite Wirkung unter Bezugnahme auf Fig. 11
genau beschrieben. Es sei nun angenommen, daß drei oder mehr
Prozessoren am Netzwerk angeschlossen sind. Zuerst gibt ein
Prozessor 1 zum Zeitpunkt t&sub1; eine Verzögerungsanforderung
aus, und anschließend gibt ein Prozessor 2 zum Zeitpunkt t&sub2;
eine Verzögerungsanforderung aus. Obwohl der Prozessor 1 die
Verzögerung zum Zeitpunkt t&sub3; aufhebt, hebt der Prozessor 2
die Verzögerung noch nicht auf. In Anbetracht des
Gesamtsystems darf die Verzögerung daher nicht zum Zeitpunkt t&sub3;
aufgehoben werden. Eine ähnliche Zwangsbedingung gilt auch nach
Ausgabe einer Verzögerungsanforderung zum Zeitpunkt t4 durch
den Prozessor 3. Schließlich muß das Senden von Daten in dem
System als Ganzes vom Zeitpunkt t1 bis zum Zeitpunkt t6, zu
dem der Prozessor 3 die Verzögerung aufhebt, unterdrückt
werden.
-
Bei einem vierten Ausführungsbeispiel der vorliegenden
Erfindung wird als Sendeschema anstelle des Sendeschemas mit
allgemeiner Adressierung, das ohne eine Adresse arbeitet, ein
mit einer Adresse arbeitendes Eins-zu-Eins-Kommunikations
schema verwendet. In diesem Fall wird anstelle des
Inhaltscodes 212 die Zieladresse beschrieben, und die
Datensendeverzögerungs-Anforderungsnachricht sowie die
Verzögerung-Aufheben-Nachricht werden in den Abschnitt der Information 215
gelegt. Die Konfiguration des Gesamtsystems, die Konfiguration
der Datensende- und der Datenempfangseinrichtung sowie die
Betriebs-Flußdiagramme der jeweiligen Einrichtungen sind mit
Ausnahme der Nachrichtensendeeinrichtung die gleichen wie die
des ersten Ausführungsbeispiels Die
Nachrichtensendeeinrichtung speichert Adressen sämtlicher Knoten des Netzwerks, und
wenn sie Nachrichten sendet, sendet sie sämtliche Nachrichten
mit Adressen der jeweiligen Knoten. Nachfolgend wird die
Wirkung des vorliegenden Ausführungsbeispiels beschrieben. Da
der Datenfluß im Netzwerk keinen Inhaltscode beinhaltet und
mittels Verwendung einer Adresse eine
Eins-zu-Eins-Kommunikation ausgeführt wird, muß kein Prozessor den Inhaltscode
aufgenommener Daten unterscheiden. Daher ist die Verarbeitung im
Empfangsprozessor einfach, was zu einer Wirkung des
vorliegenden Ausführungsbeispiels führt.
-
Bei dem oben beschriebenen ersten bis vierten
Ausführungsbeispiel wird das vorliegende Schema in dem (in Fig. 2B
dargestellten) Schnittstellenabschnitt 11 durchgeführt. Das
vorliegende Schema kann jedoch im
Kommunikationssteuerprogramm der Verarbeitungseinheit-Seite durchgeführt werden.
Wird das vorliegende Schema auf der Verarbeitungseinheit-
Seite untergebracht, so ist es möglich, mittels Verwendung
eines bereits vorhandenen, unveränderten LAN (lokales
Netzwerk) eine sehr zuverlässige Kommunikation mit allgemeiner
Adressierung zu realisieren.
-
Nachfolgend wird ein fünftes Ausführungsbeispiel genau
beschrieben.
-
Fig. 12A ist ein Blockdiagramm der Konfiguration des
Gesamtsystems, als welches die vorliegende Erfindung ausgeführt
ist. Die Bezugszeichen 1100, 1101 und 1102 bezeichnen
Prozessoren. Die Prozessoren 1100, 1101 und 1102 weisen jeweils (im
folgenden mit BCP abgekürzte) Bussteuerprozessoren 1110, 1111
und 1112 auf und sind an einen Bus 1010 angeschlossen.
-
Fig. 12B ist ein Blockdiagramm einer
BCP-Gesamtkonfiguration. Der BCP läßt einen Datenfluß der Daten zu, die von
einer Sendeleitung 1012 über eine Sende/Empfangs-Weiche 1011
einem Netzwerk zugeführt werden, und nimmt über eine
Empfangsleitung 1013 ein Signal am Netzwerk auf.
-
Eine in den BCP aufgenommene Nachricht wird über einen
Prüfpuffer 1120 und einen Empfangspuffer 1121 zum Prozessor
1100 übertragen. Über einen Sendepuffer 1122 im BCP wird der
Nachrichtenfluß einer vom Prozessor 1100 gesendeten Nachricht
zum Netzwerk zugelassen. Durch eine im BCP enthaltene
Steuereinheit 1124 wird die Steuerung dieser Sende- und
Empfangsvorgänge durchgeführt.
-
Ist D die Signallaufzeit zwischen an beiden Enden des
Busses befindlichen Prozessoren, so ist die Länge einer Nach
richt, die in dem System, auf das die vorliegende Erfindung
angewandt wird, verwendet wird, derart definiert, daß die
Nachricht für mindestens 2D kontinuierlich gesendet werden
kann.
-
Fig. 17 zeigt ein im vorliegenden System verwendetes
Nachrichtenformat. In Fig. 17 stellen FS 1060 und FS 1061
Flags dar, die den Beginn und das Ende der Nachricht
anzeigen. Ein Nachrichtenabschnitt umfaßt einen Steuerabschnitt
1062, einen Informationsabschnitt 1063 und ein
Rahmenprüfzeichen (FCS) 1064 zum Prüfen von Übertragungsfehlern in Daten.
Der Steuerabschnitt 1062 umfaßt seine eigene MAC-Adresse
1601, die anzeigt, welcher Prozessor die Nachricht gesendet
hat, und eine Seriennummer 1602, die anzeigt, bei welcher
Folgenummer die Daten durch den Prozessor generiert wurden.
Obwohl in Fig. 17 nicht dargestellt, werden dem
Steuerabschnitt 1062 je nach Umstand für die Kommunikation zwischen
den Prozessoren erforderliche Informationen und ähnliches
hinzugefügt.
-
Zuerst wird der Fall beschrieben, bei dem der
Empfangspuffer 1121 voll wird.
-
Fig. 13 ist ein Konfigurationsdiagramm des
Empfangspuffers 1121. Dieser Empfangspuffer umfaßt ein
Speicherungsabschluß-Flag 1020 und einen Datenbereich 1021, in dem Daten
gespeichert werden.
-
Fig. 14 ist ein Flußdiagramm einer Puffererfassung und
Besetzt-Signal-Aussendung.
-
In Fig. 12B überwacht ein Empfangsverwaltungsabschnitt
sämtliche im Empfangspuffer 1121 enthaltenen
Speicherungsabschluß-Flags 1020 (Schritt 1030). Sind sämtliche
Speicherungsabschluß-Flags 1020 "1", so beurteilt der
Empfangsverwaltungsabschnitt, daß der Empfangspuffer 1121 voll ist und
sendet ein Besetzt-Signal an das Netzwerk (Schritt 1031). Das
Besetzt-Signal wird durch einen in Fig. 12B dargestellten
Besetzt-Signal-Generator 1127 generiert und kontinuierlich
gesendet, bis der Empfangspuffer 1121 die Bereitschaft erlangt,
Daten zu speichern. Wird, wie in Fig. 12D dargestellt, von
einem anderen Prozessor eine Nachricht gesendet, während ein
Besetzt-Signal gesendet wird, so kollidiert daher diese
Nachricht mit dem Besetzt-Signal. Erlangt der Empfangspuffer
1121, wie in Fig. 12C dargestellt, die Bereitschaft, Daten zu
speichern, so wird das Besetzt-Signal schnell gestoppt und
eine Nachricht von einem anderen Prozessor wird empfangen.
-
Nachfolgend wird unter Bezugnahme auf Fig. 15 der
Verarbeitungsfluß der Nachrichtensendung beschrieben.
-
Eine in einem Prozessor generierte Nachricht wird zu
einem Sendepuffer 1122 und gleichzeitig zu einem
Wiedersendepuffer übertragen. Handelt es sich bei einem zum Senden einer
Nachricht bereiten Prozessor um den in Fig. 12A dargestellten
Prozessor 1100, so überwacht der BCP 1110 dieses Prozessors,
ob das Netzwerk besetzt ist oder nicht (Schritt 1041). Wird
das Netzwerk frei, so sendet der BCP 1110 eine zu sendende
Nachricht an das Netzwerk (Schritt 1042). Dieses gesendete
Signal gelangt unmittelbar auf die Empfangsleitung 1013.
-
Das Signal auf dieser Empfangsleitung 1013 wird
überwacht (Schritt 1043) und in einem Detektor 1126 mit dem
gesendeten Signal verglichen (Schritt 1044). Weicht das
gesendete Signal vom empfangenen Signal ab, so wird beurteilt, daß
das gesendete Signal mit einem von einem anderen Prozessor
gesendeten Signal (das heißt mit einem Signal einer
gesendeten Nachricht oder einem Besetzt-Signal) kollidiert, und das
Senden wird eingestellt (Schritt 1045). Eine im
Wiedersendepuffer 1123 enthaltene Nachricht wird in den Sendepuffer 1122
kopiert (Schritt 1046). In einem Zeitgeber 1128 wird eine
durch den Unteraussteuerungs-Verwaltungsabschnitt 1130
beliebig definierte Zeitspanne eingestellt (Schritt 1047). Die so
gesetzte Zeitspanne wird abgewartet, und die Nachricht wird
erneut gesendet (Schritt 1048). Gelangt das Netzwerk während
dieser Wartezeit in den Besetzt-Zustand, so wird der
Zeitgeber 1128 zurückgesetzt (Schritt 1050). Es wird gewartet, bis
das Netzwerk frei wird, und die durch den Unteraussteuerungs-
Verwaltungsabschnitt 1130 beliebig definierte Zeitspanne wird
im Zeitgeber 1128 gesetzt. Ferner wird der Vorgang des
erneuten Sendens durchgeführt (Schritt 1048).
-
Stimmt das gesendete Signal bis zur Beendigung der
Übertragung vollständig mit dem empfangenen Signal überein, so
wird entschieden, daß die Übertragung abgeschlossen ist.
Aufgrund einer von einem Prozessor der Empfangsseite, der ein
durch einen Übertragungsfehler verlorengegangenes Bit erfaßt
hat, gesendeten Erneut-Senden-Anforderung wird jedoch im
Zeitgeber 1128 eine Erneut-Senden-Anforderungs-Empfangszeit
gesetzt (Schritt 1051). Ist eine Erneut-Senden-Anforderung
nicht rechtzeitig gekommen, so wird die Nachricht im
Wiedersendepuffer gelöscht und der Wiedersendevorgang
abgeschlossen. Ist eine Erneut-Senden-Anforderung rechtzeitig gekommen,
so wird die Nachricht im Wiedersendepuffer 1123 in den
Sendepuffer 1122 kopiert (Schritt 1052). Es wird überwacht, ob das
Netzwerk besetzt ist oder nicht (Schritt 1041). Es wird
abgewartet, bis das Netzwerk frei wird, und anschließend wird ein
erneutes Senden durchgeführt. Anschließend wird der oben
beschriebene Vorgang wiederholt.
-
Die Beschreibung der oben beschriebenen
Unteraussteuerungs-Verarbeitung für Kollisionserfassung und erneutes
Senden bezieht sich lediglich auf ein Beispiel zur Erläuterung
des vorliegenden Ausführungsbeispiels. Sämtliche
Kommunikationsprotokoll-Funktionen, wie zum Beispiel CSMA/CD (CSMA/CD:
Mehrfachzugriff mit Kollisionserkennung), für ein heute
gebräuchliches Netzwerk des Bustyps werden hierauf angewandt.
Bei dem vorliegenden Ausführungsbeispiel wird das Signal,
wenn es sich nicht um eine Untersteuerungs-Verarbeitung
handelt, zu dem Zeitpunkt gesendet, zu dem das Netzwerk frei
wird. Die Zeitsteuerung des heute gebräuchlichen CSMA-Systems
wird auch auf diese Signalsende-Zeitsteuerung angewandt.
-
Nachfolgend wird unter Bezugnahme auf die Figuren 16 und
17 eine Nachrichtenempfangsverarbeitung beschrieben.
-
Ein Prozessor der Empfangsseite prüft zuerst, ob der
Kopfteil eines auf die Datenleitung gelangenden Signals Daten
anzeigt oder nicht, und beurteilt, ob es sich bei dem
Empfangssignal um eine von einem anderen Prozessor gesendete
Nachricht oder um ein Besetzt-Signal handelt (Schritt 1052).
Ist also das Signal auf der Empfangsleitung ein Signal, das
ein einen Nachrichtenbeginn darstellendes Flag 1060 anzeigt,
so wird beurteilt, daß es sich bei dem Signal um ein Besetzt-
Signal handelt, daß aufgehoben wird (Schritt 1053). Ist das
Signal auf der Empfangsleitung ein Signal, das das den
Nachrichtenbeginn darstellende Flag 1060 anzeigt, so werden
nachfolgende Signale der Reihe nach im Prüfpuffer 1120
gespeichert (Schritt 1054). Nach der Speicherung der Signale bis zu
einem Signal, das das Flag 1061 anzeigt, das das
Nachrichtenende darstellt, wird mittels Verwendung eines der Nachricht
hinzugefügten Rahmenprüfzeichens 1064 eine Bitprüfung
durchgeführt, um einen durch einen Übertragungsfehler verursachten
Bitverlust oder ähnliches zu erfassen (Schritt 1055). Ferner
wird mittels der Durchführung einer Seriennummerprüfung
geprüft, ob es sich bei Daten um neue Daten handelt oder nicht.
Handelt es sich um eine vollständige Nachricht, so wird sie
im Empfangspuffer 1121 gespeichert (Schritt 1056), und es
wird Speicherungsabschluß-Flag gesetzt (Schritt 1057). Dieses
Speicherungs-Flag wird auf "0" rückgesetzt, wenn in dem
Bereich gespeicherte Daten zum Prozessor übertragen wurden.
Wurde ein Übertragungsfehler erfaßt, so wird das empfangene
Signal aufgehoben (Schritt 1058) und eine ein erneutes Senden
anfordernde Nachricht gesendet (Schritt 1059).
-
Ferner wird das empfangene Signal aufgehoben, wenn kein
das Flag 1061 anzeigendes Signal empfangen werden kann, wobei
das Flag 1061 das Ende einer Nachricht darstellt. In diesem
Fall beurteilt der Prozessor der Empfangsseite, daß der
Prozessor der Sendeseite eine Kollision erfaßt und das Senden
einstellt, oder der Prozessor der Emfangsseite fällt aus. Der
Prozessor der Empfangsseite fordert kein erneutes Senden an.
-
Für die oben beschriebene Empfangsverarbeitung sei nun
angenommen, daß der Prozessor der Sendeseite eine Kollision
erfaßt und das Senden einstellt, wenn dem Empfang des
Nachrichtenbeginns nachfolgende Signale aufeinanderfolgend
empfangen werden. Handelt es sich bei der Kollision zu diesem
Zeitpunkt um eine durch ein Besetzt-Signal verursachte
Kollision, so wird das Besetzt-Signal unverändert gesendet. Daher
empfängt der Prozessor der Empfangsseite weiterhin das
Besetzt-Signal. Daher kommt es im Prozessor der Empfangsseite
zu einer Störung, wenn das Besetzt-Signal lange Zeit gesendet
wird. Speichert der Prüfpuffer 1120 Signale, die einen
festgesetzten Wert überschreiten, so hat daher der
Empfangsverwaltungsabschnitt 1132 die Aufgabe, die Signale aufzuheben.
-
Nachfolgend wird ein sechstes Ausführungsbeispiel
beschrieben.
-
Bei dem vorliegenden Ausführungsbeispiel kann nur
derjenige Prozessor senden, der das Senderecht erworben hat.
-
Angenommen, daß es sich bei einem Prozessor in Fig. 12A,
der das Senderecht erworben hat, um den Prozessor 1100
handelt, so sendet dieser eine im Sendepuffer gespeicherte
Nachricht an das Netzwerk. Zu diesem Zeitpunkt wird in der
gleichen Weise wie beim fünften Ausführungsbeispiel mittels
Verwendung des Detektors 1126 eine Kollisionserfassung
durchgeführt. Auf eine genaue Beschreibung der Bitprüfung beim
Empfang und beim Ablauf der Kollisionserfassung beim Senden des
sechsten Ausführungsbeispiels wird verzichtet.
-
Nachfolgend wird zuerst unter Bezugnahme auf Fig. 18
eine Empfangsverarbeitung beschrieben.
-
Ein Prozessor, der kein Senderecht hat, überwacht das im
Empfangspuffer 1121 enthaltene Speicherungsabschluß-Flag.
Befindet sich der Empfangspuffer 1121 in einem derartigen
Zustand,
daß in ihm eine Nachricht gespeichert werden kann, so
nimmt der Prozessor, der kein Senderecht hat, eine über das
Netzwerk übertragene Nachricht auf (Schritt 1701). Anhand der
Seriennummer der Nachricht wird beurteilt, ob es sich bei der
empfangenen Nachricht um neue Daten handelt oder nicht
(Schritt 1702). Ist die empfangene Nachricht neu, so
überträgt der Prozessor sie zum Empfangspuffer 1121 (Schritt
1703). Ist die empfangene Nachricht nicht neu, so löscht der
Prozessor die Daten (Schritt 1705).
-
Ist der Empfangspuffer 1121 voll, so wird jedoch in dem
Moment, in dem der obere Teil der Bitfolge der Nachricht
durch einen Verzweigungsabschnitt 1125 empfangen wird, das
Besetzt-Signal ausgesendet (Schritt 1704). Das Aussenden
dieses Besetzt-Signals bewirkt eine Kollision mit einer
Nachricht.
-
Nachfolgend wird unter Bezugnahme auf Fig. 19 die
Sendeverarbeitung beschrieben. Der Prozessor 1100 der Sendeseite
beginnt zu senden (Schritt 1801). Wird während des Sendens
eine Kollision erfaßt, so wird entschieden, daß die gesendete
Nachricht nicht an sämtliche Prozessoren übertragen wurde,
und es wird ein neuer Sendeversuch unternommen (Schritt
1802). Verschwindet die Kollision während der
Nachrichtenübertragung, so kann diese als erfolgreich beurteilt werden,
und die im Wiedersendepuffer gespeicherte Nachricht wird
gelöscht.
-
Aufgrund des oben beschriebenen Verfahrens kann der
Prozessor der Sendeseite zur gleichen Zeit, zu der er die
Nachricht sendet, beurteilen, ob eine Übertragung erfolgreich
gewesen ist oder nicht. Bei einer Buskommunikation läßt sich
daher eine zuverlässige Übertragung mit allgemeiner
Adressierung erzielen.
-
Bei den oben beschriebenen Ausführungsbeispielen der
vorliegenden Erfindung kann durch die Nachrichtensende-Seite
auf der Grundlage des Auftretens einer Kollisionserfassung
einer selbst generierten Nachricht die Tatsache erfaßt
werden, daß es im System einen Prozessor gibt, der nicht zum
Senden einer Nachricht bereit ist, da der Empfangspuffer voll
ist. Ferner kann so erneut gesendet werden. Der Voll-Zustand
des Empfangspuffers ist vorübergehend. Während die Nachricht
erneut gesendet wird, werden die im Empfangspuffer
gespeicherten Daten verarbeitet, wodurch sich ein empfangsbereiter
Zustand einstellt.
-
Ist jedoch in der Konfiguration nach Fig. 12B aufgrund
des Auftretens einer Anomalität, zum Beispiel eines Eintritts
der Verarbeitung in eine Endlosschleife im Prozessor 1100
oder einer unerbrechung der Leistungsversorgung der Seite des
Prozessors 1100 (wenn der BCP und der Prozessor getrennte
Leistungsversorgungseinheiten haben) keine Verarbeitung mehr
möglich, so bleiben die im Empfangspuffer des BCP 1110
gespeicherten Daten unverarbeitet, und der Empfangspuffer
bleibt im Voll-Zustand. Nachfolgend wird als siebtes
Ausführungsbeispiel ein Beispiel beschrieben, bei dem im BCP eine
Prozessoranomalitäts-Erfassungsvorrichtung integriert ist.
Fig. 20 zeigt die Konfiguration eines BCP des siebten
Ausführungsbeispiels. Wird eine im Empfangspuffer 1121 gespeicherte
Nachricht zum Prozessor 1100 gesendet, so beurteilt ein
Prozessorabnormalitätserfassungs-Funktionsabschnitt 1133, ob das
Senden normal beendet wurde oder nicht. Im Falle eines
Fehlers wird die Nachricht nach Ablauf eines vorbestimmten
Zeitintervalls erneut zum Prozessor gesendet. Wird das Senden
selbst dann nicht normal beendet, wenn ein erneutes Senden
mit einer vorbestimmten Häufigkeit wiederholt wird, so wird
beurteilt, daß der Prozessor nicht betriebsfähig ist, und es
wird ein Prozessorausfallerfassungs-Flag 1134 gesetzt.
Anschließend wird an das Netzwerk eine Information gesendet,
die den Prozessorausfall anzeigt. Ist der Empfangspuffer
voll, so erfolgt die gleiche Verarbeitung wie bei den in den
Figuren 5 und 6 dargestellten Ausführungsbeispielen,
vorausgesetzt, daß das Prozessorausfallerfassungs-Flag 1134
rückgesetzt ist. Ist jedoch das Flag 1134 gesetzt, so erfolgt die
unten beschriebene Verarbeitung. Ein Besetzt-Signal wird also
selbst dann nicht ausgegeben, wenn der Empfangspuffer voll
ist. Wird vom Netzwerk eine Nachricht empfangen, so werden
die alten im Empfangspuffer gespeicherten Daten gelöscht, und
es wird eine vom Netzwerk kommende Nachricht aufgenommen.
Ferner fährt der BCP 1110, der einen Prozessorausfall erfaßt
hat, fort, die im Empfangspuffer gespeicherte Nachricht an
den Prozessor zu senden. Anhand des Ergebnisses eines
normalen Sendens erfaßt der BCP die Rückkehr des Prozessors aus
dem Ausfallzustand und setzt das Prozessorausfallerfassungs-
Flag 1134 zurück.
-
Nachfolgend wird unter Bezugnahme auf die Figuren 21A,
21B und 22 ein achtes Ausführungsbeispiel der vorliegenden
Erfindung genau beschrieben. Zuerst wird unter Bezugnahme auf
Fig. 22 die Gesamtkonfiguration eines Systems beschrieben,
auf das die vorliegende Erfindung angewandt wird. Das
Bezugszeichen 2001 bezeichnet einen unilateralen, ringförmigen
Übertragungspfad zum Übertragen von Nachrichten in einer
durch einen Pfeil angezeigten Richtung. Die Bezugszeichen
2010 bis 2060 bezeichnen (nachfolgend mit NCP abgekürzte)
Netzwerk-Steuerprozessoren zum Durchführen einer
Nachrichtenübertragungs-Steuerung auf dem Übertragungspfad auf der Basis
des Verfahrens der Weiterleitung eines Signals an den
Ringnachfolger. Ferner bezeichnen die Bezugszeichen 2011 bis 2061
Verarbeitungseinheiten, die jeweils mit NCPs 2010 bis 2060
verbunden sind, um eine gezielte Verarbeitung durchzuführen,
während sie über dieses Netzwerk miteinander in Verbindung
bleiben. Bei dem vorliegenden Ausführungsbeispiel ist der
ringförmige Übertragungspfad ein Einfach-Übertragungspfad.
Der ringförmige Übertragungspfad muß jedoch kein Einfach-
Übertragungspfad sein. Selbst bei Verwendung eines Mehrfach-
Ring-Übertragungspfads oder eines bilateralen Doppel-Rings
mit einer wechselnden Kreiskonfiguration läßt sich das
Verfahren der vorliegenden Erfindung darauf anwenden.
-
Fig. 21A zeigt eine Konfiguration innerhalb des NCP
2010. Die NCPs 2020 bis 2060 weisen die gleiche Konfiguration
auf wie der NCP 2010. Eine Schnittstelle 2101 ist ein
Abschnitt zum Verwalten eines Nachrichtenempfangs vom
Übertragungspfad
2001 und einer Nachrichtenaussendung zum
Übertragungspfad 2001. Ein Prozessor 2102 verwaltet eine im NCP 2010
durchgeführte Sendesteuerverarbeitung. Ein erster
Empfangspuffer 2104 und ein zweiter Empfangspuffer 2105 sind
Bereiche, in denen vom Netzwerk empfangene Nachrichten gespeichert
werden. Ein einer Nachricht entsprechender Bereich wird dem
ersten Empfangspuffer 2104 zugewiesen. Ferner wird ein
Bereich, in dem eine vorbestimmte Anzahl von Nachrichten
gespeichert wird, dem zweiten Empfangspuffer 2105 zugewiesen,
der eine zyklische Pufferkonfiguration aufweist. Ein
Empfangspufferverwaltungs-Flag 2106 des zweiten Empfangspuffers
ist ein Flag, das anzeigt, ob der zweite Empfangspuffer 2105
voll ist oder nicht, das heißt ob im zweiten Empfangspuffer
2105 keine weitere Nachricht gespeichert werden kann oder
nicht. Ein Sendepuffer 2107 ist ein Puffer, in dem eine an
das Netzwerk zu sendende Nachricht gespeichert wird. In der
gleichen Weise wie der zweite Empfangspuffer weist der
Sendepuffer 2107 eine zyklische Pufferkonfiguration auf. Ein
Sendepufferverwaltungs-Flag 2108 ist ein Flag, das anzeigt, ob
im Sendepuffer eine zu sendende Nachricht vorliegt oder
nicht. Empfängt der Prozessor 2102 von der an ihm
angeschlossenen Verarbeitungseinheit 2011 zu sendende Daten, so
speichert er Die Daten im Sendepuffer 2107 und setzt das
Sendepufferverwaltungs-Flag 2108. Sind sämtliche im Sendepuffer
2107 gespeicherten Nachrichten an das Netzwerk gesendet und
wird der Sendepuffer 2107 frei, so setzt der Prozessor 2102
das Sendepufferverwaltungs-Flag 2108 zurück. Es ist ein
Zeitgeber 2109 vorgesehen, der erfaßt, ob eine gesendete
Nachricht innerhalb einer festgesetzten Zeit zurückkommt oder
nicht. Eine Inhaltscode-Tabelle 2110 ist eine Tabelle, in der
ein Inhaltscode einer in den NCP 2010 aufzunehmenden
Nachricht (das heißt ein Code, der einen Inhalt der Nachricht
anzeigt) gespeichert wird. Der Inhalt der Tabelle 2110 wird
durch eine von der Verarbeitungseinheit (2011 in Fig. 22)
zugeführte Spezifikation gesetzt und aktualisiert. Es ist ein
Wiedersendezähler 2111 vorgesehen, der die
Wiedersendeversuche
der gesendeten Nachricht zählt. Eine
Seriennummern-Tabeile 2112 für empfangene Nachrichten ist eine Tabelle zum
Prüfen eines doppelten Empfangs der erneut gesendeten
Nachricht. Ein Besetzt-Flag 2113 ist ein Flag, das anzeigt, ob
der eigene NCP einen Frei-Token erwirbt und das Netzwerk
besetzt oder nicht. Ein Nachrichten-Seriennummernzähler 2114
zeigt den einer zu sendenden Nachricht hinzugefügten
Seriennummemwert an. Der Zählstand des
Nachrichten-Seriennummernzählers 2114 erhöht sich immer dann um eins, wenn er von der
Verarbeitungseinheit 2011 die gesendete Nachricht empfängt.
Ferner ist eine Schnittstelle 2103 vorgesehen, die das
Liefern und den Eingang von Daten bezüglich der
Verarbeitungseinheit (2011 in Fig. 22) steuert. Bei der vorliegenden
Konfiguration wird über die Schnittstelle 2101 und eine Leitung
2120 eine vom Netzwerk 2001 empfangene Nachricht im ersten
Empfangspuffer 2104 oder im zweiten Empfangspuffer 2105
gespeichert. Eine im Sendepuffer 2107 gespeicherte Nachricht
wird über eine Leitung 2130 und die Schnittstelle 2101 an das
Netzwerk 2001 gesendet. Es ist eine Leitung 2140 zum Senden
eines Signals vorgesehen, das den Nachrichtenfluß innerhalb
der Schnittstelle 2101 steuert. Es sei nun angenommen, daß
den jeweiligen NCPs verschiedene Adressen zugewiesen sind.
-
Fig. 21B zeigt die interne Konfiguration der
Schnittstelle 2101. Eine Nachricht auf dem Übertragungspfad 2001
wird durch einen Empfangsabschnitt 3011 in die Schnittstelle
aufgenommen und über die Leitung 2120 an den Prozessor 2102
gesendet. Gleichzeitig wird die Nachricht auch an einen in
der Schnittstelle enthaltenen Schalter 3013 gesendet. Wird
der Schalter 3013 mit der Empfangsseite verbunden, so wird
die aufgenommene Nachricht über einen Sendeabschnitt 3012
unverändert an den Übertragungspfad 2001 ausgegeben. Wird der
Schalter 3013 mit der Sendeseite verbunden, so verschwindet
die aufgenommene Nachricht am Schalterabschnitt. Wird der
Schalter 3013 mit der Sendeseite verbunden, so wird eine im
Sendepuffer 2107 gespeicherte Nachricht über eine Leitung
2130 und den Empfangsabschnitt 3012 an den Übertragungspfad
2001 ausgegeben. Das Umschalten des Schalters 3013 erfolgt
durch ein vom Prozessor 2102 über die Leitung 2140
ausgegebenes Steuersignal.
-
Die Figuren 23A und 23B zeigen Formate von Nachrichten,
die über das Netzwerk fließen. Bei dem System der
Weiterleitung eines Signals an den Ringnachfolger umkreist ein Frei-
Token das Netzwerk, wenn in den jeweiligen NCPs keine zu
sendenden Nachrichten vorliegen. Ein NCP, in dem eine zu
sendende Nachricht generiert wird, nimmt diesen Frei-Token auf,
wandelt ihn in einen Besetzt-Token um, fügt dem Ende des
Besetzt-Token die zu sendende Nachricht hinzu und sendet den
sich ergebenden Besetzt-Token einschließlich der Nachricht an
das Netzwerk. FS 2301 und FE 2307 sind Flags, die jeweils den
Beginn und das Ende der Nachricht anzeigen. Das Bezugszeichen
2302 bezeichnet einen Bereich, in dem ein Code gespeichert
ist, der den Inhalt der Nachricht anzeigt. Bei der
vorliegenden Nachricht ist ein einen Frei-Token anzeigendes F-TK im
Bereich 2302 gespeichert. SA 2303 ist die Adresse eines NCP,
der die Nachricht generiert hat. C 2304 ist eine für die
Übertragung erforderliche Seriennummer, und FCS 2306 sind
Daten zur Fehlererkennung. Fig. 23B zeigt das Format der
Besetzt-Token-Nachricht. FS 2301, FE 2307, SA 2303, C 2304 und
FCS 2306 sind wie bei Fig. 23A. DATEN 2305 bezeichnet eine zu
sendende Information. Ein Bereich 2308 zeigt einen
Inhaltscode CC an, der den Inhalt der Informationsdaten 2305
darstellt. Der Frei-Token F-TK 2302 von Fig. 23A unterscheidet
sich vom Inhaltscode CC 2308 von Fig. 23B. Eine Nachricht mit
einem Code, der sich von dem Frei-Token F-TK unterscheidet,
wird in jedem NCP als Besetzt-Token angesehen. Bei dem
vorliegenden Ausführungsbeispiel wird ein identischer Bereich
als die Kennung des Tokens anzeigender Bereich und als den
Inhalt der Daten anzeigender Bereich verwendet. Es kann
jedoch ein Format verwendet werden, bei dem ein
Tokenkennungsbereich und ein Inhaltscode-Speicherbereich getrennt
voneinander vorgesehen sind. Ferner wird in C 2304 ein Wert des
Nachrichten-Seriennummernzählers 2114 von Fig. 21A gesetzt.
-
Nachfolgend wird unter Bezugnahme auf die Figuren 23A,
23B und 25 ein Verarbeitungsfluß in jedem NCP der
vorliegenden Erfindung beschrieben. Fig. 24A ist ein Flußdiagramm des
Nachrichtenempfangs in jedem NCP. Der folgenden Beschreibung
liegt die Annahme zugrunde, daß ein Schalter 3013, der in der
in Fig. 21A dargestellten Schnittstelle 2101 enthalten ist,
derart eingestellt ist, daß er mit der Empfangsseite
verbunden ist. Es sei also angenommen, daß die vom Netzwerk
empfangene Nachricht in den Prozessor 2102 eingegeben und
gleichzeitig unverändert an das Netzwerk ausgegeben wird. Wird eine
Nachricht vom Netzwerk empfangen, so wird zuerst der Inhalt
des Inhaltscode-Bereichs (2308 von Fig. 23B) der Nachricht
beurteilt (Verarbeitungsschritt 2401). Handelt es sich bei
der empfangenen Nachricht um den Frei-Token F-TK, so wird
zuerst anhand des Besetzt-Flag-Bereichs (2113 von Fig. 21A)
entschieden, ob sich der eigene NCP im Zustand der
Frei-Token-Erwerbung befindet oder nicht (Verarbeitungsschritt
4216). Im Falle des Zustands der Frei-Token-Erwerbung wird
die empfangene Nachricht im ersten Empfangspuffer (2104 von
Fig. 21A gespeichert (Verarbeitungsschritt 423) und die
Verarbeitung abgeschlossen. Befindet sich der eigene NCP nicht
im Zustand der Frei-Token-Erwerbung, so wird anhand des
Sendepufferverwaltungs-Flags (2108 von Fig. 21A) entschieden, ob
eine zu sendende Nachricht vorliegt oder nicht
(Verarbeitungsschritt 2417). Liegt keine zu sendende
Nachricht vor, so wird der Verarbeitungsschritt 2423 ausgeführt
und die Verarbeitung abgeschlossen. Liegt eine zu sendende
Nachricht vor, so wird der in der in Fig. 21B dargestellten
Schnittstelle enthaltene Schalter 3013 auf die Sendeseite
umgeschaltet (Verarbeitungsschritt 2418), um zu verhindern, daß
der empfangene Frei-Token an das Netzwerk ausgegeben wird.
Ferner wird der empfangene Frei-Token im ersten
Empfangspuffer (2104 von Fig. 21A) gespeichert (Verarbeitungsschritt
2419). Mittels Verwendung der FCS-Daten (Rahmenprüfzeichen-
Daten) (2306 von Fig. 23B) wird geprüft, ob ein Fehler, wie
zum Beispiel eine Bitveränderung, vorliegt oder nicht
(Verarbeitungsschritt 2420). Liegt ein Fehler vor, so
schaltet der Schalter 3013 in der Schnittstelle auf die
Empfangsseite um (Verarbeitungsschritt 2424) und die Verarbeitung
wird abgeschlossen. Liegt kein Fehler vor, so wird das
Besetzt-Flag (2113 von Fig. 21A) gesetzt (Verarbeitungsschritt
2421), die im Sendepuffer gespeicherte Nachricht an das
Netzwerk gesendet (Verarbeitungsschritt 2422) und die
Verarbeitung abgeschlossen. Eine Nachrichten-Sendeverarbeitung wird
weiter unten beschrieben.
-
Im folgenden wird eine Verarbeitung beschrieben, die
erfolgt, wenn das Beurteilungsergebnis in Verarbeitungsschritt
2401 der Besetzt-Token, das heißt ein Inhaltscode ist. In
diesem Fall wird der Inhaltscode der empfangenen Nachricht
mit einem in ihrer Inhaltscode-Tabelle (2110 von Fig. 21A)
eingetragenen Code verglichen, um zu beurteilen, ob die Codes
in Verarbeitungsschritt 2401 miteinander übereinstimmen oder
nicht. Gibt es keine Übereinstimmung, so wird beurteilt, ob
der SA-Abschnitt der empfangenen Nachricht (2303 von Fig.
23B) mit ihrer eigenen NCP-Adresse übereinstimmt oder nicht
(Verarbeitungsschritt 2408). Im Falle der Übereinstimmung
wird die empfangene Nachricht im ersten Empfangspuffer
gespeichert (Verarbeitungsschritt 2409) und die Verarbeitung
abgeschlossen. Stimmt die SA mit ihrer eigenen NCP-Adresse
überein, so erfolgt eine weiter unten bei der
Sendeverarbeitung beschriebene Verarbeitung 2410 einer selbst generierten
Nachricht, und anschließend wird die Verarbeitung
abgeschlossen. Stimmt die empfangene Nachricht in Verarbeitungsschritt
2401 mit dem in der Inhaltscode-Tabelle gespeicherten Code
überein, so erfolgt eine nachfolgend beschriebene
Verarbeitung, und die empfangene Nachricht wird zu ihrer eigenen
Anschluß-Verarbeitungseinheit gesendet. Zuerst wird in der
gleichen Weise wie beim oben beschriebenen
Verarbeitungsschritt 2408 beurteilt, ob der SA-Abschnitt der empfangenen
Nachricht mit seiner eigenen NCP-Adresse übereinstimmt oder
nicht (Verarbeitungsschritt 2402). Im Falle einer
Übereinstimmung erfolgt eine Verarbeitung 2410 einer selbst
generierten
Nachricht, und die Verarbeitung wird abgeschlossen.
Gibt es keine Übereinstimmung, so wird zuerst anhand des
Empfangspufferverwaltungs-Flags (2106 von Fig. 21A) des zweiten
Empfangspuffers erfaßt, ob der zweite Empfangspuffer voll ist
oder nicht (Verarbeitungsschritt 2403). Ist der zweite
Empfangspuffer voll, so kann die empfangene Nachricht nicht in
ihren eigenen NCP aufgenommen werden, so daß der in der in
Fig. 21B dargestellten Schnittstelle enthaltene Schalter 3013
auf die Sendeseite umschaltet (Verarbeitungsschritt 2412), um
zu verhindern, daß die empfangene Nachricht an das Netzwerk
gesendet wird. Ferner wird die empfangene Nachricht im ersten
Empfangspuffer (2104 von Fig. 21A) gespeichert
(Verarbeitungsschritt 2413). Nach Abschluß der Speicherung
wird auf der Grundlage des Besetzt-Flags (2113 von Fig. 21A)
beurteilt, ob sich ihr eigener NCP im Zustand der Frei-Token-
Erwerbung befindet oder nicht (Verarbeitungsschritt 2414).
Befindet sich ihr eigener NCP nicht im Zustand der
Token-Erwerbung, so schaltet der in der Schnittstelle enthaltene
Schalter 3013 auf die Empfangsseite um (Verarbeitungsschritt
2415), und die Verarbeitung wird beendet. Wird in
Verarbeitungsschritt 2403 entschieden, daß der zweite Empfangspuffer
nicht voll ist, so wird die empfangene Nachricht darin
gespeichert (Verarbeitungsschritt 2404). Anschließend wird
mittels Verwendung der in der Nachricht enthaltenen FCS-Daten
geprüft, ob es sich bei einem Empfang um einen erneuten
Empfang einer Nachricht handelt, der aus einem erneuten Senden
einer zuvor empfangenen Nachricht resultiert, oder nicht
(Verarbeitungsschritt 2406). Handelt es sich bei einem
Empfang nicht um einen erneuten Empfang, so wird die empfangene
Nachricht an ihre eigene NCP-Anschluß-Verarbeitungseinheit
gesendet (Verarbeitungsschritt 2407) und die Verarbeitung
abgeschlossen. Lautet das Ergebnis der Wieder-Empfang-Prüfung
in Verarbeitungsschritt 2405 bzw. der Wieder-Empfang-Prüfung
in Verarbeitungsschritt 2406 nicht OK, so wird die diesmal
empfangene und im zweiten Sendepuffer (2105 von Fig. 21A)
gespeicherte Nachricht gelöscht (Verarbeitungsschritt 2411) und
die Verarbeitung abgeschlossen. Nachfolgend wird unter
Bezugnahme auf die Figuren 24B und 24C jeweils der
Verarbeitungsinhalt der Wieder-Empfang-Prüfung in Verarbeitungsschritt
2406 und das Senden der empfangenen Nachricht an ihre eigene
Anschluß-Verarbeitungseinheit in Verarbeitungsschritt 2407
beschrieben.
-
Fig. 24B zeigt einen Inhalt der in Fig. 21A
dargestellten Nachrichten-Seriennummerntabelle 2112 für empfangene
Nachrichten. Diese Tabelle umfaßt Bereiche 11211 und 11222
zum Speichern eines Inhalts des SA-Abschnitts (2303 von 23A)
der empfangenen Nachricht und eines Inhalts einer
vorbestimmten Anzahl von C-Abschnitten (2304 von Fig. 23A), so daß
diese mit Werten des SA-Abschnitts in Verbindung stehen. Sind
in der vorliegenden Tabelle bereits Werte des SA-Abschnitts
und des C-Abschnitts der empfangenen Nachricht gespeichert,
so handelt es sich bei der Nachricht um eine erneut
empfangene Nachricht. Andernfalls handelt es sich um eine neu
empfangene Nachricht. Im Falle einer neu empfangenen Nachricht
wird der Inhalt ihres SA-Abschnitts und ihres C-Abschnitts
der vorliegenden Tabelle hinzugefügt.
-
Fig. 24C ist ein Flußdiagramm eines Verarbeitungsinhalts
des in Fig. 24A dargestellten Sendens der empfangenen
Nachricht an seine eigene Anschluß-Verarbeitungseinheit. Zuerst
wird die im zweiten Empfangspuffer (2105 von Fig. 21A)
gespeicherte empfangene Nachricht über die in Fig. 21A
dargestellte Schnittstelle 2103 an ihre eigene
NCP-Anschluß-Verarbeitungseinheit gesendet (Verarbeitungsschritt 4071). Wurde
das Senden normal abgeschlossen (Verarbeitungsschritt 4072),
so wird die diesmal gesendete und im zweiten Empfangspuffer
gespeicherte Nachricht gelöscht (Verarbeitungsschritt 4073).
Ferner wird erfaßt, ob im zweiten Empfangspuffer eine
Nachricht gespeichert ist oder nicht (Verarbeitungsschritt 4074).
Ist eine Nachricht gespeichert, so kehrt die Verarbeitung zu
Schritt 4071 zurück. Wird ein Ausfall ihrer eigenen Anschluß
Verarbeitungseinheit erfaßt (Verarbeitungsschritt 4075), so
wird im Sendepuffer (2107 von Fig. 21A) eine
Ausfallserfassungs-Nachricht
gesetzt, und die Verarbeitung fährt mit
Schritt 4073 fort. Als Folge der oben beschriebenen
Verarbeitung wird verhindert, daß der Empfangspuffer der
Sendesteuereinheit voll wird, wenn die Verarbeitungseinheit ausfällt,
und daß Nachrichten auf dem Netzwerk gelöscht werden.
Nachfolgend wird unter Bezugnahme auf die Figuren 25A
und 25B eine Verarbeitung des Sendens einer Nachricht an das
Netzwerk beschrieben. Beim Verfahren der Weiterleitung eines
Signals an den Ringnachfolger erfolgt das Senden einer
Nachricht, wenn der Frei-Token erworben wurde. Das Senden einer
Nachricht erfolgt also in Sende-Verarbeitungsschritt 2422 des
in Fig. 24A dargestellten Empfangs-Flußdiagramms. Fig. 25A
ist ein Flußdiagramm, das den Inhalt des
Verarbeitungsschritts 2422 von Fig. 24A darstellt. Zuerst wird die im
Sendepuffer (2107 von Fig. 21A) gespeicherte Nachricht über die
Schnittstelle 2101 von Fig. 21A an den Übertragungspfad 2001
gesendet (Verarbeitungsschritt 2501). Anschließend wird der
Zeitgeber (2109 von Fig. 21A) gesetzt (Verarbeitungsschritt
2502). Aufgrund der oben beschriebenen Verarbeitung umkreist
die an das Netzwerk gesendete Nachricht das Netzwerk und
kehrt zum Ursprung des Generierungs-NCP zurück. Dessen auf
diese Weise zurückgekehrte eigene, selbst generierte
Nachricht wird im Verarbeitungsschritt 2410 der selbst
generierten Nachricht, den das in Fig. 24A dargestellte Flußdiagramm
der Empfangsverarbeitung umfaßt, verarbeitet. Fig. 25B ist
ein Flußdiagramm der Verarbeitung einer selbst generierten
Nachricht. Zuerst wird die empfangene Nachricht im ersten
Empfangspuffer (2104 von Fig. 21A) gespeichert
(Verarbeitungsschritt 2531). Mittels Verwendung der in der
empfangenen Nachricht enthaltenen FCS-Daten wird anschließend
geprüft, ob die empfangene Nachricht einen Fehler, wie zum
Beispiel eine Bitveränderung, aufweist oder nicht
(Verarbeitungsschritt 2532). Liegt kein Fehler vor, so wurde
die Nachrichtensendung normal abgeschlossen, so daß die dies
mal gesendete und im Sendepuffer (2107 von Fig. 21A)
gespeicherte Nachricht gelöscht (Verarbeitungsschritt 2533) und der
Zeitgeber, der, wie in Fig. 25A dargestellt, zum Zeitpunkt
des Sendens der Nachricht gesetzt wurde, rückgesetzt wird
(Verarbeitungsschritt 2534). Ferner wird der
Wiedersendezähler (2111 von Fig. 21A) rückgesetzt (Verarbeitungsschritt
2535). Nach Generieren und Senden an das Netzwerk einer Frei-
Token-Nachricht (Verarbeitungsschritt 2536) schaltet der
Schalter 3013 in der Schnittstelle (2101 von Fig. 21A) auf
die Empfangsseite um (Verarbeitungsschritt 2537). Schließlich
wird das Besetzt Flag (2113 von Fig. 21A) zurückgesetzt
(Verarbeitungsschritt 2545). Wird im Verarbeitungsschritt
2532 der FCS-Beurteilung ein Fehler erfaßt, so wird davon
ausgegangen, daß die Nachrichtensendung mißlungen ist, und es
erfolgt eine Wiedersendeverarbeitung der
Verarbeitungsschritte 2538 bis 2542. Zuerst wird der Wiedersendezähler (2111 von
Fig. 21A) um eins erhöht (Verarbeitungsschritt 2538).
Anschließend wird beurteilt, ob der Wert des Wiedersendezählers
größer ist als eine vorbestimmte Obergrenze der
Wiedersendeversuche (Verarbeitungsschritt 2539). Wird die Obergrenze
nicht überschritten, so wird die diesmal im Sendepuffer
gespeicherte zu sendende Nachricht erneut an das Netzwerk
gesendet (Verarbeitungsschritt 2540) und der Zeitgeber erneut
gesetzt (Verarbeitungsschritt 2542). Überschreitet der Wert
des Wiedersendezählers die Obergrenze, so kann die Nachricht
nicht an das Netzwerk gesendet werden, und es erfolgt eine
Anomalitätsverarbeitung 2541. Eine Anomalitätsverarbeitung
ist eine Verarbeitung, die beispielsweise das Registrieren
von Nachrichten, die nicht gesendet werden können, das
Aussenden einer Frei-Token-Nachricht und das Abtreten des
Senderechts umfaßt. Bei einer Doppel-Ring-Konfiguration mit
wechselnder Kreiskonfiguration umfaßt eine
Anomalitätsverarbeitung beispielsweise das Bilden eines Wechselkreises.
-
Wird auch eine Zeitsperre eines Zeitgebers erfaßt, der
bei Senden einer Nachricht an das Netzwerk gesetzt wird, so
wird davon ausgegangen, daß die Nachrichtensendung mißlungen
ist, und es erfolgt die gleiche Verarbeitung wie bei der
unter
Bezugnahme auf die Verarbeitungsschritte 2538 bis 2542
von Fig. 25B beschriebenen Wiedersendeverarbeitung.
Bei einer Inhaltscode-Kommunikation in einem
ringförmigen, nach einem Verfahren der Weiterleitung eines Signals an
den Ringnachfolger arbeitenden Netzwerk wird, selbst bei
Vorhandensein eines NCP, der beispielsweise aufgrund der
Tatsache, daß sein eigener Empfangspuffer voll ist, eine Nachricht
nicht empfangen könnte, bei der oben beschriebenen
vorliegenden Erfindung diese Nachricht automatisch erneut gesendet, so
daß sich ein Verlorengehen einer Nachricht verhindern läßt.
Bei dem vorliegenden Ausführungsbeispiel wurde lediglich
der Fall der Inhaltscode-Kommunikation beschrieben. Das
Verfahren der vorliegenden Erfindung läßt sich jedoch selbst auf
eine Übertragung mit allgemeiner Adressierung anwenden.
Nachfolgend wird als neuntes Ausführungsbeispiel eine
Verarbeitung im Falle einer Übertragung mit allgemeiner Adressierung
beschrieben. Wie in Fig. 26A dargestellt, wird zuerst eine
Generaladresse, die eine Adresse ist, die sämtliche NCPs
empfangen sollten, im CC-Abschnitt 2308 der in Fig. 23B
dargestellten Besetzt-Token-Nachricht gesetzt. Anschließend wird
im Verarbeitungsschritt 2401 der
Nachrichteninhalt-Beurteilung in dem in Fig. 24A dargestellten
Verarbeitungs-Flußdiagramm beurteilt, ob der Nachrichteninhalt eine Generaladresse
oder ein Frei-Token ist (Verarbeitungsschritt 2601 von Fig.
26B). Im Falle einer Generaladresse erfolgt eine Verarbeitung
der Verarbeitungsschritte 2402 und folgender Schritte von
Fig. 24A. Im Falle eines Frei-Tokens erfolgt eine
Verarbeitung der Verarbeitungsschritte 2416 und folgender Schritte
von 24A. Selbstverständlich kann ein Nachrichtenformat
verwendet werden, bei dem ein Bereich für eine Token-Kennung und
ein Bereich zum Setzen einer Generaladresse voneinander
getrennt vorgesehen sind.
-
Bei dem oben beschriebenen Ausführungsbeispiel gibt ein
NCP, der einen Frei-Token erworben hat, das Senderecht so
lange nicht ab, bis sich die durch diesen NCP generierte
Nachricht bei sämtlichen NCPs durchsetzt hat (das heißt es
erfolgt ein fortlaufendes erneutes Senden der selbst gene
rierten Nachricht). Selbst wenn ein erneutes Senden der
selbst generierten Nachricht erforderlich ist, ist es jedoch
auch möglich, einmal das Senderecht durch Senden des
Frei-Tokens abzutreten und die erneut zu sendende Nachricht zu
senden, wenn der nächste Frei-Token erworben wird. Eine
Verarbeitung in diesem Fall wird nachfolgend als zehntes
Ausführungsbeispiel beschrieben. Diese Verarbeitung läßt sich
realisieren, indem anstelle einer in den Verarbeitungsschritten
2538 bis 2542 von Fig. 25B dargestellten
Wiedersende-Verarbeitung eine in Fig. 27 dargestellte Verarbeitung verwendet
wird. Dies bedeutet, diese Verarbeitung läßt sich
realisieren, indem die Verarbeitungsschritte 2540 und 2542 von Fig.
25B gegen einen in Fig. 27 dargestellten Verarbeitungsschritt
2701, in dem eine Frei-Token-Nachricht gesendet wird,
ausgetauscht wird.
-
Bei dem oben beschriebenen Ausführungsbeispiel ist die
in Fig. 21A dargestellte Schnittstelle 2101 derart
konfiguriert, daß die vom Netzwerk empfangene Nachricht unverändert
an das Netzwerk ausgegeben wird. Es ist jedoch auch möglich,
ein Speicherverfahren anzuwenden, bei dem die vom Netzwerk
empfangene Nachricht einmal in ihren eigenen NCP aufgenommen
und anschließend an das Netzwerk gesendet wird. Nachfolgend
wird eine Verarbeitung in diesem Fall als elftes
Ausführungsbeispiel beschrieben. Bei diesem Fall ist die Schnittstelle
2101 wie in Fig. 28 dargestellt konfiguriert. Der Schalter
3013 und die Leitung 2140 sind entfernt. Eine entsprechende
Verarbeitung läßt sich durch Anwenden nachfolgender
Änderungen auf den Verarbeitungsfluß von Fig. 24A realisieren.
-
(1) Es erfolgt kein Umschaltbetrieb des Schalters 3013.
-
(2) Hinter den Verarbeitungsschritt 2404 wird eine
Verarbeitung hinzugefügt, die die diesmal empfangene und im
zweiten Empfangangspuffer gespeicherte Nachricht sendet.
-
Schließlich haben sämtliche der oben beschriebenen
Ausführungsbeispiele eine Kommunikation mit allgemeiner
Adressierung bzw. Inhaltscode-Kommunikation zum Gegenstand.
-
Das Verfahren der vorliegenden Erfindung läßt sich
jedoch ebenso auf den Fall einer Eins-zu-Eins-Kommunikation-
Nachricht anwenden. Nachfolgend wird eine Verarbeitung in
diesem Fall als zwölftes Ausführungsbeispiel beschrieben.
Zuerst wird im CC-Abschnitt 2308 der in Fig. 23B dargestellten
Besetzt-Token-Nachricht die Adresse DA (2310 von Fig. 29A)
des empfangenden NCP gesetzt. Anschließend wird in dem
Verarbeitungsschritt 2401 der Nachrichteninhalt-Beurteilung im
Verarbeitungsfluß von Fig. 24A beurteilt, ob die Nachricht
eine Frei-Token-Nachricht oder eine Besetzt-Token-Nachricht
ist. Ferner wird im Falle einer Besetzt-Token-Nachricht
beurteilt, ob das Ziel der Nachricht ihr eigener NCP ist oder
nicht (Verarbeitungsschritt 2401 von 29B). Im Falle einer
Nachricht, bei der das Ziel ihr eigener NCP ist, wird der
Verarbeitungsschritt 2402 der SA-Beurteilung ausgelassen, und
es werden der Verarbeitungsschritt 2403 von Fig. 24A und
diesem folgende Schritte ausgeführt. Im Falle einer Frei-Token-
Nachricht werden der Verarbeitungsschritt 2416 von Fig. 24A
und diesem folgende Schritte ausgeführt.
-
Bei Anwendung des vorliegenden Verfahrens auf eine Eins-
zu-Eins-Kommunikation kann ein erneutes Senden einer
Nachricht erfolgen, ohne daß, wie beim Verfahren des Standes der
Technik, eine Antwortnachricht verwendet wird.
-
Wie oben beschrieben, informiert erfindungsgemäß jeder
Prozessor andere Prozessoren über seine eigene
Dantenempfangsfähigkeit, was zu einer von Datenverlust freien
Kommunikation führt.
-
Ferner läßt sich durch eine der Anzahl der im
Empfangspuffer gespeicherten Daten entsprechende Verarbeitung ein
Überlauf des Empfangspuffers verhindern. Da andere
Prozessoren je nach Bedarf über den Empfangszustand informiert
werden, halten sich Prozessoren bezüglich des Sendens von Daten
gegenseitig zurück, um mit dem Belastungszustand fertig zu
werden, was zu einer von Datenverlust freien Kommunikation
führt.
-
Sind Belastungen sämtlicher Prozessoren am
Übertragungspfad gleich, so ist jeder Prozessor in der Lage, Belastungen
anderer Prozessoren zu erkennen, indem er seine eigene
Belastung überwacht. Selbst wenn sich Prozessoren nicht unterem
ander über gegenseitige Zustände informieren, läßt sich daher
durch Unterdrücken ihres eigenen Sendens von Daten ein
Datenverlust vermeiden.
-
Bei einem Netzwerk des Bustyps läßt sich sofort
beurteilen, ob eine vom Prozessor der Sendeseite ausgegebene
Nachricht von anderen Prozessoren empfangen wurde, so daß eine
Kommunikation mit allgemeiner Adressierung sicher
durchgeführt werden kann.
-
Selbst bei Durchführung einer Inhaltscode-Kommunikation
bzw. einer Kommunikation mit allgemeiner Adressierung in
einem ringförmigen Netzwerk, das nach dem Verfahren der
Weiterleitung eines Signals an den Ringnachfolger arbeitet, kann
der NCP, der die Nachricht generiert hat, das Vorhandensein
eines NCP erfassen, der diese Nachricht nicht empfangen
konnte, und die Nachricht erneut senden. Daher werden eine
zuverlässige Inhaltscode-Kommunikation und eine zuverlässige
Kommunikation mit allgemeiner Adressierung möglich, die von
Datenverlust frei sind.
-
Ferner läßt sich das Verfahren der vorliegenden
Erfindung auf den Fall einer Eins-zu-Eins-Kommunikation anwenden.
In diesem Fall kann ein wirksames Wiedersende-Steuerverfahren
vorgesehen werden, das keine Antwortnachricht benötigt.