EP3311273A1 - Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage - Google Patents

Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage

Info

Publication number
EP3311273A1
EP3311273A1 EP16721152.3A EP16721152A EP3311273A1 EP 3311273 A1 EP3311273 A1 EP 3311273A1 EP 16721152 A EP16721152 A EP 16721152A EP 3311273 A1 EP3311273 A1 EP 3311273A1
Authority
EP
European Patent Office
Prior art keywords
address
program counter
interrupt
interrupt request
counter structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP16721152.3A
Other languages
English (en)
French (fr)
Inventor
Alexander Emperle
Jo Pletinckx
Jan Scheuing
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of EP3311273A1 publication Critical patent/EP3311273A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Definitions

  • the invention is based on a device or a method according to the preamble of the independent claims.
  • the subject of the present invention is also a computer program.
  • ISR interrupt service interrupt routine
  • WO 2013 136 114 AI describes a system which allows the monitoring of occurring interrupts or their correct processing by an interrupt controller (ICO).
  • ICO interrupt controller
  • Processor processed address to be detected, whether or not there is an error. Correctness can be compared with a comparison
  • Reference address are shown because the memory location is known at which the address of the interrupt routine, the so-called interrupt vector, or the interrupt routine itself is deposited.
  • a method for securing a program counter structure of a processor system in the event of an interrupt request is presented, wherein the processor system comprises at least the program counter structure, a
  • An interrupt controller and a memory wherein the interrupt controller is configured to provide an address associated with the interrupt request to the program counter structure in response to the interrupt request, and wherein the
  • Program counter structure is adapted to an address via a
  • Memory interface to the memory comprising the following steps:
  • the address described above may be the address at which the interrupt vector, the start address of an interrupt routine, or else also the interrupt routine itself is stored. The former will
  • interrupt vector tables typically required when using interrupt vector tables, such that this address is within the range of the interrupt vector table.
  • address is spoken, although both the address of the interrupt routine and the address of the interrupt vector itself can be used. Of importance is in each case the address applied to the memory, which is used for checking.
  • an address can already be read from the memory interface and compared in the step of the comparison before or during the execution of the first instruction of an interrupt routine.
  • a successful start of processing the interrupt request may be signaled using the match signal. This serves to secure the program counter structure, since the correct initiation of the interrupt request belonging
  • Interrupt routine can be checked. This can also be used to monitor the handling of interrupt requests. For example, to monitor compliance with the priority of these interrupt requests, or also as part of monitoring the correct execution of the interrupt request interrupt routine (interrupt service routine).
  • the program counter structure can be designed to have a logical successor address following the address at the memory interface
  • the successor address can be read. Then, in the step of comparing, the successor address may be compared with a successor target address logically following the target address, to perform the
  • a successor address can be on a
  • a follow-up target address can be simply by applying a logical operation of
  • Program counter structure can be obtained to the target address.
  • the Nachffy- target address is therefore, as well as the target address, always known and can in the Device are deposited.
  • the program counter structure can be monitored with a high degree of security. In this case, the program counter can even be monitored with even greater certainty, since the structures / modules required to generate the successor address are also protected.
  • the target address or the follow-up target address can be read in by a monitoring and verified. Both the target address and the
  • the target address may be an address from the interrupt vector table at which the address of the interrupt routine is stored.
  • the follow-up target address can be, for example, the reference address +1, which is generated by incrementing and possibly generated in normal operation anyway.
  • a method for monitoring a handling of an interrupt request includes the following steps:
  • a device for securing a program counter structure of a processor system is presented in an interrupt request, wherein the processor system at least the program counter structure, a
  • Interrupt controller is adapted to be responsive to the
  • Interrupt request to provide an address associated with the interrupt request to the program counter structure, and wherein the
  • Program counter structure is adapted to an address via a
  • Memory interface to the memory comprising the following features: an interface for reading an address from the memory interface; a comparator for comparing the address with one of
  • Interrupt request associated with target address to obtain a comparison result; and output means for providing a coincidence signal using the comparison result.
  • a device can be understood as meaning an electrical device which processes sensor signals and outputs control and / or data signals in dependence thereon.
  • the device may have an interface, which may be formed in hardware and / or software.
  • the interfaces can be part of a so-called system ASIC, for example, which contains a wide variety of functions of the device.
  • the interfaces are their own integrated circuits or at least partially consist of discrete components.
  • the interfaces may be software modules that are present, for example, on a microcontroller in addition to other software modules.
  • a processor system with at least one
  • Interrupt controller a program counter structure, a
  • An interrupt controller is configured to provide an address associated with the interrupt request to the program counter structure in response to the interrupt request, and wherein the
  • Program counter structure is adapted to an address to a
  • Memory interface to the memory output, and wherein the device is adapted to read an address from the memory interface to compare an address with a target address associated with the interrupt request and a match signal using a
  • the program counter structure may be part of a processor core which, in addition to the program counter structure, comprises an electronic arithmetic unit and / or further other modules.
  • the monitoring modules are independent of the processor itself and, in principle, can also be used in conjunction with a known processor architecture. The latter could be done, for example, by simply reading the memory address, without having to change the processor.
  • the processor system may be implemented as an integrated circuit. This can be a programmable integrated circuit, a so-called programmable IC.
  • a computer program product or computer program with program code which can be stored on a machine-readable carrier or storage medium such as a semiconductor memory, a hard disk memory or an optical memory and for carrying out, implementing and / or controlling the steps of the method according to one of the above
  • FIG. 1 is a block diagram of an apparatus for securing in accordance with an embodiment of the present invention
  • FIG. 2 is an illustration of a security device according to an embodiment of the present invention
  • 3a is an illustration of a processor system according to a
  • Embodiment of the present invention is an illustration of a processor system according to a
  • Fig. 5 is an illustration of a process in securing a
  • FIG. 1 shows a block diagram of a device 100 for securing a program counter structure 102 of a processor system 104 at a
  • Interrupt request 106 according to an embodiment of the present invention.
  • the processor system 104 includes at least the
  • Program counter structure 102 Program counter structure 102, an interrupt controller 108, and a memory 110.
  • the interrupt controller 108 also called an interrupt controller, is configured to be responsive to
  • Interrupt request 106 one of the interrupt request 106, in
  • the program counter structure 102 is configured to output the address 112 or a successor address to the memory 110 via a memory interface 114.
  • the device 100 has an interface 116 for reading the address 112 or the successor address from the memory interface 114, a
  • Output device 122 is adapted to provide a match signal 124 using one provided by comparator 118
  • the program counter structure 102 can be checked, as it can be assumed that the program counter structure 102
  • Program counter structure 102 is transmitted correctly.
  • FIG. 2 shows a representation of a device 100 for securing according to FIG.
  • Embodiment of the present invention According to one
  • Embodiment may be a continuous, parallel comparison of
  • a comparison of the setpoint address 120 and the actually applied address 112 is triggered only if an interrupt request has previously occurred.
  • the same and / or further signals may additionally be used to provide the corresponding
  • Compare Constant 204 to select the number of simultaneous to reduce executed comparisons. This may be in relation to the
  • FIG. 2 shows the latter embodiment in which the apparatus 100 comprises means 200 for generating the target address 120.
  • the target address 120 is selected. This is done using identification information 202 of the interrupt request, which in turn controls a multiplexer 206.
  • memory 204 is hardwired.
  • the target address 120 is provided to the comparator 118.
  • the device 100 has a further multiplexer 208, which has the address 112, an error value 210 as input signals, and a trigger signal 212 for controlling.
  • the trigger signal 212 may be provided by the program counter structure 102, for example, if the address 112 is to be actually checked.
  • the address 112 to be checked is available for the comparison device 118 when the trigger signal 212 clears the input of the further multiplexer 208. Otherwise, the error value 210 is provided, which certainly causes a false comparison result in the comparison device 118. It can be in this
  • Embodiment thus only give a positive comparison result if the address to be checked 112 is relevant and to the
  • the comparison constant 204 represents a theoretical value of the target address or of the successor target address for the respective interrupt request.
  • State machine 212 generated in the program counter module trigger signal 212 can be used to trigger a check.
  • the error value 210 represents This is an address that is not part of the set of theoretical possible target addresses or successor target addresses, such as zero.
  • FIG. 3a shows an illustration of a processor system 104 according to an embodiment of the present invention.
  • the processor system 104 essentially corresponds to the processor system in Fig. 1.
  • the processor system in Fig. 1 is the
  • Program counter 102 part of a processor 300 and in particular part of a control unit 350, which has at least one state machine 302 in addition to the program counter 102.
  • the interrupt controller 108 also called interrupt controller, the memory 110 and the device 100 for protection are arranged outside the processor core 300.
  • the device is designed to perform an address comparison.
  • An external module 308 is configured to provide an interrupt request 106 to the interrupt controller 108, and optionally also an acknowledgment 307 and a completion signal 319 from the
  • Interrupt controller 108 to receive.
  • Interrupt controller 108 is configured to provide a start signal 310 and an address 112 to state machine 302 and to receive an interrupt code 312 from processor 300.
  • Program counter 102 is configured to receive a signal from state machine 302 and send an address 352 to memory 110 and
  • This address 352 can be
  • the apparatus 100 is configured to compare the address 352 with a target address and, depending on the comparison, to provide a match signal 124 to an interrupt request monitor unit 324.
  • Interrupt request monitoring unit 324 is configured to provide an interrupt request monitoring signal 354 and an interrupt request monitoring signal 354 in addition to the match signal 124 from the interrupt controller 108
  • Completion monitoring signal 356 In Fig. 3a is shown a representation of the processor 300 with controller 350 and program counter 102 as part of it.
  • the interruption code 312 may be used by the interruption control unit 108 for a completion monitoring signal 356 as well
  • the interrupt code 312 may be used to confirm the successful execution of an interrupt routine, for example, to monitor the handling of
  • the interruption code 312 can here be generated by HW, for example by the program counter 102, or alternatively also on the basis of software, for example via the output of corresponding data via a port at the end of an interrupt routine.
  • the acknowledged to the external module acknowledgment 307, as well as the completion signal 319 are in principle optional and need not be the same as the corresponding signals, the monitoring unit for
  • the completion signal 319 may be generated based on the interrupt code signal 312, or the
  • Interrupt code 312 can be used directly.
  • the possible addresses, the target address or successor target address, which can be used for the comparison or the check are not explicitly shown.
  • FIG. 3b shows a merely exemplary representation of a processor system 104 according to an exemplary embodiment of the present invention.
  • Processor system 104 substantially corresponds to the processor system in FIG. 3a.
  • the program counter structure 102 is part of a processor core 300.
  • the program counter structure 102 is comprised of at least one adder structure 304, a multiplexer 305, and a program counter register 306.
  • the interrupt controller 108, the memory 110, and the device 100 for protection are arranged outside the processor core 300.
  • the interrupt request 106 When an interrupt request 106 is sent from a request generating module 308 to the interrupt controller 108, the interrupt request 106 is categorized by the interrupt controller 108 and processed according to its priority. Upon initiation of an interrupt, the interrupt controller 108 sends a start signal 310 to the state machine 302 and optionally also one
  • Program counter register 306 provides. At the beginning of the processing of the interruption is now, by the multiplexer 305, controlled by the
  • Program counter register 306 is thus an address 352 of the memory 110 is driven. At the address 352 in the memory 110, for example, an interrupt vector, the address of the first instruction of the interrupt routine, or even the routine itself may be stored.
  • the address 352 is tapped by the device 100 for protection.
  • the processing of the interrupt request begins at the address 352, for example with a jump to the first instruction of the routine itself or already directly with the execution of the routine.
  • the termination of Interrupt routine is finally signaled by the interrupt code 312, the successful execution to the interrupt controller.
  • the successful execution of the interrupt request begins at the address 352, for example with a jump to the first instruction of the routine itself or already directly with the execution of the routine.
  • the computing units 318 may include arithmetic logic units and similar modules typically used in processors.
  • Program counter register 306 is again supplied to adder structure 304.
  • the successor address is generated based on the address 112. For example, the address 112 is incremented by one plus to generate the successor address. The mentioned increase of 1 is chosen only as an example. This successor address will be back in the
  • Program counter register 306 written and then applied to the memory 110.
  • the successor address is thus tapped by the device 100 for protection.
  • the match signal 124 is then further used using a comparison of the successor address with the
  • critical parts of the processor 300 are included in the monitored structures to increase the degree of coverage of interrupt request monitoring.
  • parts of the handling of the interrupt request 106 are checked by the processor 300.
  • the state machine 302 as well as the adder structure 304, the multiplexer 305 and the program counter register 306 are monitored.
  • the interrupt request monitoring signal 354 the
  • Completion monitoring signal 356 and the coincidence signal 124 in an interrupt request monitor 324 to monitor the handling of interrupt requests. In this case, both the priority, the order of execution of various requests, as well as the correct sequence in the processing of a request itself can be monitored.
  • FIG. 3b shows a simplified illustration of the interrupt monitoring concept with additional monitoring of parts of the program counter module 102.
  • a state machine 302 is typically present which controls program execution and execution of different types of instructions.
  • the state machine 302 is responsible, among other things, for the correct execution in the case of an existing interrupt request 106. If the interrupt request 106 is present, an address 112 pertaining to the interrupt request 106, for example in the address area of one, is available at the next possible time at which an interrupt may occur
  • Interrupvektortabelle generated and read the data stored here.
  • This data may be, for example, an interrupt vector, the address at which the interrupt routine itself is stored.
  • the interrupt vector table can hereby be stored in various types of memories, such as ROM or RAM.
  • Interruption belonging to the target address is used to interrupt the regular program, and thus parts of the interruption
  • Program counter 102 addressed memory 110 which is driven clocked example, as is typically the case with processors 300 pipelined
  • program counter register 306 per se is checked by successfully twice overwriting with correct data different from each other, and also by incrementing the program counter register
  • Program counter register 306 other parts of the state machine 302 are checked, which controls the program flow, and the multiplexer 305 are checked, which selects the input of the program counter register 306.
  • the multiplexer is first by a correct switching to address 112 and then to the adder output or the
  • the successor address designates in the context of the statements, the logically following address, regardless of the count, such as Linear or Gray of the program counter. The latter has no influence on the
  • FIG. 4 shows a flow chart of a method 400 for securing a program counter structure of a processor system at a
  • Interrupt request according to an embodiment of the present invention.
  • the method can be carried out on a device, as shown for example in Figures 1 to 3. This shows that
  • Processor system at least the program counter structure, a
  • An interrupt controller is configured to provide an address associated with the interrupt request to the program counter structure in response to the interrupt request.
  • the program counter structure is configured to output an address to the memory via a memory interface.
  • the method 400 includes a step 402 of reading, a step 406 of comparing, and a step 408 of providing.
  • step 402 of the read in an address is read from the memory interface.
  • step 406 of the comparison the address is compared with a target address associated with the interrupt request to be a
  • step 408 of providing a match signal is provided using the comparison result.
  • a monitoring of the program counter structure is presented when interrupt requests occur. It can also be used to monitor the handling of interrupt requests with backup of the program counter structure.
  • Fig. 5 shows only as an exemplary implementation possibility a
  • the first signal 500 is a clock signal. By way of example, a clocking with the rising signal edge is shown for six consecutive clocks.
  • Signal 504 represents the contents of program counter register 306. Assuming in clock two is an interrupt request 502 which can be processed after the instructions have been read in at addresses n and n-1, the program counter register may already be in clock three, for example with the Address 122 of the interrupt vector 316 will be described. This address of the interrupt vector in this embodiment is also that which is applied to the memory and checked by the address comparison 100.
  • Successor address 322 is applied to the memory, it can additionally, or even exclusively checks this, and thus a larger part of
  • Program counter structure are monitored.
  • the interrupt vector 316 and thus the address of the first instruction of the monitoring routine is written in the program counter register, applied to the memory and started with the processing of the routine itself.
  • FIG. 5 shows an exemplary timing diagram for illustrating the process of initiating the interrupt routine.
  • an interrupt request 106 its processing is initiated by the processor.
  • the addresses 122 and 322 are created, which can be used for an interrupt check.
  • an exemplary embodiment comprises a "and / or" link between a first feature and a second feature, then this is to be read so that the embodiment according to one embodiment, both the first feature and the second feature and according to another embodiment either only first feature or only the second feature.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Absichern einer Programmzählerstruktur (102) eines Prozessorsystems (104) bei einer Unterbrechungsanfrage (106). Das Prozessorsystem (104) umfasst zumindest die Programmzählerstruktur (102), eine Unterbrechungssteuereinrichtung (108) und einen Speicher (110). Die Unterbrechungssteuereinrichtung (108) ist dazu ausgebildet, ansprechend auf die Unterbrechungsanfrage (106) eine zu der Unterbrechungsanfrage (106) zugehörige Adresse (112) an die Programmzählerstruktur (102) bereitzustellen. Die Programmzählerstruktur (102) ist dazu ausgebildet, eine Adresse (352) über eine Speicherschnittstelle (114) zu dem Speicher (110) auszugeben. Das Verfahren (400) weist einen Schritt des Einlesens, einen Schritt des Vergleichens und einen Schritt des Bereitstellens auf. Im Schritt des Einlesens wird die Adresse (352) von der Speicherschnittstelle (114) eingelesen. Im Schritt (404) des Vergleichens wird diese Adresse (352) mit einer der Unterbrechungsanfrage (106) zugeordneten Solladresse (120) verglichen, um ein Vergleichsergebnis (126) zu erhalten. Im Schritt des Bereitstellens wird ein Übereinstimmungssignal (124) unter Verwendung des Vergleichsergebnisses (126) bereitgestellt. Letzteres kann auch für eine Überwachung der Behandlung von Unterbrechungsanfragen verwendet werden. So zum Beispiel zur Überwachung der Einhaltung der Priorität dieser Unterbrechungsanfragen oder auch als Teil einer Überwachung der korrekten Abarbeitung der zur Unterbrechungsanfrage gehörenden Unterbrechungsroutine (Interrupt-Service-Routine).

Description

Beschreibung
Titel
Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer
Unterbrechungsanfrage
Stand der Technik
Die Erfindung geht aus von einer Vorrichtung oder einem Verfahren nach Gattung der unabhängigen Ansprüche. Gegenstand der vorliegenden Erfindung ist auch ein Computerprogramm.
Prozessoren erlauben es häufig, den regulären Programm-Ablauf von außen durch sogenannte Unterbrechungsanfragen (Interrupt requests, I RQ) zu unterbrechen, um eine andere wichtige, eventuell auch zeitkritische Aufgabe bevorzugt abzuarbeiten. Hierbei sind ein Einhalten der Unterbrechungs-Priorität sowie eine erfolgreiche Abarbeitung der zur Unterbrechungsanfrage gehörenden Unterbrechungsroutine (Interrupt-Service-Routine, ISR) wichtig.
Die WO 2013 136 114 AI beschreibt ein System, welches die Überwachung von auftretenden Interrupts bzw. deren korrekte Verarbeitung durch einen Interrupt- Controller (ICO) erlaubt.
Offenbarung der Erfindung
Vor diesem Hintergrund werden mit dem hier vorgestellten Ansatz ein Verfahren zum Absichern einer Programmzählerstruktur eines Prozessorsystems bei einer Unterbrechungsanfrage, ein Verfahren zum Überwachen einer Behandlung einer Unterbrechungsanfrage, weiterhin eine Vorrichtung, die diese Verfahren verwendet sowie schließlich ein entsprechendes Computerprogramm gemäß den Hauptansprüchen vorgestellt. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen Anspruch angegebenen Vorrichtung möglich.
Vor allem für sicherheitskritische Anwendungen ist es wichtig, Fehler in der Behandlung der Unterbrechungsanfragen zu erkennen.
Ansprechend auf eine Unterbrechungsanfrage kann an einer von einem
Prozessor verarbeiteten Adresse erkannt werden, ob ein Fehler vorliegt oder nicht. Eine Korrektheit kann dabei durch einen Vergleich mit einer
Referenzadresse gezeigt werden, da der Speicherort bekannt ist, an dem die Adresse der Unterbrechungsroutine, der sogenannte Interruptvektor, oder die Unterbrechungsroutine selbst hinterlegt ist.
Es wird ein Verfahren zum Absichern einer Programmzählerstruktur eines Prozessorsystems bei einer Unterbrechungsanfrage vorgestellt, wobei das Prozessorsystem zumindest die Programmzählerstruktur, eine
Unterbrechungssteuereinrichtung und einen Speicher umfasst, wobei die Unterbrechungssteuereinrichtung dazu ausgebildet ist, ansprechend auf die Unterbrechungsanfrage eine zu der Unterbrechungsanfrage zugehörige Adresse an die Programmzählerstruktur bereitzustellen, und wobei die
Programmzählerstruktur dazu ausgebildet ist, eine Adresse über eine
Speicherschnittstelle zu dem Speicher auszugeben, wobei das Verfahren die folgenden Schritte aufweist:
Einlesen einer Adresse von der Speicherschnittstelle;
Vergleichen der Adresse mit einer der Unterbrechungsanfrage zugeordneten Solladresse, um ein Vergleichsergebnis zu erhalten; und
Bereitstellen eines Übereinstimmungssignals, unter Verwendung des
Vergleichsergebnisses.
Bei der oben beschriebenen Adresse kann es sich um die Adresse handeln, an der der Interruptvektor, die Startadresse einer Unterbrechungsroutine, oder aber auch die Unterbrechungsroutine selbst gespeichert ist. Erstere wird
typischerweise bei der Verwendung von Interruptvektortabellen benötigt, so dass diese Adresse im Bereich der Interruptvektortabelle liegt. Im Folgenden wird vereinfachend von Adresse gesprochen, auch wenn sowohl die Adresse der Unterbrechungsroutine, als auch die Adresse des Interruptvektors selbst verwendet werden können. Von Bedeutung ist jeweils die an den Speicher angelegte Adresse, die zur Überprüfung herangezogen wird.
Auf diese Weise kann vor oder bei der Ausführung des ersten Befehls einer Unterbrechungsroutine bereits eine Adresse von der Speicherschnittstelle eingelesen und im Schritt des Vergleichens verglichen werden.
In einem Schritt des Signalisierens kann ein erfolgreicher Beginn der Bearbeitung der Unterbrechungsanfrage unter Verwendung des Übereinstimmungssignals signalisiert werden. Dies dient zur Absicherung der Programmzählerstruktur, da das korrekte Initiieren der zur Unterbrechungsanfrage gehörenden
Unterbrechungsroutine überprüft werden kann. Dies kann darüber hinaus auch für eine Überwachung der Behandlung von Unterbrechungsanfragen verwendet werden. So zum Beispiel zur Überwachung der Einhaltung der Priorität dieser Unterbrechungsanfragen oder auch als Teil einer Überwachung der korrekten Abarbeitung der zur Unterbrechungsanfrage gehörenden Unterbrechungsroutine (Interrupt-Service-Routine).
Die Programmzählerstruktur kann dazu ausgebildet sein, eine der Adresse logisch nachfolgende Nachfolgeadresse an der Speicherschnittstelle
bereitzustellen. Im Schritt des Einlesens kann dann zusätzlich, oder auch ausschließlich, die Nachfolgeadresse eingelesen werden. Dann kann im Schritt des Vergleichens die Nachfolgeadresse mit einem der Solladresse logisch nachfolgenden Nachfolge-Solladresse verglichen werden, um das
Vergleichsergebnis zu erhalten. Eine Nachfolgeadresse kann auf einen
Speicherort im Speicher hinweisen, an dem eine von der Unterbrechungsanfrage vollkommen unabhängige Information hinterlegt ist. Eine Nachfolge-Solladresse kann einfach durch Anwenden einer logischen Operation der
Programmzählerstruktur auf die Solladresse gewonnen werden. Die Nachfolge- Solladresse ist daher, wie auch die Solladresse, immer bekannt und kann in der Vorrichtung hinterlegt werden. Durch ein Überprüfen einer nach der Adresse durch die Programmzählerstruktur bearbeiteten Nachfolgeadresse kann die Programmzählerstruktur mit einer großen Sicherheit überwacht werden. Der Programmzähler kann in diesem Fall sogar mit einer noch größeren Sicherheit überwacht werden, da auch die für die Generierung der Nachfolgeadresse notwendigen Strukturen/Module abgesichert werden.
Die Solladresse oder die Nachfolge-Solladresse kann von einer Überwachung eingelesen und verifiziert werden. Sowohl die Solladresse als auch die
Nachfolge-Solladresse sind bekannt. Beispielsweise kann es sich bei der Solladresse um eine Adresse aus der Interruptvektortabelle handeln, an der die Adresse der Unterbrechungsroutine gespeichert ist. Bei der Nachfolge- Solladresse kann es sich beispielsweise um die Solladresse +1 handeln, die durch Inkrementieren erzeugt wird und im Normalbetrieb möglicherweise ohnehin generiert wird.
Ein Verfahren zum Überwachen einer Behandlung einer Unterbrechungsanfrage umfasst die folgenden Schritte:
Ausführen der Schritte eines genannten Verfahrens zum Absichern einer Programmzählerstruktur; und
Überwachen der Behandlung der Unterbrechungsanfrage unter Verwendung des Übereinstimmungssignals.
Dies ermöglicht eine Überwachung der Programmzähler-Struktur als Teil der Überwachung der Behandlung von Unterbrechungsanfragen. So beispielsweise zur Überwachung der Einhaltung der Priorität der Unterbrechungsanfragen oder auch als Teil einer Überwachung der korrekten Abarbeitung der zur
Unterbrechungsanfrage gehörenden Unterbrechungsroutine
Diese Verfahren können beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in einem Steuergerät implementiert sein. Weiterhin wird eine Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems bei einer Unterbrechungsanfrage vorgestellt, wobei das Prozessorsystem zumindest die Programmzählerstruktur, eine
Unterbrechungssteuereinrichtung und einen Speicher umfasst, wobei die
Unterbrechungssteuereinrichtung dazu ausgebildet ist, ansprechend auf die
Unterbrechungsanfrage eine der Unterbrechungsanfrage zugehörige Adresse an die Programmzählerstruktur bereitzustellen, und wobei die
Programmzählerstruktur dazu ausgebildet ist, eine Adresse über eine
Speicherschnittstelle zu dem Speicher auszugeben, wobei die Vorrichtung die folgenden Merkmale aufweist: eine Schnittstelle zum Einlesen einer Adresse von der Speicherschnittstelle; eine Vergleichseinrichtung zum Vergleichen der Adresse mit einer der
Unterbrechungsanfrage zugeordneten Solladresse, um ein Vergleichsergebnis zu erhalten; und eine Ausgabeeinrichtung zum Bereitstellen eines Übereinstimmungssignals unter Verwendung des Vergleichsergebnisses.
Unter einer Vorrichtung kann vorliegend ein elektrisches Gerät verstanden werden, das Sensorsignale verarbeitet und in Abhängigkeit davon Steuer- und/oder Datensignale ausgibt. Die Vorrichtung kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung können die Schnittstellen beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen der Vorrichtung beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.
Ferner wird ein Prozessorsystem mit zumindest einer
Unterbrechungssteuereinrichtung, einer Programmzählerstruktur, einem
Speicher und einer Vorrichtung zum Absichern der Programmzählerstruktur gemäß dem hier vorgestellten Ansatz vorgestellt, wobei die
Unterbrechungssteuereinrichtung dazu ausgebildet ist, ansprechend auf die Unterbrechungsanfrage eine der Unterbrechungsanfrage zugehörige Adresse an die Programmzählerstruktur bereitzustellen, und wobei die
Programmzählerstruktur dazu ausgebildet ist, eine Adresse an eine
Speicherschnittstelle zu dem Speicher auszugeben, und wobei die Vorrichtung dazu ausgebildet ist, eine Adresse von der Speicherschnittstelle einzulesen, eine Adresse mit einer der Unterbrechungsanfrage zugeordneten Solladresse zu vergleichen und ein Übereinstimmungssignal unter Verwendung eines
Vergleichsergebnisses des Vergleichs bereitzustellen.
Die Programmzählerstruktur kann Teil eines Prozessorkerns sein, der neben der Programmzählerstruktur ein elektronisches Rechenwerk und/oder weitere andere Module umfasst. Die überwachenden Module jedoch sind vom Prozessor selbst unabhängig und können prinzipiell auch im Zusammenhang mit einer bekannten Prozessorarchitektur eingesetzt werden. Letzteres könnte beispielsweise durch einfaches einlesen der Speicheradresse geschehen, ohne dass der Prozessor verändert werden muss.
Das Prozessorsystem kann als eine integrierte Schaltung realisiert sein. Dabei kann es sich um eine programmierbare integrierte Schaltung, einen sogenannten programmierbaren IC handeln.
Von Vorteil ist auch ein Computerprogrammprodukt oder Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger oder Speichermedium wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung, Umsetzung und/oder Ansteuerung der Schritte des Verfahrens nach einer der vorstehend
beschriebenen Ausführungsformen verwendet wird, insbesondere wenn das Programmprodukt oder Programm auf einem Computer oder einer Vorrichtung ausgeführt wird.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt: Fig. 1 ein Blockschaltbild einer Vorrichtung zum Absichern gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
Fig. 2 eine Darstellung einer Vorrichtung zum Absichern gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
Fig. 3a eine Darstellung eines Prozessorsystems gemäß einem
Ausführungsbeispiel der vorliegenden Erfindung; Fig. 3b eine Darstellung eines Prozessorsystems gemäß einem
Ausführungsbeispiel der vorliegenden Erfindung;
Fig. 4 ein Ablaufdiagramm eines Verfahrens zum Absichern gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
Fig. 5 eine Darstellung eines Ablaufs beim Absichern einer
Unterbrechungsroutine gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren
dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche
Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
Fig. 1 zeigt ein Blockschaltbild einer Vorrichtung 100 zum Absichern einer Programmzählerstruktur 102 eines Prozessorsystems 104 bei einer
Unterbrechungsanfrage 106 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Hier umfasst das Prozessorsystem 104 zumindest die
Programmzählerstruktur 102, eine Unterbrechungssteuereinrichtung 108 und einen Speicher 110. Die Unterbrechungssteuereinrichtung 108, auch Interrupt Controller genannt, ist dazu ausgebildet, ansprechend auf die
Unterbrechungsanfrage 106 eine der Unterbrechungsanfrage 106, im
allgemeinen als Interrupt Request bezeichnet, zugehörige Adresse 112 an die Programmzählerstruktur 102 bereitzustellen. Die Programmzählerstruktur 102 ist dazu ausgebildet, die Adresse 112 oder eine Nachfolgeadresse über eine Speicherschnittstelle 114 zu dem Speicher 110 auszugeben.
Die Vorrichtung 100 weist eine Schnittstelle 116 zum Einlesen der Adresse 112 oder der Nachfolgeadresse von der Speicherschnittstelle 114, eine
Vergleichseinrichtung 118 zum Vergleichen der Adresse 112 oder der
Nachfolgeadresse mit einer der Unterbrechungsanfrage 106 zugeordneten Solladresse 120 und eine Ausgabeeinrichtung 122 auf. Dabei ist die
Ausgabeeinrichtung 122 dazu ausgebildet, ein Übereinstimmungssignal 124 unter Verwendung eines von der Vergleichseinrichtung 118 bereitgestellten
Vergleichsergebnisses 126 zwischen der Solladresse 120 und der eingelesenen Adresse 112 oder der Nachfolgeadresse bereitzustellen.
Durch das Vergleichen der Adresse 112 oder der Nachfolgeadresse mit der Solladresse 120 kann die Programmzählerstruktur 102 überprüft werden, da angenommen werden kann, dass die Programmzählerstruktur 102
bestimmungsgemäß funktioniert, wenn die Adresse 112 oder die
Nachfolgeadresse durch die verschiedenen Subsysteme der
Programmzählerstruktur 102 korrekt übermittelt wird.
Im Allgemeinen eignet sich die vorgestellte Methode auch zur Überwachung und Absicherung der Unterbrechungs-Behandlung von programmierbaren ICs 104, die einen Unterbrechungs-Mechanismus vorsehen. Fig. 2 zeigt eine Darstellung einer Vorrichtung 100 zum Absichern gemäß einem
Ausführungsbeispiel der vorliegenden Erfindung. Gemäß einem
Ausführungsbeispiel kann ein andauernder, paralleler Vergleich der
eingelesenen Adresse mit allen theoretisch gültigen, zu Unterbrechungsanfragen zugehörigen Solladressen bzw. Nachfolge-Solladressen durchgeführt werden.
In einem weiteren Ausführungsbeispiel erfolgt ein Anstoßen eines Vergleichs der Solladresse 120 und der tatsächlich angelegten Adresse 112 nur dann, wenn zuvor eine Unterbrechungsanfrage aufgetreten ist. Dasselbe und/oder weitere Signale können zusätzlich verwendet werden, um die entsprechende
Vergleichskonstante 204 auszuwählen, um damit die Anzahl der zeitgleich ausgeführten Vergleiche zu reduzieren. Dies kann im Bezug auf den
Stromverbrauch eine günstigere Implementierung darstellen.
Lediglich beispielhaft zeigt Fig. 2 letzteres Ausführungsbeispiel, bei dem die Vorrichtung 100 eine Einrichtung 200 zum Erzeugen der Solladresse 120 aufweist. In der Einrichtung 200 zum Erzeugen wird die Solladresse 120 ausgewählt. Dies geschieht unter Verwendung einer Identifikationsinformation 202 der Unterbrechungsanfrage, welche wiederum einen Multiplexer 206 steuert. Dazu weist die Einrichtung 200 zum Erzeugen einen Speicher 204 für
Vergleichskonstanten auf. In einer Ausführungsform ist der Speicher 204 festverdrahtet. Die Solladresse 120 wird für die Vergleichseinrichtung 118 bereitgestellt.
Weiterhin weist die Vorrichtung 100 einen weiteren Multiplexer 208 auf, der als Eingangssignale die Adresse 112, einen Fehlerwert 210 und zur Steuerung ein Triggersignal 212 aufweist. Das Triggersignal 212 kann beispielsweise dann von der Programmzählerstruktur 102 bereitgestellt werden, wenn die Adresse 112 tatsächlich überprüft werden soll. Damit steht die zu überprüfende Adresse 112 für die Vergleichseinrichtung 118 dann zur Verfügung, wenn das Triggersignal 212 den Eingang des weiteren Multiplexers 208 freigibt. Ansonsten wird der Fehlerwert 210 bereitgestellt, der in der Vergleichseinrichtung 118 mit Sicherheit ein falsches Vergleichsergebnis hervorruft. Es kann in diesem
Ausführungsbeispiel also nur dann ein positives Vergleichsergebnis geben, wenn die zu überprüfende Adresse 112 relevant ist und dazu auch zur
Unterbrechungsanfrage passt.
Dabei kann in einer energieeffizienten Umsetzung der Vergleichslogik 100 für eine wie in Fig. 1 dargestellte Implementierung des Konzepts eine
Identifikationsinformation 202 verwendet werden, das die zuletzt angenommene Unterbrechungsanfrage identifiziert, um die entsprechende Vergleichs-Konstante 204 auszuwählen. Dabei repräsentiert die Vergleichskonstante 204 einen theoretischen Wert der Solladresse beziehungsweise der Nachfolge-Solladresse für die jeweilige Unterbrechungsanfrage. Ein beispielsweise von der
Zustandsmaschine im Programmzähler-Modul erzeugtes Triggersignal 212 kann verwendet werden, um eine Überprüfung anzustoßen. Der Fehlerwert 210 stellt hierbei eine Adresse dar, die nicht Teil der Menge der theoretisch möglichen Solladressen oder Nachfolge-Solladressen ist, beispielsweise null.
Fig. 3a zeigt eine Darstellung eines Prozessorsystems 104 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das Prozessorsystem 104 entspricht im Wesentlichen dem Prozessorsystem in Fig. 1. Hier ist der
Programmzähler 102 Teil eines Prozessors 300 und insbesondere Teil eines Steuerwerks 350, das neben dem Programmzähler 102 zumindest einen Zustandsautomaten 302 aufweist.
Die Unterbrechungssteuereinrichtung 108, auch Interrupt Controller genannt, der Speicher 110 und die Vorrichtung 100 zum Absichern sind außerhalb des Prozessorkerns 300 angeordnet. Gemäß diesem Ausführungsbeispiel ist die Vorrichtung ausgebildet, um einen Adressvergleich durchzuführen.
Ein externes Modul 308 ist ausgebildet, um eine Unterbrechungsanfrage 106 an die Unterbrechungssteuereinrichtung 108 bereitzustellen und optional auch eine Empfangsbestätigung 307 und ein Erledigungssignal 319 von der
Unterbrechungssteuereinrichtung 108 zu empfangen. Die
Unterbrechungssteuereinrichtung 108 ist ausgebildet, um ein Startsignal 310 und eine Adresse 112 an den Zustandsautomaten 302 bereitzustellen und einen Unterbrechungscode 312 von dem Prozessor 300 zu empfangen. Der
Programmzähler 102 ist ausgebildet, um ein Signal von dem Zustandsautomaten 302 zu empfangen und eine Adresse 352 an den Speicher 110 und die
Vorrichtung 100 bereitzustellen. Bei dieser Adresse 352 kann es sich
beispielswiese um einen Adressvektor im Sinne eines Interruptvektors handeln, oder aber auch um die Adresse, an der dieser gespeichert ist. Die Vorrichtung 100 ist ausgebildet, um die Adresse 352 mit einer Solladresse zu vergleichen und abhängig von dem Vergleich ein Übereinstimmungssignal 124 an eine Unterbrechungsanfrageüberwachungseinheit 324 bereitzustellen. Die
Unterbrechungsanfrageüberwachungseinheit 324 ist ausgebildet, um neben dem Übereinstimmungssignal 124 von der Unterbrechungssteuereinrichtung 108 ein Unterbrechungsanfragemonitoringsignal 354 und ein
Erledigungsmonitoringsignal 356 zu empfangen. In Fig. 3a ist eine Darstellung des Prozessors 300 mit Steuerwerk 350 und Programmzähler 102 als Teil dessen gezeigt.
Der Unterbrechungscode 312 kann von der Unterbrechungssteuereinheit 108 verwendet werden um ein Erledigungsmonitoringsignal 356 sowie ein
Erledigungssignal 319 zu generieren, welche nicht gleich geartet sein müssen.
Der Unterbrechungscode 312 kann hierbei verwendet werden, um die erfolgreiche Abarbeitung einer Unterbrechungsroutine zu bestätigen, beispielsweise für eine Überwachung der Behandlung von
Unterbrechungsanfragen. Der Unterbrechungscode 312 kann hierbei durch HW, beispielsweise vom Programmzähler 102, oder alternativ auch auf Basis von Software, beispielsweise über die Ausgabe von entsprechenden Daten über einen Port am Ende einer Unterbrechungsroutine, generiert werden.
Die an das externe Modul signalisierte Empfangsbestätigung 307, sowie das Erledigungssignal 319 sind prinzipiell optional und müssen nicht gleich geartet sein wie die entsprechenden Signale, die der Überwachungseinheit zur
Verfügung gestellt werden. Beispielsweise kann das Erledigungssignal 319 auf Basis des Unterbrechungscode-Signals 312 generiert, oder aber der
Unterbrechungscode 312 direkt verwendet werden.
Die möglichen Adressen, die Solladresse oder Nachfolge-Solladresse, die für den Vergleich bzw. die Überprüfung herangezogen werden können sind nicht explizit dargestellt.
Da der Adressvergleich 100 nicht zwingend auf interne Signale des Prozessors angewiesen ist kann dieser prinzipiell auch zur Erweiterung der Überwachung bestehender Prozessoren verwendet werden.
Wie hierbei der Programmzähler 102 umgesetzt ist, ist für den beschriebenen Ansatz unerheblich. Lediglich der Anteil an Strukturen des Programmzählers, die überwacht werden können, kann je nach Umsetzung des Programmzählers variieren. Die nachfolgend anhand von Fig. 3b gezeigte Ausführung ist daher lediglich beispielhaft zu verstehen. Fig. 3b zeigt eine lediglich beispielhafte Darstellung eines Prozessorsystems 104 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das
Prozessorsystem 104 entspricht im Wesentlichen dem Prozessorsystem in Fig. 3a. Auch hier ist die Programmzählerstruktur 102 Teil eines Prozessorkerns 300. Die Programmzählerstruktur 102 besteht zumindest aus einer Addiererstruktur 304, einem Multiplexer 305 und einem Programmzählerregister 306.
Die Unterbrechungssteuereinrichtung 108, der Speicher 110 und die Vorrichtung 100 zum Absichern sind außerhalb des Prozessorkerns 300 angeordnet.
Wenn eine Unterbrechungsanfrage 106 von einem die Anfrage generierenden Modul 308 an die Unterbrechungssteuereinrichtung 108 gesendet wird, wird die Unterbrechungsanfrage 106 von der Unterbrechungssteuereinrichtung 108 kategorisiert und entsprechend ihrer Priorität bearbeitet. Beim Auslösen einer Unterbrechung sendet die Unterbrechungssteuereinrichtung 108 ein Startsignal 310 an den Zustandsautomaten 302 und optional auch eine
Empfangsbestätigung 307 an das generierende Modul 308. Zusätzlich wird von der Unterbrechungssteuereinrichtung 108 die Adresse an den
Zustandsautomaten 302 ausgegeben, welcher diese dann für das
Programmzählerregister 306 zur Verfügung stellt. Zu Beginn der Bearbeitung der Unterbrechung wird nun, durch den Multiplexer 305, gesteuert vom
Zustandsautomaten 302, die Adresse 112 ausgewählt und die entsprechende Adresse in das Programmzählerregister 306 geschrieben. Von dem
Programmzählerregister 306 wird damit eine Adresse 352 des Speichers 110 angesteuert. An der Adresse 352 im Speicher 110 kann beispielsweise ein Interruptvektor, die Adresse des ersten Befehls der Unterbrechungsroutine, oder aber auch die Routine selbst gespeichert sein.
Zwischen dem Speicher 110 und dem Programmzähler 306 wird die Adresse 352 von der Vorrichtung 100 zum Absichern abgegriffen.
Die Bearbeitung der Unterbrechungsanfrage beginnt an der Adresse 352 beispielsweise mit einem Sprung zum ersten Befehl der Routine selbst oder auch bereits direkt mit der Ausführung der Routine. Bei bzw. nach dem Beenden der Unterbrechungsroutine wird schließlich durch den Unterbrechungscode 312 die erfolgreiche Abarbeitung an die Unterbrechungssteuereinrichtung signalisiert. Auf Basis dieses Codes wird dann auch das erfolgreiche Abarbeiten der
Unterbrechungsroutine an die Überwachungseinheit 324, sowie optional an das generierende Modul 308, signalisiert.
Die Recheneinheiten 318 können arithmetisch-logische Einheiten und ähnliche, typischerweise in Prozessoren verwendete Module beinhalten.
In einem Ausführungsbeispiel wird die Adresse 112, die im
Programmzählerregister 306 steht erneut der Addiererstruktur 304 zugeführt. Dabei wird auf Basis der Adresse 112 die Nachfolgeadresse generiert. Die Adresse 112 wird dabei beispielsweise um plus eins inkrementiert um die Nachfolgeadresse zu generieren. Dabei ist die genannte Erhöhung um 1 nur beispielhaft gewählt. Diese Nachfolgeadresse wird dann wieder in das
Programmzählerregister 306 geschrieben und anschließend an den Speicher 110 angelegt.
Zwischen dem Speicher 110 und dem Programmzähler 306 wird damit die Nachfolgeadresse von der Vorrichtung 100 zum Absichern abgegriffen. In der Vorrichtung 100 zum Absichern wird das Übereinstimmungssignal 124 dann ferner unter Verwendung eines Vergleichs der Nachfolgeadresse mit der
Nachfolge-Solladresse ermittelt.
Bei dem hier vorgestellten Ansatz werden kritische Teile des Prozessors 300 in die überwachten Strukturen mit einbezogen, um den Abdeckungsgrad der Überwachung von Unterbrechungsanfragen zu erhöhen. Hierbei werden zusätzlich zur korrekten Weitergabe der Unterbrechungsanfrage 106 an den Prozessor 300 Teile der Behandlung der Unterbrechungsanfrage 106 durch den Prozessor 300 überprüft.
So wird der Zustandsautomat 302 sowie die Addiererstruktur 304, der Multiplexer 305 und das Programmzählerregister 306 überwacht.
Das Unterbrechungsanfragemonitoringsignal 354, das
Erledigungsmonitoringsignal 356 sowie das Übereinstimmungssignal 124 können in einer Unterbrechungsanfrageüberwachungseinheit 324 ausgewertet werden, um die Behandlung von Unterbrechungsanfragen zu überwachen. Hierbei kann sowohl die Priorität, die Reihenfolge der Abarbeitung verschiedener Anfragen, sowie die korrekte Sequenz bei der Abarbeitung einer Anfrage an sich überwacht werden.
Mit anderen Worten ist in Fig. 3b eine vereinfachte Darstellung des Konzepts zur Unterbrechungs-Überwachung mit zusätzlicher Überwachung von Teilen des Programmzähler Moduls 102 gezeigt.
Mit geringerem Hardware-Aufwand kann daher ohne Verdopplung und Vergleich überwacht werden, ob beispielsweise temporäre, konstante, prioritäts- oder ähnliche Fehler bei der Bearbeitung von Interrupts auftreten.
Als Teil des Steuerwerks ist typischerweise ein Zustandsautomat 302 vorhanden, der den Programmablauf und die Abarbeitung unterschiedlicher Befehlstypen steuert. Der Zustandsautomat 302 ist dabei unter anderem verantwortlich für den korrekten Ablauf im Fall einer vorliegenden Unterbrechungsanfrage 106. Wenn die Unterbrechungsanfrage 106 vorliegt, wird zum nächstmöglichen Zeitpunkt, zu dem eine Unterbrechung erfolgen darf, eine zur Unterbrechungsanfrage 106 gehörende Adresse 112 , beispielsweise im Adressbereich einer
Interrupvektortabelle, generiert und die an dieser Stelle abgelegten Daten gelesen. Bei diesen Daten wiederum kann es sich beispielsweise um einen Interruptvektor, die Adresse an der die Unterbrechungsroutine selbst gespeichert ist, handeln. Die Interruptvektortabelle kann hierbei in verschiedenen Arten von Speichern, wie beispielsweise ROM oder RAM abgelegt sein.
Eine Überprüfung des Aufrufs der Adresse 112 im Adressbereich der
Interruptvektortabelle, durch Vergleich mit der theoretisch zu dieser
Unterbrechung gehörigen Solladresse, wird dazu verwendet, um die eigentliche Unterbrechung des regulären Programmablaufs, und damit Teile des
Zustandsautomaten 302 innerhalb des Programmzählers 102, sowie die
Generierung und das Anlegen der richtigen Adresse an den Speicher 110, und damit das Initiieren der zur Unterbrechungsanfrage 106 passenden
Unterbrechungsroutine, zu überprüfen. Der hier vorgestellte Ansatz beschreibt zudem eine darüber hinausgehende Absicherung. Befindet sich die Interruptvektortabelle in einem durch den
Programmzähler 102 adressierten Speicher 110, welcher beispielsweise getaktet angesteuert wird, wie dies typischerweise bei Prozessoren 300 mit Pipeline der
Fall ist, so kann zusätzlich oder auch ausschließlich die darauffolgende
Nachfolgeadresse an den Speicher angelegt werden. Auf diese Weise kann nun zusätzlich die Addierer-Struktur 304 im Programmzähler 102, die für das
Inkrementieren des Programmzähler- Registers verwendet wurde, überprüft werden, ferner das Programmzähler- Register 306 an sich durch erfolgreiches zweimaliges Überschreiben mit korrekten, von einander verschiedenen Daten überprüft werden, ferner anhand des erfolgten Inkrementierens des
Programmzähler- Registers 306 weitere Teile des Zustandsautomaten 302 überprüft werden, der den Programmfluss steuert, sowie der Multiplexer 305 überprüft werden, der den Eingang des Programmzähler- Registers 306 auswählt.
Dabei wird der Multiplexer zuerst durch ein korrektes Schalten auf Adresse 112 und anschließend auf den Addierer-Ausgang beziehungsweise die
Nachfolgeadresse geprüft. Die Nachfolgeadresse bezeichnet im Rahmen der Ausführungen die logisch folgende Adresse, unabhängig von der Zählweise, wie beispielsweise Linear oder Gray des Programmzählers. Letztere hat keinen Einfluss auf das
vorgeschlagene Konzept, da die jeweils entsprechenden Solladressen immer bekannt sind.
Fig. 4 zeigt ein Ablaufdiagramm eines Verfahrens 400 zum Absichern einer Programmzählerstruktur eines Prozessorsystems bei einer
Unterbrechungsanfrage gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Das Verfahren kann auf einer Vorrichtung, wie sie beispielsweise in den Figuren 1 bis 3 dargestellt ist, ausgeführt werden. Dabei weist das
Prozessorsystem zumindest die Programmzählerstruktur, eine
Unterbrechungssteuereinrichtung und einen Speicher auf. Die
Unterbrechungssteuereinrichtung ist dazu ausgebildet, ansprechend auf die Unterbrechungsanfrage eine zu der Unterbrechungsanfrage zugehörige Adresse an die Programmzählerstruktur bereitzustellen. Die Programmzählerstruktur ist dazu ausgebildet, eine Adresse über eine Speicherschnittstelle zu dem Speicher auszugeben. Das Verfahren 400 weist einen Schritt 402 des Einlesens, einen Schritt 406 des Vergleichens und einen Schritt 408 des Bereitstellens auf. Im Schritt 402 des Einlesens wird eine Adresse von der Speicherschnittstelle eingelesen. Im Schritt 406 des Vergleichens wird die Adresse mit einer der Unterbrechungsanfrage zugeordneten Solladresse verglichen, um ein
Vergleichsergebnis zu erhalten. Im Schritt 408 des Bereitstellens wird ein Übereinstimmungssignal unter Verwendung des Vergleichsergebnisses bereitgestellt.
Mit anderen Worten wird eine Überwachung der Programmzählerstruktur beim Auftreten von Unterbrechungsanfragen vorgestellt. Diese kann darüber hinaus auch für eine Überwachung der Behandlung von Unterbrechungsanfragen mit einer Absicherung der Programmzähler-Struktur verwendet werden.
Fig. 5 zeigt lediglich als eine beispielhafte Umsetzungsmöglichkeit eine
Darstellung eines zeitlichen Ablaufs von Signalen 500, 502, 504 beim Absichern einer Unterbrechungsroutine gemäß einem Ausführungsbeispiel der
vorliegenden Erfindung. Das erste Signal 500 ist ein Taktsignal. Exemplarisch ist eine Taktung mit der steigenden Signalflanke für sechs aufeinanderfolgende Takte dargestellt. Signal 504 stellt den Inhalt des Programmzählerregisters 306 dar. Angenommen in Takt zwei liegt eine Unterbrechungsanfrage 502 an, welche nach dem Einlesen der Befehle an den Adressen n und n-1 bearbeitet werden kann, so kann bereits in Takt drei das Programmzählerregister, beispielsweise mit der Adresse 122 des Interruptvektors 316 beschrieben werden. Diese Adresse des Interruptvektors ist in diesem Ausführungsbeispiel auch jene, die an den Speicher angelegt und durch den Adressvergleich 100 überprüft wird.
Dadurch kann das erfolgreiche Initiieren der entsprechenden
Unterbrechungsroutine überwacht werden.
Ist das Programmzählermodul so gestaltet, dass auch in Takt 4 die
Nachfolgeadresse 322 an den Speicher angelegt wird, so kann zusätzlich, oder auch ausschließlich diese überprüft, und damit ein größerer Teil der
Programmzählerstruktur überwacht werden. In Takt 5 wird schließlich der Interruptvektor 316, und damit die Adresse des ersten Befehls der Überwachungsroutine in das Programmzählerregister geschrieben, an den Speicher angelegt und mit der Abarbeitung der Routine selbst begonnen.
Mit anderen Worten zeigt Fig. 5 ein beispielhaftes Timing Diagramm zur Verdeutlichung des Ablaufs beim Initiieren der Unterbrechungsroutine. Beim Auftreten einer Unterbrechungsanfrage 106 wird dessen Bearbeitung durch den Prozessor initiiert. Anschließend werden die Adressen 122 und 322 angelegt, welche für eine Unterbrechungsüberprüfung genutzt werden können.
Umfasst ein Ausführungsbeispiel eine„und/oder"-Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist.

Claims

Ansprüche
1. Verfahren (400) zum Absichern einer Programmzählerstruktur (102) eines Prozessorsystems (104) bei einer Unterbrechungsanfrage (106), wobei das Prozessorsystem (104) zumindest die
Programmzählerstruktur (102), eine Unterbrechungssteuereinrichtung (108) und einen Speicher (110) umfasst, wobei die
Unterbrechungssteuereinrichtung (108) dazu ausgebildet ist, ansprechend auf die Unterbrechungsanfrage (106) eine zu der
Unterbrechungsanfrage (106) zugehörige Adresse (112) an die
Programmzählerstruktur (102) bereitzustellen, und wobei die
Programmzählerstruktur (102) dazu ausgebildet ist, eine Adresse über eine Speicherschnittstelle (114) zu dem Speicher (110) auszugeben, wobei das Verfahren (400) die folgenden Schritte aufweist:
Einlesen (402) einer Adresse (352) von der Speicherschnittstelle (114);
Vergleichen (406) der Adresse (352) mit einer der
Unterbrechungsanfrage (106) zugeordneten Solladresse (120), um ein Vergleichsergebnis (126) zu erhalten; und
Bereitstellen (408) eines Übereinstimmungssignals (124), unter
Verwendung des Vergleichsergebnisses (126).
2. Verfahren (400) gemäß Anspruch 1, mit einem Schritt des Signalisierens eines erfolgreichen Beginns der Bearbeitung der
Unterbrechungsanfrage unter Verwendung des
Übereinstimmungssignals (124).
3. Verfahren (400) gemäß einem der vorangegangenen Ansprüche, bei dem die Programmzählerstruktur (102) dazu ausgebildet ist, eine der Adresse (352) logisch nachfolgende Nachfolgeadresse an der
Speicherschnittstelle (114) bereitzustellen, wobei im Schritt (402) des Einlesens ferner die Nachfolgeadresse eingelesen wird und im Schritt (404) des Vergleichens die Nachfolgeadresse mit einer der Solladresse (120) logisch nachfolgenden Nachfolge-Solladresse verglichen wird, um das Vergleichsergebnis (126) zu erhalten.
Verfahren zum Überwachen einer Behandlung einer
Unterbrechungsanfrage (106), wobei das Verfahren die folgenden Schritte aufweist:
Ausführen der Schritte (402, 406, 408) eines Verfahrens zum Absichern einer Programmzählerstruktur (102) gemäß einem der
vorangegangenen Ansprüche; und
Überwachen der Behandlung der Unterbrechungsanfrage (106) unter Verwendung des Übereinstimmungssignals (124).
Vorrichtung (100) zum Absichern einer Programmzählerstruktur (102) eines Prozessorsystems (104) bei einer Unterbrechungsanfrage (106), wobei das Prozessorsystem (104) zumindest die
Programmzählerstruktur (102), eine Unterbrechungssteuereinrichtung (108) und einen Speicher (110) umfasst, wobei die
Unterbrechungssteuereinrichtung (108) dazu ausgebildet ist, ansprechend auf die Unterbrechungsanfrage (106) eine der
Unterbrechungsanfrage (106) zugehörige Adresse (112) an die
Programmzählerstruktur (102) bereitzustellen, und wobei die
Programmzählerstruktur (102) dazu ausgebildet ist, eine Adresse (352) an eine Speicherschnittstelle (114) zu dem Speicher (110) auszugeben, wobei die Vorrichtung (100) die folgenden Merkmale aufweist: eine Schnittstelle (116) zum Einlesen einer Adresse (352) von der Speicherschnittstelle (114); eine Vergleichseinrichtung (118) zum Vergleichen der Adresse (352) mit einer der Unterbrechungsanfrage (106) zugeordneten Solladresse (120), um ein Vergleichsergebnis (126) zu erhalten; und eine Ausgabeeinrichtung (122) zum Bereitstellen eines
Übereinstimmungssignals (124) unter Verwendung des
Vergleichsergebnisses (126).
Prozessorsystem (104) mit zumindest einer
Unterbrechungssteuereinrichtung (108), einer Programmzählerstruktur (102), einem Speicher (110) und einer Vorrichtung (100) zum Absichern der Programmzählerstruktur (102) gemäß Anspruch 5, wobei die Unterbrechungssteuereinrichtung (108) dazu ausgebildet ist,
ansprechend auf eine Unterbrechungsanfrage (106) einen der
Unterbrechungsanfrage (106) zugehörige Adresse (112) an die
Programmzählerstruktur (102) bereitzustellen, und wobei die
Programmzählerstruktur (102) dazu ausgebildet ist, eine Adresse (352) an eine Speicherschnittstelle (114) zu dem Speicher (110) auszugeben, und wobei die Vorrichtung (100) dazu ausgebildet ist, die Adresse (352) von der Speicherschnittstelle (114) einzulesen, die Adresse (352) mit einer der Unterbrechungsanfrage (106) zugeordneten Solladresse (120) zu vergleichen und ein Übereinstimmungssignal (124) unter
Verwendung eines Vergleichsergebnisses (126) des Vergleichs bereitzustellen.
Prozessorsystem (104) gemäß Anspruch 6, bei dem die
Programmzählerstruktur (102) Teil eines Prozessorkerns (300) ist, der neben der Programmzählerstruktur (102) zumindest ein elektronisches Rechenwerk (318) umfasst.
Prozessorsystem (104) gemäß Anspruch 7, das als eine integrierte Schaltung realisiert ist.
Computerprogramm, das dazu eingerichtet ist, das Verfahren gemäß einem der vorangegangenen Ansprüche auszuführen. Maschinenlesbares Speichermedium, auf dem das Computerprog nach Anspruch 9 gespeichert ist.
EP16721152.3A 2015-06-22 2016-05-04 Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage Pending EP3311273A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015211458.9A DE102015211458A1 (de) 2015-06-22 2015-06-22 Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
PCT/EP2016/060010 WO2016206847A1 (de) 2015-06-22 2016-05-04 Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage

Publications (1)

Publication Number Publication Date
EP3311273A1 true EP3311273A1 (de) 2018-04-25

Family

ID=55948825

Family Applications (1)

Application Number Title Priority Date Filing Date
EP16721152.3A Pending EP3311273A1 (de) 2015-06-22 2016-05-04 Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage

Country Status (6)

Country Link
US (1) US11113099B2 (de)
EP (1) EP3311273A1 (de)
JP (1) JP6813513B2 (de)
KR (1) KR102603835B1 (de)
DE (1) DE102015211458A1 (de)
WO (1) WO2016206847A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6862747B2 (ja) * 2016-10-11 2021-04-21 ブラザー工業株式会社 液体吐出装置
KR102260820B1 (ko) * 2019-07-08 2021-06-07 숭실대학교산학협력단 대칭적 인터페이스 기반 인터럽트 신호 처리 장치 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
JPS63208130A (ja) * 1987-02-24 1988-08-29 Mitsubishi Electric Corp Cpu誤動作検出装置
JPH0792764B2 (ja) 1988-05-25 1995-10-09 日本電気株式会社 マイクロプロセッサ
EP0510244A1 (de) * 1991-04-22 1992-10-28 Acer Incorporated Verfahren und Anordnung zum Schutz eines Computers gegen Computerviren
JPH0764822A (ja) * 1993-08-26 1995-03-10 Mitsubishi Electric Corp マイクロコンピュータ
FR2764716B1 (fr) * 1997-06-13 2001-08-17 Bull Cp8 Procede de modification de sequences de code et dispositif associe
US6996677B2 (en) * 2002-11-25 2006-02-07 Nortel Networks Limited Method and apparatus for protecting memory stacks
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
IT1391785B1 (it) 2008-11-21 2012-01-27 St Microelectronics Srl Sistema elettronico per il rilevamento di un guasto
JP5335634B2 (ja) * 2009-09-29 2013-11-06 レノボ・シンガポール・プライベート・リミテッド システム管理モードの特権レベルを保護するコンピュータ
JP2011154459A (ja) * 2010-01-26 2011-08-11 Renesas Electronics Corp コンピュータシステムのプログラム異常動作検出装置
US9547546B2 (en) 2012-03-12 2017-01-17 Nxp Usa, Inc. Interrupt supervision system, processing system and method for interrupt supervision
KR101666398B1 (ko) * 2012-10-30 2016-10-17 한국전자통신연구원 Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치
JP6433191B2 (ja) * 2014-08-18 2018-12-05 ルネサスエレクトロニクス株式会社 マイクロコンピュータ

Also Published As

Publication number Publication date
US20180181433A1 (en) 2018-06-28
JP6813513B2 (ja) 2021-01-13
WO2016206847A1 (de) 2016-12-29
US11113099B2 (en) 2021-09-07
KR20180019594A (ko) 2018-02-26
KR102603835B1 (ko) 2023-11-21
JP2018525712A (ja) 2018-09-06
DE102015211458A1 (de) 2016-12-22

Similar Documents

Publication Publication Date Title
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE102013203358A1 (de) System und verfahren zum verifizieren der integrität eines sicherheitskritischen fahrzeugsteuerungssystems
EP1794680A1 (de) Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
EP1810139B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE3336977A1 (de) Ausfallsicheres verfahren fuer einen fahrzeugcomputer
WO2006032585A1 (de) Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
DE102007056218A1 (de) Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
EP3080668A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
EP3311273A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
EP1359485B1 (de) Steuer- und Überwachungssystem
EP1812853B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
DE102016113968A1 (de) Prozessor zur korrelationsbasierter Endlosschleifenerkennung
EP1915687A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten
DE10148157B4 (de) Programmgesteuerte Einheit
EP3388944A1 (de) Verfahren zur fehlererkennung in einem betriebssystem
EP1774417B1 (de) Verfahren und vorrichtung zum überwachen des ablaufs eines steuerprogramms auf einem rechengerät
WO2017153411A1 (de) Verfahren zum betreiben eines steuergeräts für ein kraftfahrzeug
EP2248021B1 (de) Anordnung zur überprüfung eines programmspeichers einer recheneinheit
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
DE102010031017A1 (de) Verfahren zur Überwachung des Programmablaufs eines Prozessors
DE102023004853A1 (de) Verfahren zur Fehlerbehebung von sicherheitsrelevanten mikrocontrollergesteuerten Anwendungen in einem Kraftfahrzeug, sicherheitsrelevanten Computerprogrammprodukt, sicherheitsrelevanten Mikrocontroller, sowie Kraftfahrzeug
EP1418706A1 (de) Verfahren zur Fernkonfiguration

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20180122

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ROBERT BOSCH GMBH

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20210514