DD273136A1 - CIRCUIT ARRANGEMENT FOR MONITORING PROGRAM BRANCHES IN COMPUTER SYSTEMS - Google Patents
CIRCUIT ARRANGEMENT FOR MONITORING PROGRAM BRANCHES IN COMPUTER SYSTEMS Download PDFInfo
- Publication number
- DD273136A1 DD273136A1 DD31688888A DD31688888A DD273136A1 DD 273136 A1 DD273136 A1 DD 273136A1 DD 31688888 A DD31688888 A DD 31688888A DD 31688888 A DD31688888 A DD 31688888A DD 273136 A1 DD273136 A1 DD 273136A1
- Authority
- DD
- German Democratic Republic
- Prior art keywords
- program
- output
- system bus
- input
- inputs
- Prior art date
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Die Erfindung betrifft eine Schaltungsanordnung zur Ueberwachung von Programmverzweigungen fuer Programme in Rechnersystemen, bei denen eine simultane Ueberwachung notwendig ist. Erfindungsgemaess enthalten die zu ueberwachenden Programme I/O-Write-Befehle, in denen die Anzahl der bis zum naechsten I/O-Write-Befehl zu tolerierenden Programmverzweigungen uebergeben werden. Diese Befehle werden von einer Programmverzweigungsueberwachungsschaltung (PVUeL) ausgewertet. Die Ueberwachung erfolgt durch einen erfindungsgemaess am Systembus 6 angeordneten Adresskomparator 4 und eine Auswerteschaltung 5, die durch eine Steuerung 1 gesteuert werden. Fig. 1The invention relates to a circuit arrangement for the monitoring of program branches for programs in computer systems in which a simultaneous monitoring is necessary. According to the invention, the programs to be monitored contain I / O Write commands, in which the number of program branches to be tolerated until the next I / O Write command is passed. These commands are evaluated by a program branch monitor (PVUeL). The monitoring is carried out by an inventively arranged on the system bus 6 address comparator 4 and an evaluation circuit 5, which are controlled by a controller 1. Fig. 1
Description
Titel der ErfindungTitle of the invention
Schaltungeanordnung zur Überwachung von Programmverzweigungen in RechnersystemenCircuit arrangement for monitoring program branches in computer systems
Anwendungsgebiet der ErfindungField of application of the invention
Die Erfindung betrifft eine Schaltungeanordnung zur Kontrolle der fehlerfreien Programmabarbeitung in Rechnersystemen. Das Anwendungsgebiet sind Rechnersysteme, an die hohe Zuverläßöigkeitßanforderungen gestellt werden oder/und von denen ein sicheres Ausfallverhalten gefordert wird.The invention relates to a circuit arrangement for controlling the error-free program execution in computer systems. The field of application are computer systems to which high reliability requirements are made or / and of which a reliable failure behavior is required.
Charakteristik der bekannten technischen Lösungen Characteristic of the known technical solu conditions
Die Kontrolle der Programmabarbeitung kann wä'hrend der Inbetriebnahme und bei besonders hohen Aliforderungen 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 ökonomiechen Aufwand zu begrenzen. Zur on-line Prograinmüberwachung sind verschiedene technische Möglichkeiten bekannt. Im folgenden werden drei Lösungen vorgestellt.The program processing can be checked during start-up and during particularly high demands even during operation. In the latter case, on-line monitoring is particularly important for fast error detection. The hardware cost is to be kept low in order to exclude other sources of error as possible and to limit the economic effort. For on-line Prograinmüberwachung various technical possibilities are known. In the following three solutions are presented.
Die aus DE-OS 2949827 bekannte technische Lösung wertet von einer Computer-(Mikrocomputer-)Steuerung durch im Programm eingefügte spezielle Befehle abgegebene Signale aus. Im fehlerfreien Eetrieb der Steuerung müssen die Signale zyklisch, innerhalb eines festen Zeitraumes, abgegeben werden. Bleibt das Signal aus, wird von der erfindungagemäßen Schaltung als Fehlerreaktion ein Rücksetzsignal erzeugt, durch welches ein definierter Grundzustand hergestellt wird. Nachteilig bei dieser Lösung ist, daß die zyklische Abgabe des Signals ein unsicheres Kriterium für den fehlerfreien Betrieb ist. Werden zum Beispiel als Folge eines Fehlers fabsehe Programmabschnitte angesprungen, wird das nicht erkannt.The technical solution known from DE-OS 2949827 evaluates signals emitted by a computer (microcomputer) controller by means of special instructions inserted in the program. In error-free operation of the controller, the signals must be output cyclically within a fixed period of time. If the signal remains off, a reset signal is generated by the circuit according to the invention as an error reaction, by means of which a defined ground state is produced. A disadvantage of this solution is that the cyclic delivery of the signal is an uncertain criterion for error-free operation. If, for example, sections of the program are jumped as a result of an error, this is not recognized.
Eine bessere Lösung wird in DE-OS 2821882 beschrieben. DaßA better solution is described in DE-OS 2821882. That
273 ί273 ί
Patent betrifft eine Programmsteuereinheit 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, daß 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üf information nicht mehr verglichen wird.Patent relates to a program control unit for controlling an electromechanical arrangement. In the program to be processed, an output command is inserted at the beginning of the first instruction sequence to be processed, which writes a check information in a memory. Prior to processing each command changing the system state, this check information is compared with a predetermined information. If equal, the command will be executed and in case of inequality a jump will be made. In each sequence of instructions, at least at the end, a command for changing the check information is inserted in a fixed manner. The main drawback of the invention first described does not exist here. Addressing errors can be detected with high probability. The disadvantage, however, is that a relatively high command effort for comparing and changing the check information is required. Likewise, an error is not recognized, which means that the check information is no longer compared.
Eine weiter« Erfindung wird in DE-OS 2533995 beschrieben. Der erf indungegema'ß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üfworteii 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 des PrüfWortes nur die halbe Datenbreite des Übertragungsmediums zur Verfügung steht, wenn zur PrüfWortübertragung nicht mehrere Ubertragungszyklen benutzt werden sollen, was den Befehls- und Zeitaufwand erhöhen würde. Das wäre z.B. bei einem J-Bit--Datenbus als Übertragungsmedium nur 4 bit. Es würden nur 16 verschiedene Prüfworthälften möglich sein, во daß statistisch jeder 16. Fehlor unerkannt bliebe. Weiterhin ißt es nachteilig, daß die Erfindung in Rechnern,A further invention is described in DE-OS 2533995. The erf indungegema'sen monitoring circuit is cyclically passed by the monitored digital computer a two-part test word by inserted into the program commands. The monitoring circuit compares the first part of the current Prüfworteii with the stored second part of the last received check word and then stores the second part of the current PrüfWortes. In case of inequality or within a period t after the last comparison of missing check word transmission, an error message is triggered. In contrast to DE-OS 2821882 the cost of additional commands is low. Due to the time condition, errors are also detected which lead to the result that no more check word is transferred. The disadvantage, on the other hand, is that only half the data width of the transmission medium is available for each part of the test word if a plurality of transmission cycles are not to be used for test word transmission, which would increase the command and time required. That would be e.g. with a J-bit data bus as transmission medium only 4 bits. Only 16 different test halves would be possible, that statistically every 16th mistake would go undetected. Furthermore, it is disadvantageous that the invention can be used in computers,
in denen die Programmabarbeitung durch Unterbrechungsanforderunger. unterbrochen werden kann, nur dann anwendbar ist, wenn die Unterbrechungsroutinen kurz im Verhältnis zum festgelegten Zeitraum t sind. Die Abarbeitung der Unterbrechungsroutinen kann nicht überwacht werden.in which the program execution by interrupt requester. is only applicable if the interrupt routines are short in relation to the specified time t. The execution of the interrupt routines can not be monitored.
Ziel der ErfindungObject of the invention
Ziel der Erfindung ißt es, in Rechnersystemen den Arbeitszeitaufwand zur Fehlersuche zu vermindern und damit die Zuverlässigkeit zu erhöhen und ein sicheres Ausfallverhalten zu unterstützen.The aim of the invention is to reduce the workload for troubleshooting in computer systems and thus to increase the reliability and to support a reliable failure behavior.
Darlegung, des Wesens iler ErfindungDarlegun g, d it being i l e r invention
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zur simultanen Überwachung der Programmabarbeitung in einem Rechnersystem zu entwickeln, wobei der Fehlererkennungegrad mit geringem Hardwareaufwand und geringem Aufwand an zusätzlichen Befehlen erhöht und die Fehlererkennungüzeit und die Fehlerreaktionszeit verringert werden soll.The invention has for its object to develop a circuit arrangement for simultaneous monitoring of program execution in a computer system, the error detection level with low hardware cost and low cost of additional commands increases and the Fehlererkennungüzeit and the error response time should be reduced.
Diese Aufgabe wird erfindungßge.Tiä'ß durch eine Programmverzweigungsüberwachungslogik (PVUL) gelöst, die jeder zentralen Verarbeitungseinheit in einem Rechnersystem, deren Programmabarbeitung überwacht werden soll, im folgenden zentrale Verarbeitungseinheit genannt, zugeordnet ist. Die PrograinmverzweigungsÜberwachungslogik hat eine Schnitteteile zum Systembus, an dem die ihr zugeordnete zentrale Verarbeitungeeinheit temporärer Busmaster sein kann.This object is achieved according to the invention by a program branch monitoring logic (PVUL) which is assigned to each central processing unit in a computer system whose program execution is to be monitored, referred to hereinafter as the central processing unit. The program branch monitor logic has a section to the system bus where its associated central processing unit may be a temporary bus master.
Die SchnittetelIe besteht aus einem I/O-Port mit fester I/O-Adresse aus dom I/O-Raum der zentralen Verarbeitungseinheit. Dem Port kann durch einen I/Q-Write-Zyklue, im folgenden PVUL-Programmierzyklus genannt, ein η-bit Datenwort von der zentralen Ver^rbeitungseinheit über den Datenbus gesendet werden. Vom selben Port kann durch einen T/O-Read-Zyklue die zentrale Verarbeitungseinheit ein η-bit Datenwort über denThe interface consists of an I / O port with a fixed I / O address from the dom I / O space of the central processing unit. An η-bit data word can be sent to the port from the central processing unit via the data bus by means of an I / Q write cycle, referred to below as the PVUL programming cycle. From the same port, the central processing unit can use a T / O read cycle to generate an η-bit data word via the
2 7 3 ί 3 6 2 7 3 ί 3 6
Datenbus lesen. Weiterhin ist die Programmverzweigungs-Uberwachungslogik mit Signalen des Systembusses verbunden, die einen Befehlsholezyklus der zentralen Verarbeitungseinheit und ein System-Reset signalisieren. Die ProgrammabarbeitungsUberwachungslogik besitzt ein Ausgangsßignal zur Fehlermeldung an die überwachte oder an andere zentrale Verarbeitungeeinheiten" im Rechnersystem oder an externe Schnittstellen.Read data bus. Furthermore, the program branch monitoring logic is connected to signals of the system bus which signal a command loop cycle of the central processing unit and a system reset. The program execution monitoring logic has an output error message signal to the monitored or other central processing units in the computer system or to external interfaces.
Intern besteht die Programmverzweigungsüberwachungslogik aus einer Steuerung, einem Addierwerk, einem Register, einem Adreßkomparator und einer Auswerteschaltung und hat den nachfolgend beschriebenen erfindungsgemäßen Aufbau.Internally, the program branch monitoring logic consists of a controller, an adder, a register, an address comparator and an evaluation circuit and has the structure according to the invention described below.
Die erste Gruppe von m Eingängen des Adreßkomparators und die m Eingänge des Addierwerks sind mit den m Adreßleitungen des Systembusses verbunden. Die m Auegänge des Addierwerks sind mit den m Eingängen des Registers verbunden. Die m Aufgänge des Registers sind mit den zweiten m Eingängen c'ieß Adreßkomparators verbunden. Das Ausgangssignal des Adreßkomparators iet mit dem Eingang der Auswerteschaltung verbunden. Die η Datenein-/ausgänge der Auswerteschaltung sind mit den Datenleitungen des Systembusses verbunden. Das Ausgangssignal der Auswerteschaltung ist mit einer Systembusleitung zur Meldung eines Programmverzweigungsfehlers verbunden .The first group of m inputs of the address comparator and the m inputs of the adder are connected to the m address lines of the system bus. The meters of the adder are connected to the m inputs of the register. The m outputs of the register are connected to the second m inputs c 'des address comparator. The output of the Adreßkomparators iet connected to the input of the evaluation circuit. The η data inputs / outputs of the evaluation circuit are connected to the data lines of the system bus. The output signal of the evaluation circuit is connected to a system bus line for reporting a program branch error.
Di« Eingänge der Steuerung sind mit den m Adreßleitungen, den Leitungen für das I/O-Write- und I/O -Read-Kommando, einem Signal für die Gültigerklärung der Adressen und den Signalen zur Identifikation eines Befehlsholezyklus und eines Systemreseta verbunden. Ein erster Ausgang der Steuerung ist mit dem Steuereingong des Addierwerks verbunden, ein zweiter Auegang der Steuerung ist mit dem Steuereingang des Registers verbunden, ein dritter Ausgang der Steuerung ist mit dem Steuereingang des Adreßkomparators verbunden und eine Gruppe von Ausgangssignalen der Steuerung ist mit den Steuereingängen der Auswerteschaltung verbunden.The inputs of the controller are connected to the m address lines, the I / O write and I / O read command lines, an address validation signal, and the command shell identification and system reset signals. A first output of the controller is connected to the control input of the adder, a second output of the controller is connected to the control input of the register, a third output of the controller is connected to the control input of the address comparator and a group of output signals of the controller is connected to the control inputs of the controller Evaluation circuit connected.
Für die Funktion der Programmverzweigungsüberwachungslogik ist es notwendig, in das Programm, das von der zentralenFor the function of the program branch monitoring logic it is necessary to enter the program, that of the central
- β - 273 f- β - 273 f
Verarbeitungeeinheit, deren Programmabarbeitung durch eine Programmverzweigungsüberwachungslogik überwacht werden soll, abgearbeitet wird, spezielle I/O-Write-Befehle, im folgenden PVUL-Programmiorbefehle genannt, einzufügen. Bei der Ausführung eines PVÜL-Programmierbefehls muß der Programmverzweigungsüberwachungslogik von der zentralen Verarbeitungseinheit ein n-bit-Datum übergeben werden. Dieses Datum wird von der Programmversweigungsüberwachungelogik als die Anzahl der bis zum nächsten im von der zentralen Verarbeitungseinheit abgearbeiteten Programm enthaltenen PVÜL-Programmierbefehl zu tolerierenden Verzweigungen , im folgenden zu tolerierende Programmverzweigungen genannt, interpretiert. Vorzugeweise wird von der Programim erzweigungsüberwachungslogik zwischen zwei aufeinanderfolgenden PVUL-Programmierbefehlen genau eine Programmverzweigung toleriert. Zur Verringerung des möglicherweise dabei entstehenden Programmverzweigungsoverheartfi kann, insbesondere bei kleinen Programmschleifen, der ProgrammverzweigungaUberwaehungslogik auch eine größere Anzahl au tolerierender Piogrammverzweigungen mittels PVUL-Programmierbefehl übergeben werden.Processing unit whose program execution is to be monitored by a program branch monitoring logic, is processed to insert special I / O Write commands, hereinafter called PVUL program instructions. When executing a PVUL programming command, the program branch monitoring logic must be passed an n-bit datum from the central processing unit. This data is interpreted by the program forwarder monitoring logic as the number of branches to be tolerated until the next PVÜL program instruction executed by the central processing unit, hereinafter called program branches to be tolerated. Preferably, exactly one program branch is tolerated by the program interrupt control logic between two consecutive PVUL program instructions. In order to reduce the possibly resulting program branchoverheartfi, especially for small program loops, the program branching overflow logic can also be given a larger number of externally tolerable piogram branches by means of the PVUL programming command.
Bei Unterbrechungen der normalen Programmabarbeitung infolge einer Ausnahme (maskierbarer Interrupt, nichtmaskierbarer Interrupt oder Trap) muß mit dem ersten in der Ausnahmebehandlung abgearbeiteten Befehl ein Lesezug.rif auf die Programmverzweigungsüberwachungslogik erfolgen. Durch diesen Lesezugriff wird von der zentralen Verarbeitungseinheit die vor der Unterbrechung der normalen Programmabarboitung aktuelle Anzahl der von der Programmverzweigungsüberwachungslogik au tolerierenden Programmverzweigungen ermittelt. Anschließend ist die Programmverzweigungsüberwachungslogik mittels PVUL-Programmierbefehl so neu zu programmieren, daß zusätzlich zur Anzahl der vor der Unterbrechung der normalen Programmabarbeitung von der Programmverzweigungsüberwachungslogik zu tolerierenden Programmverzweigungen sämtliche innerhalb der Auenahmebehandlungtsroutine auftretenden Programmverzweigungen, einschließlich der infolge der Beendigung der Aimnahmebehandlung und Rückkehr zur normalen Programmabarbeitung auftretenden Programmverzweigung, toleriert werden, sodaß die nach Beendigung der Ausnahmebehandlung von der Programmverzweigungsüberwachungslogik zu tole-In the event of interruptions to the normal program execution due to an exception (maskable interrupt, unmaskable interrupt or trap), a read train must be executed on the program branch monitoring logic with the first instruction executed in the exception handling. Through this read access, the central processing unit determines the number of program branches which are tolerated by the program branch monitoring logic before the interruption of the normal program interruption. Thereafter, the program branch monitor logic is to be reprogrammed by the PVUL program instruction such that all the program branches occurring within the session processing routine, in addition to the number of program branches to be tolerated prior to the interruption of the normal program execution by the program branch monitor logic, including those due to the termination of the Aimnahmebehandlung and return to normal program execution Program branching, so that after completion of the exception handling the program branch monitoring logic
rierende Anzahl von Programmverzweigungen mit der vor der Ausnahmebehandlung zu tolerierenden Anzahl übereinetimmt.number of program branches coincides with the number to be tolerated before exception handling.
Bei Überschreitung der Anzahl der zu tolerierenden Prograrnmverzweigungen wird von der Auswerteechaltung der Prograrnmverzweigungsüberwachungslogik ein internes Fehlersignal generiert, das für die Dauer der Abarbeitung genau eines Befehle gesperrt wird. Erfolgt innerhalb dieser Zeit auf die Programmverzweigungsüberwachungslogik kein Lesezugriff, wird mit dem nächsten Befehlsholezyklus der zentralen Verarbeitungseinheit von der Auswerteschaltung ein Ausgangssignal zur Meldung eines Programmabarbeitungßfehlers an die zentrale Verarbeitungöeinheit erzeugt.If the number of program branches to be tolerated is exceeded, the evaluation branch of the program branch monitoring logic generates an internal error signal which is blocked for the duration of the processing of exactly one instruction. If no read access is made to the program branch monitor logic within this time, an output signal for notifying a program execution error to the central processing unit is generated by the evaluation circuit at the next instruction slave cycle of the central processing unit.
Bei der Abarbeitung eines entsprechend · modifizierten Programmes wird der Programmabarbeltungßüberwachungßlogik mittels PVÜL-Programmierbefehl von der zentralen Verarbeitungseinheit ein η-bit Datum übergeben. Das Datum wird in der Auöwertesuhal bung der Programmverzweigungtsüberwachungß logik gespeichert und als die Anzahl der bis zum nächsten PVUL-Frogrammierbefehl zu tolerierenden Programmverzweigungen interpretiert.. Während der gesamten zu Überwachenden Programmabarbeitung werden von der Programmverzweigungsüberwachungslogik die Adreßleitungen des Systembusses beobachtet. Bei Erkennung eines Befehlsholezyklus der zentralen Verarbeitungseinheit generiert die Steuerung der Programmverzweigungsüberwachungslogik ein Steuersignal für den Adreßkomparator zum Vergleich der dabei von der zentralen Verarbeitungtseinheit generierten Adresse mit einer erwarteten Ad reuse. Bei Nichtübereinstimmung beider Adressen, erzeugt der Adreßkomparator ein Steuersignal für die Auswerteuohaltung. Die bei einem Adreßvergleich erwartete Adresse ii.it im Register der Progr^mmverzweigungsüberwachungslogik geupeichert. Sie wird während des unmittelbar vorangegangenen von der ProgrammverzweigungtsUberwachungslogik beobachteten Befehluholeaykluu der zentralen Verarbeitungeeinheit vom Addierwerk der Programmverzweigungsüberwachungslogik berechnet und im Register gespeichert. Parallel zum Adreßvergleich erzeugt die Steuerung der Programmverzwelgungßüberwachungslogik ein Steuersignal für das Addierwerk zur Berechnung der beim nächsten Befehlßholezyklus der zentralen Verarbeitunge-When processing a correspondingly modified program, the program termination monitoring logic is given an η-bit datum from the central processing unit by means of the PVÜL programming command. The datum is stored in the program branching monitoring logic and interpreted as the number of program branches to be tolerated until the next PVUL programmer command. Throughout the program execution to be monitored, program bus monitoring logic monitors the system bus address lines. Upon detection of a command loop cycle of the central processing unit, the program branch monitor logic controller generates a control signal for the address comparator to compare the address generated thereby by the central processing unit with an expected adreuse. If both addresses do not match, the address comparator generates a control signal for the evaluation re-adjustment. The address ii.it expected in an address comparison is enabled in the register of the program branch monitoring logic. It is computed and stored in the register by the program branch monitor logic adder during the immediately preceding instruction processing cycle of the central processing unit observed by the program branch monitoring logic. In parallel with the address comparison, the control of the program skew monitoring logic generates a control signal for the adder to calculate the next processing cycle of the central processing unit.
2 7 3 1 з 6 2 7 3 1 з 6
einheit von der Programmverzweigungsüberwachungslogik erwarteten Adresse. Dabei wird davon ausgegangen, daß die zentrale Verarbeitungseinheit bei jedem Befehlsholezyklus eine feste Anzahl von Bytes liest. Vorzugsweise können von 16-bit Verarbeitungseinheiten jeweils zwei Byte und von 32-bit Verarbeitungseinheiten jeweils vier Byte pro Befehlsholezyklus gelesen werden. Damit darf sich in einem linearen Programmabschnitt die Adresse der zu lesenden Befehle bzw. Befehlsteile von Befehlsholezyklus zu Befehlshoiezyklus nur in festgelegter Weise verändern. Vorzugsweise darf sich bei 16-bit Verarbeitungseinheiten die Adresse nur in Zweierschritten und bei 32-bit Verarbeitungseinheiten nur in Viererschritten von Befehlsholezyklus zu Befehlsholezyklus erhöhen. Demzufolge berechnet das Addierwerk der Programmverzweigungsüberwachungslogik die bei einem Befehlsholezyklus der zentralen Verarbeitungseinheit erwartete Adresse durch Addieren eines festverdrahteten Inkrementalwertes zu der während des unmittelbar vorangegangenen Befehlsholezyklus der zentralen Verarbeitungseinheit beobachteten Adresse.unit expected address from the program branch monitor logic. It is assumed that the central processing unit reads a fixed number of bytes at every command-cycle. Preferably, two bytes each of 16-bit processing units and four bytes of instruction-byte cycle each of 32-bit processing units can be read. Thus, in a linear program section, the address of the commands or command parts to be read from command slave cycle to command cycle can only change in a defined manner. Preferably, in 16-bit processing units, the address may increase only in increments of two, and in 32-bit processing units, only in increments of four of instruction-to-instruction cycle. As a result, the adder of the program branch monitor logic calculates the address expected at a command-barrel cycle of the central processing unit by adding a hard-wired incremental value to the address observed during the immediately preceding command-half cycle of the central processing unit.
Eine Nichtübereinstimmung der während eines Befehlsholezyklus der zentralen Verarbeitungseinheit von der Programmverzweigungsüberwachungslogik beobachteten mit der erwarteten Adresse wird von der Programmverzweigungsüberwachungslogik als eine Programrnverzweigung interpretiert. Bei Feststellung einer Programmverzweigung wird die in der Auswertesohaltung der ProgrammverzweigungsUberwachungslogik gespeicherte Anzahl zu tolerierender Programmverzweigungen dekrementiert. Bei einer Überschreitung der Anzahl der zu tolerierenden Frogrammverzweigungen wird von der Auswerteschaltung ein internes Fehlersignal generiert. Dieses Signal wird für die Dauer der Abarbeitung eines Befehls durch die zentrale Verarbeitungseinheit von der Auswerteschaltung getort und erst mit Erkennen des nächsten Befehlsholeayklus der zentralen Verarbeitungseinheit gespeichert und als Signal zur Meldung eines Programmabarbeitungsfehlers an die zentrale Verarbeitungseinheit ausgegeben.A mismatch of the expected address observed by the program branch monitor logic during a command-shell cycle of the central processing unit is interpreted by the program branch monitor logic as a program branch. Upon detection of a program branch, the number of program branches to be tolerated stored in the evaluation hold of the program branch monitoring logic is decremented. If the number of frozen branch branches to be tolerated is exceeded, the evaluation circuit generates an internal error signal. This signal is picked up by the evaluation circuit for the duration of execution of a command by the central processing unit and stored only upon detection of the next instruction fetch cycle of the central processing unit and output as a signal for notifying a program execution error to the central processing unit.
Nach einem Systemreset toleriert die Programmverzweigungsüberwachungslogik einen festverdrahteten Initialwert von Programmverzweigungen. Damit toleriert die Programmverzwei-After a system reset, the program branch monitor logic tolerates a hardwired initial value of program branches. Thus the program interruption
2 7 3 f 3 6 2 7 3 f 3 6
gungsüberwachungslogik nach einem Reset automatisch eine feste Anzahl von Programmverzweigungen, ohne daß die zentrale Verarbeitungseinheit zuvor einen PVÜL-Programmierbefehl abarbeiten muß. Vorzugsweise kann nach einem Systemreset genau eine Programmverzweigung toleriert werden.tion control logic after a reset automatically a fixed number of program branches without the central processing unit must previously execute a PVÜL programming command. Preferably, exactly one program branch can be tolerated after a system reset.
Ausführungsbeispielembodiment
Im folgenden soll die Erfindung anhand eines Ausführungsbeispieles näher erläutert werden. Dabei zeigtIn the following the invention will be explained in more detail with reference to an embodiment. It shows
Fig. 1 das Blockschaltbild der Programmverzweigungsüberwachungslogik undFig. 1 is a block diagram of the program branch monitoring logic and
Fig. 2 ein Ausfuhrungsbeispiel gemäß Fig.l.Fig. 2 shows an exemplary embodiment according to Fig.l.
In Fig. 1 ist neben der erfindungsgemäßen Lösung lediglich der Systembus eines Mikrorechnersystems dargestellt. Weitere Funktionsgruppen sind der» Fachmann bekannt. Ihre Darstellung ist für dae Verständnis der Erfindung nicht notwendig. Das Rechnersystem kann vorzugsweise ein Mikroprozessorsystem auf der Basis iAPX 286 mit einem entsprechenden Systembus sein. Das Erfindungsprinzip ist aber auch in anderen Mikrorechner-Systemen realisierbar.In Fig. 1, only the system bus of a microcomputer system is shown in addition to the inventive solution. Further functional groups are known to the person skilled in the art. Their presentation is not necessary for understanding the invention. The computer system may preferably be a microprocessor system based on iAPX 286 with a corresponding system bus. However, the principle of the invention can also be implemented in other microcomputer systems.
Die Programmverzweigungsüberwachungslogik gemäß Fig.l besteht aus einer Steuerung 1, einem Addierwerk 2, einem Register 3, einem Adreßkomparator 4 und einer Auswerteschaltung 5.The program branch monitoring logic according to FIG. 1 consists of a controller 1, an adder 2, a register 3, an address comparator 4 and an evaluation circuit 5.
Die erste Gruppe von m Eingängen des Adreßkomparators 4 und die m Eingänge des Addierwerks 2 sind mit den m Adreßleitungen des Systembusses 6 verbunden. Die m Ausgänge des Addierwerke 2 sind mit den m Eingängen des Registers 3 verbunden. Die m Ausgänge de6 Registers 3 sind mit den zweiten m Eingängen des Adreßkomparators 4 verbunden. Das Ausgangssignal des Adreßkomparators 4 ist mit dem Eingang der Auswerteachaltung 5 verbunden. Die η Datenein-Zausgänge der Auswerteschaltung 5 sind mit den Datenleitungen des Systembusses 6 verbunden. Das Ausgangssignal der Auswerteschaltung 5 ist mit einer Systembusleitung zur Meldung eines Programmver-The first group of m inputs of the address comparator 4 and the m inputs of the adder 2 are connected to the m address lines of the system bus 6. The m outputs of the adder 2 are connected to the m inputs of the register 3. The m outputs de6 register 3 are connected to the second m inputs of the address comparator 4. The output of the Adreßkomparators 4 is connected to the input of Auswerteachaltung 5. The η data inputs of the evaluation circuit 5 are connected to the data lines of the system bus 6. The output signal of the evaluation circuit 5 is connected to a system bus line for signaling a program
-"»- 2 7313- "- 2 7313
zweigungsfehlers verbunden.branching error connected.
Die Eingänge der Steuerung 1 sind mit den m Adreßleitungen, den Leitungen für das I/O-Write- und I/O-Read-Kommando, einem Signal für die Gültigerklärung der Adressen und den Signalen zur Identifikation eines Befehlsholezyklus und eines Systemresets verbunden. Ein erster Ausgang der Steuerung 1 ist mit dem Steuereingang des Addierwerks 2 verbunden, ein zweiter Ausgang der Steuerung 1 ist mit dem Steuereingang des Registers 3 verbunden, ein dritter Ausgang der Steuerung 1 ist mit dem Steuereingang des Adreßkomparators 4 verbunden und eine Gruppe von Ausgangssignalen der Steuerung 1 ist mit den Steuereingängen der Auswerteschaltung 5 verbunden.The inputs of the controller 1 are connected to the m address lines, the lines for the I / O write and I / O read commands, an address validation signal, and the command loop cycle identification and system reset signals. A first output of the controller 1 is connected to the control input of the adder 2, a second output of the controller 1 is connected to the control input of the register 3, a third output of the controller 1 is connected to the control input of the Adreßkomparators 4 and a group of output signals Control 1 is connected to the control inputs of the evaluation circuit 5.
Voraussetzung für die Funktion der Programmverzweigungsüberwächungslogik ist die im Wesen der Erfindung beschriebene Einfügung von PVÜL-Programmierbefehlen in das von der zu überwachenden zentralen Verarbeitungseinheit abzuarbeitende Programm. Jeder PVÜL-Programmierbefehl enthält die Anzahl der von der Programmverzweigungsüberwachungslogik während der Programmabarbeitung zu tolerierenden Programmverzweigungen. Bei fehlerfreier Programmabarbeitung darf die von der Programmversweigungsüberwachungslogik zwischen zwei PVÜL-Programmierzyklen beobachtete Anzahl von Programmverzweigungen nie die programmierte Anzahl der zu tolerierenden Programmverzweigungen überschreiten.The prerequisite for the function of the program branch monitoring logic is the insertion of PVÜL programming commands described in the essence of the invention into the program to be processed by the central processing unit to be monitored. Each PVUL program instruction contains the number of program branches to be tolerated by the program branch monitor logic during program execution. With error-free program execution, the number of program branches observed by the program word wait logic between two PVÜL programming cycles must never exceed the programmed number of program branches to be tolerated.
In Fig. 2 ist eine detaillierte Ausführungsform der Programmverzweigungsüberwachungslogik dargestellt. Ein achtfacher 1 aus 2 Multiplexer 10, ein 8-bit Vorwärts-/Rückwärtszähler 11, ein 8-bit Datentreiber 12, ein Flipflop 13 und ein Festwertspeicher 14 bilden die Baugruppe Auswerteschaltung 5 aus Fig. 1. Ein Steuerwerk 7, ein Statusdekoder 8 und ein Adreßdekoder 9 bilden die Baugruppe Steuerung 1 aus Fig. 1.2, a detailed embodiment of the program branch monitoring logic is shown. An eightfold 1 out of 2 multiplexer 10, an 8-bit forward / backward counter 11, an 8-bit data driver 12, a flip-flop 13 and a read-only memory 14 form the module evaluation circuit 5 of Fig. 1. A control unit 7, a status decoder 8 and an address decoder 9 form the module controller 1 of FIG. 1.
Die Programmverzweigungsüberwachungslogik umfaßt einen Adreßkomparator 4, dessen erste Gruppe von 24 Eingängen mit den 24 Adreßleitungen des Systembusses 6 verbunden ist. Desweiteren umfaßt sie ein Addierwerk 2 dessen 24 EingängeThe program branch monitoring logic comprises an address comparator 4 whose first group of 24 inputs is connected to the 24 address lines of the system bus 6. Furthermore, it includes an adder 2 whose 24 inputs
273 ί273 ί
ebenfalls mit den 24 Adreßleitungen des Systembusses 6 verbunden sind. Die 24 Ausgänge des Addierwerkes 2 sind mit den 24 Eingängen des Registers 3 verbunden. Die 24 Ausgänge des Registers 3 sind mit der zweiten Gruppe von 24 Eingängen des Adreßkomparators 4 verbunden. Der Adreßkomparator 4 hat einen Ausgang MISMATCH, der mit dem Eingang für den Rückwärtszähltakt des Vorwärts-/Rückwärtsaählers 11 verbunden ist. Die acht Ausgänge des Speichers 14 sind mit den ersten acht Eingängen des Multiplexers 10 verbunden. Die zweiten acht Eingänge des Multiplexers 10 sind mit den acht niederwertigen Datenleitungen des Systembusses 6 verbunden. Die acht Ausgänge des Multiplexers 10 sind mit den acht Dateneingängen des Vorwärts-ZRückwärtszählers 11 verbunden. Die acht Datenausgänge des Vorwärts-ZRückwärtszählers 11 sind mit den acht Dateneingängen des Datentreibers 12 verbunden. Die acht Ausgänge des Datentreibers 12 sind mit den acht niederwertigen Datenleitungen des Systembusses 6 verbunden.are also connected to the 24 address lines of the system bus 6. The 24 outputs of the adder 2 are connected to the 24 inputs of the register 3. The 24 outputs of the register 3 are connected to the second group of 24 inputs of the address comparator 4. The address comparator 4 has an output MISMATCH connected to the input for the count-down count of the forward / backward counter 11. The eight outputs of the memory 14 are connected to the first eight inputs of the multiplexer 10. The second eight inputs of the multiplexer 10 are connected to the eight low-order data lines of the system bus 6. The eight outputs of the multiplexer 10 are connected to the eight data inputs of the forward Z backward counter 11. The eight data outputs of the forward Z backward counter 11 are connected to the eight data inputs of the data driver 12. The eight outputs of the data driver 12 are connected to the eight low-order data lines of the system bus 6.
Das Signal RESET des Systembusses 6 ist mit dem ersten Steuereingang des Steuerwerks 7 verbunden. Die vier Eingänge des Statusdekoders 8 sind mit den Signalen /S0, /Sl, M/10 und COD/INTA des Systembusses 6 verbunden. Der Ausgang FETCH des Statusdekoders 8 steht mit dem zweiten Eingang des Steuerwerks 7 und dem Takteingang des Flipflops 13 in Verbindung. Der dritte bis fünfte Eingang des Steuerwerks 7 ist mit den Signalen IZC-READ, I/O-WRITE und ADDRESS-LATCH-ENABLE des Systembusses 6 verbunden. Die 16 Eingänge des Adreßdekoders 9 sind mit den 16 niederwertigen Adreßleitungen des Systembusses 6 verbunden. Der Ausgang CS des Adreßdekoders 9 liegt am sechsten Eingang des Steuerwerks 7 an. Der Ausgang WRITE des Steuerwerks 7 ist mit dem Setzeingang des Vorwärts-ZRückwärtszählers 11 verbunden. Der Rücksetzeingang des Vorwärts-ZRückwärtszählers 11 ist statisch auf Massepotential gelegt und damit inaktiv. Der Ausgang READ des Steuerwerks 7 ist mit dem Eingang für den Vorwärtszähltakt des Vorwärts-ZRückwärtszählers 11 und dem Steuereingang OE des Datentreibers 12 verbunden. Der Ausgang COMPARE des Steuerwerks 7 ist mit dem Steuereingang des Ädreßkomparators 4, der Ausgang STORE des Steuerwerks 7 mit dem ersten Steuereingang des Registers 3, der Ausgang LOAD des Steuerwerks 7 mit dem zweiten Steuereingang des Registers 3 undThe signal RESET of the system bus 6 is connected to the first control input of the control unit 7. The four inputs of the status decoder 8 are connected to the signals / S0, / Sl, M / 10 and COD / INTA of the system bus 6. The output FETCH of the status decoder 8 is connected to the second input of the control unit 7 and the clock input of the flip-flop 13 in connection. The third to fifth input of the control unit 7 is connected to the signals IZC-READ, I / O-WRITE and ADDRESS-LATCH-ENABLE of the system bus 6. The 16 inputs of the address decoder 9 are connected to the 16 low-order address lines of the system bus 6. The output CS of the address decoder 9 is applied to the sixth input of the control unit 7. The output WRITE of the control unit 7 is connected to the set input of the forward Z backward counter 11. The reset input of the forward Z backward counter 11 is statically set to ground potential and thus inactive. The output READ of the control unit 7 is connected to the input for the count-up clock of the forward-Z backward counter 11 and the control input OE of the data driver 12. The output COMPARE of the control unit 7 is connected to the control input of the Aßßcomparators 4, the output STORE of the control unit 7 with the first control input of the register 3, the output LOAD of the control unit 7 with the second control input of the register 3 and
12 - 2 7 Я ί з 6 12 - 2 7 Я ί з 6
dem Steuereingang des Multiplexers 10 und der Ausgang ADD des Steuerwerks 7 mit dem Steuereingang des Addierwerks 2 verbunden. Der Ausgang UR des Vorwärts-VRilckwärtszählers 11 ist mit dem Dateneingang des Flipflops 13 verbunden. Der Setz- und der RUcksetzeingang des Flipflops 13 liegen statisch auf High-Potential +5V und sind damit inaktiv. Der Ausgang /Q des Flipflop 13 bildet ein Fehlersignal ERROR und ist mit einer Leibung des Systembusses 6 zur Meldung eines Fehlers bei der Programmabarbeitung an die zentrale Verarbeitungseinheit verbunden.the control input of the multiplexer 10 and the output ADD of the control unit 7 connected to the control input of the adder 2. The output UR of the forward VR count-down counter 11 is connected to the data input of the flip-flop 13. The set and the reset input of the flip-flop 13 are static at high potential + 5V and are therefore inactive. The output / Q of the flip-flop 13 forms an error signal ERROR and is connected to a sear of the system bus 6 for notifying an error in the program execution to the central processing unit.
Im folgenden wird die Funktion der erfindungsgemäßen Schaltungsanordnung beschrieben. Hierzu werden fünf Steuerabläufe a) bis e) unterschieden.In the following the function of the circuit arrangement according to the invention will be described. For this purpose, five control processes a) to e) are distinguished.
Ein aktives Signal RESET stößt im Steuerwerk 7 einen Steuerablauf a) an, in dem zuerst der Ausgang LOAD aktiviert wird. Durch das aktive Signal LOAD wird das Register 3 mit der Startadresse, ab der die zentrale Verarbeitungseinheit mit der Programmabarbeitung nach einem Reset beginnt, initialisiert. Gleichzeitig schaltet der Multiplexer 10 bei aktivem Signal LOAD die erste Gruppe von acht Eingängen, dir* mit den acht Ausgängen des Speichers 14 verbunden sind, auf seine acht Ausgänge. Anschließend aktiviert das Steuerwerk 7 den Ausgang WRITE und damit den Setzeingang des Vorwärts-/Rückwärtezählers 11, wodurch ein im Speicher 14 gespeicherter Ibitialwert ale die unmittelbar nach dem Reset von der Programmverzweigungßüberwachungslogik zu tolerierende Anzahl von Programmverzweigungen in den Vorwärts-/Rückwärtßzä)ilers 11 geladen wird. Mit inaktiv werden des Signals RESET deaktiviert das Steuerwerk 7 zuerst den Ausgang WRITE und dann den Ausgang LOAD. Bei inaktivem Signal LOAD schaltet der Multiplexer die aweite Gruppe von acht Einsängen, die mit den niederwertigen acht Datenleitungen des Systembusses 6 verbunden ist, auf seine acht Ausgänge. Somit sind die acht Dateneingänge des Vurwart8-/Ruckv.'artszahlers 11 nach jedem Reeet ständig mit den acht niederwertigen Datenleitungen dee Systembusses 6 verbunden. Vorzugsweise kann der Initialwert für die nach * einem Reset zu tolerierende Anzahl von Programmverzwe.igungen gleich Eine nein. Damit ißt die zentrale Verarbeitungseinheit in der Lage, nach einem ResetAn active signal RESET triggers a control process a) in the control unit 7, in which first the output LOAD is activated. The active signal LOAD initializes register 3 with the starting address at which the central processing unit starts program execution after a reset. At the same time, with the LOAD signal active, the multiplexer 10 switches the first group of eight inputs connected to the eight outputs of the memory 14 to its eight outputs. Subsequently, the control unit 7 activates the output WRITE and thus the set input of the forward / backward counter 11, whereby an ibitial value ale stored in the memory 14 loads the number of program branches in the forward / backward filter 11 to be tolerated immediately after the reset by the program branching monitoring logic becomes. When the signal RESET becomes inactive, the control unit 7 first deactivates the output WRITE and then the output LOAD. When the signal LOAD is inactive, the multiplexer switches the second group of eight inputs connected to the low order eight data lines of system bus 6 to its eight outputs. Thus, the eight data inputs of the Vurwart8 / Ruckv.'artszahlers 11 are always connected to the eight low-order data lines dee system bus 6 after each Reeet. Preferably, the initial value for the number of program branches to be tolerated after a reset can be equal to A no. Thus, the central processing unit eats in a position after a reset
2 7 Ή 32 7 Ή 3
eine Programmverzweigung durchzuführen, ohne vorher die Programmverüweigungsüberwachungslogik programmieren zu müssen.perform a program branch without first having to program the program tamper monitoring logic.
Vor allen folgenden frogrammverzweigungen muß die zentrale Verarbeitungseinheit der Programmverzweigungsüberwachungslogik ein η-bit Datum senden, indem sie auf den Syßtem-Adreßbus die der Programmverzweigungsüberwachungslogik zugeordnete I/O-Adreese und auf den System-Datenbus das η-bit Datum legt und das Steuersignal I/O-WRITE aktiviert. Der Adressdekoder 0 identifiziert die I/O-Adreese und aktiviert darauf Iiin seinen Ausgang CS. Das Steuerwerk 7 empfängt das aktive Signal CS sowie das aktive Steuersignal I/O-WRITE und stößt daraufhin einen Steuerablauf b, an. Im Steuerablauf b) wird zuerst das Steuersignal WRITE generiert. Das Steuersignal WRITE aktiviert wieder den Setzeingang des Vorwä'rts-/Rückwärtszählers 11 , welcher daraufhin das auf den niederwertigen acht Datenleitungen des Systembusses stehende Datum liest und ale die Anzahl der bis zum nächsten PVUL-Programmierzykluii su tolerierenden Programmverzweigungen speichert. Hit inaktiv werden des Systembussignals I/O-WRITE deaktiviert dae Steuerwerk da6 Signal WRITE und beendet damit den PVUL-Programmierzyklus.Prior to all subsequent program branches, the central processing unit of the program branch monitor logic must send an η-bit datum by placing the I / O address assigned to the program branch monitor logic on the system address bus and the η-bit datum on the system databus and the control signal I / O-WRITE activated. The address decoder 0 identifies the I / O address and then activates Ii in its output CS. The control unit 7 receives the active signal CS and the active control signal I / O-WRITE and then initiates a control process b, on. In the control sequence b) the control signal WRITE is generated first. The control signal WRITE again activates the set input of the forward / backward counter 11, which then reads the datum on the low-order eight data lines of the system bus and stores the number of program branches tolerating the next PVUL programming cycle. If the system bus signal I / O-WRITE becomes inactive, the control unit deactivates signal WRITE and thus ends the PVUL programming cycle.
Dekodiert der Statußdekoder 8 aus den vier Systembussignalen /S0, /Sl, M/10 und COD/INTA einen Befehlsholezyklus der zentralen Verarbeitungseinheit, generiert er das Signal FETCH. Daraufhin stößt das Steuerwerk 7 einen Steuerablauf c) an. Im Steuerablauf c) werden zeitgleich die Auegangssignale COMPARE und ADD des Steuerwerkes 7 aktiviert. Bei aktivem Signal COMPARE führt der Adreßkomparator 4 einen Vergleich der beim Befehlsholezyklus von der zentralen Verarbeitungseinheit auf den Adreßbus des Systembusses 6 gelegten Adresse mit der erwarteten und im Register 3 gespeicherten Adresse durch. Bei Nichtübereinstimmung beider Adressen generiert der Komparator 4 das Signal MISMATCH. Parallel dazu berechnet das Addierwerk 2 mit Erkennen des aktiven Signals ADD durch Addition des Inkrementaiwertes Zwei zur auf dem Adreßbus des Systembußsee 6 liegenden Adreeße die nächste von der ProgrammverzweigungsUberwachungslogik bei einem Befehlsholezyklus der zentralen VerarbeitungeeinheitIf the status decoder 8 decodes from the four system bus signals / S0, / Sl, M / 10 and COD / INTA a command loop cycle of the central processing unit, it generates the signal FETCH. Thereupon, the control unit 7 abuts a control process c). In the control process c) the external signals COMPARE and ADD of the control unit 7 are activated at the same time. When the signal COMPARE is active, the address comparator 4 performs a comparison of the address placed in the instruction bus cycle from the central processing unit on the address bus of the system bus 6 with the expected address stored in the register 3. If both addresses do not match, the comparator 4 generates the signal MISMATCH. In parallel with this, the adder 2 calculates the next of the program branching control logic at a command-key cycle of the central processing unit by detecting the incremental value Two to the address located on the address bus of the system bus 6 by detecting the active signal ADD
erwartete Adresse. Mit inaktiv werden des Signals FETCH deaktiviert das Steuerwerk 7 die Signale COMPARE und ADD und generiert das Signal STORE, womit das Register 3 die an den Ausgängen des Addierwerks 2 stehende und von diesem berechnete als nächstes während eines Befehlsholezyklus der zentralen Verarbeitungßeinheit zu erwartende Adresse speichert. Wurde vom Komparator 4 das Signal MISMATCH erzeugt, wird durch die High-Low-Flanke dieses Signalb der RUckwörtszähleingang des Vorwärts-y/Rückwärtszählers 11 getaktet und damit die in diesem Zähler gespeicherte Anzahl zu tolerierender Programmverzweigungen dekrementiert. Mit inaktiv werden des Steuersignals COMPARE wird auch das Signal MISMATCH vom Adreßkomparator 4 deaktiviert. Bei einer Überschreitung der von der Programmverzweigungsüberwachungslogik zu tolerierenden Piogrammverzweigungen, wird der Ausgang ÜR des Vorwärts~/Rückwärtszählers 11 aktiviert. Dieses Ausgangesignal «teilt ein internes Fehlersignal dar. Mit Erkennen des nächsten Befehlsholezyklus der zentralen Verarbeitungseinheit durch den Statusdekoder 8 wird erneut das Signal FETCH aktiviert. Die High-Low-Flanke dieses Signals bewirkt die Speicherung des Zustande des Ausgangs UR des Vorwärts/RUckwärtezähler« 11 im Flipflop 13 und die Generierung des Signals ERROR durch das Flipflop 13 zur Meldung eineß Fehlers in der Programmabarbeitung an die zentrale Verarbeitungßeinheit .expected address. When the signal FETCH becomes inactive, the control unit 7 deactivates the signals COMPARE and ADD and generates the signal STORE, whereby the register 3 stores the address to be expected next to and calculated at the outputs of the adder 2 next during a command processing cycle of the central processing unit. If the signal MISMATCH has been generated by the comparator 4, the high-low edge of this signal b causes the backward counting input of the forward-y / backward counter 11 to be clocked, thereby decrementing the number of program branches to be tolerated in this counter. When the control signal COMPARE is inactive, the signal MISMATCH is also deactivated by the address comparator 4. If the piogram branches to be tolerated by the program branch monitoring logic are exceeded, the output UR of the forward / backward counter 11 is activated. This output signal "indicates an internal error signal. Upon detection of the next command loop cycle of the central processing unit by the status decoder 8, the signal FETCH is activated again. The high-low edge of this signal causes the state of the output UR of the forward / backward counter 11 in the flip-flop 13 to be stored, and the generation of the ERROR signal by the flip-flop 13 to indicate an error in the program execution to the central processing unit.
Wurde eine Programmverzweigung durch den Sprung zu einer Auenahmebehandlungsroutine verursacht, muß der erste in dieser Routine abgearbeitete Befehl ein I/O-READ-Befehl zur Ermittlung der von der Programmverzweigungsüberwachungslogik vor der Ausnahmebehandlung tolerierten Anzahl von Programmverzweigungen sein, um die Generierung des Signals ERROR zur Meldung eines Programmabarbeitungöfenlere an die zentrale Verarbeitungßeinheit zu verhindern. Dies erfolgt, indem die zentrale Verarbeitungseinheit auf den System-Adreßbus die der Programrnverzweigungsüberwaohungslogik zugeordnete 1/0-Adressö legt und das Steuersignal I/O-READ aktiviert. Der Adreüsdekodcr ΰ identifiziert die I/O-AdreRse und aktiviert daraufhin seilten Ausgang CS. Das Steuerwerk 7 empfängt das aktive Signal CS sowie das aktive Steuer digtial I/O-READ und stößt daraufhin einen Steuerablauf d) an. Im Steuerablauf d)If a program branch has been caused by the jump to an exception handling routine, the first instruction executed in this routine must be an I / O READ instruction to determine the number of program branches tolerated by the program branch monitor logic before exception handling to generate the ERROR signal for the message a program processing to prevent the central processing unit. This is done by the central processing unit placing on the system address bus the 1/0-address associated with the program cross-over logic and activating the control signal I / O-READ. The address decoder ΰ identifies the I / O address and then activates output CS. The control unit 7 receives the active signal CS and the active control digtial I / O-READ and then initiates a control process d). In the control process d)
273 fз«273 fz «
wird zuerst daß Steuerßignal READ generiert. Die Low-High-Flanke dieses Signals taktet den Vorwärtszähleingang des Vorwärts/RUci'wärtszählers 11. Dadurch wird die vor der Verzweigung 2ur Ausnahmebehandlungsroutine von der ProgrammverzweigungeUberwachungelogik tolerierte Anzal1 von Programmverzweigungen wiederhergestellt. Gleichzeitig wird ein möglicherweise infolge der Verzweigung zur Ausnahmebehandlungsroutine erkannter Programmverzweigungsfehler annuliert, indem der Auegang ÜR des Vorwärts/Rückwärtszählers 11 durch die Inkrementierung desselben wieder deaktiviert wird, sodaß vom Flipflop 13 mit Erkennen des nächsten Befehlsholezyklus ein inaktives internes Fehlersignal gespeichert wird. Parallel dazu wird durch das aktive Signal READ der Datentreiber 12 geöffnet und die Datenausgänge des Vorwärts/Rückwärtszählers 11 auf die niederwertigen ach4 Datenleitungen des Systembusses 6 gelegt. Mit inaktiv werden des Systembussignals I/O-READ wird auch das Steuersignal READ vom Steuerwerk 7 deaktiviert und somit der Datentreiber 12 wieder gesperrt.First, the control signal READ is generated. The low-high edge of this signal clocks the up-count input of the forward / reverse counter 11. This restores the number of program branches tolerated prior to branching to the exception handler by the program branch monitor logic. At the same time, a program branch error possibly detected as a result of branching to the exception handler is canceled by deactivating the outer UR of the up / down counter 11 by incrementing it so that an inactive internal error signal is stored by the flip-flop 13 upon detection of the next command summer cycle. In parallel, the data driver 12 is opened by the active signal READ and the data outputs of the forward / backward counter 11 are applied to the low-order ah 4 data lines of the system bus 6. When the system bus signal I / O-READ becomes inactive, the control signal READ is also deactivated by the control unit 7 and thus the data driver 12 is disabled again.
Mit der erfindungßgemäßen Lösung erfolgt, bei entsprechend den Bedingungen des Erfindungsprinzips modifiziertem Programm, eine simultane Überwachung des Programmablaufs, die auch bei Unterbrechungen des normalen Programmablaufs durch Ausnahmen wie Interrupts oder Traps garantiert ist. Damit kann eine schnelle und gezielte Fehlerlokal.isierung erfolgen. Die Zuverlässigkeit des Gesamtsystems wird bei geringem zusatzlichen Hardwareaufwand erhöht und ein sicheres Ausfallverhalten, welches insbesondere h^i fehlertoleranten Rechnersystemen von Bedeutung ist, erreicht.With the solution according to the invention, if the program is modified according to the conditions of the inventive principle, simultaneous monitoring of the program sequence is guaranteed, which is guaranteed even in the case of interruptions of the normal program sequence by exceptions such as interrupts or traps. This can be done quickly and targeted Fehlerlokal.isierung. The reliability of the overall system is increased with little additional hardware expenditure and a safe failure behavior, which in particular h ^ i fault-tolerant computer systems of importance, achieved.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DD31688888A DD273136A1 (en) | 1988-06-17 | 1988-06-17 | CIRCUIT ARRANGEMENT FOR MONITORING PROGRAM BRANCHES IN COMPUTER SYSTEMS |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DD31688888A DD273136A1 (en) | 1988-06-17 | 1988-06-17 | CIRCUIT ARRANGEMENT FOR MONITORING PROGRAM BRANCHES IN COMPUTER SYSTEMS |
Publications (1)
Publication Number | Publication Date |
---|---|
DD273136A1 true DD273136A1 (en) | 1989-11-01 |
Family
ID=5600133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DD31688888A DD273136A1 (en) | 1988-06-17 | 1988-06-17 | CIRCUIT ARRANGEMENT FOR MONITORING PROGRAM BRANCHES IN COMPUTER SYSTEMS |
Country Status (1)
Country | Link |
---|---|
DD (1) | DD273136A1 (en) |
-
1988
- 1988-06-17 DD DD31688888A patent/DD273136A1/en not_active IP Right Cessation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1810145B1 (en) | Method and device for synchronising in a multi-processor system | |
EP1917592B1 (en) | Computer system with at least two execution units and a comparison unit and method for controlling the same | |
DE4220723C2 (en) | Circuit for detecting an error in a microcomputer | |
DE69030931T2 (en) | Multiple sequence processor system | |
DE2806024A1 (en) | STORAGE SYSTEM WITH ERROR DETECTION AND CORRECTION POSSIBILITY | |
EP1794680A1 (en) | Method for running a computer program on a computer system | |
EP0104635A2 (en) | Digital computer test method and configuration | |
DE102006005817A1 (en) | Error detection device for e.g. address decoder, has comparing unit to output signal based on comparison of input and regenerated addresses, where signal displays error during conversion, when input and regenerated addresses do not coincide | |
WO2006032585A1 (en) | Method for executing a computer program on a computer system | |
DE102005054587A1 (en) | Program controlled unit and method of operating the same | |
DE102006062703A1 (en) | Error detection device and method for error detection for a command decoder | |
DE102008024193A1 (en) | Data or signals processing method for brake booster in motor vehicle, involves applying set of functional units to data or signals, programming and/or configuring of one of functional units and programming and/or configuring of matrix | |
EP1398701A1 (en) | Method for synchronizing events, in particular for fault-tolerant systems | |
EP1618476A2 (en) | Program-controlled unit and method | |
DE102013021231A1 (en) | Method for operating an assistance system of a vehicle and vehicle control unit | |
DD273136A1 (en) | CIRCUIT ARRANGEMENT FOR MONITORING PROGRAM BRANCHES IN COMPUTER SYSTEMS | |
DE102004051991A1 (en) | Method, operating system and computing device for executing a computer program | |
DE2161994A1 (en) | Error detection circuit in a data processing system | |
DE10028064B4 (en) | Computer system with ROM correction units | |
DE102015211458A1 (en) | A method and apparatus for securing a program counter structure of a processor system and for monitoring the handling of an interrupt request | |
DE102005037245A1 (en) | Method and device for controlling a computer system with at least two execution units | |
DE102009009730B4 (en) | Local timer cell its use and method of operating a module | |
EP0480095B1 (en) | Instruction fetch apparatus in a microprocessor | |
DE102010031017A1 (en) | Program flow monitoring method for e.g. microprocessor utilized in technical application, involves dividing program into atomic units and modifying signature using modification points utilized for hopping in program flow | |
DE3644248C2 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENJ | Ceased due to non-payment of renewal fee |