DD273137A1 - Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen - Google Patents

Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen Download PDF

Info

Publication number
DD273137A1
DD273137A1 DD31688988A DD31688988A DD273137A1 DD 273137 A1 DD273137 A1 DD 273137A1 DD 31688988 A DD31688988 A DD 31688988A DD 31688988 A DD31688988 A DD 31688988A DD 273137 A1 DD273137 A1 DD 273137A1
Authority
DD
German Democratic Republic
Prior art keywords
output
whose
input
inputs
system bus
Prior art date
Application number
DD31688988A
Other languages
English (en)
Inventor
Rene Reissmueller
Andre Bujara
Original Assignee
Adw Ddr Inst Informatik
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 Adw Ddr Inst Informatik filed Critical Adw Ddr Inst Informatik
Priority to DD31688988A priority Critical patent/DD273137A1/de
Publication of DD273137A1 publication Critical patent/DD273137A1/de

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft eine Schaltungsanordnung zur Programmueberwachun g in Mikrorechnersystemen, bei denen eine simultane Ueberwachung notwendig ist. Erfindungsgemaess enthalten die zu ueberwachenden Programme in jedem linearen Programmabschnitt mindestens eine Kennzahl, wobei bei fehlenfreier Arbeit zwischen je zwei Kennzahlen die Hammingdistanz 1 auftritt. Die Ueberwachung erfolgt durch einen erfindungsgemaess am Systembus angeordneten Hammingkomparator (1) und einen LIFO-Speicher (2), die durch eine Steuerung (4) gesteuert werden. Durch im LIFO-Speicher (2) zwischengespeicherte Kennzahlen ist die Ueberwachung insbesondere auch bei Interrupts und Programmverzweigungen moeglich. Fig. 1

Description

Hierzu 2 Seiten Zeichnungen
Anwendungsgebiet der Erfindung
Die Erfindung betrifft eine Schaltungsanordnung zur Kontrolle der fehlerfreien ?rogrammabarbeitung in Mikrorechnersystemen. Das Anwendungsgebiet sind Mikrorechnersysteme, an die hohe Zuverlässigkeitsanforderun&en gestellt werden oder/und von denen ein sicheres Ausfallverhalten gefordert wird.
Charakteristik der bekannten technischen Lösungen
Die Kontrolle der Programmabarbeitung kann während der Inbetriebnahme und bei besonders hohen Anforderungen auch während des Betriebes erfolgen. Bei letzterem ist besonders die on-line-Überwachung für eine schnelle Fehlererkennung von Bedeutung. Der Hardwareaufwand ist dabei gering zu halten, um weitere Fehlerquellen möglichst auszuschließen und den ökonomischen Aufwand zu begrenzen. Zur on-line- Programmüberwachung sind verschiedene technische Möglichkeiten bekannt. Im folgenden werden drei Lösungen vorgestellt.
Di» aus DE-OS 294982? bekannte technische Lösung wertet von einer Cnmputei- (Mikrocomputer-) Steuerung durch im Programm eingefügte spezielle Befehle abgegebene Signale aus. Im fehlerfreien Betrieb der Steuerung müssen die Signale zyklisch, innerhalb eines festen Zeitraumes, abgegeben werden. Bleibt das Signal aus, wird von der erfindungsgemäßen Schaltung als Fehlerreaktion ein Rücksetzsignal erzeugt, durch welches ein definierter Grundzustand hergestellt wird. Nachteilig bei dieser Lösung ist, daß Jie zyklische Abgabe des Signals ein unsicheres Kriterium für den fehlerfreien Betrieb ist. Werden zum Beispiel bis Folge eines Fehlers falsche Programmabschnitte angesprungen, wird das nicht erkannt. Eine bessere Lösung wird in DE-OS 28216U2 beschrieben. Das Patent bet-ifft eine Programmsteuereinhoit zum Steuern einer elektromechanischen Anordnung. In das abzuarbeitende Programm wird ein Ausgabebefehl am Anfang der zuerst abzuarbeitenden Befehlsfolge eingefügt, der eine Prüfinformation in einem Speicher schreibt. Vor der Abarbeitung jedes den Systemzustand verändernden Befehls, wird diese Prüfinformation mit einer vorgegebenen Information verglichen. Bei Gleichheit wird der Befehl und bei Ungleichheit ein Sprung ausgeführt. In jeder Befehlsfolge wird mindestens am Schluß ein Befehl zur Veränderung der Prüfinformation in einer festgelegten Weise eingefügt. Der Hauptnachteil der zuerst beschriebenen Erfindung besteht hier nicht. Adressierungsfehler können mit hoher Wahrscheinlichkeit erkannt werden. Nachteilig hingegen ist, das ein relativ hoher Befehlsaufwand für das Vergleichen und Verändern der Prüfinformation erforderlich ist. Ebenso wird ein Fehler nicht erkannt, der dazu führt, daß die Prüfinformation nicht mehr verglichen wird.
Eine weitere Erfindung wird in DE-OS 2533995 beschrieben. Der erfindunrjsgemäßen Überwachungsschaltung wird vom überwachten Digitalrechner zyklisch ein zweiteiliges Prüfwort durch in das Programm eingefügte Befehle übergeben. Die Überwachungsschaltung vergleicht den ersten Teil des aktuellen Prüfwortes mit dem gespeicherten zweiten Teil des zuletzt empfangenen Prüfwortes und speichert dann den zweiten Teil des aktuellen Prüfwortes. Bei Ungleichheit oder innerhalb eines Zeitraumes t nach dem letzten Vergleich ausbleibender Prüfwortübermittlung wird eine Fehlermeldung ausgelöst. Im Gegensatz zu DE-OS 2821882 ist der Aufwand an zusätzlichen Befehlen gering. Durch die Zeitbedingung werden auch Fehler erkannt, die dazu führen, daß kein Prüfwort mehr übergeben wird. Nachteilig hingegen ist, daß für jeden Teil dos Prüfwortes nur die halbe Datenbreite des Übertragungsmediums zur Verfügung steht, v/enn zur Prüfwortübertragung nicht mehrere Übertragungszyklen benutzt werden sollen, was den Befehls- und Zeitaufwand erhöhen würde. Das wäre z. B. bei einem 8-Bit-Datenbus als Übertragungsmedium nur 4bit. Es würden nur 16 verschiedene Prüfworthälften möglich sein, so daß statisch jeder 16. Fehler unerkanm bliebe. Weiterhin ist es nachteilig, daß die Erfindung in Rechnern, in denen die Programmabarbeitung durch Unterbrach jngsanforü^'ungen unterbrochen werden kann, nur dann anwendbar ist, wenn die Unterbrechungsroutinen kurz im Verhältnis zum festgelegte.- Zeitraum t sind. Die Abarbeitung dor Unterbrechungsroutinen kann nicht überwacht werden.
Ziel der Erfindung
Ziel der Erfindung ist es, in Mikrorechnersystemen den Arbeitsaufwand zur Fehlersuche zu vermindern und damit die Zuverlässigkeit zu erhöhen und ein sicheres Ausfallverhalten zu unterstützen.
Darlegung des Wesens der Erfindung
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zur simultanen Überwachung der Programmabarbeitung in einem Mikrorechnersystem zu entwickeln, wobei der Fehlererkennungsgrad mit geringem Hardwareaufwand und geringem Aufwand an zusatzlichen Befehlen erhöht und die Fehlererkennungszeit und dia Fehlerreaktionszeit verringert werden soll. Diese Aufgabe wird erfindungsgemäß durch eine Programmabarbeitungsüberwachungslogik (PAUL) gelöst, die jeder zentralen Verarbeitungseinheit in einem Mikrorechnersystem, deren Programmabarbeitung überwacht werden soll, zugeordnet ist. Die Programmabarbeitungsüberwachungslogik hat eine Schnittstelle zum Systembus, an dem die ihr zugeordnete zentrale Verarbeitungseinheit temporärer Busmaster sein kann und über den alle Interruptvektoren für die zentrale Verarbeitungseinheit übertragen werden.
Die Schnittstelle besteht aus einem I/O-Port mit fester l/0-Aaresse aus dem I/O-Raum der zentralen Verarbeitungseinheit. Dem Port kann durch einen I/O-Write-Zyklus eine n-bit-Kennzahl von der zentralen Verarbeitungseinheit über den Datenbus gesendet werden. Weiterhin ist die Programmabarbeitungsüborwachungslogik mit Signalen des Systembusses verbunden, die den Aufruf eines vektorisierten Interrupts mit der Übertragung eines Interruptvektors, den Aufruf eines nichtvektorisierten Interrupts, d'e Rückkehr von einer Interruptroutine und ein System-Reset signalisieren. Die Programmabarbeitungsüberwachungslogik besitzt ein Ausgangssignal zur Fehlermeldung an die überwachte oder an andere zentrale Verarbeitunrjseinheiten im Mikrorechnersystem oder an externe Schnittstellen.
Intern besteht die Programmabarbeitungsüberwachungslogik aus einem Hammlngkomparator, einem modifizierten LIFO-Speicher, einem nachtriggerbaren monostabilen Multivibrator, einer Steuerung und zwei ODER-Gattern und hat den nachfolgend beschriebenen erfindungsgemäßen Aufbau.
Die erste Gruppe von η-Eingängen des Hammingkomparators und die n-Dateneingänge des modifizierten LIFO-Speichers sind mit den n-Datenleitungen des Systembusses verbunden. Die n-Datenausgänge des modifizierten LIFO-Speichers sind mit der zweiten Gruppe von η-Eingängen des Hammingkomparators verbunden. Die Stouereingänge des Hammingkomparators und ties modifizierten LIFO-Speichers sind mit den Ausgängen der Steuerui g verbunden. Dia Eingänge der Steuerung stehen mit Adreßleitungen, der Leitung für das I/O-Write-Kommando und den oben beschriebenen Signalen zur Unterbrechungs· und Reset-Identifikation des Systembusse« in Verbindung. Ein erster Ausgang des Hammingkomparators ist mit einem ersten
Eingang eines ersten ODER-Gatters verbunden, dessen Ausgang an einem Triggereingang des monostabilen Multivibrators anliegt. Ein zweiter Ausgang des Hammingkomparators ist mit dem ersten Eingang eines zweiten ODER-Gatters verbunden und ein zweiter Eingang des zweiten ODER-Gatters Ist mit einem negierten Ausgang des monostabilen Multivibrators verbunden. Ein Ausgang des zweiten ODER-Gatters bildet das Ausgangssignal zur Fehlermeldung.
Für die Funktion der Progrsmmabarbeitungsüberwachungslogik ist es notwendig, in den Maschinencode des Programmes, das auf der zentralen Verarbeitungseinheit, deren Programmabarbeitung durch eine Programmabarbeitungsüberwachungslogik überwacht werden soll, abgearbeitet wird, spezielle I/O-Write-Befehle einzufügen. Bei der Ausführung eines derartigen Befehls muß der Programmabarbeitungsüberwachungslogik von der zentralen Verarbeitungseinheit mittels I/O-Write-Zyklus mit der, der Programmabarbeitungsüberwachungslogik zugeordneten I/O-Adresse, eine feste im Maschinencode des I/O-Write-Befehls enthaltene n-bit-Kennzahl übergeben werden. Die I/O-Write-Befehle sind derart in den Maschinencode einzufügen, daß in jedem linearen Programmabschnitt mindestens ein solcher Befehl auftritt. Jedem Befehl ist eine feste n-bit-Kennzahl so zuzuordnen, daß bei der fehlerfreien Programmabarbeitung ohne Interrupts zwei zeitlich nacheinander an die Programmabarbeitungsüberwachungslogik gesendete Kennzahlen immer die Hammingdistanz 1 haben. Bei Programmverzweigungen muß die in allen möglicherweise angesprungenen linearen Programmabschnitten zuerst übergebene Kennzahl die Hammingdistanz 1 zur letzten vor der Verzweigung übergebenen Kennzahl haben. Die in einer Interruptroutine eines nicht vektorisierten Interrupts und nach System-Reset zuerst übergebene Kennzahl muß zu 0 die Hammingdistanz 1 haben. In Interruptroutinen vektorisierter Interrupts muß die zuerst übergebene Kennzahl zum vorher übertragenen, ihr zugeordneten Interruptvektor die Hammingdistanz 1 haben. Weiterhin sind die Kennzahlen derart zu verteilen, daß möglichst viele unerlaubte, bei fehlerhafter Programmabarbeitung auftretende Verzweigung oder Sprünge zu einer Hammingdistanz 1 der vor und nach der Verzweigung übergebenen Kennzahlen führen. Die beschriebenen I/O-Write-Befehle sind darüber hinaus so in Jen Maschinencode des Programmes einzufügen, daß sichergestellt ist, daß bei fehlerfreier Programmabarbeitung mit Interrupts innerhalb eines durch die Programmabarbeitungsüberwachungslogik bestimmten Zeitintervalles TO nach der Übergabe einer Kennzahl eine neue Kennzahl übergeben wird.
Bei der Abarbeitung eines entsprechend modifizierten Programmes wird der Programmabarbeitungsüberwachungslogik mittels I/O-Write-Zyklus von der zentralen Verarbeitungseinheit eine n-bit-Kennzahl zu einem Zeitpunkt to übergeben. Durch die Steuerung organisiert, vergleicht der Hammingkomparator die aktuelle Kennzahl an seiner ersten Gruppe von η-Eingängen mit der im UFO-Speicher gespeicherten vorherigen Kennzahl, die an seiner zweiten Gruppe von η-Eingängen anliegt. Erkennt er zwischen beiden Kennzahlen eine Hammingdistanz 1, aktiviert er seinen ersten Ausgang und triggert mittelbar über das erste ODER-Gatter den monostabilen Multivibrator nach. Ist die Hammingdistanz 1, aktiviert er seinen zweiten Ausgang und damit mittelbar über das zweite ODER-Gatter das Ausgangssignal zur Fehlermeldung. Nach dem Vergleich organisiert die Steuerung das Speichern der aktuellen Kennzahl in die Speicherzelle des LIFO-Speichers, in der die davor empfangene Kennzahl gespeichert war (keine UFO-Funktion).
Erfolgt innerhalb des Zeitintervalls TO, das vom monostabilen Multivibrator bestimmt wird, nach I0 die Übergabe einer neuen Kennzahl mit wiederum Hammingdistanz* zur vorher empfangenen, wird der monostabile Multivibrator wie beschrieben erneut nachgetriggert. Erfolgt jedoch innerhalb des Zeitintervalls TO nach to keine Kennzahlübergabe, geht der monostabile Multivibrator in seinen stabilen Zustand über, damit wird sein negativer Ausgang high, was über das zweite ODER-Gatter zur Aktivierung als Ausgangsimpuls zur Fehlermeldung führt.
Erkennt die Steuerung anhand ihrer Eingangssignale die Übertragung eines Interruptvektors über den Systembus und damit den Beginn einer Interruptroutine, s'euert sie den UFO-Speicher derart an, daß in diesem der Interruptvektor als Start-Kennzahl für die Interruptroutine gespeichert wird und die zuletzt vor der Interruptroutine ύbergebene Kennzahl gekeüert wird. Erkennt die Steuerung anhand ihrer Eingangssignale den Start einer Interruptroutine eines nicht vektorisierten Interrupts, steuert sie den UFO-Speicher derart an, das dieser die zuletzt empfangene Kennzahl kellert und 0 als neue Start-Kennzahl einspeichert. D'e erste in der Interruptroutine übergebene Kennzahl muß die Hammingdistanz 1 zum Interruptvektor bzw. zu 0 haben und sie muß innerhalb des Zeitintervalls TO nach der letzten Kennzahlübergabe vor der Übernahme des Interruptvektors bzw. 0 als Start-Kennzahl erfolgen, damit keine Aktivierung des Augangssignals zur Fehlermeldung erfolgt.
Erkennt die Steuerung anhand ihrer Eingangssignale den Rücksprung aus einer Interruptroutine, so holt sie die zuletzt gekellerte Kennzahl zurück und führt den folgenden Vergleich der aktuellen Kennzahl mit dieser Kennzahl aus. Entsprechend der Speichertiefe des LIFO-Speichers können Interruptroutinen ineinander verschachtelt werdon.
Erkennt die Steuerung anhand ihrer Eingangssignale ein System-Reset, steuert sie den UFO-Speicher derart an, daß dieser in seine oberste Speicherzelle 0 als Start-Kennzahl einträgt und triggert den monostabilen Multivibrator über das zweite ODER-Gatter.
Ausführungsbeispiel Im folgenden soll die Erfindung cnhand eines Ausführungsbeispieles näher erläutert werden. Dabei zeigt:
Fig. 1: das Blockschaltbild der Programmabarbeitungsüberwachungslogik und Fig.2: ein Ausführungtbeispiel gemäß Fig. 1.
In Fig. 1 ist neben der erfindungsgemäßen Lösung lediglich der Systembus eines Mikrorechnersystemt dargestellt. Weitere Funktionsgruppen sind dem Fachmann bekannt. Ihre Darstellung ist für das Verständnis der Erfindung nicht notwendig. Das Mikrorachnef system kann vorzugsweise ein Multiprozessorsystern auf der Basis IAPX286 mit einem entsprechenden Systembus sein. Das Erfindungsprinzip ist aber auch in anderen Mikrorechnersystemen realisierbar. Die Profjrammabarbeitungsüberwachungslogik gemäß Fig. 1 besteht aus einem Hammlngkomparator (1), einem modifizierten LIFO-Speichor (2), einem nachtriggorbaren monostabilen Multivibrator (3), einer Steuerung (4) und zwei ODER-Gattern (5) und (6). Die erste Gruppe von η-Eingängen den Hammingkomparators (1) und die n-Dateneingänge des modifizierten LIFO-Speichers (2) sind mit den n-Datenleitungen de» Systembusses (7) verbunden. Die n-Datenausgänge des modifizierten LIFO-Speichers (2) 3hd mit der zweiten Gruppe von η-Eingängen dös Hammingkomparators (1) verbunden. Die Steuereingänge des
Hammingkomparators (1) und des modifizierten UFO-Speichers (2) sind mit den Ausgängen der Steuerung (4) verbunden. Die EingSnge der Steuerung (4) sind mit Adreßleitungen, einem I/O-Write· Kommando und den oben beschriebenen Signalen zur Unterbrechungs- und Reset-Identifikation des Systembusses (7) verbunden. Ein erster Ausgang des Hammingkomparators ist mit einem ersten Eingang des ODER-Gatters (6) verbunden. Der Ausgang des ODER-Gatters (6) ist mit einem Triggereingang des monostabilen Multivibrators (3) verbunden (1). Ein zweiter Ausgang des Hammingkomparators (1) ist mit dem ersten Eingang des ODER-Gatters (5) verbunden. Ein zweiter Eingang des ODER-Gatters (S) ist mit einem negierten Ausgang des monostabilen Multivibrators (3) verbunden. Ein Ausgang des ODER-Gatters (5) bildet das Ausgangssignal zur Fehlermeldung. Voraussetzung für die Funktion der Programmabarbeitungsüberwachungjlogik ist die im Wesen der Erfindung beschriebene Einfügung von l/0-Write-Befehlen, wobei in jedem linearen Programmabschnitt mindestens ein solcher Befehl auftritt. In jedem I/O-Write-Befehl ist eine Kennzahl enthalten. Bei fehlerfreier Programmabarbeitung muß zwischen zwei Kennzahlen immer die Hammingdistanz 1 entstehen.
In Fig.2 ist eine detaillierte Ausführungsform der Programmabarbeitungsüberwachungslogik dargestellt. Ein Multiplexer (12), ein statischer Schreib-Lesespeicher (8) und ein Zähler (9) bilden die Baugruppe UFO-Speicher (2) aus Fig. 1. Ein Steuerwerk (10) und ein Adreßdekoder (11) bilden die Baugruppe Steuerung (4) aus Fig. 1.
Die Programmabarbeitungsüberwachungslogik umfaßt einen Hammingkomparator (1), dessen erste Gruppe von acht Eingängen mit den acht niederwertigen Datenleitungen des Systembusses (7) verbunden ist. Des weiteren umfaßt sie einen achtfachen 1-aus-2-Multiplexer (12), dessen erste Gruppe von acht Eingängen ebenfalls mit den acht niederwertigen Datenleitungen des Systembusses (7) verbunden ist. Die acht Eingänge der zweiten Gruppe des Multiplexers (12) sind mit logisch Null verbunden. Die acht Ausgänge des Multiplexers (12) sind mit den acht Dateneingängen eines statischen 2m χ 8bit Schreib-Lesespeichei-s (8) verbunden. Die acht Datenausgange des Schreib-Lesespeichers (8) sind mit der zweiten Gruppe von acht Eingängen des Hammingkomparators (1) verbunden. Die m Adreßeingänge des Schreib-Lesespeichers (8) sind mit den Ausgängen eines m-bit Binär-Vorwärts-Rückwärts-Zählers (9) verbunden. Der Zähler (9) besitzt einen Rücksetzeingang, der mit einem System-Reset-Signal des Systembusses (7) verbunden ist. Der Hammingkomparator (1) hat ein erstes Ausgangssignal OK, welches mit dem ersten Eingang des ODER-Gatters (6) verbunden ist. Der zweite Eingang des ODER-Gatters (6) ist mit dem System-Reset-Signal verbunden. Der Ausgang des ODER-Gatters (6) ist mit dem Trigger-Eingang des monostabilen Multivibrators (3) verbunden. Dessen negierter Ausgang /Q ist mit dem ersten Eingang des ODER-Gatters (5) verbunden. Der Hammingkomparator (1) hat einen zweiten Ausgang NOK, der mit dem zweiten Eingang des ODER-Gatters (5) verbunden ist. Der Ausgang des ODER-Gatters (5) bildet ein Fehler-Signal ERROR für die zentrale Verarbeitungseinheit. Weiterhin ist das Steuerwerk (10) Bestandteil der Programmabarbeitungsüberwachungslogik. Das Steuerwerk (10) hat einen ersten Eingang, der mit einem I/O-Write-Signal des Systembusses (7), einen zweiten Eingang, der mit einem Interrupt-Acknowledge-Signal des Systembusses (7), einen dritten Eingang, der mit einem NMI-Signal des Systembusses (7), einen vierten Eingang, der mit einem Systembussignal RETURN FROM INT/NMI, einen fünften Eingang, der mit dem Ausgang SELECT eines Adreßdekoders (11) und einen sechsten Eingang der mit dem System-Reset-Signal verbunden ist.
Das Steuerwerk (10) hat einen ersten Ausgang, der mit einem Steuereingang COMPARE des Hammingkomparators (1), einen zweiten Ausgang, der mit einem Write-Enable-Eingang (WE) des Schreib-Lesespeichers (8), einen dritten und vierten Ausgang, der jeweils mit dem zweiten und dritten Eingang (UP, DOWN) des Zählers (9), einen fünften Ausgang, der mit dem Steuereingang MUX des Multiplexers (12) und einen sechsten Ausgang, der mit einer READY-Leitung des Systembusses (7) verbunden ist. Der Adreßdekoder (11) hat 16 Eingänge, die mit den 16 niederwertigen Adreßleitungen des Systembusses (7) verbunden sind. Im folgenden wird die Funktion der erfindungsgemäßen Schaltungsanordnung beschrieben. Hierzu werden fünf Steuerabläufe a) bis e) unterschieden.
Ein aktives System-Reset-Signal triggert mittels Gatter (6) den monostabilen Multivibrator (3), setzt den Zähler (9) auf 0 zurück und flößt im Steuerwerk (10) einen Steuerablauf a) an, in dem zuerst das fünfte Ausgangssignal MUX aktiviert wird, worauf der Multiplexer (12) die zweite Gruppe seiner acht Eingangssignal, die mit logisch Null verbunden sind, auf seine acht Ausgänge legt. Das Steuerwerk (10) aktiviert dann sein zweites Ausgangssignal WE für einen genügend großen Zeitraum, worauf der Schreib-Lesespeicher (8) entsprechend der an seinen m Adreßeingängen empfangenen, vom Zähler (9) gesendeten Adresse 0, die an den acht Dateneingängen gelegenen Daten (0) in seine 8-bit-Speicherzelle 0 übernimmt und diese, wenn WE wieder inaktiv geworden ist, at ι seine acht Datenausgänge legt.
Die zentrale Verarbeitungseinheit sendet der Programmabarbeitungsüberwachungslogik eine Kennzahl, indem sie auf den System-Adreßbus die der Programmabarbeitungsüberwachungslogik zugeordnete I/O-Adresse legt, auf den System-Datenbus die Kennzahl legt und das Steuersignal I/O-Write aktiviert. Der Adreßdekoder (11) identifiziert die I/O-Adresse und aktiviort daraufhin seinen Ausgang SELECT. Das Steuerwerk (10) empfängt das aktive SELECT-Signal an seinem fünften Eingang sowie das aktive Steuersignal I/O-Write und stößt daraufhin einen Steuerablauf b) an. Im Steuerablauf b) wird zuerst der erste Ausgang des Steuerwerks (10) COMPARE aktiviert. Der Hammingkomparator (1) empfängt aktives COMPARE und stellt daraufhin fest, ob die Daten an seiner ersten Gruppe von acht Eingängen, die der aktuellen Kennzahl entsprechen, und die Daten, die an der zweiten Gruppe von acht Eingängen, die der zuletzt übergebenen Kennzahl bzw. durch Interrupt, NMI oder System-Reset geladenen Start-Kennzahl entsprechen, die Hammingdistanz 1 haben. Ist das der Fall, wird sein erstes Ausgangssignal OK aktiv und triggert mittels Gatter (6) den monostabilen Multivibrator (3) nach. Im anderen Fall wird sein zweites Ausgangssignal NOK aktiv und führt über das Gatter (5) zu einem aktiven Signal ERROR, mit dem der überwachten oder anderen zentralen Verarbeitungseinheiten im Mikrorechnersystem mittelbar ein Programmabarbeitungsfehler gemeldet wird, worauf eine Fehlerreaktion (z. B. in Form eines partiellen System-Reset oder/und der Isolation des Moduls mit der fehlerhaften zentralen Verarbeitungseinheit) eingeleitet werden kann. Nachdem das Steuerwerk (10) das erste Ausgangssignal COMPARE wieder Inaktiv geschaltet hat, wird das zweite Ausgangssignal WE für einen ausreichenden Zeitraum aktiviert, worauf der Schreib-Lesespeicher (8) die aktuelle Kennzahl, die der Mul;V-!cv/" (12) vom System-Datenbus empfängt und auf die Dateneingänge des Schreib-Lesespeichers (8) legt In die von Zähler (9) adressierte 8-bit-Speicherzelle übernimmt und bei Inaktivem zweitem Ausgangssignal WE an die acht Datenausgänge legt. Danach aktiviert das Steuerwerk (10) ihr sechstes Ausgangssignal READY und quittiert damit der zentralen Verarbeitungseinheit die Übernahme derl ennzaht.
Der Übergang der zentralen Verarbeitungseinheit zu einer Interruptroutine wird durch eine Interrupt-Acknowledge-Sequenz angekündigt. Dus Steuerwerk (10) erkennt die Interrupt-Acknowledge-Sequenz am aktiven Steuersignal INT-ACKNOWLEDGE des Systembusses (7) und stößt daraufhin Steuerablauf c) an. Im Steuerablauf c) wird zuerst das dritte Ausgangssignal UP des
Steuerwerkes (10) aktiviert und damit der Zähler (9) um 1 inkrementiert. Dann wird das zweite Ausgangssignal WE des Steuerwerkes (10) aktiviert, so daß der 8-biMnterrupwektor vom System-Datenbus in die vom Zähler (9) adressierte Speicherzelle des statischen Schreib-Lesespeichers (8) gespeichert wird. Nach dem Inaktivwerden des Siganls WE legt der Schreib-Lesespeicher den Interruptvektor als Start-Kennzahl an seine Datenausgänge. Erfolgt nun innerhalb der Interruptroutine eine Kennzahlübergabe, erfolgt der Vergleich mit dieser Start-Kennzahl entsprechend Steuerablauf b). Den Aufruf eines NMI erkennt das Steuerwerk (10) durch das Eingangssignal NMI. Wird ein NMI erkannt, wird der Steuerablauf d) angestoßen. Im Steuerablauf d) wird das Signal MUX aktiv, so daß der Multiplexer (12) 0 an die Dateneingänge des Schreib-Lesespeichers (8) legt. Gleichzeitig wird das Signal UP aktiv, wodurch der Zähler (9) inkrementiert wird. Danach wird das Signal WE aktiv. Dadurch wird in die vom Zähler (9) adressierte Speicherzelle des Schreib-Lesespeichers (8) 0 eingeschrieben. Mit inaktivem WE wird 0 an die Datftnausgänge des Schreib-Lesespeichers (8) als Start-Kennzahl für die NMI-Routine gelegt. Den Rücksprung aus einer Interrupt/NMI-Routine erkennt das Steuerwerk (10) am aktiven Eingangssignal RETURN FROM INT/NMI. Dieses Signal kann z. B. durch eine Schaltung generiert werden, die einen zu definierenden I/O-Zyklus der zentralen Verarbeitungseinheit, den diese unmittelbar vor jedem Rücksprung ausführt, erkennt. Oder es kann durch eine Schaltung generiert werden, die die Befehlsholezyklen der zentralen Verarbeitungseinheit beobachtet und Befehlscodes für den Rücksprung aus INT/NMI-Routine erkennt. Wird der Rücksprung erkannt, wird Steuerablaufe) angestoßen. Im Steuerablaufe) wird das Signal DOWN aktiviert und damit der Zähler (9) um 1 dekrementiert. Damit zeigt die Adresse des Zählers (9) auf die Speicherzelle des Schreib-Lesespeichers (8), in dem die vor der INT/NMI-Routine zuletzt übergebene Kennzahl steht. Mit der erfindungsgemäßen Lösung erfolgt, bei entsprechend den Bedingungen des Erfindungsprinzips modifiziertem Programm, eine simultane Überwachung des Programmablaufs, der auch bei Programmverzweigungen oder Interrupts garantiert ist. Damit kann eine schnelle und gezielte FehlerlokaMslerung erfolgen. Die Zuverlässigkeit des Gesamtsystems wird bei geringem zusätzlichem Hardwareaufwand erhöht und ein sicheres Ausfallverhalten, welches insbesondere bei fehlertoleranten Rechnersystemen von Bedeutung ist erreicht.

Claims (3)

1. Schaltungsanordnung zur Programmüberwachung in Mikrorechnersystemen, die einen Systembus aufweisen und deren Programme bestimmte Überwachungsmerkmale beinhalten, gekennzeichnet dadurch, daß der Systembus (7) mit einer ersten Gruppe von Eingängen eines Hammingkomperators (1) und dem Eingang eines LIFO-Speichers (2), dessen Ausgang an einer zweiten Gruppe von Eingängen des Hammingkomparators (1) anliegt, sowie mit dem Eingang einer Steuerung (4) verbunden ist, deren erster Ausgang mit einem weiteren Eingang des LIFO-Speichers (2), deren zweiter Ausgang mit einem dritten Eingeng des Hammingkomparators (1) und deren dritter Ausgang mit einem ODER-Gatter (6) verbunden ist, daß der zweite Eingang des ODER-Gatters (6) weiterhin mit einem ersten Ausgang des Hammingkomparators (1) verbunden ist, daß der Ausgang des ODER-Gatters (6) über einen monostabilen Multivibrator (3) mit dem ersten Eingang eines ODER-Gatters (5) verbunden ist, an dessen zweitem Eingang ein zweiter Ausgang des Hammingkomparators (1) anliegt, und dessen Ausgang zur Abgabe eines Fehlersignales mit dem Systembus (7) verbunden ist, daß in jedem linearen Programmabschnitt mindestens ein I/O-Write-Befehl eingefügt ist, bei dessen Ausführung der erfindungsgemäßen Schaltungsanordnung eine im Programmcode des I/O-Write-Befehls enthaltene beliebige Kennzahl gesendet wird, daß die Kennzahlen so gewählt werden müssen, daß bei fehlerfreier Programmabarbeitung immer zwei zeitlich aufeinanderfolgende Kennzahlen die Hammingdistanz 1 aufweisen, daß in Routinen nichtvektorisierter Interrupts und nach RESET die erste übergebene Kennzahl die Hammingdistanz 1 zu einer festen, durch die erfindungsgemäße Schaltungsanordnung vorgebene Start-Kennzahl aufweisen muß und daß in Routinen vektorisierter Interrupts die erste übergebene Kennzahl die Hammingdistanz 1 zum Interruptsvektor aufweisen muß.
2. Schaltungsanordnung zur Programmüberwachung in Mikrorechnersystemen, die einen Systembus aufweisen und deren Programme bestimmte Überwachungsmerkmale beinhalten, gemäß Punkt 1, gekennzeichnet dadurch, daß der UFO-Speicher (2) derart ausgebildet ist, daß er einen achtfachen 1 -aus-2-Multiplexer (12) aufweist, dessen erste Gruppe von acht Eingängen ebenfalls mit den acht niederwertigen Datenleitungen des Systembusses (7) verbunden ist, daß die acht Eingänge der zweiten Gruppe des Multiplexers (12) mit festen Pegeln und die acht Ausgänge mit den acht Dateneingängen eines statischen 2m x 8bit Schreib-Lesespeichers (8) verbunden sind, dessen acht Datenausgänge mit der zweiten Gruppe von acht Eingängen des Hammingkomparators (1) und dessen m Adreßeingänge mit den Ausgängen eines m-bit Binär-Vorwärts-Rückwärts-Zählers (S) verbunden sind, daß der Zähler (9) je einen mit der Steuerung (4) verbundenen Eingang zum Hochbzw. Herunterzählen sowie einen Rücksetzeingang besitzt, der mit einem System-Reset-Signal des Systembusses (7) verbunden ist.
3. Schaltungsanordnung zur Programmüberwachung in Mikrorechnersystemen, die einen Systembus aufweisen und deren Programme bestimmte Überwachungsmerkmale beinhalten, gemäß Punkt 1, gekennzeichnet dadurch, daß die Steuerung (4) aus einem mit dem Adreßbus verbundenen Adreßdekoder (11) und einem mit seinem Ausgang verbundenen Steuerwerk (10) aufgebaut ist, dessen weitere Eingänge mit dem I/O-Write-Signal, dem Interrupt-Acknowledge-Signal, dem NMI-Signal, dem RETURN FROM INT/NMI-Signol und dem System-Reset-Signal des Systembusses (7) verbunden sind und dessen ersten Ausgang mit einem Steuereingang COMPARE des Hammingkomparators (1), dessen zweiter Ausgang mit einem Write- Enable-Eingang (WE) des Schreib-Lesespeichers (8), dessen dritter und vierter Ausgang jeweils mit dem zweiten und dritten Eingang (UP, DOWN) des Zählers (9), dessen fünfter Ausgang mit dem Steuereingang MUX des Multiplexers (12) und dessen sechster Ausgang mit einer READY-Leitung des Systembusses (7) verbunden ist.
DD31688988A 1988-06-17 1988-06-17 Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen DD273137A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DD31688988A DD273137A1 (de) 1988-06-17 1988-06-17 Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DD31688988A DD273137A1 (de) 1988-06-17 1988-06-17 Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen

Publications (1)

Publication Number Publication Date
DD273137A1 true DD273137A1 (de) 1989-11-01

Family

ID=5600134

Family Applications (1)

Application Number Title Priority Date Filing Date
DD31688988A DD273137A1 (de) 1988-06-17 1988-06-17 Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen

Country Status (1)

Country Link
DD (1) DD273137A1 (de)

Similar Documents

Publication Publication Date Title
DE3206891C2 (de)
EP0238841B1 (de) Fehlergesicherte, hochverfügbare Multiprozessor-Zentralsteuereinheit eines Vermittlungssystemes und Verfahren zum Speicherkonfigurationsbetrieb dieser Zentralsteuereinheit
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE2319753B2 (de) Anordnung zur Datenverarbeitung mittels in Mikroprogrammierung betriebener Prozessoren
DE2350229A1 (de) Datenverarbeitungsanlage, insbesondere als steuereinrichtung fuer fernsprechvermittlungsanlagen
DE2336020B2 (de) Adressen-berechnungsschaltung fuer paritaetsfehler-korrekturprogramme
EP0048991A1 (de) Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung
DE4335061A1 (de) Mehrspeichervorrichtung
EP0141161A2 (de) Schaltungsanordnung zum Erkennen von statischen und dynamischen Fehlern in Schaltungsbaugruppen
EP0151810B1 (de) Verfahren und Schaltungsanordnung zum Prüfen eines Programms in Datenverarbeitungsanlagen
EP1924914B1 (de) Datenverarbeitungssystem und betriebsverfahren dafür
EP1359485A1 (de) Steuer- und Überwachungssystem
EP0353660B1 (de) Verfahren zur Fehlersicherung in Speichersystemen von Datenverarbeitungsanlagen, insbesondere Fernsprechvermittlungsanlagen
DD273137A1 (de) Schaltungsanordnung zur programmueberwachung in mikrorechnersystemen
DE2737350C2 (de) Einrichtung zur Fehlerbehandlung in einer mikroprogrammgesteuerten Datenverarbeitungsanlage
DE102020209228A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
DE2846890A1 (de) Verfahren zur ueberpruefung von speichern mit wahlfreiem zugriff
DE3531901C2 (de)
EP1774417B1 (de) Verfahren und vorrichtung zum überwachen des ablaufs eines steuerprogramms auf einem rechengerät
EP1461701B1 (de) Programmgesteuerte einheit mit überwachungseinrichtung
DE2505475C3 (de) Verfahren und Vorrichtung zur Fehlerprüfung bei einem programmierbaren Logikwerk für die Ausführung logischer Operationen
DE2616186C3 (de) Verfahren zur Prüfung des Speicherteiles einer Steuereinrichtung für eine Vermittlungsanlage, insbesondere Fernsprechvermittlungsanlage
DE3625271C2 (de)
DE2821882A1 (de) Programmsteuereinheit
DE2261211C3 (de) Schaltungsanordnung zur Diagnoseerleichterung in Datenverarbeitungsanlagen

Legal Events

Date Code Title Description
ENJ Ceased due to non-payment of renewal fee