IP Library Granted Patent US 7,941,639
Granted Patent B2
US 7,941,639 · App. 11/481,432 · Granted May 10, 2011

Protection of the execution of a program

Assignee: STMicroelectronics S.A.
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,941,639
App. No.
11/481,432
Granted
May 10, 2011
Kind
B2
Abstract

A method for protecting the execution of a main program against possible traps, including, on occurrence of an instruction from the main program, starting a time counter of a given count according to next instructions of the main program, and executing, once the counter has reached its count, at least one instruction of a secondary program from which the result of the main program depends.

Claims (33)

1. A method for protecting the execution of a main program, comprising:

on occurrence of at least one first instruction of the main program, starting a counter;

executing, once the counter has reached a value and regardless of whether the at least one first instruction has finished execution, at least one second instruction of a secondary program to produce a second intermediate result based on a first intermediate result produced by the at least one first instruction, the second intermediate result being incorrect when the at least one second instruction is executed before the at least one first instruction has finished execution; and

regardless of whether the at least one second instruction has been executed, executing at least one third instruction of the main program following execution of the at least one first instruction to determine a result of the main program, the result being calculated based on the second intermediate result such that when the second intermediate result is incorrect or nonexistent, the result will be incorrect.

2. The method of claim 1 , wherein the result of the main program is an arithmetical result.

3. The method of claim 1 , wherein the result of the main program is the starting of a process.

4. The method of claim 1 , wherein the counter is a cycle counter.

5. The method of claim 1 , wherein the counter is an instruction counter.

6. An integrated circuit comprising at least one central processing unit and memories, and comprising means for implementing the method of claim 1 .

7. A method comprising:

starting a counter;

when the counter reaches a value, executing at least one first instruction in a first program to produce an intermediate result; and

regardless of whether the at least one first instruction has been executed, executing at least one second instruction in a second program to determine a result of the second program, the result being an output of at least one arithmetic calculation based on the intermediate result such that when the intermediate result is incorrect or nonexistent, the result will be incorrect.

8. The method of claim 7 , wherein if the at least one first instruction is executed at an incorrect time, the intermediate result is incorrect.

9. The method of claim 7 , wherein executing at least one first instruction comprises producing at least one intermediate result on which the at least one arithmetic calculation to result of the second program depends.

10. The method of claim 7 , wherein the counter is started by at least one third instruction of the second program.

11. At least one computer-readable storage device having stored thereon computer-executable instructions which, when executed, cause a computer to execute a method, the method comprising:

executing at least one first instruction in a first program to start a counter;

when the counter reaches a value, executing at least one second instruction in a second program; and

regardless of whether the at least one second instruction has been executed, executing other instructions of the first program, the other instructions being a remainder of the first program following the at least one first instruction, to determine a result of the main program, the result being dependent on execution of the at least one second instruction.

12. The at least one computer-readable storage device of claim 11 , wherein if the at least one second instruction is executed at an incorrect time, the result of the first program is incorrect.

13. The at least one computer-readable storage device of claim 11 , wherein executing at least one second instruction comprises determining at least one intermediate result on which the result of the first program depends.

14. An apparatus comprising:

at least one processor to:

execute at least one first instruction in a first program to start a counter;

adjust a count value of the counter;

when the counter reaches a value, execute at least one second instruction in a second program; and

regardless of whether the at least one second instruction has been executed, execute other instructions of the first program, the other instructions being a remainder of the first program following the first instruction, to determine a result of the main program, the result being dependent on execution of the at least one second instruction.

15. The apparatus of claim 14 , wherein the processor executes the other instructions without checking for timely execution of the at least one second instruction.

16. The apparatus of claim 14 , wherein the at least one third instruction does not execute if the at least one second instruction is executed at an incorrect time.

17. The apparatus of claim 14 , wherein if the at least one second instruction is executed at an incorrect time, the result of the first program is incorrect.

18. The apparatus of claim 14 , wherein the at least one second instruction comprises determining at least one intermediate result on which the result of the first program depends.

19. The apparatus of claim 14 , further comprising at least one computer-readable medium storing computer-executable instructions which cause the processor to execute the acts of executing and adjusting.

Assignments (3)
CHANGE OF NAME Recorded Jan 21, 2024
From: STMICROELECTRONICS SA
To: STMICROELECTRONICS FRANCE
Reel/Frame 066357/0585 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2007
From: TEGLIA, YANNICK; LIARDET, PIERRE-YVAN; POMET, ALAIN
To: STMICROELECTRONICS S.A.
Reel/Frame 019021/0849 →
EMPLOYMENT DECLARATION Recorded Mar 12, 2007
From: TEGLIA, YANNICK; LIARDET, PIERRE-YVAN; POMET, ALAIN
To: STMICROELECTRONICS S.A.
Reel/Frame 019021/0853 →
Priority Claims (1)
FR 05 52047 · Jul 5, 2005 · national
Continuity (1)
Related Publication 20070150952A1 · Jun 28, 2007