-
Verfahren zur prioritätsgesteuerten Unterbrechung einer Daten-
-
verarbeitungsanlage Bei der vorliegenden Erfindung handelt es sich
um ein Verfahren zur prioritätsgesteuerten Unterbrechung einer Datenverarbeitungsanlage.
-
Der Einsatz von Datenverarbeitungsanlagen in Handel, Industrie und
Wirtschaft setzt in vielen Fällen die Unterbrechbarkeit eines laufenden Programmes
voraus, um ein möglicherweise dringlicheres Programm kurzfristig aufzunehmen. Dies
ist immer dann notwendig, wenn eine Vielzahl von Aufgaben unterschiedlicher Dringlichkeit
zur Bearbeitung auf der Datenverarbeitungsanlage vorliegt. Insbesondere gilt dies
für Prozeßrechenarlagen. Zu unvorhersehbaren Zeitpunkten werden durch äußere Ereignisse
oder durch das gerade laufende Programm Verarbeitungsanforderungen
an
die Datenverarbeitungsanlagen gestellt. Je nachdem, ob nun diese Anforderungen eine
höhere Dringlichkeit, d. h. eine höhere Priorität oder eine niedrigere Dringlichkeit,
d. h. eine niedrigere Priorität, gegenüber dem gerade laufenden Programm aufweisen,
wird das Programm in der Datenverarbeitungsanlage unterbrochen oder nicht unterbrochen.
Die Qualität einer Prozeßrechenanlage wird nun durch die Reaktionsfähigkeit auf
solche Anforderungen bestimmt, d. h. von der Fähigkeit zu allen Zeitpunkten die
jeweils wichtigste Aufgabe zu behandeln und weniger dringliche zurückzustellen.
-
Es sind nun eine Vielzahl von Verfahren zur prioritätsgesteuerten
Programmunterbrechung von Datenverarbeitungsanlagen bekannt geworden. Neuere Anordnungen
weisen dabei häufig einen Aufbau auf, bei dem nur wenige Prioritätsebenen unterschiedlicher
Dringlichkeit vorhanden sind. Hierbei ist von besonderem Nachteil, daß die Prioritätsebene
höchster Priorität ohnehin dem Betriebssystem für die systemeigenen Alarme, d. h.
Fehlerzustände, fest zugewiesen ist. Solche Alarme werden u. a. bei Fehlern in der
Verarbeitungseinheit der Datenverarbeitungsanlage sowohl wie bei Fehlern an der
Peripherie ausgelöst. Damit verbleiben für die freie Zuordnung von Prioritäten nur
noch wenige Prioritätsebenen. Sie müssen zudem notwendigerweise aufgeteilt werden
auf die von der Peripherie eintreffenden Unterbrechungswünsche sowie Unterbrechungsanforderungen
der Anwenderprogramme. In aller Regel sind dabei die Unterbrechungsanforderungen
der Peripherie fest verdrahtet, wohingegen die Unterbrechungsanforderungen der Anwenderprogramme
auf die niedrigste Prioritätsebene gelegt werden.
-
Um eine größere Flexibilität in der Prioritätszuweisung bei den Anwendierprogrammen
und bei der Peripherie zu bekommen, ist in einem Fall eine Datenverarbeitungsanlage
bekannt geworden, bei der die Prioritätsebenen jeweils nochmals in zwei Ebenen für
bestimmte Aufgaben unterschiedlicher Priorität aufgeteilt worden sind (vergleiche
Siemens 330). Bei diesem Unterbrechungssystem kann ein Anwenderprogramm mit dem
Zustand 1 in der Prioritätsebene 2 durch ein Anwenderprogramm mit dem Zustand O
in der gleichen Ebene bei einer Programmlaufbesonderheit unterbrochen werden. Desgleichen
kann eine Alarmbehandlung mit dem Zustand 1 in der Prioritätsebene 1 von einer Alarmbehandlung
mit dem Zustand 0 ebenfalls bei einer Programmlaufbesonderheit unterbrochen werden.
Damit liegen also in jeder Prioritätsebene zwei Programmebenen vor, entsprechend
kann auch eine Fehlerbehandlung mit dem Zustand 1 in der Prioritätsebene 0 durch
eine Fehlerbehandlung mit dem Zustand 0 bei Programmlaufbesonderheiten ebenfalls
unterbrochen werden. In der Reihenfolge der Prioritäten ist somit der Prioritätsebene
0 mit der höchsten Priorität, die Fehlerbehandlung der Prioritätsebene 1, die Alarm
behandlung mit Schnellreaktion und der Prioritätsebene 2, d. h.
-
der Ebene mit der niedrigsten Priorität, die sogenannte Standardechtzeitverwaltung
mit den Anwenderprogrammen zugewiesen.
-
Bei einer solchen Anordnung ist es demnach nicht möglich, ein Anwenderprogramm
in der Prioritätsebene 0 oder 1 laufen zu lassen, obwohl vielleicht ein Anwenderprogramm
mit einer Dringlichkeit vorliegt, die höher ist als die der Prioritätsebene 1 oder
vielleicht der Prioritätsebene 0. Man kann sich hierzu eine Vielzahl von Datenverarabeitungsanlagen,
insbesondere von prozeßrechnergesteuerten Prozessensvorstellen, die eine außerordentliche
schnelle
Reaktion verlangen. Man denke z. B. an Kernkraftwerke, bei denen der Kernreaktor
überkritisch werden könnte, wenn nicht in kürzester Zeit durch den Prozeßrechner
eine Uberpriifung bestimmter physikalischer Zustände vorgenommen würde und eine
entsprechende Anweisung an die Reaktorsteuerung erfolgte. In einem solchen Fall
würde bei den bisherigen Datenverarbeitungsanlagen ein Fehler, z. B. eines Lochkartenlesers
oder Lochkartenstanzers, in der Peripherie mit höherer Priorität abgearbeitet werden,
d. h. erst nach der Fehlerbehandlung der Peripherie würde überhaupt auf den Unterbrechungswunsch
des Reaktors reagiert werden können. Es sind eine Vielzahl von anderen Fehlern in
der Datenverarbeitungsanlage und der Peripherie denkbar, die z. Z. noch mit einer
so hohen Priorität abgearbeitet werden, daß selbst eine Programmunterbrechungsanforderung
höchster Dringîichkeit seitens des Anwenders zunächst nicht beachtet wird. Zu diesen
Fehlern gehören u. a. auch Fehler, die während der Abarbeitung der Anwenderprogramme
erkannt werden. Dabei ist es relativ unverständlich, daß ein solch es Anwenderprogranm
einerseits zwar von einem Anwenderprogramm höherer Priorität unterbrochen werden
kann, aber im Moment eines erkarsten Fehlers nicht mehr unterbrechbar ist, weil
das dazu gestartete Fehlerprogramm auf einer Prioritätsebene läuft, die von keinem
der Anwenderprogramme mehr unterbrochen werden kann.
-
Der Erfindung liegt nun die Aufgabe zugrunde, unter irermeidung der
angeführten Nachteile ein 7erfahren zur prloritätsgesteuerten Unterbrechung einer
Datenverarteitungsan1age zu
entwickeln, das die Abarbeitung einer
Vielzahl von Aufgaben unterschiedlicher Priorität unter Berücksichtigung sämtlicher
in Betriebssystem und in den Anwenderprogrammen und bei der Peripherie auftretenden,
beliebig zuordenbaren Einzelprioritaten, erlaubt.
-
Die Aufgabe wird erfindungsgemäß dadurch gelöst, daß jeder durch eine
Unterbrechungsnummer bezeichneten Unterbrechungsanforderung der peripherer Einheiten,
der Anwenderprogramme und des Betriebs systems der Datenverarbeitungsanlage in einem
von vielen durch die Unterbrechungsnummer adressierbaren Prioritatsregister vom
Betriebssystem oder von den Anwenderprogrammen eine Prioritätsnummer programmierbar
frei zugeordnet ist und daß eine Prioritätssteuerung ausschließlich unter Verwendung
der den Programmebenen zugeordneten Prioritätsnummern erfolgt.
-
Erfindungsgemäß ist weiter vorgesehen, daß einem Prioritätsumschlüßler
di e die Unterbrechungsnummer einer Unterbrechungsanforderung entweder über einen
ersten Datenbus von der Verarbeitungseinheit oder durch interne Kodierung der Unterbrechungsleitungen
von der Peripherie zugeführt wird, demzufolge der Prioritätsumschlüßler die zugeordnete
Prioritätsnummer aus dem Prioritätsregister über einen zweiten Datenbus der Prioritätssteuerung
übermittelt.
-
Erfindungsgemäß ist weiter vorgesehen, daß die Prioritätssteuerung
und die Verarbeitungseinheit Zugriff zu einem Ebenenzustandsspeicher
haben,
in dem in je einem jeder Prioritätsnummer zugeordneten Ebenenregister der aktuelle
Zustand jeweils der der Prioritätsnummer entsprechenden Programmebene abgespeichert
ist.
-
Eine weitere Ausgestaltung der Erfindung sieht vor, daß die Prioritätssteuerung
über ein Prioritätslaufregister mit der darin gespeicherten Prioritätsnummer der
jeweils zur Zeit aktiven Programmebene verfügt und beim Empfang einer Prioritätsnummer
auf dem zweiten Datenbus diese Prioritätsnummer mit dem Inhalt des Prioritätslaufregisters
vergleicht und, soweit eine geringere oder gleiche Priorität gegenüber der gerade
laufenden Priorität erkannt wird, den Unterbrechungswunsch in Form des zweiten Zustandsbits
RS im zugeordneten Ebenenregister des Ebenenzustandsspeichers abspeichert, und daß
sie bei einer höheren Priorität der Prioritätsnummer zusätzlich eine Statuswechselanforderung
an eine Statuswechselsteuerung zur Unterbrechung des laufenden und zum Start eines
Programms mit der neuen Priorität abgibt.
-
Eine Ausgestaltung der Erfindung sieht vor, daß die Prioritåtssteuerung
nur dann eine Statuswechselanforderung ausgibt, wenn von der Verarbeitungseinheit
oder vom Anwendungsprogramm im Ebenenregister der neuen Prioritätsnummer das erste
Zustandsbit RB zur Kennzeichnung der Betriebsbereitschaft der zugeordneten Programmebene
gesetzt ist. Dadurch wird erreicht, daß durch die Abfrage eines Zustandsbits in
einem besonderen Speicherbereich sofort die Betriebsbereitschaft einer Programmebene
erkannt
werden kann. Dadurch wird erhebliche Zeit eingespart, da
die Programmebene gar nicht erst gestartet wird, wenn sie nicht betriebsbereit ist.
-
Weiter ist erfindungsgemäß vorgesehen, daß die Statuswechselsteuerung
gemeinsam mit der Verarbeitungseinheit der Datenverarbeitungsanlage Zugriff über
die Prioritätsnummer zu den jeder Programmebene einzeln zugeordneter, Speicherplätzen
eines Ebenenspeichers mit dem jeweils notwendigen programmspezifischen Start status,
Fortsetzungsstatus oder Alarmstatus der Maschinenregister der Verarbeitungseinheit
hat.
-
Darüberhinaus ist erfindungsgemäß noch vorgesehen, daß zur Abarbeitung
von allen Programmebenen gemeinsamen Alarmen die Statuswechselsteuerung gemeinsam
mit der Verarbeitungseinheit der Datenverarbeitungsanlage über eine Alarmnummer
Zugriff zu dem in einem Alarmspeicher abgespeicherten für jeden Alarm notwendigen
Alarmstartstatus der Maschinenregister der Verarbeitungseinheit hat und daß die
Alarme jeweils mit der Priorität der durch den jeweiligen Alarm unterbrochenen Programmebene
abgearbeitet werden, wobei eine entsprechende Statuswechselanforderung direkt von
der Verarbeitungseinheit an die Statuswechselsteuerung abgegeben wird.
-
Durch die Ablage des jeweils für die Maschinenregister der Verarbeitungseinheit
der Datenverarbeitungsanlagetnotwendigen Startinformationen bei allen Programmebenen
gemeinsamen, d. h. identischen Alarmen führt zu einer erheblichen Speicherersparnis.
Die
Abarbeitung der aus den jeweiligen Programmebenen hervorgehenden Alarme bei in den
Ebenen erkannten Fehlern mit der Priorität der unterbrochenen Programmebene erlaubt
die Unterbrechung des nun laufenden Alarmprogramms durch ein Anwenderprogramm in
einer Programmebene höherer Priorität.
-
Mit dem erfindungsgemäßen Verfahren werden gegenüber bekannten Anordnungen
erhebliche Vorteile erreicht. Es lassen sich leicht eine fast beliebige Anzahl von
Prioritätsebenen, z. B. 100, verwalten. Da zudem die Unterbrechungsanforderung dynamisch
zu den Prioritätsebenen frei wählbar zuordenbar sind, läßt sich eine optimale Verteilung
der Prioritäten gemäß der Dringlichkeit der Unterbrechungsanforderungen erreichen.
Hiermit wird gleichzeitig eine optimale Anpassung der gesamten Datenverarbeitungsanlage
an beliebige Probleme erreicht. Je nach Dringlichkeit können bei der Prioritätszuordnung
Programmebenen, aktiviert durch 2software, Hardware und Betriebssystem in unterschiedlicher
Reihenfolge, miteinander abwechseln. Insbesondere können auch nazhtrigliche Änderungen
der Anlage sowie der Aufgabenstellung besonders leicht aufgenommen werden. Durch
die dynamische Zuordnung der Prioritäten brauchen weder die Programme noch die Hardware
der Datenverarbeitungsanlage bei Änderungen verändert zu werden. Dadurch läßt sich
auch nachträglich immer wieder eine optimale Prioritätsverteilung und damit eine
optimale Reaktionsfähigkeit einer Datenverarbeitungsanlage, insbesondere einer Prozeßrechenanlage
erreichen. Das Verfahren läßt Mich zudem besonders leicht auf einer Vielzahl von
Datenverarbeitungsanlagen mittels eines Mikroprogramms durchführen.
-
Nachfolgend wird ein Beispiel des erfindungsgemäßen Verfahrens anhand
der Zeichnungen erläutert.
-
Fig. 1 zeigt eine beispielsweise Datenverarbeitungsanlage nach dem
erfindungsgemäßen Verfahren.
-
Fig. 2 zeigt den Ebenenzustandsspeicher mit den Ebenenregistern zur
Kennzeichnung des Zustandes einer jeden Programmebene.
-
Fig. 3 zeigt den Aufbau einer Statuswechselanforderung an die Statuswechselsteuerung.
-
In der Fig. 1 ist eine auf die wesentliche Teile einer Datenverarbeitungsanlage
beschränkte Anordnung zur priöritätsgesteuerten Unterbrechung von Programmebenen
in der Verarbeitungseinheit 4 dargestellt. Die zentrale Verarbeitungseinheit 4 auf
weist dabei einen Maschinenregistersatz 1i, dessen Register u. a.
-
als Arbeitsregister den jeweils aktuellen Zustand der gerade laufenden
Programmebene enthalten. Wird nun von der Verarbeitungseinheit 4, d. h. also von
dem dort laufenden Programm bzw.
-
dem Betriebssystem eine Programmunterbrechung durch Befehl zum Start
einer anderen Programmebene gewünscht, so wird von der Verarbeitungseinheit eine
Unterbrechungsnummer UNR über den Datenbus B1 an den Prioritätsumschlüßler 1 übersandt.
Eine weitere Möglichkeit, eine Unterbrechungsnummer UNR zu erhalten, besteht darin,
daß ein Unterbrechungswunsch von der r Peripherie auf den Unterbrechungsleitungen
IR am Prioritätsumschlüßler 1 anliegt. Dabei wird die Unterbrechungsnummer UNR im
Prioritätsumschlüßler
aus den anliegenden Unterbrechungsleitungen
durch Dekodierung ermittelt.
-
Der Prioritätsumschlüßler 1 adressiert nun mit der Unterbrechungsnummer
UNR eines der Prioritätsregister PR des Prioritätsregisterspeichers 5. Im Prioritätsregisterspeicher
5 wurde dazu vorher bei Inbetriebnahme der Datenverarbeitungsanlage von der Verarbeitungseinheit
über einen Sonderbefehl jeder Unterbrechungsnummer UNR in den Prioritätsregistern
PR eine bestimmte Prioritätsnummer zugeordnet. Durch diese freie Zuordnung der Prioritätsnummern,
d. h. also der Prioritäten, ist es demnach auch möglich, verschiedenen Unterbrechungsnummern
u. U. die gleiche Priorität, d. h. die gleiche Prioritätsnummer PNR zuzuweisen.
Auch während des Laufs der Datenverarbeitungsanlage können über den besagten Befehl
jederzeit Prioritäten in den Prioritätsregistern geändert werden. Dadurch ist es
z. B. möglich, bei einer Prozeßrechenanlage bestimmte Programme von Teilprozessen,
die zur Zeit gerade nicht laufen, in ihrer Priorität zu ändern ohne die Anlage anzuhalten.
Die so ermittelte Prioritätsnummer PNR aus dem Prioritätsregisterspeicher 5 wird
nun von dem Prioritätsumschlüßler 1 auf den Datenbus B2 zur Ubersendung an die Prioritätssteuerung
2 abgesetzt. In den Fällen, in denen der Verarbeitungseinheit 4 auf diese Weise
die Prioritätsnummer PNR bereits bekannt ist, kann dabei vorgesehen werden, daß
von der Verarbeitungseinheit 4 direkt die Prioritätsnummer PNR über den Datenbus
B1 an den Prioritätsumschlüßler 1 zur We it erle itung an den Datenbus B2 übermittelt
wird.
-
In der Prioritätssteuerung 2 ist in einem ersten Register 1o die laufende
Priorität abgespeichert, d. h. die Priorität der z. Z. in der Verarbeitungseinheit
4 laufenden Programmebene.
-
In einem weiteren Register 11 wird nun von dem Datenbus B2 tlie neue
Prioritätsnummer PNR übernommen und abgespeichert.
-
Zunächst prüft nun die Prioritätssteuerung 2, inwieweit die in dem
Register 11 gespeicherte neue Prioritätsnummer PNR eine Programmebene anspricht,
die überhaupt startfähig ist.
-
Hierzu hat die Prioritätssteuerung 2 gemeinsam mit der Verarbeitungseinheit
4 über den Datenbus B1 Zugriff zu einem Ebenenzustandaspeicher 6 mit den jeder Prioritätsnummer
PNR zugeordneten Ebenenregistern 13.
-
In Fig. 2 ist der Ebenenzustandsspeicher 6 mit den Ebenenregistern
ER1 bis ERn dargestellt. Jedes Ebenenregister, das durch genau eine Prioritätsnummer
PNR adressiert werden kann, weist dabei mindestens 4 Zustandsbits auf, und zwar
ein erstes Zustandsbit RB zur Kennzeichnung der Betriebsbereitschaft der Programmebene,
ein zweites Zustandsbit RS zur Kennzeichnung eines Startauftrages für die Ebene,
eines dritten Zustandsbits RU zur Kennzeichnung, daß die Ebene unterbrochen wurde
und ein viertes Zustandsbit RA zur Kennzeichnung eines unterbrochenen Alarmes in
dieser Ebene. Das erste Zustandsbit RB wird dabei insbesondere von der Verarbeitungseinheit
4 gesetzt, wenn entweder noch kein Programm an die Programmebene angeschlossen ist
oder durch die Verarbeitungseinheit erkannt wurde, daß notwendige Betriebsmittel
für die entsprechende Programmebene fehlen, z. B. eine Seite aus dem virtuellen
Adreßraum
und die Programmebene daher z. Z. nicht startfähig ist. DJs zweite Zustandsbit RS
weist daraufhin, daß für die Programmebene ein Startauftrag vorliegt. Der aufgerufenen
Programmebene muß bei einem gesetzten Zustandsbit RS bei Durchführung des Startauftrages
der Anfangsstatus der Maschinenregister 12 der Verarbeitungseinheit 4 zur Verfügung
gestellt werden.
-
Ist dagegen das dritte Zustandsbit RU gesetzt, wurde die zugeordnete
Programmebene bereits unterbrochen. Demzufolge muß bei Viederaufnahme der Programmebene
der bei der Unterbrechung vorliegende Inhalt der Maschinenregister 12 der Verarbeitungseinheit
wieder hergestellt werden.
-
Mit dem vierten Zustandsbit RA wird auf die Tatsache hingewiesen,
daß ein Alarm einerseits diese Programmebene unterbrochen hat, der aber auf dieser
Programmebenenprioritit laufende Alarm seinerseits wiederum unterbrochen wurde.
Demzufolge muß bei Wiederaufnahme dieser Ebene also zunächst der Alarm abgearbeitet
werden. Die Maschinenregister 12 der Verarbeitungseinheit 4 müssen dementsprechend
wieder mit dem Inhalt versehen werden, den sie zum Zeitpunkt der Unterbrechung des
A'armes gehabt haben.
-
Zur Ubervachung der Antwort fähigkeit der Datenverarbeitungsanlage
empfiehlt es sich, in den Ebenenregistern 3 des Ebenenzustandsspeichers 6 zusätzlich
ein Zählerbitfeld (ZF) vorzusehen, in dem alle Startwünsche für die zugeordnete
Programmebene bis zu deren Aktivierung gezählt werden. Beim Start
der
Programmebene kann der Inhalt des Zählerbitfeldes (ZF) von der Verarbeitungseinheit
4 abgefragt werden. Damit läßt sich z. B. überwachen, ob einzelne Programmebenen
gegenüber anderen Programmebenen in unzulässiger Weise benachteiligt werden.
-
Erkennt nun die Prioritätssteuerung 2 in dem der neuen Prioritätsnummer
PNR aus dem Register 11 zugeordneten Ebenenregister 13, daß die zugeordnete Programmebene
durch das Bit RB nicht gesperrt ist, dann vergleicht sie zunächst die neue Prioritätsnummer
PNR in dem Register 11 mit der Prioritätsnummer der laufenden Priorität im Register
lo. Stellt sie dabei fest, daß die neue Priorität geringer oder gleich ist als die
alte Prioritätsnummer, vermerkt sie den Startwunsch der zugeordneten Programmebene
durch Setzen des zweiten Zustandsbits RS im zugeordneten Ebenenregister des Ebenenzustandsspeichers.
-
Programmunterbrechung Weist dagegen die von der Prioritätssteuerung
2 im Register 11 enthaltende neue Prioritätsnummer PNR auf eine höhere Priorität
als die gerade laufende Priorität hin, so wird zwar ebenfalls im zugeordneten Ebenenregister
13 der Programmebene im Ebenenzustandsspeicher 6 das Bit RS zur Kennzeichnung des
Startwunsches gesetzt, gleichzeitig aber eine Statuswechselanforderung an die Statuswechselsteuerung
3 abgesetzt. Die Stazuswechselanforderung SWA weist einen Aufbau nach Fig. 3 auf.
Sie enthält 4 Bitfelder, ein erstes Bitfeld ENRL mit der jeweiligen Prioritätsnummer
der
gerade laufenden Programmebene, ein zweites Bitfeld SAS zur Steuerung der Ablage
des Status der laufenden Programmebene durch die Statuswechselsteuerung 3, ein drittes
Bitfeld ENRN mit der Prioritätsnummer der neuen Programmebene und ein viertes Bit
feld SNS zur Steuerung der Übergabe des Status bzw. des Startstatus der neuen Programmebene
an die Verarbeitungseinheit 4 ebenfalls durch die Statuswechselsteuerung 3.
-
Nach dem Erhalt einer solchen Statuswechselanforderung SWA setzt die
Statuswechselsteuerung 3 einen Befehlsstop BS an die Verarbeitungseinheit 4 ab.
Das in der Verarbeitungseinheit 4 laufende Programm wird daraufhin entweder nach
dem nächsten Befehl oder an einer zulässigen Stelle unterbrochen und eine Befehlsstoprückmeldung
BSR an die Statuswechselsteuerung 3 übermittelt. Anhand der Daten aus der Statuswechselanforderung
ist die Statuswechselsteuerung 3 nun in der Lage, auf einendurch die Prioritätsnummer
zu den jeder Programmebene einzeln zugeordneten Speicherplätzen eines Ebenenspeichers
8 zuzugreifen. Im Ebenenspeicher 8 sind entsprechend zu den Maschinenregistern 12
der Verarbeitungseinheit 4 für jede Programmebene eine feste Anzahl von Speicherplätzen
vorgesehen, in denen der jeweilige Startstatus SST, Fortsetzungsstatus FST und Alarmstatus
AST der Maschinenregister 12 der Verarbeitungseinheit 4 abgelegt werden können.
Insbesondere der Start status SST der Maschinenregister 12 wurde dabei zuvor beim
Anschluß eines Programmes an die Programmebene über Sonderbefehle von der Verarbeitungseinheit
4 für jede Programmebene im Ebenenspeicher 8 abgelegt. Erst nach dem Anschluß eines
Programmes
an eine Programmebene wird das Zustandsbit RB für die
Kennzeichnung der Betriebsbereitschaft im zugeordneten Ebenenregister 13 des Ebenenzustandsspeichers
6 gesetzt. Die Statuswechselsteuerung 3 tauscht nun nach dem Erhalt der Befehlsstoprückmeldung
BSR von der Verarbeitungseinheit 4 den Inhalt der Maschinenregister 12 gegen den
notwendigen neuen Inhalt der Maschinenregister zum Start oder zur Fortsetzung des
Programms mit der neuen Priorität aus. Entsprechend zu den Anweisungen in der Statuswechselanforderung
legt sie den der unterbrochenen Programmebene zugeordneten Inhalt der Maschinenregister
12 im zugeordneten Speicherbereich FST des Ebenenspeichers 8 ab und holt aus dem
der neuen Prioritätsnummer zugeordneten Speicherbereich SST des Ebenenspeichers
8 den notwendigen Inhalt der Maschinenregister. Sind die Maschinenregister 12 für
den neuen Startwunsch gefüllt, setzt die Statuswechselsteuerung 3 über den Bus B2
einen Startbefehl an die Verarbeitungseinheit 4 ab und startet damit die neue Programmebene.
Sodann wird von der Statuswechselsteuerung 3 eine Statuswechselrückmeldung SWR,
die im wesentlichen den gleichen Aufbau aufweist wie die Statuswechselanforderung,
an die Prioritätssteuerung 2 abgesetzt.
-
Die Prioritätssteuerung 2 setzt daraufhin entsprechend zu den Informationen
aus der Statuswechselrückmeldung SWR die laufende Priorität in das dafür vorgesehene
Register lo, löscht den Inhalt des Registers 11, das jeweils für die ffeue Prioritätsnummer
vorgesehen ist, löscht das Bit RS der nun gestarteten Programmebene im zugeordneten
Ebenenregister 13 des
Ebenenzustandsspeichers 6 und setzt das Zustandsbit
RU zur Kennzeichnungs der Unterbrechung der alten Programmebene in dessen zugeordneten
Ebenenregister.
-
Bei Beendigung eines z. Z. laufenden Programmes in der Bearbeitungseinheit
4 wird von der Verarbeitungseinheit ein Endebefehl an die Prioritätssteuerung 2
abgesetzt, demzufolge im Ebenenzustandsspeicher 6 das einen Auftrag enthaltende
Ebenenregister mit der höchsten Priorität ermittelt wird. Als Auftrag kann entweder
ein durch das Zustandsbit RU gekennzeichneter Fortsetzungswunsch eines unterbrochenen
Programms oder ein durch das Zustandsbit RS gekennzeichneter Startwunsch vorliegen.
Sollten beide Zustandsbits RU und RS für eine Programmebene gesetzt sein, wird zunächst
der Fortsetzungswunsch bearbeitet. Daraufhin wird eine Statuswechselanforderung
SWA an die Statuswechselsteuerung 3 zur Einstellung des Inhalts der Maschinenregister
12 der Verarbeitungseinheit 4 eingeleitet. Der Inhalt des Bitfeldes SNS in der Statuswechselanforderung
SWA wird durch die Prioritätssteuerung 2 nach Maßgabe des Inhalts des Ebenenregisters
13 des Ebenzustandsspeichers 6 bestimmt. Der weitere Ablauf erfolgt wie bereits
oben beschrieben, jedoch erfolgt in Abhängigkeit vom Bitfeld SAS der StatuswechselanDordemng
SWA keine Ablage eines Fortsetzungsstatus. Ob es sich dabei um den Wiederstart eines
bereits unterbrochenen Programmes oder um den Neustart eines Programmes handelt,
kann wiederum aus der Statuswechselanforderung SWA nach Fig. 3 entnommen werden.
Aus dem Bitfeld SNS gehtwdabei hervor, ob der Startstatus für ein neu zu start endes
Programm oder ob der Fortsetzungsstatus FST für ein bereits unterbrochenes Programm
aus dem Ebenenspeicher 8 entnommen und an die Maschinenregister
12
übergeben werden muß.
-
itlarmunterbrechung Alarme, wie z. B. Spannungsausfall oder Paritätsfehler
im Hauptspeicher, Ausschalten der Datenverarbeitungsanlage oder Rückmeldefehler
vom Speicher werden als Systemalarme auf besonders hoher Priorität abgearbeitet.
Grundsätzlich werden die Systemalarme genauso wie jede andere Unterbrechungsanforderung
behandelt, nur mit dem Unterschied, daß ihnen eine geeignet hohe Priorität, d. h.
eine besonders kleine Prioritätsnummer PNR zugewiesen wird.
-
Dem>gegenüber gibt es aber eine Vielzahl von ebenenspezifischen
Alarmen, die sich aus dem Programmablauf heraus ergeben. Dazu gehören etwa Aufrufe
an das Betriebssystem durch Befehl oder arithmetische Alarme, d. h. daß ein Fehler
von der arithmetischen Einheit erkannt wurde, weiter Alarme, die einen nicht dekodierbaren
Befehlsoperationskode anzeigen oder Alarme bei Adressierungsfehlern. Solche ebenenspezifischen
Alarme sind für sämtliche Programmebenen identisch. Darüberhinaus empfiehlt es sich>
solche Alarme auf der Ebene des durch den Alarm zu unterbrechenden Programms abzuarbeiten,
um prioritätshöheren Programmebenen die Möglichkeit einer Unterbrechung auch des
Alarmes zu geben. Die Verarbeitungseinheit 4 hat gemeinsam mit der Statuswechselsteuerung
3 Zugriff zu einem Alarmspeicher 7, in dem der jeweilige Startstatus für einen bestimmten
Alarm in Abhängigkeit von dessen Alarmnummer in einem zugeordneten Speicherbereich
abgespeichert
ist. Der Startstatus für die Alarme wird bei der
Inbetriebnahme durch Verarbeitungseinheit 4 im Alarmspeicher AS angelegt.
-
Wird von der Verarbeitungseinheit 4 ein ebenenspezifischer Alarm erkannt,
so wird die Alarmnummer über den Bus B1 der Prioritätssteuerung 2 übergeben. Es
wird eine Statuswechselanforderung an die Statuswechselsteuerung 3 abgegeben, aus
der die Statuswechselsteuerung entnehmen kann, daß ein durch die Alarmnummer gekennzeichneter
Alarmstart der Verarbeitungseinheit 4, d. h. also eine Unterbrechung des laufenden
Programmes, gewünscht wird. Die Programmunterbrechung der Verarbeitungseinheit 4
erfolgt im wesentlichen, wie bereits oben beschrieben, nur mit dem Unterschied,
daß nach Ablage des Fortsetzungsstatus FST der Maschinenregister 12 der Verarbeitungseinheit
4 im Ebenenspeicher 8 der neue Status aus dem Alarmspeicher 7 entsprechend zur Alarmnummer
entnommen wird. Die Prioritätssteuerung 2 setzt nun im Ebenenzustands speicher 6
in den der laufenden Ebene zugeordneten Ebenenregister das Bit RU zur Kennzeichnung
einer Unterbrechung dieser Programmebene. Weiterhin wird im Register 10 der Prioritätssteuerung
2 ein zusätzliches Bit AK zur Kennzeichnung eines laufenden Alarmprogramms auf der
gleichen Programmebene gesetzt.
-
Anschließend wird die Arbeit durch die Verarbeitungseinheit mit dem
Programm des Alarms fortgesetzt. Bei einem nachfolgenden Unterbrechungswunsch mit
entsprechend höherer Priorität als der mit dem Alarm beaufschlagten Programmebene,
wird der Status der Maschinenregister 12 der Verarbeitungseinheit 4 inrfür die Alarme
vorgesehenen Speicherplätzen AST für jede Programmebene im Ebenenspeicher 8 abgelegt.
Weiterhin wird in zugeordneten Ebenenregister
13 des Ebenenzustandsspeichers
6 das Zustaq*sbit RA zur Kennzeichnung eines unterbrochenen Alarmprogrammes auf
dieser Programmebene gesetzt. Dadurch wird es möglich, beim Wiederstart der Programmebene
infolge des gesetzten Zustandsbits RA.im Ebenenregister 13 des Ebenenspeichers 6
ein unterbrochenes Alarm programm zu erkennen und den Alarm-Fortsetzungsstatus AST
der - *f Maschinenregister 12 aus dem Ebenenspeicher 8 über die zugeordnete Prioritätsnummer
PNR aufzunehmen. Anschließend wird das zugeordnete Zustandsbit RA im Ebenenregister
13 durch die Prioritätssteuerung 2 gelöscht und die Prioritätsnummer PNR mit dem
Bit AK zur Kennzeichnung eines laufenden Alarmprogrammes im Register 1o erneut abgelegt.
Dadurch wird erreicht, daß die ebenenspezifischen Alarme auf der gleichen Priorität,
d. h. mit der gleichen Prioritätsnummer PNR abgearbeitet werden, wie das Programm,
in dem dieser Alarm entstanden ist. Dadurch ergibt sich z. B. die Möglich1eit, daß
Anwenderprogramme höherer Dringlichkeit diese Programmebenen auch bei bestehendem
Alarm unterbrechen könnens Das Ende des Alarmprogramms wird durch einen speziellen
Befehl von der Verarbeitungseinheit erkannt und der Prioritätssteuerung 2 über den
Bus B1 mitgeteilt. Daraufhin wird von der Prioritätsteuerung 2 das Bit AK im Register
10 ebenfalls gelöscht. Der weitere Ablauf erfolgt wie beim Erreichen eines o. a.
beliebigen Programmendes in einer Programmebene.
-
Verfagrensausführung Die in Fig. 1 dargestellte Anordnung in dem erfindungsgemäßen
Verfahren kann sowohl hardwaremäßig als auch firmwaremäßig oder
reis
softwaremäßig ausgeführt werden. Es bietet sich z. B. an, die verschiedenen Speicger
mit dem Hauptspeicher zusammenzufe sen. Demensprechend könnten also der Prioritätsregisterspeicher
5 der Ebenenzustandsspeicher 6, der Alarmspeicher 7 und der Ebenenspeicher 8 im
Hauptspeicher angelegt erden. Der Prioritätsumschlüßler 1, die Prioritätssteuerung
2 sowie die Statuswechselsteuerung 3 könnten dagegen entweder durch ein Mikroprogramm
oder durch einzelne Prozessoren ausgeführt werden. Besonders bei der rein softwäremäßigen
Lösung, bei der di gesamte anfallende Steuerung über ein Mitkproprogrammen durchgeführt
wird, und sämtliche Speicher im Hauptspeicher angelegt sind, ergibt sich eine außerordentlich
preisweite L@@ung zur Ausführung des erfindungsgemäßen Verfahrens.