-
"Programmsteuereinheit"
-
Die Erfindung betrifft eine Programmsteuereinheit zum Steuern einer
elektromechanischen Anordnung, mit einem Mikroprogramm speicher, der mehrere Befehlsfolgen
aus je einer Anzahl Befehlen enthält, die im wesentlichen nacheinander durchlaufen
werden, wobei zu Beginn jeder Befehlsfolge eine dieser individuell zugeordnete Prüfinformation
erzeugt und während des Ablaufs der Befehlsfolge wiederholt geprüft wird.
-
Eine derartige Programmsteuereinheit ist bekannt aus der DE-AS 24
57 275. Darin ist die Programmsteuereinheit Teil einer Datenverarbeitungsanlage
und dient zum Durchführen bestimmter Operationen, die in Form von Operationskodes
zugeführt werden. der jeweils ein bestimmtes Mikroprogramm aufruft.
-
Die Prüfinformation wird dabei aus dem Operationskode abgeleitet,
und aus Jedem ausgelesenen Mikrobefehlswort wird eine Kodegruppe gewonnen, die mit
der Prüfinformation verglichen wird. Bei Nichtübereinstimmung, die infolge eines
fehlerhaften Programmsprungs in ein anderes Mikroprogramm beim Ausführen eines Mikroprogrammes
auftreten kann und beispielsweise durch ein Störsignal ausgelöst sein kann, wird
ein Fehlersignal erzeugt.
-
Diese bekannte Anordnung hat jedoch einige wesentliche Nachteile.
-
Programmsteuereinheiten werden zunehmend nicht nur als Teil einer
Datenverarbeitungsanlage,
sondern auch zum Steuern der verschiedensten elektrischen Anordnungen benutzt. Dazu
gehören insbesondere auch elektromechanische Anordnungen. Die Aufrufe der Befehlsfolgen
werden dabei häufig durch einzelne Signale anstatt durch Operationskodes gesteuert,
und die Erzeugung einer Prüfinformation aus solchen Signalen erfordert zusätzlichen
Aufwand. Ein wesentlicherer Nachteil ist Jedoch noch, daß zum Bilden eines einheitlichen
Kodewortes aus allen Mikrobefehlswörtern eines Mikroprogrammes zusätzliche Bits
in Jedem Mikrobefehlswort vorhanden sein müssen, d.h. sie benötigen eine erhebliche
Redundanz, die einen größeren und somit teureren Mikroprogrammspeicher erfordert.
-
Aufgabe der Erfindung ist es, eine Programmsteuereinheit anzugeben,
bei der zur Prüfung der korrekten Ausführung der Mikroprogramme nur wenig zusätzlicher
Speicherbedarf erforderlich ist und die sich für möglichst viele verschiedene Anwendungsfälle
gut eignet. Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß am Anfang Jeder
Befehlsfolge ein Speicherbefehl vorgesehen ist, der die Prüfinformation in einen
Speicher einschreibt, daß während des Ablaufes-Jeder Befehlsfolge nur vor bzw. bei
Ausführung von Aktivierungsbefehlen zur wesentlichen Veränderung des Zustandes der
von der Programmsteuereinheit gesteuerten
Anordnung die Prüfinformation
geprüft wird, und daß jede Befehlsfolge mindestens am Schluß einen Befehl enthält,
der die Prüfinformation definiert verändert.
-
Dadurch können die Befehle in gleicher Weise aufgebaut sein wie bei
einer Programmsteuereinheit ohne Prüfmöglichkeit, d.h. mit geringstmöglicher Länge,
und es werden nur einige wenige zusätzliche Befehle für die Prüfung erforderlich,
da der weitaus größe Teil der Befehle einer Befehlsfolge nicht eine wesentliche
Veränderung des Zustandes der gesteuerten Anordnung auslöst, sondern z.B. Bedingungsabfragen
oder Veränderungen von Registerinhalten, wobei zu Beginn der einzelnen Befehlsfolgtn
von einem definierten Anfangszustand ausgegangen bzw. dieser zunächst hergestellt
wird, d.h. die meisten durch Befehle ausgelösten Änderungen sind reversibel. Nur
Befehle, die z.B. Daten zerstören oder eine Aktivierung eines elektromechanischen
Elementes auslösen, werden erst nach Prüfung der Prüfinformation ausgeführt.
-
Das Sperren der Ausführung eines Befehles zum Auslösen einer wesentlichen
Veränderung kann beispielsweise dadurch erfolgen, daß solche wesentlichen Veränderungen
wie Änderung von Daten oder Aktivierung eines elektromechanischen Elementes
über
UND-Glieder ausgelöst werden, die nur bei richtig gespeicherter Prüfinformation
geöffnet sind. Eine andere Möglichkeit ist gemäß einer Ausgestaltung der Erfindung
dadurch gekennzeichnet, daß Jede Befehlsfolge vor jedem Aktivierungsbe fehl einen
Abfragebefehl enthält, der die vorhandene Prüfinformation mit einer vorgegebenen
Information vergleicht und nur bei Gleichheit den Aktivierungsbefehl aufruft und
ausführt und bei Ungleichheit einen Sprung auf das Ende der Befehlsfolge auslöst.
-
Bei der Ausführung einer Befehlsfolge können insbesondere durch Störsignale
infolge fehlerhafter Weiterzählung der Adressiereinrichtung auch Sprünge innerhalb
derselben Befehlsfolge auftreten, die schwerwiegende Störungen zur Folge haben können.
Um diesen Fall, der bei der eingangs beschriebenen bekannten Anordnung überhaupt
nicht berücksichtigt ist, dennoch zu erfassen, ist es nach einer weiteren Ausgestaltung
der Erfindung zweckmäßig, daß auch innerhalb Jeder Befehlsfolge Befehle enthalten
sind, die die vorhandene Prüfinformation jeweils in festgelegter Weise zu einer
neuen Information verändern, und daß ein Aktivierungsbefehl nur bei vorhandener
zuletzt richtig erhaltener Prüfinformation ausgeführt wird.
-
Solche Veränderungsbefehle können in den Befehlsfolgen in regelmäßigen
Abständen vorgesehen sein, jedoch ist es auch
zweckmäßig, mindestens
nach jedem Aktivierungsbefehl einen solchen Befehl zur Veränderung der Prüfinformation
folgen zu lassen. Dabei können dann nur Programmsprünge innerhalb eines entsprechend
kleinen Abschnittes einer Befehlsfolge nicht erfaßt werden, die jedoch sehr unwahrscheinlich
sind, während alle anderen Adressierungsfehler erkannt werden können.
-
Auf diese Weise entsteht eine gewisse Einteilung der Befehlsfolge
in einzelne Abschnitte.
-
Eine solche Unterteilung in Abschnitte kann auf verschiedene Weise
erfolgen. Zweckmäßig ist es, daß Jede Befehlsfolge in Blöcke bzw. Moduln so eingeteilt
ist, daß nur am Ende eines Moduls ein Programmsprung nur zu dem Anfang eines anderen
Moduls erfolgt, und daß eine Veränderung der Prüfinformation mindestens am Ende
jeweils eines Moduls erfolgt. Programmschleifen laufen dann Jeweils innerhalb eines
Moduls ab. Bei der Veränderung der Prüfinformation Jeweils am Ende eines Moduls
kann bei dem folgenden Modul jeweils geprüft werden, ob der Ubergang zu diesem Modul
korrekt erfolgt ist. Dafür ist es zweckmäßig, daß Jeder Modul außer der erste Modul
einer Befehlsfolge am Anfang einen oder mehrere Abfragebefehle zum Vergleich der
vorhandenen Prüfinformation mit einer oder mehreren vorgegebenen Informationen enthält.
Dadurch können dann alle Sprünge bzw. Ubergänge von einem Modul zum nächsten,
auch
wenn dies der in der Adressierung unmittelbar nachfolgende Modul ist, überwacht
werden.
-
Die Speicherung der Prüfinformation kann auf verschiedene Weise realisiert
werden. So kann die gespeicherte Prüfinformation eine bestimmte Stellung einer der
betreffenden Befehlsfolgen individuell zugeordneten Speicherstufe (Merker) sein.
Eine noch günstigere Lösung besteht nach einer weiteren Ausgestaltung der Erfindung
darin, daß die Prüfinformation einen Zahlenwert darstellt und die Befehle zum Verändern
der Prüfinformation aus der vorhandenen Prüfinformation jeweils durch eine bestimmte
Rechenoperation die neue Prüfinformation bilden.
-
Auf diese Weise kann als Speicher für die Prüfinformation eines der
Register verwendet werden, die in solchen Programmsteuereinheiten üblicherweise
vorhanden sind, wobei der Befehl zum Abspeichern der Prüfinformation das Format
eines normalen konstanten Speicherbefehs hat. Auch die Rechenoperation kann mittels
der üblicherweise vorhandenen arithmetischen Einheit ausgeführt werden, so daß für
die Durchführung der erfindungsgemäßen Prüfung kein besonderer Aufbau der Programmsteuereinheit
notwendig ist. Lediglich das für die Prüfinformation verwendete Register kann dann
nicht mehr anderweitig verwendet werden. Es ist auch möglich, mehrere Prüfinformationen
gleichzeitig
in verschiedenen Registern zu speichern, die verschiedenen
Befehlsfolgen zugeordnet sind, was bei Unterbrechung einer Befehlsfolge durch eine
andere zweckmäßig sein kann.
-
Um eine Kontrolle darüber zu haben, wie oft ein falscher Sprung des
Programmadressenzählers auftritt, ist es zweckmäßig, daß jeder eine Ungleichheit
feststellende Abfragebefehl einen Fehlerzähler um eine Stellung weiterschaltet.
Dieser Fehlerzähler kann beim Erreichen einer vorgegebenen Stellung direkt einen
Alarm auslösen, z.B. indem eine Fehlermeldung an eine übergeordnete Steuereinheit
gegeben wird. Für einen definierten Ablauf der Befehlsfolgen ist es jedoch zweckmäßig,
daß mindestens am Ende aller Befehlsfolgen ein Befehl die Stellung des Fehlerzählers
abfragt und bei Uberschreiten des Fehlerzählers über eine vorgegebene Stellung ein
Alarmsignal auslöst. Im Fall e eines Alarmsignals bzw. einer Fehlermeldung kann
die Befehlsfolge in eine Schleife mit der Abfrage des Fehlerzählers einlaufen, so
daß ein weiterer Ablauf von Befehlsfolgen so lange nicht möglich ist, wie der Fehlerzähler
nicht zurückgestellt wird. Gibt das Gerät eine Fehlermeldung an eine übergeordnete
Steuereinheit ab, so kann diese ein fehlerhaft beendetes Kommando wiederholen und
dabei den Fehlerzähler zurückstellen. Der Fehlerzähler wird allgemein bei der Ubergabe
eines Kommandos an das Gerät zurückgestellt, um zu vermeiden, daß sich Einzelfehler
aus der Abarbeitung vorangegangener Kommandos aufaddieren und unnötiger Weise zu
einer Fehleraussage führen.
-
Eine besonders vorteilhafte Anwendung der erfindungsgemäßen Programmsteuereinheit
betrifft die Steuerung von Peripheriegeräten für elektronische Rechenanlagen. Die
elektronische
Rechenanlage, d.h. die Zentraleinheit, wird dadurch
weitgehend von dem Steuerungsaufwand für das Peripheriegerät befreit, indem sie
nur ein kurzes Kommando an das Peripheriegerät übersendet, wobei üblicherweise eine
Anzahl verschiedener Kommandos möglich sind, und die Programmsteuereinheit entschlüsselt
dieses Kommando und führt alle dafür notwendigen Funktionen selbsttätig aus. Für
jedes der verschiedenen Steuerkommandos von der Zentraleinheit und gegebenenfalls
für verschiedene interne Betriebszustände des Peripheriegerätes ist jeweils eine
Befehlsfolge vorhanden, und durch ein Kommando von der Zentraleinheit kann die zugehörige
Befehlsfolge aufgerufen werden. Dabei kann der Adressenzähler des Mikroprogrammspeichers
fortwährend mit Zähltakten versorgt werden, wobei jede Befehlsfolge außer gegebenenfalls
der nach dem Einschalten des Gerätes ablaufenden Befehlsfolge für eine automatische
Prüfung zu Beginn einen Abfragebefehl enthält, ob ein entsprechendes Steuerkommando
von der Zentraleinheit vorliegt, und wenn ein solches Steuerkommando nicht vorliegt,
erfolgt ein Sprung auf das Ende der Befehlsfolge bzw. auf den Anfang der nächsten
Befehlsfolge.
-
Dadurch kann dann bereits ein Teil der Übernahme- und Entschlüsselungsprozedur
durch Befehle erfolgen, so daß dafür nur relativ wenige Gatter notwendig sind. Nach
einer weiteren Ausgestaltung der Erfindung ist es daher zweckmäßig, daß die
Programmsteuereinheit
ein Peripheriegerät für eine elektronische Rechenanlage steuert und im Mikroprogrammspeicher
eine Anzahl Befehlsfolgen enthält, die wiederholt aufeinanderfolgend zumindest teilweise
durchlaufen und durch Kommandos von der Rechenanlage selektiv aktiviert bzw. vollständig
durchlaufen werden und jeweils eine spezifische Funktion des Peripheriegerätes auslösen,
und daß die Befehle zur Änderung oder Umspeicherung von gespeicherten wesentlichen
Daten oder eine Aktivierung eines elektromechanischen Elementes nur bei vorhandener
zugeordneter Prüfinformation ausgeführt werden. Auf diese Weise wird zuverlässig
verhindert, daß in der Programmsteuereinheit für das Peripheriegerät Befehlsfolgen
fälschlich durchlaufen und Vorgänge ausgelöst werden, die beispielsweise in dem
Peripheriegerät gespeicherte Daten durch Löschen oder Uberschreiben zerstören oder
mechanische Vorgänge auslösen, die erhebliche Störungen verusachen, beispielsweise
fortwährender Papiervorschub bei einem Drucker, da insbesondere Endebedingungen
nicht richtig gesetzt sein können, ohne daß das Gerät selbsttätig in den normalen
Betrieb zurückkehrt.
-
Ausführungsbeispiele der Erfindung werden nachstehend anhand der Zeichnung
näher erläutert. Es zeigen: Fig. 1a undib das Flußdiagramm einer Befehlsfolge mit
Prüfbefehlen,
Fig.2 das Blockschaltbild einiger Steuerelemente
eines Peripheriegerätes.
-
Die Figuren 1a und Ib, die zum Herstellen des Zusammenhanges übereinander
anzuordnen sind, stellen den Anwendungsfall dar, bei dem die Programmsteuereinheit
ein Peripheriegerät einer elektronischen Rechenanlage steuert und die Mikroprogramme
ständig nacheinander durchlaufen werden. Das erste Feld in Fig.la oben ist mit "Start-fehlsfolge
1" bezeichnet, obwohl dies allgemein keinen Befehl darstellt, sondern nur der Ubersichtlichkeit
der Darstellung dient. Danach folgt ein Abfragebefehl. der prüft, ob von der Zentraleinheit
ein Kommando übertragen wurde, und zwar das diese Befehlsfolge auslösende Kommando.
Der Abfragebefehl kann tatsächlich aus mehreren einzelnen Befehlen zusammengesetzt
sein, die beispielsweise das von der Zentraleinheit kommende Steuerkommando zunächst
entschlüsseln oder ähnliche Vorgänge auslösen und erst am Schluß mit dem eigentlichen
Abfragebefehl enden. Wenn das Ergebnis dieses Abfragebefehls negativ ist, d.h. es
liegt kein entsprechendes 3euerkommando von der Zentraleinheit vor, springt die
Befehlsfolge, wie durch die mit einem Querstrich versehene Linie angedeutet ist,
auf den Punkt ~Ende-Befehlsfolge 1", der ebenfalls keinen echten Befehl darstellt,
sondern nur der Ubersichtlichkeit halber den Punkt nach dem letzten Befehl der ersten
Befehlsfolge
markiert. Dieser Endpunkt ist in Fig.1b dargestellt. Danach wird die nächste, ähnlich
aufgebaute Befehlsfolge durchlaufen, usw.
-
Wenn jedoch das richtige Kommando von der Zentraleinheit vorliegt,
folgt nach dem Abfragebefehl ein Speicherbefehl, der eine Prüfinformation abspeichert,
beispielsweise durch Übertragen einer in diesem Befehl vorhandenen Konstante in
ein ebenfalls durch den Befehl angegebenes Register.
-
Danach werden die nächsten Befehle der Befehlsfolge abgearbeitet,
mit denen beispielsweise Gerätezustände geprüft werden. In diesem Teil der Befehlsfolge
sind jedoch keine Befehle enthalten, die wesentliche Daten verändern, beispielsweise
bereits übertragene auszudruckende Daten umspeichern oder überschreiben bzw. löschen,
oder die elektromechanische Teile aktivieren, wie beispielsweise Kupplungen oder
Druck- oder Stanzinagnete. Der erste Teil der Befehlsfolge, der mit Modul 1 bezeichnet
ist, endet schließlich mit einer Veränderung der ursprünglich abgespeicherten Prüfinformation
P1 in eine neue Prüfinformation P2, wobei diese Veränderung beispielsweise durch
Addition einer im Änderungsbefehl enthaltenen Konstante durchgeführt wird.
-
Der in dem Ablauf folgende Modul 2 enthält zunächst einen Prüfbefehl,
der
die nun gespeicherte Prüfinformation P2 mit einer im Befehl vorhandenen Konstante
vergleicht. Falls sich dabei keine Gleichheit ergibt, geht daraus hervor, daß dem
Modul 2 nicht ein richtig durchlaufener modul 1 vorangegangen ist, d.h.
-
die Befehlsfo# wurde nicht von Anfang an korrekt durchlaufen, sondern
es ist beispielsweise ein durch eine fehlerhafte Funktion ausgelöster Sprung des
Programmes in den Modul 1 bzw.
-
direkt auf den Anfang des Moduls 2 erfolgt. In diesem Falle wird,
wie durch die mit einem Schrägstrich versehene Linie angegeben ist, ein Programmsprung
ausgelöst, der einen Fehlerzähler weiterschaltet und dann auf den Punkt "Endebfehlsfolge
1" führt, wie in Fig.1b angegeben ist.
-
Falls jedoch die Prüfinformation richtig gespeichert ist, wird unmittelbar
anschließend an die Abfrage zu Beginn des Moduls 2 der Befehl ausgeführt, der in
diesem Beispiel Daten verändert.
-
Danach folgen dann weitere Befehle dieser Befehlsfolge, die ebenfalls
keine Veränderung von Daten oder Aktivierung von mechanischen Teilen auslösen. Am
Ende des Moduls 2 wird die Prüfinformation P2 in die Prüfinformation P 3 geändert,
beispielsweise durch Multiplikation mit einer im Änderungsbefehl enthaltenen Konstante
Danach folgt der Modul 3 , der wieder mit einem Abfragebefehl
beginnt,
der die gespeicherte, Prüfinformation P3 mit einer im Befehl vorhandenen Konstante
vergleicht. Falls ein fehlerhafter Sprung in den Modul 2 erfolgt ist, hat sich durch
den Veränderungsbefehl am Schluß dieses Moduls nicht die richtige Prüfinformation
gebildet, und der Abfragebefehl zu Beginn des Moduls 3 führt wieder auf einen Sprung
zu dem Weiterschalten des Fehlerzählers und dem Punkt "EndeEefehlsfolge 1". Bei
richtiger Prüfinformation folgt danach ein Befehl, der ein elektromechanisches Element
ansteuert, und danach werden weitere Befehle des Moduls 3 durchlaufen. Diese Befehlsfolge
enthält in diesem Beispiel am Ende einen Verzweigungsbefehl, wobei abhängig von
dem Vorhandensein der Bedingung danach die inzwischen erhaltene Prüfinformation
P3 in die Prüfinfa#ination P2 verändert wird, wonach ein Sprung auf den Beginn des
Moduls 2 erfolgt, oder die Prüfinformation P3 wird in die Prüfinformation P4 geändert
und danach der Modul 4 begonnen.
-
Auch der Modul 4 beginnt wieder mit einer Abfrage der Prüfinformation,
um festzustellen, ob dieser Modul von dem bzw. den richtigen vorhergehenden Moduln
ausgehend begonnen wurde. Dieser Modul 4 enthält in diesem Beispiel nur eine Befehlsfolge
ohne wesentliche Veränderung von Daten oder Zuständen, und er endet mit einem Befehl,
der die zuletzt erreichte Prüfinformation P4 löscht. Vor diesem Löschbefehl könnte
noch ein nicht dargestellter
Abfragebefehl vorgesehen sein, der
praktisch am Ende des Moduls die Prüfinformation vergleicht, um festzustellen, ob
ein falscher Sprung in die Befehlsfolge des Moduls 4 erfolgt ist.
-
Statt dessen könnte aber auch das Löschen der Prüfinformation P4 dadurch
erfolgen, daß deren Wert, der an dieser Stelle erreicht worden sein soll, von der
Prüfinformation subtrahiert wird, so daß der Prüfinformationsspeicher dann den Wert
0 enthält. Dieser Wert 0 kann zu Beginn jeder Befehlsfolge geprüft werden, so daß
auf diese Weise festgestellt werden kann, ob die vorhergehende Befehlsfolge richtig
beendet wurde. Diese Prüfung bzw. Abfrage wäre zweckmäßig noch vor der in Fig.1a
oben angegebenen Abfrage auf ein Kommando von der Zentraleinheit vorzusehen.
-
Nach dem Ende der Befehlsfolge 1 folgen weitere Befehlsfolgen, die
im Prinzip in gleicher Weise aufgebaut sind wie die Befehlsfolge 1, d.h. sie beginnen
mit der Abfrage, ob ein Kommando von der Zentraleinheit vorliegt, gegebenenfalls
mit einer vorgeordneten Abfrage auf den Wert 0 der Prüfinformation, ferner mit einem
Befehl zum Abspeichern der Prüfinformation bei Vorliegen eines zugehörigen Kommandos,
und dann folgen allgemein mehrere Module, die wie bei der Befehlsfolge 1 Jeweils
mit einer Veränderung der Prüfinformation enden und mit einer
Abfrage
der vorgeschriebenen Prufinformation beginnen.
-
Nach dem Durchlaufen weiterer Befehlsfolgen ist ein Abfrage befehl
eingefügt, der den Zählerstand des Fehlerzählers prüft.
-
Wenn dieser Zählerstand einen bestimmten Wert überschreitet, in dem
dargestellten Beispiel den Wert 2, erfolgt ein Sprung auf einen Befehl, der einen
Alarm auslöst, beispielsweise eine Lampe aufleuchten läßt oder ein akustisches Signal
auslöst, und danach auf den Abfragebefehl des Fehlerzählers zurückspringt, damit
wegen des ständig laufenden Programmzählers eine Programmschleife erzeugt wird,
die ständig durchlaufen wird, solange der Fehlerzähler den angegebenen Wert überschreitet.
Der tWert 2 bedeutet hier, daß nur ein einziger fehlerhafter Programmsprung zugelassen
wird,anderenfalls wird bereits ein wesentlicher Fehler in der Anlage angenommen.
Die Programmschleife wird wieder verlassen, wenn der Fehlerzähler gelöscht wird,
was beispielsweise durch eine Bedienungskraft erfolgen kann.
-
Wenn der Fehlerzähler gelöscht ist oder bei der ersten Abfrage noch
nicht den Wert 2 erreicht hatte, werden weitere Befehlsfolgen durchlaufen, nach
denen sich wieder eine Abfrage des Fehlerzählers anschließen kann. Wenn das Ende
der letzten Befehlsfalge erreicht worden ist, wird automatisch die erste
Befehlsfolge
wieder begonnen, d.h. nach dem letzten Befehl der letzten B6ehlsfolge ist in der
Adressenfolge der erste Befehl der ersten Befehlsfolge vorhanden, oder es ist ein
unbedingter Sprungbefehl vorhanden, der den Programmzähler auf die Adresse dieses
ersten Befehls der ersten Befehlsfolge setzt.
-
Auf diese Weise wird das aus allen Befehlsfolgen bestehende Programm
fortwährend zyklisch durchlaufen.
-
In Fig.2 ist eine Möglichkeit der Realisierung dargestellt.
-
Der Mikroprogrammspeicher 32, der das Programm aus den einzelnen Befehlsfolgen
enthält, wird durch den Programmadressenzähler 30 adressiert. Dieser Adressenzähler
30 erhält ständig Zähltakte von einem Taktgenerator 31, so daß er ständig seine
Zählerstellungen wiederholt nacheinander durchläuft.
-
Die Ausgänge des Adressenzählers sind mit den Adresseneingängen des
Mikroprogrammspeichers 32 verbunden. In jeder Adresse ist ein Befehl in Form einer
Bitkombination enthalten, die bei Adressierung ausgelesen und üblicherweise über
hier nicht dargestellte Register einem Decoder 34 zugeführt wird, der die einzelnen
Befehle entschlüsselt. Der Decoder 34 enthält dafür beispielsweise eine Anzahl Gatter
oder eine Hodenmatrix.
-
Die Ausführung der Befehle für die Abfrage eines Steuerbefehls von
der Zentraleinheit ist in Fig.2 nicht näher dargestellt, da sie für die beschriebene
Funktion nicht wesentlich ist. Der nachfolgende Befehl "Prüfinformation abspeichern"
wird in dem Decoder 34 entschlüsselt und steuert über die Leitung 42 ein Register
33 an, das beispielsweise die Informationen auf den Ausgangsleitungen 45 des Mikroprogrammspeichers
übernimmt. Wenn ein Abfragebefehl die darin gespeicherte Prüfinformation prüfen
soll, wird dieser Befehl ebenfalls im Decoder 34 entschlüsselt und steuert über
die Leitung 43 einen Vergleicher 36 an, der den Inhalt des Registers 33 mit den
Informationen auf den Ausgangsleitungen 45 des Mikroprogrammspeichers 32, in diesem
Falle mit den gleiche Leitungen wie zum Einspeichern des Registers 33 verwendet,
vergleicht. Wenn dieser Vergleich keine Übereinstimmung ergibt, erzeugt der Vergleicher
33 ein Signal auf der Leitung 44, das einen Fehlerzähler 37 um einen Schritt weiterzählt
und einen Sprung des Adressenzählers auf eine Adresse entsprechend dem Ende der
Befehlsfolge auslöst. Das Weiterschalten des Fehlerzählers 37 und der Sprung des
Adressenzählers 30 wird beispielsweise durch entsprechende Befehle gesteuert, die
nach dem Abfragebefehl folgen und die übergangen werden, wenn der Vergleicher 36
eine Ubereinstimmung feststellt und kein Ausgangssignal auf der Leitung 44 erzeugt.
Dannr erfolgt auch kein
Sprung des Adressenzählers 30, und das
Programm läuft in natürlicher Folge weiter, wobei als nächstes ein Befehl zur Ansteuerung
eines Elektromagneten 40 folgen möge, der ebenfalls in dem Decoder 34 entschlüsselt
und gegebenenfalls in Verknüpfungsstufen 38 mit Bedingungen oder dem Inhalt eines
Registers 39 verknüpft wird.
-
Dann folgen weitere Befehle ohne Veränderung wesentlicher Zustände
bzw. Daten, und schließlich erscheint ein Befehl zum Verändern der im Register 33
gespeicherten Prüfinformation. Dieser Befehl ist hier sin Befehl zur Durchführung
einer arithmetischen Operation, der ebenfalls im Decoder 34 entscELsselt wird und
über die Leitung 41 die arithmetisch-logische Einheit 35 ansteuert, so daß dBse
den über die Leitungen 47 zugeführten Inhalt des Registers 33 mit einer Konstanten
auf den Ausgangsleitungen 45 des Mikroprogrammspeichers 32 verknüpft, beispielsweise
mittels Addition oder Multiplikation, und der dabei auf den Ausgangsleitungen 46
der Recheneinheit 35 auftretende Wert wird dem Register 33 zugeführt und über das
Signal auf der Leitung 41 eingeschrieben. Damit ist die im Register 33 enthaltene
Prüfinformation in eindeutiger Weise verändert worden, und sie kann anschließend
wieder im Vergleicher 36 mit einer entsprechenden anderen Konstanten auf den Ausgangsleitungen
45
des Mikroprogrammspeichers 32 verglichen werden. Die Funktion
des J#rgleichers 3o kann im übrigen auch durch die Recheneinheit 35 35 übernommen
werden, inden als Ver,leichsbefehl beispielsweise ein Subtraktionsbefehl vorgesehen
wird, der den in diesem Befehl auf den Ausgangsleitungen 45 erscheinenden vorgegebenen
Wert der Prüfinformation von dem über die Leitungen 47 zugeführten ert aus dem Register
33 subtrahiert und den Ausgang 46 der .Recheneinheit 35 auf den Wert 0 prüft. Ein
Ilert ungleich 0 entspricht darin einem Signal auf der Leitung 44.
-
Damit werden darin keine anderen Elemente benötigt als solche, die
ohnehin in üblichen Programms teuere inhe iten vorhanden sind.
-
Dadurch können auch bereits vorhandene Programmsteuereinheiten, ledislich
durch ninfüDen entsprechender Speicher-, Prüf- und Sprungbefehle nach vorstehender
Beschreibung, mit zuverlässigem Schutz gegen Fehlfunktionen infolge von fehlerhaften
Programmsprüngen versehen werden.