IP Library Granted Patent US 7,644,322
Granted Patent B2
US 7,644,322 · App. 11/562,280 · Granted Jan 5, 2010

Hardware flow control monitor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,644,322
App. No.
11/562,280
Granted
Jan 5, 2010
Kind
B2
Abstract

Systems for detecting unexpected program flow may include a hardware program flow monitor to generate an interrupt signal if a software program flow value does not match an incrementally updated hardware value when a processor executes a program flow check instruction. In some examples, a program of instructions may include a number of program flow check instructions. When a program flow check instruction is executed, the processor may send the software value to be compared to the hardware register value. In an illustrative example, program execution causes the hardware value to be incremented in a hardware register. Upon execution of a program flow check instruction, the hardware value is compared to a software value associated with the program flow check instruction to determine if the program instructions have been executed in an expected sequence (e.g., according to an expected program flow).

Claims (22)

1. A system comprising:

a register operable to store a first data value that represents an expected place of an instruction in a predetermined sequence of instructions;

a processor to execute a set of instructions to be performed in the predetermined sequence, wherein executing the sequence of instructions causes operations to be performed, the operations comprising:

processing an instruction in the set of instructions to determine whether the instruction is being executed according to the predetermined sequence; and

setting a second data value to a value that represents the processed instruction's place in the predetermined sequence;

an evaluation module to evaluate whether the first data value corresponds to the second data value;

an update module to update the first data value in response to an update signal associated with the processor's execution of the instructions according to the predetermined sequence if the first data value corresponds to the second data value;

an output module to generate an output signal if the second data value does not correspond to the first data value;

a counter that includes the register and the update module; and

a smart card that includes the processor and the counter.

2. The system of claim 1 , wherein the set of instructions comprises a branch of sequential instructions in a program of instructions.

3. The system of claim 2 , wherein the program of instructions comprises at least one additional branch of sequential instructions.

4. The system of claim 2 , wherein the operations further comprise initializing the second data value after beginning to execute the branch of sequential instructions.

5. The system of claim 1 , wherein the update signal corresponds to one or more instruction cycles of the processor.

6. The system of claim 1 , wherein the update signal corresponds to each execution of one of the instructions to determine whether the instruction is being executed according to the predetermined sequence.

7. The system of claim 1 , wherein a value of the predetermined sequence is determined upon compiling the set of instructions.

8. The system of claim 1 , further comprising a watchdog module to generate the output signal if the update module does not receive the update signal for at least a predetermined length of time.

9. The system of claim 1 , wherein the processor comprises an interrupt input coupled to receive the output signal.

10. The system of claim 1 , further comprising a data bus that is operable to transport the second data value from the processor to the evaluation module.

11. The system of claim 1 , wherein the evaluation module is operable to determine if the first value matches the second value.

12. The system of claim 1 , wherein the output signal initiates a protective action.

13. The system of claim 12 , wherein the protective action includes interrupting the processor.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: RAMBUS INC.
To: CRYPTOGRAPHY RESEARCH, INC.
Reel/Frame 054539/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: VERIMATRIX
To: RAMBUS INC.
Reel/Frame 051262/0413 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 21, 2019
From: GLAS SAS, AS AGENT
To: INSIDE SECURE
Reel/Frame 051076/0306 →
CHANGE OF ADDRESS Recorded Oct 16, 2019
From: VERIMATRIX
To: VERIMATRIX
Reel/Frame 050733/0003 →
CHANGE OF NAME Recorded Oct 7, 2019
From: INSIDE SECURE
To: VERIMATRIX
Reel/Frame 050647/0428 →
SECURITY INTEREST Recorded Feb 27, 2019
From: INSIDE SECURE
To: GLAS SAS, AS SECURITY AGENT
Reel/Frame 048449/0887 →
CHANGE OF ADDRESS Recorded Aug 25, 2016
From: INSIDE SECURE
To: INSIDE SECURE
Reel/Frame 040116/0700 →
CHANGE OF NAME Recorded Sep 5, 2012
From: INSIDE CONTACTLESS
To: INSIDE SECURE
Reel/Frame 028901/0685 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2010
From: ATMEL CORPORATION
To: INSIDE CONTACTLESS S.A.
Reel/Frame 025445/0347 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2007
From: DYE, ALBERT
To: ATMEL CORPORATION
Reel/Frame 020102/0124 →