IP Library Granted Patent US 8,935,679
Granted Patent B2
US 8,935,679 · App. 13/648,501 · Granted Jan 13, 2015

Compiler optimized safety mechanism

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 8,935,679
App. No.
13/648,501
Granted
Jan 13, 2015
Kind
B2
Abstract

An approach is provided in which a set of common instructions are each executed by at least two processor cores. Each of the processor cores queues values resulting from at least one of the common instructions (a critical section). The queued values are compared by a queued comparator. An exception is issued in response to the comparison revealing unequal values having been queued by the processor cores.

Claims (58)

1. A computer-implemented method comprising:

executing a set of common instructions, wherein each of the common instructions is executed by at least two processor cores, and wherein the set of common instructions comprises critical section and a non-critical section;

queuing, by each of the processor cores, a value resulting from at least one of the common instructions executed by the processor core, wherein executing the critical section generates the value;

comparing the queued values; and

issuing an exception in response to the comparison revealing a different value queued by at least one of the processor cores.

2. The computer-implemented method of claim 1 further comprising:

prior to the executing:

identifying a critical section of a source code; and

compiling the source code, including the identified critical section, of the source code, into the set of common instructions, wherein compiling the identified critical section of the source code results in the critical section of the common instructions.

3. The computer-implemented method of claim 2 wherein the compiling further comprises:

inserting a plurality of checking codes corresponding to the identified critical section, of the source code, wherein the checking code includes instructions to queue the value.

4. The computer-implemented method of claim 1 wherein the comparing is performed by a queued comparator and wherein operation of the queued comparator comprises:

retrieving the queued values stored by the plurality of processor cores;

comparing the retrieved queued values;

retiring the retrieved values in response to each of the values being equal; and

wherein the issuing of the exception is performed in response to any of the values being unequal.

5. The computer-implemented method of claim 4 wherein the values are queued to a common queue managed by the queued comparator.

6. The computer-implemented method of claim 1 wherein each of the processor cores are time-decoupled and wherein at least one of the processor cores operates out of phase with the other processor cores.

7. The computer-implemented method of claim 1 further comprising:

queuing a plurality of queued values, including the value, by the processor cores, wherein the queuing is performed when a plurality of critical sections of the common instructions are executed;

comparing each set of values queued by the processor cores; and

issuing the exception in response to each set of values that are unequal to each other.

8. A system comprising:

one or more processor cores, wherein each of the processor cores executes a set of common instructions, and wherein the set of common instructions comprises a critical section and a non-critical section;

a queue accessible by the processors, wherein a value is stored in the queue by each of the processor cores after executing the common instructions, wherein executing the critical section generates the value; and

a queue comparator that compares values stored in the queue and issues an exception in response to unequal values being stored in the queue after executing the common instructions.

9. The system of claim 8 further comprising:

a source code that includes an identified critical section; and

a compiler that compiles the source code, including the identified critical section of the source code, into the set of common instructions, wherein compiling the identified critical section of the source code results in the critical section of the common instructions.

10. The system of claim 9 further comprising:

checking code inserted by the compiler into the set of common instructions, wherein the checking code includes instructions to store the value in the queue.

11. The system of claim 8 wherein the queued comparator performs a set of actions comprising:

retrieving, from the queue, the queued values stored in the queue by the processor cores;

comparing the retrieved queued values;

retiring the retrieved values in response to each of the values being equal; and

issuing the exception in response to any of the values being unequal.

12. The system of claim 8 wherein each of the processor cores are time-decoupled and wherein at least one of the processor cores operates out of phase with the other processor cores.

13. The system of claim 8 further comprising:

storing a plurality of values, including the value, by the processor cores, into the queue, wherein the storing is performed when a plurality of critical sections of the common instructions are executed;

comparing, by the queued comparator, each set of values stored by the processor cores; and

issuing the exception in response to each set of values that are unequal to each other.

14. The system of claim 8 wherein the plurality of processor cores, the queue, and the queued comparator are included in a common silicon substrate.

15. A computer-implemented method comprising:

retrieving a source code, wherein the source code includes a critical section;

compiling the retrieved source code into a set of instructions;

executing each of the instructions by two or more processor cores;

writing, by each of the processor cores, a value generated by the executing of the critical section, wherein the values are written to a queue; and

issuing an exception in response to the values being unequal.

16. The computer-implemented method of claim 15 wherein the compiling further comprises:

inserting a plurality of checking code corresponding to the critical section, wherein the checking code includes instructions to write the value to the queue.

17. The computer-implemented method of claim 15 wherein the comparing is performed by a queued comparator and wherein operation of the queued comparator comprises:

retrieving the values from the queue;

comparing the retrieved queued values;

retiring the retrieved values in response to each of the values being equal; and

issuing the exception in response to the values being unequal.

18. The computer-implemented method of claim 17 wherein each of the processor cores are time-decoupled and wherein at least one of the processor cores operates out of phase with the other processor cores.

19. The computer-implemented method of claim 18 wherein the two or more processor cores, the queue, and the queued comparator are included in a common silicon substrate.

20. The computer-implemented method of claim 19 wherein the critical section corresponds to a safety check and wherein the value corresponds to a control of a safety system.

Assignments (20)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
PATENT RELEASE Recorded Jan 14, 2016
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037494/0312 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0685 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0671 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0523 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030258/0540 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Apr 22, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030258/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2012
From: MORRISON, GARY R.; KAHNE, BRIAN C.; REIPOLD, ANTHONY M.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 029104/0602 →