DE2821882A1 - Programmsteuereinheit - Google Patents

Programmsteuereinheit

Info

Publication number
DE2821882A1
DE2821882A1 DE19782821882 DE2821882A DE2821882A1 DE 2821882 A1 DE2821882 A1 DE 2821882A1 DE 19782821882 DE19782821882 DE 19782821882 DE 2821882 A DE2821882 A DE 2821882A DE 2821882 A1 DE2821882 A1 DE 2821882A1
Authority
DE
Germany
Prior art keywords
command
test information
control unit
program control
commands
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19782821882
Other languages
English (en)
Other versions
DE2821882C2 (de
Inventor
Martin Ing Grad Creveceur
August Ing Grad Deis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Philips Intellectual Property and Standards GmbH
Original Assignee
Philips Patentverwaltung GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Patentverwaltung GmbH filed Critical Philips Patentverwaltung GmbH
Priority to DE19782821882 priority Critical patent/DE2821882C2/de
Publication of DE2821882A1 publication Critical patent/DE2821882A1/de
Application granted granted Critical
Publication of DE2821882C2 publication Critical patent/DE2821882C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • "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.

Claims (9)

  1. PATENTANSPRUCHE: 1.Programmsteuereinheit zum Steuern einer elektromechanischen Anordnung'mit einem Mikroprogrammspeicher, 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 Ablaufes der Befehlsfolge wiederholt geprüft wird, dadurch gekennzeichnet, daß am Anfang Jeder Befehlsfolge ein Speicherbefehl vorgesehen ist, der die Prüfinformation in einen Speicher eieschreibt, 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.
  2. 2. Programmsteuereinheit nach Anspruch 1, dadurch gekennzeichnet, daß jede Befehlsfolge vor jedem Aktivierungsbefehl 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.
  3. 3. Programmsteuereinheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, 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.
  4. 4. Programmsteuereinheit nach Anspruch 3, dadurch gekennzeichnet, 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.
  5. 5. Programmsteuereinheit nach Anspruch 4, dadurch gekennzeichnet, daß Jeder Modul außer der erste Modul einer Befehlsfige am Anfang einen oder mehrere Abfragebefehle zum Vergleich der vorhandenen Prüfinformation mit einer oder mehreren vorgegebenen Informationen enthält.
  6. 6. Programmsteuereinheit nach Anspruch 1 oder einem der folgenden, dadurch gekennzeichnet, 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.
  7. 7. Programmsteuereinheit nach Anspruch 2 oder einem der folgenden, dadurch gekennzeichnet, daß jeder eine Ungleichheit feststellende Abfragebefehl einen Fehlerzähler um eine Stellung weiterschaltet.
  8. 8. Programmsteuereinheit nach Anspruch 7, dadurch gekennzeichnet, daß mindestens am Ende aller Befehlsfolgen ein Befehl die Stellung des Fehlerzählers abfragt und bei Überschreiten des Fehlerzählers über eine vorgegebene Stellung ein Alarmsignal auslöst.
  9. 9. Programmsteuereinheit nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, 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 Elements nur bei vorhandener zugeordneter Prüfinformation ausgeführt werden.
DE19782821882 1978-05-19 1978-05-19 Programmsteuereinheit mit Prüfmöglichkeit Expired DE2821882C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19782821882 DE2821882C2 (de) 1978-05-19 1978-05-19 Programmsteuereinheit mit Prüfmöglichkeit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19782821882 DE2821882C2 (de) 1978-05-19 1978-05-19 Programmsteuereinheit mit Prüfmöglichkeit

Publications (2)

Publication Number Publication Date
DE2821882A1 true DE2821882A1 (de) 1979-11-22
DE2821882C2 DE2821882C2 (de) 1983-01-20

Family

ID=6039724

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782821882 Expired DE2821882C2 (de) 1978-05-19 1978-05-19 Programmsteuereinheit mit Prüfmöglichkeit

Country Status (1)

Country Link
DE (1) DE2821882C2 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3008036A1 (de) * 1980-03-03 1981-09-17 Robert Bosch Gmbh, 7000 Stuttgart Ueberwachungseinrichtung fuer programmgesteuerte vorrichtungen
EP0266836A2 (de) * 1986-11-03 1988-05-11 Philips Electronics Uk Limited Datenverarbeitungssystem mit watch-dog Schaltung
EP0266837A2 (de) * 1986-11-03 1988-05-11 Philips Electronics Uk Limited Datenverarbeitungssystem mit watch-dog Schaltung

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3518413A (en) * 1968-03-21 1970-06-30 Honeywell Inc Apparatus for checking the sequencing of a data processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3518413A (en) * 1968-03-21 1970-06-30 Honeywell Inc Apparatus for checking the sequencing of a data processing system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3008036A1 (de) * 1980-03-03 1981-09-17 Robert Bosch Gmbh, 7000 Stuttgart Ueberwachungseinrichtung fuer programmgesteuerte vorrichtungen
EP0266836A2 (de) * 1986-11-03 1988-05-11 Philips Electronics Uk Limited Datenverarbeitungssystem mit watch-dog Schaltung
EP0266837A2 (de) * 1986-11-03 1988-05-11 Philips Electronics Uk Limited Datenverarbeitungssystem mit watch-dog Schaltung
EP0266837B1 (de) * 1986-11-03 1995-01-04 Philips Electronics Uk Limited Datenverarbeitungssystem mit watch-dog Schaltung
EP0266836B1 (de) * 1986-11-03 1995-01-04 Philips Electronics Uk Limited Datenverarbeitungssystem mit watch-dog Schaltung

Also Published As

Publication number Publication date
DE2821882C2 (de) 1983-01-20

Similar Documents

Publication Publication Date Title
DE2328058C2 (de) Fehlerdiagnoseeinrichtung in einer digitalen Datenverarbeitungsanordnung
DE2145709C3 (de) Datenverarbeitungsanlage, in welcher Verzweigungsbefehle eine Unterbrechung laufender Programme zur Folge haben können
DE1901228B2 (de) Datenverarbeitungsanlage mit einrichtungen zur wiederholung von operationen beim auftreten eines fehlers
DE1815666B2 (de) m, 19.12.68 OT 07.08.69 fr 15.01.68 V.St.v.Amerika 697797 Schaltungsanordnung zur Kanalfehlerkorrektur
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
WO2001037058A1 (de) Automatisierungsgerät und aufdat-verfahren
DE2461592C3 (de) Anordnung zur Durchführung von Wartungsoperationen bei einem Datenverarbeitungssystem
DE2364323C2 (de) Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage
EP0048991B1 (de) Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung
DE2246863C3 (de) Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage
EP0347970B1 (de) Verfahren zum Prüfen eines Festwertspeichers und Anordnung zur Durchführung des Verfahrens
DE2821882A1 (de) Programmsteuereinheit
EP1119801A1 (de) Verfahren zum betrieb eines automatisierungssystems
DE3704318A1 (de) Verfahren und anordnung zur ueberwachung der funktion eines mikroprozessors
DE2106731A1 (de) Diagnoseeinrichtung fur elektronische Datenverarbeitungsanlagen
EP0655688A2 (de) Programmspeichererweiterung für einen Mikroprozessor
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE1267887B (de) Fehlererkennungseinrichtung zur UEberwachung von Programmverzweigungen in datenverarbeitenden Maschinen
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE2954533C2 (de)
EP1179428B1 (de) Verfahren und Vorrichtung zum Abarbeiten von Verfahrensschritten
DE2505475C3 (de) Verfahren und Vorrichtung zur Fehlerprüfung bei einem programmierbaren Logikwerk für die Ausführung logischer Operationen
DE2442988B2 (de) Rechenmaschine
EP1031081B1 (de) Programmgesteuerte einheit und verfahren
DE2737133C2 (de) Schaltungsanordnung zum Verhindern von Doppelfehlern in einer Datenverarbeitungsanlage

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
8126 Change of the secondary classification

Ipc: G06F 9/22

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee