-
Hintergrund
der Erfindung
-
Die Erfindung bezieht sich auf eine
programmierbare Steuerung, CPU-Einheiten und Spezialfunktionsmodule,
aus welchen sie aufgebaut ist, sowie ein Verfahren zur Aufdopplung
dieser Programmierbare Steuerungen (SPSen) werden als Steuervorrichtungen
bei der Fabrikautomation (FA) eingesetzt. Solche SPSen sind als
eine geeignete Kombination aus einer Anzahl von Einheiten, wie einer Spannungsquelle
zur Zuführung
elektrischer Spannung, einer CPU-Einheit zur Steuerung der SPS insgesamt,
einer Eingabeeinheit zur Eingabe von Signalen aus Schaltern und
Sensoren, die strategisch für die
FA-Vorrichtungen angeordnet sind, einer Ausgabeeinheit zur Ausgabe
von Steuersignalen auf Stellglieder oder dergleichen und einer Kommunikationseinheit
für den
Anschluss an ein Kommunikationsnetzwerk, aufgebaut.
-
Die Steuerung einer SPS durch ihre CPU-Einheit
beinhaltet das Empfangen von Signalen, die über eine Eingabeeinheit in
den E/A-Speicher der CPU-Einheit eingegeben werden („IN-Auffrischung"), das Durchführen einer
logischen Berechnung gemäß einem
Anwenderprogramm das vorab in einer Anwenderprogrammsprache, wie
etwa einer Leitersprache, registriert worden ist („Berechnung"), das Schreiben
der Ergebnisse solcher Berechnungen in den E/A-Speicher zur Übertragung
derselben auf die Ausgabeeinheit („OUT-Auffrischung") und das nachfolgende
Austauschen von Daten über
die Kommunikationseinheit mit den anderen SPSen auf dem gleichen
Kommunikationsnetzwerk oder über
Kommunikationsanschlüsse,
die an der CPU-Einheit vorgesehen sind, mit externen Vorrichtungen
(„periphere
Verarbeitung") in
einer zyklischen Betriebsart. Operationen der IN- Auffrischung und OUT-Auffrischung werden
manchmal zusammen ausgeführt
.
-
Die CPU-Einheit ist üblicherweise
mit einem RAM zur Speicherung von Anwenderprogrammen, einem ROM
zur Speicherung von Systemprogrammen, einer MPU zur Durchführung von
Berechnungen der oben beschriebenen Art sowie RAMs (gemeinsame,
E/A- und Arbeitsspeicher) zur Verwendung, wenn diese Berechnungen
ausgeführt
werden. Andererseits gibt es CPU-Einheiten mit einem Spezialfunktionsmodul,
der lösbar
an ihr angebracht ist. Ein solcher Spezialfunktionsmodul kann verschiedentlich
als innere Platine oder Unter-Platine (nachfolgend als innere Platine)
bezeichnet werden und ist eine intelligente Hochleistungsplatine
mit der Funktion der Ausführung
von Programmen, die zur Durchführung
von Sondervorgängen
für die
Kommunikation, z. B. mit externen Vorrichtungen, erstellt sind.
Die Steuerung durch die CPU-Einheit kann so schneller gemacht und
das Niveau der Steuerung verbessert werden, indem man die innere
Platine einen Teil des oben erwähnten
Rechenvorgangs durchführen
lässt.
-
Zur Verbesserung der Sicherheit und
Zuverlässigkeit
eines Systems ist es bekannt, jede der Einheiten, die die SPS bilden,
aufzudoppeln. Wenn die CPU-Einheit aufzudoppeln ist, werden zwei CPU-Einheiten
vorgesehen und miteinander durch einen CPU-Bus verbunden. Diese
beiden CPU-Einheiten sind im Grundsatz so eingerichtet, dass sie
die gleichen Funktionen haben und in den einzelnen CPU-Einheiten
gespeicherte Anwenderprogramme des gleichen Inhalts ausführen.
-
Die beiden CPU-Einheiten werden so
betrieben, dass eine von ihnen aktiv wird und zyklische Vorgänge zur
Steuerung eines FA-Netzwerksystems durch Lesen und Schreiben aus
und in Speichervorrichtungen und Austauschen von Steuerdaten (E/A-Daten) mit E/A-Vorrichtungen,
etc. ausführt, während die
andere in einem Wartezustand ist und dabei die gleichen Anwender programme
wie die der aktiven CPU-Einheit ausführt, während sie im Wartezustand ist,
obwohl die Ergebnisse ihrer Berechnungen sich nicht im E/A-Speicher
widerspiegeln. Die Ergebnisse der Verarbeitung durch die aktive
CPU-Einheit werden von der Warte-CPU-Einheit empfangen, und der
Speicher der Warte-CPU-Einheit
wird dadurch aktualisiert. Auf diese Weise werden die Speicher der
aktiven und der Warte-CPUs auf dem gleichen Inhalt gehalten.
-
Wenn die aktive der beiden CPU-Einheiten ausfällt, nimmt
die andere CPU im Wartezustand die Stelle der ausgefallenen CPU-Einheit
ein und führt den
tatsächlichen
Steuervorgang fort. Der Ausfall einer CPU-Einheit bewirkt also nicht,
dass das System unmittelbar anhält,
und der Systembetrieb kann fortgesetzt werden, und die Zuverlässigkeit
des Systems ist so verbessert.
-
Im Falle eines oben beschriebenen
Systems mit Redundanz ist sein aufgedoppelter Zustand sichergestellt,
indem die E/A-Speicher
der CPU-Einheiten in identischen Zuständen gehalten werden. Im Falle
von CPU-Einheiten der vorgenannten Art mit einer daran angebrachten
inneren Platine werden Speicher in den Grundkörpern der CPU-Einheiten gleich
gehalten, es ist jedoch nichts geschehen, um ihre inneren Platinen
im gleichen Zustand zu halten.
-
Zusammenfassung der Erfindung Es
ist eine Aufgabe dieser Erfindung, eine programmierbare Steuerung,
die aus zwei CPU-Einheiten mit jeweils einem daran angebrachten
Spezialfunktionsmodul aufgebaut ist, zu schaffen, die in der Lage
ist, ein einschließlich
der Spezialfunktionsmodule aufgedoppeltes System zu schaffen.
-
Es ist eine weitere Aufgabe dieser
Erfindung, solche CPU-Einheiten,
Spezialzweckmodule und ein Verfahren zur Aufdopplung solcher Komponenten
zu schaffen.
-
Eine programmierbare Steuerung gemäß dieser
Erfindung lässt
sich dadurch charakterisieren, dass sie zwei CPU-Einheiten mit jeweils einem lösbar angebrachten
Spezialfunktionsmodul zur Durchführung
eines Berechnungsvorgangs, wobei jede der beiden CPU-Einheiten Zustände der
anderen CPU-Einheit erkennt und eine von ihnen eine aktive Einheit
und die andere eine Warte-Einheit bildet, derart, dass wenn die
aktive Einheit ausfällt
und abschaltet, die Warte-Einheit auf aktiv umgeschaltet wird und Vorgänge fortführt, aufweist.
Der an der aktiven CPU-Einheit angebrachte Spezialfunktionsmodul wird
ein aktiver Modul und führt
Steuervorgänge
mit der aktiven CPU-Einheit
aus, und der an der Warte-CPU-Einheit angebrachte andere Spezialfunktionsmodul
wird ein Wartemodul. Eine solche programmierbare Steuerung ist besonders
sicher und zuverlässig,
da sie einen einschließlich
der Spezialfunktionsmodule aufgedoppelten Aufbau hat.
-
Gemäß dieser Erfindung wird bevorzugt, dass
jede dieser CPU-Einheiten Daten mit ihrem entsprechenden Spezialfunktionsmodul über einen
gemeinsamen Speicher, in den sie sich teilen, austauscht. Dies Spezialfunktionsmodule
führen
den Berechnungsvorgang nicht-synchron mit den CPU-Einheiten aus,
und während
dieser Berechnungsvorgang ausgeführt
wird, werden die durch diese Berechnungsvorgänge erzeugten E/A-Daten nicht
in den gemeinsamen Speicher geschrieben. Solche E/A-Daten werden
auf die CPU-Einheiten nur während
eines Vorgangs in Synchronität
mit den CPU-Einheiten übertragen.
-
Jede solcher CPU-Einheiten gemäß der Erfindung
kann dadurch charakterisiert werden, dass sie nicht nur einen lösbar angebrachten
Spezialfunktionsmodul zur Durchführung
eines Be rechnungsvorgangs, um damit E/A-Daten zu erzeugen, und einen gemeinsamen,
mit diesem angebrachten Spezialfunktionsmodul geteilten Speicher
aufweisen, sondern auch dadurch, dass sie ausgewählt in einer aktiven. Betriebsart
zur Ausführung
eines Steuervorgangs beruhend auf einem Anwenderprogramm und in
einer Wartebetriebsart, in der ein solcher Steuervorgang nicht ausgeführt wird,
sind. Die CPU-Einheit dieser Erfindung, während sie sich in der Wartebetriesbart
befindet, schaltet mit dem Feststellen, dass die andere ähnlich aufgebaute
CPU-Einheit ausfällt und
abschaltet, in die aktive Betriebsart und führt den Steuervorgang fort.
Der Datenaustausch zwischen der CPU-Einheit und dem angebrachten
Spezialfunktionsmodul wird über
ihren gemeinsamen Speicher ausgeführt. Die CPU-Einheit führt einen
inneren Dienstvorgang (das Speichern der E/A-Daten in dem gemeinsamen
Speicher eingeschlossen und wobei Daten mit dem angebrachten Spezialfunktionsmodul synchron
ausgetauscht werden) nach Ausführen
eines zyklischen Vorgangs, der das Ausführen des Anwenderprogrammes
beinhaltet, aus.
-
Jeder der, wie oben beschrieben,
lösbar
an der CPU-Einheit angebrachten Spezialfunktionsmodule gemäß der Erfindung
kann dadurch charakterisiert werden, dass er einen mit der CPU-Einheit geteilten
gemeinsamen Speicher, Mittel zum Austauschen von Daten mit der CPU-Einheit über den
gemeinsamen Speicher, Mittel zur Durchführung eines Berechnungsvorgangs
nicht-synchron mit
der CPU-Einheit und Erzeugung von E/A-Daten hiermit, Mittel zur Übertragung
dieser E/A-Daten auf die CPU-Einheit,
während
ein Vorgang synchron mit der CPU-Einheit ausgeführt wird, wobei aber verhindert ist,
dass die E/A-Daten in den gemeinsamen Speicher geschrieben werden,
während
der Berechnungsvorgang gerade durchgeführt wird, aufweist.
-
Ein Verfahren gemäß dieser Erfindung zur Schaffung
einer programmierbaren Steuerung mit einem auf gedoppelten Aufbau kann
dadurch charakterisiert werden, dass es die Schritte des Vorsehens von
zwei CPU-Einheiten, von denen jede einen Spezialfunktionsmodul aufweist,
der einen Rechenvorgang ausführen
kann, wobei eine dieser beiden CPU-Einheiten eine aktive CPU in
einer aktiven Betriebsart ist und einen Steuervorgang ausführt, die andere
eine Warte-CPU-Einheit in einer Wartebetriebsart ist, Bewirkens,
dass einer der Spezialfunktionsmodule, der an der aktiven CPU-Einheit
angebracht ist, ein aktiver Modul ist und den Steuervorgang zusammen
mit der aktiven CPU-Einheit
ausführt,
Bewirkens, dass der andere der Spezialfunktionsmodule, der an der
Warte-CPU-Einheit angebracht ist, ein Wartemodul ist, und Aktivierens
der Warte-CPU-Einheit und des Wartemoduls in die aktive Betriebsart,
wenn ein anomaler Zustand in der aktiven CPU-Einheit oder dem aktiven
Modul auftritt, aufweist.
-
Bei einem solchen Verfahren werden
Daten zwischen jedem Spezialfunktionsmodul und der daran angebrachten
CPU-Einheit unter Verwendung eines gemeinsamen Speichers, in den
sich diese teilen, ausgetauscht. Die beiden Spezialfunktionsmodule
führen
ihren Berechnungsvorgang nicht-synchron mit den CPU-Einheiten aus, werden
aber daran gehindert, die mit dem Berechnungsvorgang gewonnenen
E/A-Daten in den gemeinsamen Speicher zu schreiben, während der
Berechnungsvorgang gerade ausgeführt
wird. Diese E/A-Daten werden auf die CPU-Einheiten übertragen,
während
die Spezialfunktionsmodule synchron mit den CPU-Einheiten betrieben
werden. In Obigem kann es die CPU-Einheit sein, die das Schreiben der
E/A-Daten in den Speicher ausführt,
oder dies kann durch den Spezialfunktionsmodul ansprechend auf einen
Befehl von der CPU-Einheit erfolgen.
-
Zusammenfassend gesagt, führen die
beiden Spezialfunktionsmodule Programme des gleichen Inhalts in
einer nicht-synchronen
Weise aus, die abschließenden
Ergebnisse der Be rechnungen passen aber zusammen, da das System
von aufgedoppeltem Aufbau ist und die gleichen Daten verarbeitet werden.
Gemäß einer
bevorzugten Ausführungsform werden
ferner die Ergebnisse der durch die beiden Spezialfunktionsmodule
ausgeführten
Berechnungen verglichen, und wenn sie nicht zusammenpassen, wird
bewirkt, dass der Modul, der beim Ausführung der Berechnungen hinten
ist, einen Korrekturvorgang ausführt,
durch welchen der Berechnungsvorgang vorgerückt wird, so dass die beiden
Module im Berechnungsvorgang gleich weit vorne sind.
-
Wenn die CPU-Einheiten einer solchen
programmierbaren Steuerung die mit dem Berechnungsvorgang gewonnenen
E/A-Daten speichern, geschieht dies unter der Bedingung, dass die
Ergebnisse, der Berechnungen mit den beiden Moduln zusammenpassen.
Der Fortschreitgrad bei der Durchführung des Berechnungsvorgangs
mit den beiden Moduln passt jedesmal zusammen, wenn ein solcher Korrekturvorgang
ausgeführt
ist. Es kann also sichergestellt werden, dass die gleichen Daten
als Ergebnis des Berechnungsvorgangs eingeschrieben werden.
-
Wenn ferner die in dem Speicher des
aktiven Spezialfunktionsmoduls gespeicherten variablen Daten oder
Parameter durch einen Befehl von außen geändert werden, kann bei der
aktiven CPU-Einheit eine Anforderung eines spezifizierten Vorgangs
erfolgen. Als Antwort gewinnt die aktive CPU-Einheit wenigstens
den geänderten
Inhalt des Speichers und gibt ihn auf den Wartemdoul aus, so dass
der Inhalt des Speichers des aktiven und des Wartemoduls in Übereinstimmung
gebracht werden. In Obigem bedeuten die in dem Speicher des Spezialfunktionsmoduls
gespeicherten variablen Daten beispielsweise Daten, die durch Ausführen eines
Berechnungsvorgangs zyklisch umgeschrieben werden. Die in dem Speicher
eines Spezialfunktionsmoduls gespeicherten Parameterdaten sind nicht
diejenigen, die durch Ausführen
des Berechnungsvorgangs zyklisch umgeschrieben werden, sondern sind
diejenigen, die von außen
mittels eines Tool bzw. Hilfsmittels oder dergleichen umgeschrieben
werden, wie etwa Daten, die sich auf die Systemeinstellung durch
den Spezialfunktionsmodul oder Anwenderprogramme für die Spezialfunktionsmodule
beziehen.
-
Der Speicherinhalt des Spezialfunktionsmoduls
auf der aktiven Seite kann von außen mittels eines Tool modifiziert
werden, während
der Berechnungsvorgang gerade ausgeführt wird. Auch in einer solchen
Situation wird der Vorgang, wie er oben beschrieben wurde, ausgeführt, so
dass die Änderungen
auf den Spezialfunktionsmodul auf der Warteseite übertragen
werden können
und die Gleichheit der Daten aufrechterhalten werden kann. Die oben
erwähnte Übertragung
auf den Spezialfunktionsmodul in der Wartebetriebsart kann über die
Warte-CPU-Einheit ausgeführt
werden, oder es kann ein Mechanismus zur Durchführung der Übertragung direkt auf den Spezialfunktionsmodul
eingeführt
werden.
-
Kurze Beschreibung der
Zeichnungen
-
1 ist
ein Blockdiagramm einer die Erfindung verkörpernden programmierbaren Steuerung.
-
2 ist
ein ausführlicheres
Blockdiagramm eines Teils der programmierbaren Steuerung der 1.
-
3 ist
ein Flussdiagramm zur Wiedergabe der Vorgänge der CPU-Einheiten und ihrer
inneren Platinen.
-
4 zeigt
ein Beispiel einer Datenstruktur in dem Schnittstellenbereich zwischen
einer CPU-Einheit und einer inneren Platine.
-
5 zeigt
ein Beispiel einer Datenstruktur im CPU-Statusbereich.
-
6 zeigt
ein Beispiel der Datenstruktur in einem Innenplatinen-Statusbereich.
-
7 zeigt
ein Beispiel einer Datenstruktur in einem CPU-INNERE-Befehl-Antwortbereich.
-
8 zeigt
ein Beispiel von Befehl-Antwort verwendet in einem CPU-INNERE-Befehl-Antwortbereich.
-
9 zeigt
ein Beispiel eines Vorgangs für den
Start der Synchronisation.
-
10 zeigt
ein Beispiel für
eine Vorgangsroutine zur Korrektur des Berechnungsergebnisses.
-
11 zeigt
ein Beispiel eines Vorgangs für den
Start der Transferierung des Berechnungsergebnisses.
-
12 zeigt
ein Beispiel des Vorgangs für den
Start einer Korrektur des Berechnungsergebnisses.
-
13-19 zeigen Beispiele eines
Vorgangs zur Transferierung eines Berechnungsergebnisses.
-
20 zeigt
ein Beispiel eines zyklischen Vorgangs.
-
21 und 22 zeigen Beispiele eines
Ereignisausführungsvorgangs.
-
23 zeigt
ein Beispiel eines Synchronisationsendvorgangs.
-
24 und 25 sind Flussdiagramme zur Wiedergabe
der Operationen von „Verdoppelungsanfangs"-Prozessen durch
die CPU-Einheiten
und ihre inneren Platinen.
-
26-32 zeigen ein Beispiel eines
Großmengendatenübertragungsvorgangs.
-
Ausführliche Beschreibung der Erfindung
-
Die Erfindung wird als nächstes anhand
eines Beispiels beschrieben. 1 zeigt
den Aufbau einer die Erfindung verkörpernden programmierbaren Steuerung
(SPS) 10, die sich aus einer Anzahl von Einheiten zusammensetzt,
die jeweils aufgedop pelt sind, einschließend zwei elektrische Spannungsquelleneinheiten 11 zur
Lieferung von Spannung an jede Einheit der SPS 10, zwei
(erste und zweite) CPU-Einheiten 12 und 13 jeweils
mit der Funktion der Ausführung
von Anwenderprogrammen und zyklischen Ausführung von E/A-Auffrisch- und
Peripherievorgängen,
eine Duplexeinheit (DPL) 16 zur Steuerung der Operationen
dieser CPU-Einheiten 12 und 13 sowie E/A-Einheiten 17 zur
Verbindung mit Eingabe- und Ausgabevorrichtungen. Wie genauer gezeigt,
sind die Einheiten wechselseitig über ein Bussystem 19 verbunden.
Einheiten anderer Arten können
ebenfalls enthalten sein, und die Anzahl von Einheiten, aus denen
sich die SPS 10 zusammensetzt, kann, falls erforderlich,
erhöht
oder erniedrigt sein.
-
Bei dieser SPS 10 sind die
Spannungsquelleneinheiten 11 und die CPU-Einheiten 12 und 13 verdoppelt.
Die beiden Spannungsquelleneinheiten 11 beispielsweise
sind zur Lieferung von Spannung an die Einheiten der SPS 10 parallel
geschaltet. Auch wenn eine von ihnen ausfällt und nicht mehr in der Lage
ist, Spannung zu liefern, kann die andere die Spannungsversorgung
fortführen.
-
Die beiden CPU-Einheiten 12 und 13 sind
so eingerichtet, dass sie Anwenderprogramme des gleichen Inhalts
ausführen.
Zum Zeitpunkt einer tatsächlichen
Operation wird jedoch eine von ihnen aktiv und die andere zu einer
Warteeinheit. Die Ergebnisse der Ausführung von Anwenderprogrammen
durch die aktive der CPU-Einheiten werden über die E/A-Einheiten auf externe
Vorrichtungen ausgegeben und werden dadurch in der Steuerung wiedergegeben.
Obwohl Anwenderprogramme des gleichen Inhalts von der Warte-CPU-Einheit
ausgeführt
werden, werden die Ergebnisse dieser Ausführung nicht ausgegeben. Stattdessen
aktualisiert die Warte-CPU-Einheit den Inhalt ihres Speichers, wenn
die Ergebnisse der Ausführung
durch die aktive CPU-Einheit empfangen werden, wodurch sie sich
im gleichen Zustand wie die aktive CPU-Einheit hält. Sobald die aktive CPU-Einheit
infolge eines anomalen Zustands ausfällt und abschaltet, kann also
die Warte-CPU-Einheit unmittelbar den Platz der ausgefallenen CPU-Einheit einnehmen
und die Steuervorgänge übernehmen. Dies
ist es, wie ein aufgedoppeltes System vom „heißen Wartetyp" realisiert wird.
-
Dieses Umschalten der Rollen zwischen
der ersten und zweiten CPU 12 und 13 wird mittels
der vorgenannten Duplexeinheit 16 ausgeführt, die
als Doppelungssteuereinheit dient, welche, wie in 2 gezeigt, eine Doppelungssteuerschaltung (DPL-STEUERUNG) 16a enthält, die
so eingerichtet ist, dass sie einen Busschalter 18 so betätigt, dass der
Bus geschaltet wird, oder dass sie eine Synchronisationssteuerung
zwischen der ersten und zweiten CPU-Einheit 12 und 13 durchführt. Daten
werden ebenfalls zwischen der ersten und zweiten CPU-Einheit über diese
Duplexeinheit 16 ausgetauscht.
-
Gemäß dieser Ausführungsform
der Erfindung sind die erste und zweite CPU-Einheit 12 und 13 jeweils
mit einer inneren Platine (der ersten inneren Platine 14 bzw.
der zweiten inneren Platine 15) versehen. Genauer erläutert, ist
jede der inneren Platinen 14 und 15 in einen Schlitz
eingesetzt, der in der entsprechenden der CPU-Einheiten 12 und 13 ausgebildet
ist, so dass sie mechanisch montiert und in der Lage ist, Daten
mit der entsprechenden CPU-Einheit über einen Bus auszutauschen.
Jede dieser inneren Platinen 14 und 15 kann ausgewählt entweder aktiv
oder in einem Wartezustand sein, wobei sie aktiv wird, wenn die
entsprechende CPU-Einheit 12 oder 13 aktiv ist,
und im Wartezustand, wenn die entsprechende CPU 12 oder 13 im
Wartezustand ist.
-
In der folgenden Beschreibung wird
angenommen, dass die erste CPU-Einheit und die erste innere Platine
aktiv sind (be zeichnet als die „aktive Seite") und die zweite
CPU-Einheit 13 und die zweite innere Platine 15 im
Wartezustand sind (bezeichnet als die „Warteseite"). Die erste und
zweite innere Platine 14 und 15 haben die gleichen
Funktionen wie die erste und zweite CPU-Einheit 12 und 13 zur
Ausführung
gleicher Vorgänge.
Die erste und zweite CPU-Einheit 12 und 13. haben
den gleichen Hardware-Aufbau, und die erste und zweite innere Platine 14 und 15 haben
ebenfalls den gleichen Hardware-Aufbau.
-
Genauer erläutert unter Bezug auf 2 enthalten die erste und
zweite CPU-Einheit 12 und 13 jeweils einen Anwenderspeicher 12a bzw. 13a zur Speicherung
von Anwenderprogrammen, eine MPU 12b bzw. 13b zum Ausführen dieser
in dem Programmspeicher 12a oder 13a gespeicherten
Anwenderprogramme und zyklischen Ausführen der E/A-Auffrisch- und
Peripherievorgänge,
einen RAM 12c bzw. 13c zur Benutzung als Arbeitsbereich
während
der Ausführungen
durch die MPU 12b oder 13b, und einen E/A-Speicher 12d bzw. 13d und
einen I/F-ASIC 12e bzw. 13e.
-
Die erste und zweite innere Platine 14 und 15 ist
jeweils mit einem ROM 14a bzw. 15a, der Systemprogramme
für die
inneren Platinen speichert, einer MPU 14b bzw. 15b zur
Kommunikation mit der entsprechenden CPU-Einheit und Ausführung des
im ROM 14a bzw. 15a gespeicherten Systemprogramms,
sowie einem RAM 14c bzw. 15c, der Anwenderprogramme
speichert, die auf der inneren Platine auszuführen sind, und der auch als
Arbeitsbereich während
der Ausführung
der Systemprogramme zu verwenden ist, versehen.
-
Der RAM 14a bzw. 15a,
die MPU 14b bzw. 15b und der RAM 14c bzw. 15c sind über einen
Bus 14d bzw. 15d miteinander verbunden. Die erste
und zweite innere Platine 14 und 15 sind mit dem I/F-ASIS 12e und 13e der
ersten und zweiten CPU-Einheit 12' und 13 über diese
Busse 14d und 15d verbunden. Unterbrechungssignalleitungen 14e und 15e sind
zwischen der MPU 14b bzw. 15b der ersten bzw.
zweiten inneren Platine 14 bzw. 15 und dem I/F-ASIS 12e bzw. 13e vorgesehen.
-
Die E/A-Speicher 12d und 13d wirken
nicht nur zur Speicherung von E/A-Daten, die gewöhnliche Steuerdaten sind, sondern
auch als gemeinsamer Speicher, in den sich die erste und zweite
CPU-Einheit 12 und 13 sowie die erste und zweite
innere Platine 14 und 15, die jeweils darin montiert
sind, teilen. Die I/F-ASICs 12e und 13e der ersten
und zweiten CPU-Einheit 12 und 13 dienen als Vermittler,
wenn die MPUs 14b und 15b innerhalb der ersten
bzw. zweiten CPU-Einheit 12 und 13 und die MPUs 14b und 15b innerhalb
der ersten bzw, zweiten inneren Platine 14 und 15 auf
die entsprechenden E/A-Speicher 12d und 13d der
ersten und zweiten CPU-Einheit 12 und 13 zugreifen.
Daten können
so zwischen inneren Platinen und entsprechenden CPU-Einheiten über die
E/A-Speicher 12d und 13d ausgetauscht werden.
-
Wie oben erläutert, wird eine der CPU-Einheiten
(beispielsweise die erste CPU-Einheit 12) und eine der
beiden inneren Platinen (beispielsweise die erste innere Platine 14)
aktiv, wobei die andere CPU-Einheit 13 und die andere innere
Platine 15 im Wartezustand sind. Die erste CPU-Einheit 12,
die aktiv ist, führt
zyklisch verschiedene Prozesse, wie die Ausführung eines Anwenderprogramms,
die E/A-Auffrischung, einen Peripherie-Dienstprozess und Innenplatinen-Dienstprozess,
durch, während sie
mit der zweiten CPU-Einheit 13 synchron ist. Die Verarbeitung
durch die zweite CPU-Einheit 13 im Wartezustand ist im
Wesentlichen die gleiche wie die durch die erste CPU-Einheit 12,
wobei Anwenderprogramme ausgeführt
und die Ergebnisse der Ausführung
in dem E/A-Speicher 13d gespeichert werden. Genauer ausgeführt, wird
Synchronisation mit der ersten CPU-Einheit 12 aufgenommen
und werden verschiedene Prozesse zyklisch durchgeführt, wie etwa
die Ausführung
von Anwender programmen, eines Peripherie-Dienstprozesses und eines
Innenplatinen-Dienstprozesses. Anders als die aktive erste CPU-Einheit 12 führt die
zweite CPU-Einheit 13 im Wartezustand den E/A-Auffrischvorgang
nicht durch. Die Inhalte des EA-Speichers 13d der aktiven
ersten CPU-Einheit 12 werden als Daten in dem EA-Speicher 13d wiedergegeben,
so dass die gespeicherten Inhalte beider zusammenpassen.
-
Die erste innere Platine 14,
die aktiv ist, führt einen
spezifizierten Vorgang aus, wenn ein Synchronisationsvorgang mit
der ersten CPU-Einheit 12 und der vorgenannte Innenplatinen-Dienst
durch die erste CPU-Einheit 12 ausgeführt werden, und gibt das Ergebnis
der Ausführung
zurück.
Anders ausgedrückt,
wird der gemeinsame Speicherbereich des EA-Speichers für den Austausch
von Daten verwendet.
-
Die zweite innere Platine 15 im
Wartezustand führt
einen Synchronisationsvorgang mit der zweiten CPU-Einheit 13 durch,
führt einen
spezifizierten Vorgang durch Auslesen von Daten aus dem gemeinsamen
Speicherbereich des EA-Speichers 13d (wo die Ergebnisse
der Berechnung durch die erste CPU-Einheit 12 etc. wiedergegeben.
werden) aus und speichert die Ergebnisse ihrer eigenen Berechnungen
im gemeinsamen Speicherbereich des EA-Speichers 13d.
-
Wie aus 2 ersichtlich, fließen Daten nur in einer Richtung
von der ersten CPU-Einheit 12 zur zweiten CPU-Einheit 13,
d. h., die Inhalte des EA-Speichers 12d der ersten CPU-Einheit 12 (Daten für CPU-Einheiten
und innere Platinen) werden auf einen spezifizierten Bereich der
EA-Speichers 13d der zweiten CPU-Einheit 13 übertragen
und dort gespeichert. Daten für
die innere Platine werden durch den I/F-ASIC 13e an die
zweite innere Platine 15 geliefert. Auf der Grundlage der
so gelieferten Daten führt
die zweite innere Platine 15 eine Berechnung und andere
Prozesse aus.
-
Auf diese Weise kommen die EA-Speicher 12d und 13d dahin,
die gleichen Daten zu speichern, und die zweite CPU-Einheit 13 und
die zweite innere Platine 15 können die gleichen Vorgänge wie
die erste CPU-Einheit 12 und die erste innere Platine 14 ausführen. Es
werden also die gleichen Berechnungsergebnisse etc. gewonnen, und
sobald eine anomale Situation in der ersten CPU-Einheit 12 oder der
ersten inneren Platine 14 auftritt, werden die zweite CPU-Einheit 13 und
die zweite innere Platine 15 aktiviert und führen sie
die aktiven Vorgänge
aus. Anders ausgedrückt,
können
die Operationen und Steuerungen glatt und kontinuierlich weitergeführt werden.
-
Operationen der CPU-Einheiten 12 und 13 und
ihrer inneren Platinen 14 und 15 werden als nächstes unter
Bezug auf das Flussdiagramm der 3 erläutert. Zum
Start führt
die aktive erste CPU-Einheit 12 (AKT. CPU) einen Spannungseinschaltvorgang
aus (ST1), wobei ihr RAM 12c initialisiert wird etc., die
Verbindung der E/A-Einheit geprüft und
der EA-Speicher 12d gelöscht
wird. Im Falle eines normalen Hochfahrens wird ein Leiter-Vorgang (LEITER)
ausgeführt
(ST2), d. h., die im Anwenderspeicher 12a gespeicherten
Anwenderprogramme werden sequenziell ausgeführt. Als nächstes wird der E/A-Auffrischvorgang
(E/A-AUFFRISCH) ausgeführt (ST3),
d. h., Daten in dem vorab zugewiesenen Eingabeeinheitdatenbereich
werden mit den von der Eingabeeinheit erhaltenen Daten aktualisiert,
und die Daten in dem Ausgabeeinheitdatenbereich werden auf die Ausgabeeinheit übertragen.
Es wird dann möglich,
Eingabedaten von Eingabevorrichtungen, wie etwa Sensoren, zu erhalten
und die Ergebnisse von Berechnungen mit dem Leitervorgang (oder
Ausgabedaten etc.) auf die Vorrichtung, die gerade gesteuert wird,
auszugeben. Das Ergebnis dieser E/A-Auffrischung und der Inhalt
des aktualisierten EA-Speichers 12d werden auch auf den
EA- Speicher 13d der
zweiten CPU-Einheit 13 im Wartezustand übertragen und dort eingeschrieben.
-
Als Nächstes wird unter Aufrechterhaltung der
Synchronisation mit der zweiten CPU-Einheit 13 ein Synchronisierungsvorgang
(START SYNC) mit der aktiven ersten inneren Platine begonnen (ST4) und
der innere Dienstvorgang (INNERER DIENST) ausgeführt (ST5). Der innere Dienst
enthält
das Gewinnen der Ergebnisse von von der ersten inneren Platine 14 ausgeführten Berechnungen,
wie weiter unten erläutert
wird, und das Ausgeben einer Anforderung für eine Ereignisverarbeitung.
Wenn diese Folge von Vorgängen
abgeschlossen ist, wird der Peripherie-Dienstvorgang ausgeführt (ST7), nachdem der Synchronisationsvorgang
beendet ist (ST6). Der Peripheriedienst enthält das Austauschen von Daten mit
Einheiten, wie etwa Kommunikationseinheiten, die eine spezifizierte
Funktion haben. Vorgenannte Schritte ST2–ST7 werden zyklisch wiederholt.
-
In der Zwischenzeit führt die
aktive erste innere Platine 14 (AKT. INNERE) einen Spannungseinschaltvorgang
(ST11) durch, wobei ihr RAM 14c aktiviert wird, etc., und
führt Berechnungen
durch (ST12) oder führt
die im RAM 14c gespeicherten Anwenderprogramme für die innere
Platine durch. Diese Berechnungen werden nicht-synchron mit dem
Leitervorgang durch die erste CPU-Einheit 12 ausgeführt. Die
Synchronisation wird begonnen (ST13), wenn ein Synchronisationsbefehlssignal
von der ersten CPU-Einheit 12 empfangen wird, und es werden
ein Datentransfer, zyklische und Ereignisvorgänge ausgeführt (ST14, ST15 und ST16),
während
die erste CPU-Einheit 12 mit ihren inneren Diensten befasst
ist (ST5). Wenn der Synchronisationsvorgang abgeschlossen ist (ST17),
kehrt die aktive innere Platine zu Schritt ST12 zurück, um die
Berechnung erneut zu starten. Während
der Zeitdauer von Schritt ST12 ist die erste innere Platine 14 daran
gehindert, die E/A-Daten, die Steuerdaten auf dem EA-Speicher 12d sind,
einzuschreiben. Wenn kein Synchronisationsbefehlssignal während dieser
Schritt ST12 entsprechenden Berechnungszeit empfangen wird, schließt die aktive
innere Platine die Berechnungen ab und wartet auf das Signal. Die
Operationen synchron zwischen der ersten inneren Platine 14 und
der ersten CPU-Einheit 12 werden unter Verwendung ihres
gemeinsamen Speichers zur Datenübertragung ausgeführt. Einzelheiten
der Operationen der ersten inneren Platine 14 während der
Zeitdauer synchroner Operationen werden nachstehend gegeben.
-
Die Operationen der zweiten CPU-Einheit 13 im
Wartezustand sind im Wesentlichen die gleichen wie diejenigen der
ersten CPU-Einheit 12. Nach einem Spannungseinschaltvorgang
(ST21), wird ein Leiter-Vorgang (LEITER) ausgeführt (ST22). Der E/A-Auffrischvorgang
wird nicht ausgeführt,
er gelangt aber in Synchronisation mit der ersten CPU-Einheit 12 und
auch mit der zweiten inneren Platine 15 im Wartezustand
(ST23) und es wird ein innerer Dienstvorgang ausgeführt (ST24).
Dieser innere Dienstvorgang beinhaltet das Gewinnen der Ergebnisse
von Berechnungen, die von der ersten inneren Platine 14 ausgeführt werden,
und das Ausgeben von Anforderungen von Ereignisvorgängen. Nachdem
diese Folge von Verarbeitungen beendet ist, endet der Synchronisationsvorgang
(ST25) und es werden periphere Dienstvorgänge ausgeführt (ST26).
-
Die zweite innere Platine 15 im
Wartezustand (WARTEINNERE) führt
einen Spannungseinschaltvorgang durch (ST31), wobei ihr RAM 15c initialisiert
wird, etc., und führt
Berechnungen durch (ST32), oder führt die im RAM 15c gespeicherten
Anwenderprogramme für
die innere Platine aus. Diese Berechnungen werden nicht-synchron
mit dem Leiter-Vorgang durch die zweite CPU-Einheit 13 ausgeführt. Die
Einzelheiten der Berechnungen sind die gleichen wie diejenigen für die erste
innere Platine 14. Wenn kein Synchronisationsbefehlssignal
von der zweiten CPU-Einheit 13 während der Schritt ST32 entsprechenden
Berechnungszeitdauer empfangen wird, schließt die innere Platine 15 die
Berechnungen ab und wartet auf das Signal.
-
Die Synchronisation wird begonnen
(ST33), wenn ein Synchronisationsbefehlssignal von der zweiten CPU-Einheit 13 empfangen
wird, und es werden ein Datentransfer, zyklische und Ereignisvorgänge ausgeführt (ST34,
ST35 und ST36), während
die zweite CPU-Einheit 13 mit ihren inneren Diensten befasst
ist (ST24). Wenn der Synchronisationsvorgang abgeschlossen ist (ST37),
kehrt die innere Platine nach Schritt ST22 zurück, um den Berechnungsvorgang
neu zu beginnen.
-
Wenn zugelassen wird, dass Daten
in die E/A-Daten, die Steuerdaten sind, auf den EA-Speichern 12d und 13d geschrieben
werden, wenn die inneren Platinen 14 und 15 mit
den Berechnungsvorgängen
befasst sind, kann die Qualität
von Daten zwischen ihnen leiden. Es wird also verhindert, dass Daten
in die E/A-Daten, die als Steuerdaten dienen, auf den EA-Speichern 12d und 13d während der
Berechnungsvorgänge
geschrieben werden. Berechnungen werden also mit einer konstanten
Zeit (als zyklischer Vorgang (ST15) oder als Ereignisvorgang (ST16))
geschrieben, und die E/A-Daten, die die Steuerdaten auf den EA-Speichern 12d und 13d sind,
werden auf die CPU-Einheiten unter Verwendung der gemeinsamen Speicher
geschrieben. Die CPU-Einheiten
schreiben diese E/A-Daten auf der Grundlage dieser transferierten
Daten ein.
-
Als Nächstes werden Einzelheiten
einer Prozessroutine für
jeden Verarbeitungsschritt beschrieben. In diesem Beispiel wird
der Synchronisationsvorgang durch Austauschen von Daten im Wege
einer Befehl-Antwortroutine unter Verwendung gemeinsamer Speicher
(EA-Speicher 12d und 13d) ausgeführt. Zunächst werden
CPU-Einheit-Innenplatinen-Schnittstellenbereiche, die spezifischen
Bereichen der EA-Speicher 12d und 13d zur Verwendung für die Synchronisation
zugeordnet sind, erläutert. Jeder
dieser Bereiche ist für
den Status einer CPU-Einheit und ihrer inneren Platine und auch
für Befehl-Antwort
zwischen der CPU-Einheit
und der inneren Platine zu verwenden, aufgebaut wie in 4 gezeigt. Jede CPU-Einheit
und innere Platine können aus
dem ihr selbst zugeordneten Bereich auslesen (R) und in diesem schreiben
(W), kann aber nur aus dem der anderen CPU und der anderen inneren
Platine zugeordneten Bereich auslesen.
-
In 4 sind
die CPU-Statusbereiche die Bereiche, in die die CPU-Einheit schreiben
soll. Die innere Platine arbeitet dahingehend, Berechnungen und
andere Aufgaben gemäß einem
spezifizierten Kennzeichen in diesen Bereichen zu beginnen und zu
beenden. Die Datenstruktur eines jeden CPU-Statusbereichs kann so,
wie in 5 gezeigt, sein,
wobei das „Innenplatinen-Operationskennzeichen" ein Kennzeichen
ist, welches angibt, ob die innere Platine arbeiten darf (0) oder
nicht arbeiten darf (1). Anderes ausgedrückt, prüft die innere Platine dieses Kennzeichen
am Beginn eines jeden Zyklus (Berechnungs-Transfer der Berechnungsergebnisse-Ereignis-zyklisch),
wobei sie den Zyklus von Operationen nicht ausführt, wenn dieses Kennzeichen „1" ist. Dieses Kennzeichen
wird „1", wenn sich die CPU
in einem Wartezustand befindet, wenn sie auf das Arbeiten einer
weiteren Vorrichtung wartet, und wenn die Gleichheit von Daten zwischen
der aktiven und der Warteeinheit nicht garantiert werden kann, wie
während
der Initialisierung eines Verdopplungsvorgangs (oder „Verdopplungsinitiierungs"-Vorgang, wie unten beschrieben)
oder auf der Warteseite.
-
Die Startadresse der Speicherbereiche
für die
nach außen
zu übertragenden
Daten und ihre Datengröße werden
auch in diesem CPU-Statusbereich geschrieben. Die Datenbereiche
können also
anhand der spezifizierten Startadresse und Datengrößen identifiziert
werden, wenn die Datentransfers bewirkt werden.
-
Der innere Statusbereich der 4 ist ein Bereich, in den
die innere Platine schreiben soll. Die CPU führt den „Verdopplungsinitialisierungs"-Hochfahr- und Verdoppelungsanpassvorgang
(nachfolgend zu erläutern)
gemäß einem
spezifizierten Kennzeichen in diesem Bereich durch. Die Datenstruktur des
inneren Statusbereichs kann, wie in 6 gezeigt,
sein, wobei das „Verdoppelungsinitialisierungs-Anforderungskennzeichen" ein Kennzeichen ist,
welches verwendet wird, wenn die innere Platine wünscht, den „Verdoppelungsinitialisierungs"-Vorgang zustimmend
zu starten. Es wird auf „1" gesetzt, wenn gewünscht wird,
dass die variablen Daten und Parameterdaten auf der Seite der aktiven
inneren Platine (bzw. der ersten inneren Platine 14) auf
die innere Platine im Wartezustand (bzw. die zweite innere Platine 15) übertragen
werden. Anforderungen für
einen „Verdoppelungsinitialisierungs"-Vorgang von der inneren
Platine im Wartezustand werden ignoriert. Der „Verdoppelungsinitialisierungs"-Vorgang wird automatisch
ausgeführt,
wenn die Verdoppelungsoperation gestartet wird. Das Kennzeichen
kann auf „1" gesetzt werden,
wenn gewünscht
wird, eine Verdoppelungsinitalisierung auszuführen, während der Verdoppelungsvorgang
gerade betrieben wird.
-
Der Datenübereinstimmungsbereich ist
ein Bereich; der für
eine Prüfung
zu verwenden ist, ob die inneren Zustände der ersten und zweiten
inneren Platine 14 und 15 zusammenpassen, so dass
sie synchron betrieben werden können.
In diesem Bereich zu speichernde Dateninhalte werden vorab definiert
und jede der Innenplatinen-MPUs 14b und 15b schreibt
die definierten Inhalte ein. Die erste und zweite CPU-Einheit 12 und 13 vergleichen
die in diesem Datenübereinstimmungsbereich
gespeicherten Daten. Der Zeitpunkt für die Anpassung von Daten für diesen
Vergleich ist, wenn die inneren, Platinen als mit eingeschalteter
Spannung erkannt werden, oder der Zeitpunkt der „Verdoppelungsinitialisierungs"-Verarbeitung.
-
Die „CPU-Innenplatinen(CPU-INNERE)-Befehl-Antwort-Bereiche" sind Bereiche, die
für Befehle und
Antworten zwischen einer CPU-Einheit und einer inneren Platine zu
verwenden sind. 7 zeigt
ein Beispiel einer Speicherzuordnung. Beispiele für Befehl
und Antwort, die in diesem Bereich verwendet werden, sind in 8 gezeigt. Ein Beispiel
einer Routine für
eine Synchronisation unter Verwendung solcher Bereiche und solcher
Befehle und Antworten wird als Nächstes
erläutert.
-
Die Schritte zum Starten der Synchronisation (ST4
und ST23 im Flussdiagramm der 3)
werden initiiert, wenn die erste und zweite CPU-Einheit 12 und 13 ein
Unterbrechungssignal unter Verwendung der Unterbrechungssignalleitungen 14e und 15e (gezeigt
in 2) auf die innere
Platine 14 bzw. 15 übertragen. Als Nächstes wird
ein Synchronisationsstartbefehl (START SYNC) ausgegeben. Dies bedeutet, dass
ein spezifizierter Befehl (0001) an einem spezifizierten Bereich
in den CPU-INNERE-Befehl-Antwort-Bereich
des gemeinsamen Speichers, der auf den EA-Speichern 12d und 13d zugeordnet
ist, geschrieben wird, wie dies in 9 gezeigt
ist. Ein freilaufender Zähler
für die
innere Platine ist dem Synchronisationsstartbefehl zugeteilt. Dieser
Zähler
wird für
die Taktanpassung der inneren Platine verwendet.
-
Wenn ein solches Unterbrechungssignal
für den
Start des Synchronisationsprozesses empfangen wird, führen die
erste und zweite innere Platine 14 und 15 den
Synchronisationsstartprozess (ST13 und ST33 in 3) durch Zugreifen auf den entsprechenden
EA-Speicher 12d oder 13d, Gewinnen des Befehls
und nachfolgendes Zurückgeben
einer Antwort auf den Synchronisationsstartbefehl aus. Es gibt die
folgenden zwei Arten von Ant wort: (1) Antwort „8001", wenn Berechnungsergebnisse transferiert werden,
Ereignisvorgänge
und zyklische Vorgänge ausgeführt werden,
und (2) Antwort „4001", wenn sie nicht
ausgeführt
werden. Antwort „4001" wird zurückgegeben,
wenn keine Änderung
im Fortschritt von Berechnungen mit der inneren Platine seit dem
vorherigen Zyklus vorliegt und daher keine Notwendigkeit besteht,
die Ergebnisse von Berechnungen zu transferieren. Wenn die CPU-Einheit
diese Antwort erhält, überspringt
sie alle nachfolgenden Bearbeitungsschritte, die sich auf den Ergebnistransfer,
Ereignis- und zyklische Prozesse beziehen. Die gleichen Antworten
werden sowohl von der aktiven als auch der Warteseite unter normalen
Umständen
zurückgegeben,
wenn sie die gleichen Vorgänge
ausführen.
Wenn sie nicht übereinstimmen,
wird die Antwort von der aktiven inneren Platine als die korrekte Antwort
betrachtet.
-
Nachdem der Synchronisationsstartvorgang ausgeführt ist
(und die Antwort „8001" zurückgegeben
ist), wird der Vorgang der Transferierung von Berechnungsergebnissen
ausgeführt.
Da die Verdoppelung von Komponenten in diesem Beispiel durch die „heiße Warte"-Methode erfolgt,
könnten,
wenn man zulässt,
dass Daten in die EA-Speicher 12d und 13d geschrieben
werden, während
die inneren Platinen 14 und 15 gerade Berechnungsvorgänge ausführen, ihre
Daten verschieden werden. Daher ist es verboten, Daten in die EA-Speicher 12d und 13d zu
schreiben, während
Berechnungsvorgänge
ausgeführt werden,
und die Ergebnisse der Berechnungen werden mit einer konstanten
Zeit übertragen
und in die EA-Speicher 12d und 13d unter spezifizierten
Bedingungen geschrieben.
-
In diesem Zeitpunkt sind die erste
und zweite CPU-Einheit 12 und 13 synchron, und
die erste CPU-Einheit 12 ist in der Lage, die Zustände der zweiten
CPU-Einheit 13 und der zweiten inneren Platine 15 im
Wartezustand (wie etwa die Speicherin halte und Berechnungsergebnisse
in Schritt ST14 durch die erste innere Platine 14) zu gewinnen,
und die zweite CPU-Einheit 13 kann als Ergebnis des Datentransfers
aus der ersten CPU-Einheit 12 die
Zustände
der aktiven ersten CPU-Einheit 12 und der ersten inneren
Platine 14 (wie etwa die Speicherinhalte und die Berechnungsergebnisse
in Schritt ST14 mit der ersten inneren Platine 14) gewinnen.
-
Es kann also bestimmt werden, ob
die Grade des Fortschreitens bei den Berechnungen mit der ersten
und zweiten inneren Platine 14 und 15 übereinstimmen
oder nicht, indem die Ergebnisse der Berechnungen mit den beiden
inneren Platinen 14 und 15 verglichen werden.
Die erste und zweite innere Platine 14 und 15 führen die
gleichen Berechnungen aus. Wenn ihre Programmverarbeitungsgeschwindigkeiten
die gleichen sind und die gleichen Befehle damit verarbeitet werden,
sind die Ergebnisse ihrer Berechnungen die gleichen. Wenn die Ergebnisse
ihrer Berechnungen nicht übereinstimmen,
kann ein Korrekturvorgang ausgeführt
werden, um ihre Verarbeitungsgeschwindigkeiten anzupassen, so dass
die Ergebnisse ihrer Berechnungen wieder übereinstimmen. Nach einem solchen
Korrekturvorgang ist ein Zustand erreicht, in welchem die erste
und zweite innere Platine 14 und 15 bis zum gleichen
Befehl hin (im gleichen Schritt) verarbeitet haben, d. h. die Grade
des Fortschreitens bei den Berechnungen mit den beiden inneren Platinen 14 und 15 die
gleichen sind. Wenn solche Korrekturvorgänge geeignet wiederholt werden,
können
die Grade des Fortschreitens beim Ausführen von Prozessen mit der
ersten und zweiten inneren Platine 14 und 15 in
Einheiten von Zyklen in Übereinstimmung
gebracht werden, so dass, wenn die zweite innere Platine 15 aktiviert
und aus dem Wartezustand in den aktiven Zustand geschaltet wird,
Steuergrößen, die
mit den Ergebnissen von Berechnungen ausgegeben werden, sich nicht
abrupt von dem Zeit punkt, zu dem die erste innere Platine 14 aktiv
war, ändern,
so dass das Umschalten sanft bewirkt werden kann.
-
10 zeigt
diesen Vorgang der Korrektur des Ergebnisses von Berechnungen, um
den Grad des Fortschreitens bei der Berechnung in Übereinstimmung
zu bringen. Die in 10 gezeigten
Vorgänge
(1) bis (8) werden als Nächstes
erläutert.
-
Im Vorgang (1) gibt die aktive erste
CPU-Einheit 12 einen Transferstartbefehl an die erste aktive innere
Platine 14 und die wartende zweite innere Platine 15,
um den Transfer von Berechnungsergebnissen zu starten. Dies geschieht,
wie in 11 beispielsweise
gezeigt, durch Schreiben des Befehls „0002" an einem spezifizierten Bereich in
den gemeinsamen Speicher. Der gleiche Befehl „0002" wird auch an einem spezifizierten Bereich
in den gemeinsamen Speicher der wartenden zweiten CPU-Einheit 13 durch
den I/F-ASIC 12e geschrieben.
-
Im Vorgang (2) geben die erste und
zweite innere Platine 14 und 15 eine Transferantwort
aus und setzen gleichzeitig Berechnungsergebnisdaten in den Datenbereich.
In Obigem sind die Berechnungsergebnisdaten Daten zur Angabe des
Fortschritts bei der Berechnung, bzw. wie weit die Ausführung des
Anwenderprogramms fortgeschritten ist, und können die Schrittnummer des
Anwenderprogramms umfassen, die definiert wurde, als die innere Platine
entworfen wurde. 11 zeigt,
dass nicht nur der Befehl „8002", sondern auch Berechnungsergebnisdaten
registriert werden.
-
Im Vorgang (3) kopiert, wenn die
Transferantwort von der ersten und zweiten inneren Platine 14 und 15 erhalten
wird, die aktive erste CPU-Einheit 12 die Berechnungsergebnisdaten
von der Warteseite in sich selbst und sendet die Berechnungsergebnisdaten
der aktiven Seiten an die Warteseite.
-
Im Vorgang (4) gibt die aktive erste
CPU-Einheit 12 einen Korrekturbefehl für das Starten eines Korrekturvorgangs
an die erste und zweite innere Platine 14 und 15 aus.
Dies geschieht, wie in 12 als
Beispiel gezeigt, indem die aktive erste CPU-Einheit 12 den
Befehl „0003" an einen spezifizierten
Bereich des gemeinsamen Bereichs schreibt. Dieser Befehl wird auch
an einem spezifizierten Bereich des Befehlsbereichs der wartenden
zweiten CPU-Einheit 13 durch den I/F-ASIC 12e geschrieben.
Dies versetzt die aktive erste CPU-Einheit 12 in die Lage,
den Korrekturbefehl an die erste und zweite innere Platine 14 und 15 auszugeben.
-
Im Vorgang (5) korrigieren die aktive
ersten innere Platine 14 und die wartende innere Platine 15 den
Zustand des Fortschritts bei der Berechnung auf der Grundlage der
Berechnungsergebnisse beider Platinen. Dies geschieht dadurch, dass
die langsamer rechnende Platine einen spezifizierten Vorgang ausführt, um
sich so an die Fortschrittsgeschwindigkeit der rascher rechnenden
Platine anzupassen. Betrachten wir ein Beispiel, wo die Berechnungsergebnisdaten
als Schrittnummern eines Anwenderprogramms ausgedrückt werden.
Wenn das Anwenderprogramm für
die ersten innere Platine 14 bis zur Schrittnummer N1 und
das Anwenderprogramm der zweiten inneren Platine 15 bis
zu einer Schrittnummer N2, die kleiner als N1 ist, ausgeführt worden
ist, wenn der Befehl, die Korrektur zu starten, empfangen wird,
führt die
langsamer rechnende zweite innere Platine 15 das Anwenderprogramm
bis zum Schritt N1 aus, um der ersten inneren Platine 14 gleichzukommen.
-
Im Vorgang (6) geben die aktive und
die wartende innere Platine 14 und 15 eine Berechnungsergebniskorrekturstartantwort
aus und jeweils zurück. In
dem in 12 gezeigten
Beispiel schreibt die schneller rechnende innere Platine die Antwort „8003" in ihren eigenen
Befehlsbereich, und die langsamer rechnende innere Platine schreibt
die Antwort „8003" in ihren eigenen
Befehlsbereich nach Abschluss der Korrektur.
-
Im Vorgang (7) werden die Berechnungsergebniskorrekturantworten
von der aktiven und der Warteseite empfangen, gibt die aktive erste CPU-Einheit 12 einen
Befehl („Berechnungsergebniswiedergabeerlaubnisbefehl") an die erste und zweite
innere Platine im aktiven und Wartezustand aus. Genauer erläutert, schreibt
die aktive erste CPU-Einheit 12 diesen Befehl an einen
spezifizierten Bereich des gemeinsamen Bereichs. Der so eingeschriebene
Befehl wird auch durch den I/F-ASIC 12e an einem spezifizierten
Bereich des gemeinsamen Bereichs auf der Warteseite geschrieben.
Dadurch wird die aktive erste CPU-Einheit 12 in die Lage versetzt,
einen Berechnungsergebniswiedergabeerlaubnisbefehl sowohl an die
erste als auch an die zweite innere Platine 14 und 15 zu
geben.
-
Im Vorgang (8) bewirken die erste
und zweite innere Platine, dass das Berechnungsergebnis mit Empfang
dieses Befehls wiedergegeben wird. Nach Abschluss dieses Vorgangs
wird eine Antwort („Berechnungsergebniswiedergabeerlaubnisantwort") zurückgegeben.
-
Zusammenfassend kommen, wenn ein
Korrekturbefehl von der ersten und zweiten inneren Platine ausgegeben
wird, und der Korrekturvorgang abgeschlossen ist, ihre Fortschreitzustände zu einer Übereinstimmung,
und das Ergebnis der Berechnung durch die inneren Platinen wird
im EA-Speicher in diesem Zustand gespeichert. 13–19 zeigen, wie sich Daten
in dem CPU-INNERE-Befehl-Antwortbereich vom Beginn des Berechnungsergebnistransfers im
Vorgang (1) bis zur Berechnungsergebniswiedergabeerlaubnis im Vorgang
(8), die oben beschrieben wurden, ändern. In den 13–19 ist die linke Seite die
aktive (AKT)Seite und die rechte Seite die Warte-(WARTE)Seite. Die
Bereiche, wo sich Daten ändern,
sind schraffiert gezeigt, und die Daten, die durch Transfer von
der aktiven Seite eingeschrieben sind, sind unterstrichen gezeigt.
-
Jeder der Vorgänge wird kurz erläutert. 13 zeigt den „Berechnungsergebnistransferstartvorgang", in dem die aktive
erste CPU-Einheit 12 den Befehl „0002", der den Berechnungsergebnistransferstart
angibt, in den CPU-INNERE-Befehl-Antwortbereich „+80" für
die Warteseite und den auf dem EA-Speicher 12e erstellten
CPU-INNERE-Befehl-Antwortbereich „+336" eingibt. Der gleiche Befehl („0002") eingeschrieben
in dem Bereich „+80" wird durch den Transfervorgang
auf den CPU-INNERE-Befehl-Antwortbereich „+80" der wartenden zweiten
CPU-Einheit 13 transferiert.
-
Die inneren Platinen geben mit Empfang
dieses Befehls „0002" die Antwort „8002" an den CPU-INNERE-Befehl-Antwortbereich
zurück
und speichern jeweils ihre eigenen Berechnungsergebnisdaten, wie
dies in 14 gezeigt ist.
Genauer erläutert,
schreibt die aktive erste innere Platine 14 die Antwort „8002" in den CPU-INNERE-Befehl-Antwortbereich „+336" und speichert ihre
eigenen Berechnungsergebnisse im nachfolgenden Bereich. Die wartende
zweite innere Platine 15 schreibt auch die Antwort „8002" in den CPU-INNERE-Befehl-Antwortbereich „+80" und speichert ihre
eigenen Berechnungsergebnisse im nachfolgenden Bereich.
-
Als Nächstes kopiert jede CPU-Einheit
die Berechnungsergebnisdaten der anderen, wie in 15 gezeigt. Genauer erläutert, erhält die erste CPU-Einheit 12 das
Berechnungsergebnis der wartenden zweiten inneren Platine 15,
speichert es an einem spezifizierten Bereich ihres eigenen CPU-INNERE-Befehl-Antwortbereichs und
transferiert das Berechnungsergebnis der aktiven ersten inneren
Platine 14 in einen spezifizierten Bereich des CPU-INNERE-Befehl-Antwortbereichs
des EA-Speichers 13e der zweiten CPU-Einheit 13.
-
In dem nachfolgenden „Berechnungsergebniskorrekturstartvorgang" gibt die aktive
erste CPU-Einheit 12 den Befehl „0003" zum Starten der Korrektur des Berechnungsergebnisses
in den CPU-INNERE-Befehl-Antwortbereich „+80", der für die Warteseite auf dem EA-Speicher 12d erstellt
ist, und den CPU-INNERE-Befehl-Antwortbereich „+336", der für die aktive
Seite auf dem EA-Speicher 12d erstellt ist, ein. Der gleiche
Befehl „0003", der bei „+80" geschrieben ist,
wird auch in den CPU-INNERE-Befehl-Antwortbereich „+80" der wartenden CPU-Einheit 13 durch
einen Transfervorgang geschrieben, wie dies in 16 gezeigt ist.
-
Mit Empfang des Berechnungsergebniskorrekturstartbefehls
von der CPU-Einheit beginnt jede innere Platine mit der Korrektur
des Berechnungsergebnisses auf der Grundlage der Berechnungsergebnisdaten
von beiden Seiten und gibt die Antwort „8003" zurück,
wenn der Vorgang abgeschlossen ist, wie dies in 17 gezeigt ist.
-
Wenn diese Antwort „8003" empfangen wird, gibt
die aktive erste CPU-Einheit 12 den Befehl „8004" (vorstehend „Berechnungsergebniswiedergabeerlaubnisbefehl") in den im CPU-INNERE-Befehl-Antwortbereich
(+80) für
die Warteseite und den CPU-INNER-Befehl-Antwortbereich
(+336) für
die aktive Seite, die auf dem EA-Speicher 12d erstellt sind,
ein. Der bei „+80" geschriebene Befehl „0004" wird auch bei dem
CPU-INNERE-Befehl-Antwortbereich
(+80) der wartenden zweiten CPU-Einheit 13 durch einen
Transfervorgang eingegeben, wie dies in 18 gezeigt ist.
-
Wenn diese Erlaubnis erhalten wird,
geben sowohl die erste als auch die zweite innere Platine 14 und 15 eine
Erlaubnisantwort „8004" zurück und geben
das Ergebnis der Berechnung an einem spezifizierten Bereich auf
dem EA-Speicher ein, wie dies in 19 gezeigt
ist.
-
Als Nächstes werden die zyklischen
Vorgänge
erläutert.
Der Beginn der zyklischen Vorgänge durch
die inneren Platinen in den Schritten ST15 und SDT35 der 3 wird durch Synchronisation
in Übereinstimmung
gebracht. Die tatsächliche
Verarbeitung wird individuell auf der aktiven und Warteseite ausgeführt, und
es erfolgt kein Austausch von zyklischen Daten. Unter Bezug auf 20 genauer erläutert, wird
der Befehl „0005" für den Start
der zyklischen Vorgänge
in den CPU-INNERE-Befehl-Antwortbereich
eingegeben. Der Befehl wird nicht direkt auf die Warteseite ausgegeben,
da er auf die Warteseite durch einen Transfervorgang übertragen
wird. Diese zyklischen Vorgänge
machen es möglich,
periodisch Daten zwischen den CPU-Einheiten und den inneren Platinen auszutauschen.
-
Als Nächstes werden die Ereignisvorgänge erläutert. Die
in den Schritten ST16 und ST36 der in 3 ausgeführten Ereignisvorgänge werden
folgendermaßen
ausgeführt.
Ereignisse von einer CPU-Einheit adressiert an eine innere Platine
werden durch die erste und zweite innere Platine 14 und 15 ausgeführt, wenn
die aktive CPU-Einheit einen Ereignisausführungsstartbefehl in den CPU-INNERE-Befehl-Antwortbereich
schreibt, um ihn so auf den CPU-INNERE-Befehl-Antwortbereich auf
der Warteseite übertragen
zu lassen. Eine Antwort von der Warteseite wird von den CPU-Einheiten
gelöscht. Wenn
die Ereignisvorgänge
ausgeführt
werden, wird es möglich,
Daten in einer nicht-periodischen Weise zwischen den CPU-Einheiten
und den inneren Platinen auszutauschen.
-
Von einer inneren Platine an eine
CPU-Einheit adressierte Ereignisse können eine Zeitscheibe über mehrere
Zyklen für
die Durchführung
in Anspruch nehmen. Aus diesem Grund wird der Abschluss eines Ereignisses über einen
Befehl mitgeteilt. Genauer erläutert
anhand eines Beispiels, wird der Befehl „0006" zur Information über den Start der Ausführung eines
Ereignisses, wie in 21 gezeigt, durch
die CPU-Einheit eingeschrieben, und die innere Platine, die ihn
erhält,
gibt die Antwort „8007" zurück. Die
Ausführung
endet, wenn der Befehl „0007" zur Information über das
Ende der Ausführung
durch die CPU-Einheit, wie in 22 gezeigt,
eingeschrieben wird, und die innere Platine, die ihn erhält, gibt die
Antwort „8007" zurück. Da diese
Befehle auf die Warteseite durch einen Transfervorgang übertragen werden,
werden sie nicht direkt ausgegeben. Ferner schreiben die CPU-Einheiten
den Befehl „0008" zur Information über das
Ende der Synchronisation in den Schritten ST6 und ST25 der 3 ein, und die inneren Platinen,
die sie erhalten, geben die Antwort „8008" in den Schritten ST17 und ST37 der 3 zurück.
-
Als Nächstes wird der vorgenannte „Verdopplungsinitialisierungs"-Vorgang erläutert. Wie oben
beschrieben, sind die Daten normalerweise die gleichen für die erste
und zweite innere Platine 14 und 15 in ihren synchronisierten
Operationen. Wenn ein Hilfsmittel (Tool) verwendet wird, beispielsweise um
von außen
die variablen Daten oder die Parameterdaten, die im RAM 14c der
aktiven ersten inneren Platine 14 gespeichert sind, zu
modifizieren, oder wenn ein Anwenderprogramm der aktiven ersten CPU-Einheit 12 oder
Daten auf dem EA-Speicher 12d (wie etwa Daten, die einer
E/A-Auffrischung zu unterwerfen sind und Systemeinstelldaten für die CPU-Einheit)
von außen
modifiziert werden, werden Daten zwischen der ersten und zweiten
inneren Platine 14 und 15 und auch zwischen der
ersten und zweiten CPU-Einheit 12 und 13 unterschiedlich,
da durch ein solches Hilfsmittel keine Änderung auf der zweiten CPU-Einheit 13 oder
der zweiten inneren Platine 15 im Wartezustand vorgenommen
wird.
-
Dies ist der Grund, warum ein Verdoppelungsinitialisierungsvorgang
(DPL INITIAL) ausgeführt
wird, um die Gleichheit von Daten zwischen den beiden inneren Platinen
durch Transferierung der variablen Daten, der Parameterdaten etc.
der er sten inneren Platine 14 auf die Seite der zweiten
inneren Platine und des Anwenderprogramms der ersten CPU-Einheit 12 auf
die zweite CPU-Einheit 13 aufrechtzuerhalten. Dieser Initialisierungsvorgang
wird, wie in 24 gezeigt,
ausgeführt
(Schritt ST8, ST18, ST27 und ST38), nachdem die inneren Dienstvorgänge (Schritte
ST5 und ST24) und die Ereignisvorgänge (Schritte ST16 und ST36)
ausgeführt
werden.
-
Die Verdoppelungsinitialisierungsvorgänge (Schritte
ST8, ST18, ST27 und ST38 der 24), nach
Ausführung
der Ereignisvorgänge,
werden ausführlicher
anhand von in 25 gezeigten
Vorgängen
(10)–(18)
beschrieben.
-
Im Vorgang (10) prüft die aktive
erste CPU-Einheit 12, ob die Anwenderprogramme und die Daten
auf dem EA-Speicher 12d von außen modifiziert worden sind,
und die erste innere Platine 14 prüft, ob die variablen Daten
und die Parameterdaten von außen
modifiziert worden sind.
-
Im Vorgang (11) fordert die erste
innere Platine 14 die erste CPU-Einheit 12 auf,
den Verdoppelungsinitialisierungsvorgang auszuführen, wenn beurteilt wird,
dass keine Änderung
von außen
stattgefunden hat. Diese Kommunikation erfolgt durch Setzen des
Verdoppelungsinitialisierungsanforderungskennzeichens, wie oben
unter Bezug auf 6 erläutert. Die
erste CPU-Einheit 12 überwacht
diese Kennzeichen (Vorgang (12)) oder das Vorhandensein einer solchen
Mitteilung von der ersten inneren Platine 14.
-
Wenn diese Anforderung mitgeteilt
wird, wird der Verdoppelungsinitialisierungsvorgang begonnen (Vorgang
(13)). Dieser Vorgang wird auch gestartet, wenn die erste CPU-Einheit 12 ihr
Anwenderprogramm oder Daten auf den EA-Speicher 12d modifiziert
von außen
aufweist. Wenn keine Änderung
vorgenommen worden ist, weder auf der ersten CPU-Einheit noch der
ersten in neren Platine 14, endet dieser Vorgang mit Ausführung des
Verdoppelungsinitialisierungsvorgangs.
-
Sobald der Verdoppelungsinitialisierungsvorgang
begonnen wird, versorgt die erste CPU-Einheit 12 die aktive
erste innere Platine 14 mit Information über den
für die
Transferierung von Daten zu verwendenden Bereich (Vorgang (14)).
Dies ist ein Bereich für
Daten, die zu transferieren sind, wenn der Verdoppelungsinitialisierungsvorgang
ausgeführt
wird, und wird so ausgewählt,
dass sowohl die erste CPU-Einheit 12 als auch die erste
innere Platine 14 Daten aus diesem Bereich auslesen und
in ihn einschreiben kann. Nachdem diese Mitteilung gemacht ist,
wartet die erste CPU-Einheit 12 auf eine Antwort von der ersten
inneren Platine 14.
-
Die erste innere Platine 14 teilt
der ersten CPU-Einheit 12 nicht nur die Startadresse für das Einschreiben
von Daten, sondern auf die Datengröße mit, und beginnt dann, die
Daten an der dieser Adressen entsprechenden Position zu schreiben
(Vorgang (15)). Wenn dies abgeschlossen ist, wird der ersten CPU-Einheit 12 mitgeteilt,
dass das Schreiben abgeschlossen ist.
-
Wenn diese Mitteilung empfangen wird,
informiert die erste CPU-Einheit 12 die zweite innere Platine 15 im
Wartezustand über
die erhaltene Startadresse und Datengröße und wartet auf einen Endbefehl
von der zweiten inneren Platine 15 (Vorgang (16)).
-
Auf der Grundlage dieser Mitteilung
von der ersten CPU-Einheit 12,
liest die zweite innere Platine im Wartezustand die auf der Seite
der ersten inneren Platine 14 modifizierten Daten aus (Vorgang
(17)). Nachdem alle diese Daten ausgelesen worden sind, wird das
Ende des Lesens von Daten der ersten aktiven CPU-Einheit 12 mitgeteilt.
Wenn diese Information von der zweiten inneren Platine 15 erkannt
wird, schließt
die er ste CPU-Einheit 12 den Verdoppelungsinitialisierungsvorgang
ab (Vorgang (18)).
-
Die Erläuterung des inneren Dienstvorgangs,
die oben unter Bezug auf 25 gegeben wurde,
bezieht sich nur auf den Transfer von variablen und Parameterdaten
von einer aktiven inneren Platine auf eine wartende innere Platine
im Verdoppelungsinitialisierungsvorgang. Ein Datentransfer von einer
aktiven CPU-Einheit auf eine wartende CPU-Einheit für einen
Verdoppelungsinitialisierungsvorgang kann dadurch ausgeführt werden,
dass die aktive CPU-Einheit das Anwenderprogramm auf ihrem Anwenderspeicher
in den Anwenderspeicher der wartenden CPU-Einheit schreibt.
-
Der oben erläuterte Vorgang (17) wird tatsächlich durch
Transferierung von Daten ausgeführt. Zwei
Methoden des Datentransfers können
vorgesehen sein, gespaltener und Großmengendatentransfer. Die Wahl
der Methode wird definiert, wenn die innere Platine entworfen wird.
-
Die Großmengendatentransfermethode
wird verwendet, wenn der Transfer innerhalb eines Zyklusses abgeschlossen
sein muss, weil die Ausführung
von Berechnungen gleichermaßen
auf der aktiven wie der Warteseite ausgeführt wird, falls die Methode
in einem Aufdoppelungssystem betrieben wird. Die variablen Daten
auf einer inneren Platine sind Beispiele für nach der Großmengentransfermethode zu übertragende
Daten.
-
Die Gespaltendatentransfermethode
ist für Situationen,
wo der Transfer keine Auswirkung auf die Ausführung von Berechnungen mit
der ersten und zweiten inneren Platine 14 und 15 hat,
so dass es kein Problem ist, wenn die Daten über mehrere Zyklen hinweg transferiert
werden. Parameterdaten auf einer inneren Platine sind Beispiele
für Daten,
die nach der Gespaltendatentransfermethode übertragen werden können.
-
Diese Datentransfermethoden werden über einen
CPU-INNERE-Befehl-Antwortbereich
bewirkt und üblicherweise
nach Abschluss der Zyklusoperationen, wie oben erläutert. Ein
Beispiel für
einen Datentransfervorgang nach einer Befehl-Antwortmethode unter
Verwendung eines gemeinsamen Speichers wird als nächstes unter
Bezug auf die 26–32 beschrieben.
-
Der Großmengendatentransfer wird durch eine
Routine, wie sie beispielsweise in den 26–32 gezeigt ist, ausgeführt. Als
Erstes wird ein Befehl „0100" für die Angabe
von Großmengendatentransfer
durch eine CPU-Einheit in einen spezifizierten Bereich eines Befehl-Antwortbereichs
geschrieben und ein für
den Transfer zu verwendender Transferdatenspeicherbereich spezifiziert.
In dem in 5 gezeigten
Beispiel gibt es zwei solche für
diesen Zweck erstellte Plätze.
Jeder von ihnen kann in dem oben unter Bezug auf 25 beschriebenen Vorgang (14) spezifiziert
werden.
-
Als Antwort speichert die innere
Platine die Startadresse (die entweder eine absolute Adresse oder
eine relative Adresse sein kann) sowie die Datengröße (z. B.
in Einheiten von Bites oder Wörtern) auf
dem gemeinsamen Speicher und gibt den gegenwärtigen Status, ob der Transfer
unabgeschlossen („4100") oder abgeschlossen
(„8100") ist, als Antwort (Vorgang
(15) der 25 zurück .
-
Wenn der Befehl „8100" empfangen wird, führt die aktive erste CPU-Einheit 12 den
Vorgang der Lieferung der von der ersten inneren Platine empfangenen
Daten (wie etwa Parameter- und
variable Daten) an die zweite innere Platine 15 im Wartezustand über die
zweite CPU-Einheit 13 im Wartezustand aus. In diesem Zeitpunkt
transferiert die erste CPU-Einheit 12 die Daten direkt,
ohne sie zu prüfen. Anders
ausgedrückt,
spezifiziert die aktive erste CPU-Einheit 12 den Speicherbereich
(1 oder 2), von wo der Transfer erfolgen soll,
und schreibt die Größe ein,
wie dies in 27 gezeigt
ist. Vom Adressaten wird daraufhin eine Antwort („8101") erhalten.
-
Die 28-32 zeigen ein Beispiel der
Datenbewegungen im Falle eines Großmengendatentransfers. In jeder
dieser Figuren sind Teile, wo Daten geändert worden sind, schraffiert
gezeigt.
-
Als Erstes gibt die aktive erste
CPU-Einheit einen Befehl „0100" zur Durchführung eines
Großmengendatentransfers
unter Verwendung des Transferbereichs 1 (0001) ein (28). Ansprechend darauf
schreibt die erste aktive innere Platine 14 Antwort „8100" ein und speichert
die Startadresse und Größe, wie
in 29 gezeigt. Gleichzeitig
werden die zu transferierenden. Daten in dem spezifizierten Bereich gespeichert.
Als nächstes
kopiert die aktive erste CPU-Einheit 12 die erhaltene Startadresse
und Größe in einen
spezifizierten Bereich, wie in 30 gezeigt
(Vorgang (16) der 25).
Als Ergebnis werden der Befehl „0101" und der ausgewählte Bereich (0001)
sowie die Startadresse und die Größe in einen spezifizierten
Bereich des gemeinsamen Speichers auf der Warteseite durch den I/F-ASIC 12e geschrieben.
Aktuelle Daten werden gleichzeitig ebenfalls transferiert (Vorgang
(17) der 25).
-
Wenn das in 30 gezeigte Kopieren abgeschlossen ist,
gibt die erste CPU-Einheit 12 den Befehl „0100" für die nächste Transferoperation
aus und spezifiziert einen anderen Bereich (0002) für die zu
transferierenden Daten, wie in 31 gezeigt. Durch
Spezifizieren eines anderen Bereichs auf diese Weise kann die Möglichkeit
des Überschreibens und
Löschens
von Daten verringert werden. Wenn dieser Befehl eingegeben wird,
gibt die zweite innere Platine 15 im Wartezustand die Großmengendatentransfer-(von
CPU an innere Platine)Antwort „8101" zurück, und
die aktive erste innere Platine 14 gibt die Groß mengendatentransfer-(von
innerer Platine an CPU)Antwort „8100" zurück,
wie dies in 32 gezeigt
ist.
-
Ein gespaltener Datentransfer andererseits wird
ausgeführt,
indem die Inhalte der Parameterdaten der aktiven inneren Platine über die
CPU-Einheit an die innere Platine im Wartezustand geliefert werden.
Dieser Vorgang kann durch einen Befehl-Antwortvorgang bewirkt werden.
-
Der vorgenannte Verdoppelungsinitialisierungsvorgang
kann nicht nur ausgeführt
werden, wenn eine Änderung
von außen,
beispielsweise mittels eines Hilfsmittels bewirkt worden ist, sondern auch,
wenn die Spannung eingeschaltet wird.
-
Aus der oben gegebenen Offenbarung
der Erfindung sollte klar sein, dass ein zuverlässiges aufgedoppeltes System
mit einer programmierbaren Steuerung dieser Erfindung, die zwei
CPU-Einheiten enthält,
an denen jeweils ein Spezialfunktionsmodul angebracht ist, ausgebildet
werden kann.