Program-Instruction-Controlled Instruction Flow Supervision
AssigneeInfineon Technologies AG
InventorsBerndt Gammel, Stefan Mangard, Steffen Sonnekalb
Life of this patent
Estimating the term…
Abstract
A signature module calculates a signature during the execution of a program by a central processing unit based on program instructions to the central processing unit, and stores the signature in a signature register of the signature module. The signature module includes: a calculation unit configured to generate a signature value based on program instructions executed on the central processing unit; and an instruction information interface configured to receive at least one item of instruction information from the central processing unit which indicates whether an instruction currently being executed by the central processing unit was jumped to indirectly or directly.
Claims44
A device for executing a program, the device comprising:
- a central processing unit;
- and
- a signature module configured to calculate a signature on the basis of instructions and to store the signature in a signature register,
- wherein calls of interrupt routines or subroutines occur during execution of the program by the central processing unit,
- wherein the device for executing the program is configured if a call of an interrupt routine takes place, to read out the signature assigned to the interrupted program from the signature module by means of a program instruction of the interrupt routine and to store the signature, and to write the stored signature to the signature module before leaving the interrupt routine by means of a program instruction of the interrupt routine, or if a call of a subroutine takes place, to adapt the signature in the signature register to a signature of the subroutine before the call of the subroutine by means of a program instruction that brings about a relative change in the signature, and, after a return from the subroutine, by means of a further program instruction that brings about a relative change in the signature, to adapt the signature in the signature register to a signature of the program section from which the call of the subroutine took place.
A device comprising a signature module configured to calculate a signature during execution of a program by a central processing unit based on program instructions to the central processing unit and to store the signature in a signature register of the signature module, the signature module comprising:
- a calculation unit configured to generate a signature value based on program instructions executed on the central processing unit;
- an interrupt information interface configured to receive interrupt information from the central processing unit;
- and
- an interrupt information evaluation unit configured to determine an activity state of the calculation unit based on the interrupt information, such that the calculation unit is active when at least one first condition of the interrupt information is met, in order, in the course of an interrupt routine being carried out, to calculate a signature based on program instructions of the interrupt routine and to store it in the signature register, and that the calculation unit is inactive when at least one second condition is met, and the signature register maintains a signature determined last by the calculation unit.
A signature module configured to calculate a signature during the execution of a program by a central processing unit based on program instructions to the central processing unit and to store the signature in a signature register of the signature module, the signature module comprising:
- a calculation unit configured to generate a signature value based on program instructions executed on the central processing unit;
- and
- an instruction information interface configured to receive at least one item of instruction information from the central processing unit which indicates whether an instruction currently being executed by the central processing unit was jumped to indirectly or directly.
A method for calculating a signature based on instructions executed by a central processing unit during execution of a program, and for storing the signature in a signature register of a signature module, wherein interrupt requests or calls of subroutines occur during the execution of the program by the central processing unit, the method comprising:
- reading out, if an interrupt request is received, the signature assigned to the interrupted program from the signature module by means of a program instruction of an interrupt routine assigned to the interrupt request,
- storing the signature by means of a program instruction of the interrupt routine,
- writing the stored signature to the signature module by means of a program instruction of the interrupt routine before leaving the interrupt routine, or, if a call of a subroutine takes place, adapting the signature in the signature register to a signature of the subroutine by means of a program instruction that brings about a relative change in the signature, before the call of the subroutine;
- and
- adapting the signature in the signature register to a signature of a program section of the program from which the subroutine was called, by means of a further program instruction that brings about a relative change in the signature, after a return from the subroutine to the program section.
Dependencies are inferred from the claim text.