IP Library Granted Patent US 8,769,355
Granted Patent B2
US 8,769,355 · App. 13/169,664 · Granted Jul 1, 2014

Using built-in self test for preventing side channel security attacks on multi-processor systems

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,769,355
App. No.
13/169,664
Granted
Jul 1, 2014
Kind
B2
Abstract

A data processing system having a first processor, a second processor, a local memory of the second processor, and a built-in self-test (BIST) controller of the second processor which performs BIST memory accesses on the local memory of the second processor and which includes a random value generator is provided. The system can perform a method including executing a secure code sequence by the first processor and performing, by the BIST controller of the second processor, BIST memory accesses to the local memory of the second processor in response to the random value generator. Performing the BIST memory accesses is performed concurrently with executing the secure code sequence.

Claims (45)

1. A data processing system, comprising:

a first processor;

a second processor, the second processor having a cache;

a built-in self-test (BIST) controller coupled to the cache of the second processor, wherein the BIST controller comprises:

an address generator configured to generate memory addresses for the cache of the second processor;

a data pattern generator configured to generate data patterns for storage into the cache;

control circuitry configured to store data generated by the data pattern generator at memory addresses of the cache generated by the address generator and to load data from the cache;

a data compare unit coupled to the control circuitry configured to determine if data values read from the cache match expected data values;

a random value generator coupled to the address generator; and

storage circuitry configured to store a random BIST enable (RBE) indicator, wherein, the first data processor is configured to assert the RBE indicator upon initiating execution of a secure code sequence, and the control circuitry is configured to, in response to assertion of the RBE indicator by the first processor, perform memory accesses to memory addresses of the cache generated by the address generator in response to the random value generator.

2. The data processing system of claim 1 , wherein the control circuitry is configured to continuously perform memory accesses to memory addresses of the cache generated by the address generator in response to the random value generator while the RBE indicator is asserted.

3. The data processing system of claim 2 , wherein the memory accesses are continuously performed to the memory addresses of the cache generated by the address generator in response to the random value generator at random time intervals while the RBE indicator is asserted, wherein the random time intervals are determined in response to the random value generator.

4. The data processing system of claim 2 , wherein the control circuitry is configured to stop performing memory accesses to memory addresses of the cache generated by the address generator in response to the random value generator in response to deassertion of the RBE indicator.

5. The data processing system of claim 4 , wherein the second processor is placed into an idle state prior to asserting the RBE indicator.

6. The data processing system of claim 5 , wherein the second processor is released from the idle state after deasserting the RBE indicator.

7. The data processing system of claim 1 , wherein when the RBE indicator is not asserted, the control circuitry is configured to:

store data patterns generated by the data pattern generator without using the random value generator to memory addresses of the cache generated by the address generator without using the random value generator,

read data values from the cache, and

provide the read data values from the cache to the data compare unit for comparison with the expected data values.

8. The data processing system of claim 1 , wherein the control circuitry is configured to store data patterns generated by the data pattern generator in response to the random value generator for at least a portion of the memory accesses performed to the memory addresses of the cache generated by the address generator in response to the random value generator.

9. In a data processing system having a first processor, a second processor, a local memory of the second processor, and a built-in self-test (BIST) controller of the second processor which performs BIST memory accesses on the local memory of the second processor and stores a random BIST enable (RBE) indicator, a method comprising:

initiating, by the first processor, execution of a secure code sequence;

asserting the RBE indicator;

in response to assertion of the RBE indicator, initiating, by the BIST controller of the second processor, BIST memory accesses to the local memory of the second processor in response to a random value generator; and

executing, by the first processor, the secure code sequence concurrently with the BIST controller of the second processor performing BIST memory accesses to the local memory of the second processor in response to the random value generator.

10. The method of claim 9 , further comprising:

prior to asserting the RBE indicator, placing the second processor in an idle state.

11. The method of claim 10 , further comprising:

after executing the secure code sequence, deasserting the RBE indicator; and

in response to the deasserting the RBE indicator, the BIST controller of the second processor stopping the performing BIST memory accesses to the local memory of the second processor in response to the random value generator.

12. The method of claim 11 , further comprising:

after deasserting the RBE indicator, releasing the second processor from the idle state.

13. The method of claim 9 , wherein the performing the BIST memory accesses to the local memory of the second processor in response to the random value generator by the BIST controller comprises:

providing random values generated by the random value generator to an address generator of the BIST controller, wherein the address generator uses the random values to generate random addresses of the local memory for the BIST memory accesses.

14. The method of claim 13 , wherein each of the BIST memory accesses to the local memory is further characterized as a read access.

15. The method of claim 9 , wherein the performing the BIST memory accesses to the local memory of the second processor in response to the random value generator by the BIST controller comprises:

providing random values generated by the random value generator to a data pattern generator of the BIST controller, wherein the data pattern generator uses the random values to generate random data for storage in the local memory for the BIST memory accesses.

16. The method of claim 9 , wherein the performing the BIST memory accesses to the local memory of the second processor in response to the random value generator by the BIST controller comprises:

using random values generated by the random value generator to generate the BIST memory accesses at random time intervals.

17. The method of claim 9 , wherein when the RBE indicator is deasserted, the method further comprises:

performing BIST memory accesses to the local memory of the second processor by the BIST controller without using the random value generator;

reading, by the BIST controller, data values from the local memory; and

comparing, by the BIST controller, the read data values with expected data values.

18. The method of claim 9 , wherein the local memory of the second processor is further characterized as a cache of the second processor.

19. In a data processing system having a first processor, a second processor, a local memory of the second processor, and a built-in self-test (BIST) controller of the second processor which performs BIST memory accesses on the local memory of the second processor and includes a random value generator, a method comprising: executing, by the first processor, a secure code sequence; and performing, by the BIST controller of the second processor, BIST memory accesses to the local memory of the second processor in response to the random value generator, wherein the performing the BIST memory accesses is performed concurrently with the executing the secure code sequence, wherein the performing the BIST memory accesses to the local memory of the second processor in response to the random value generator by the BIST controller comprises: using random values generated by the random value generator to generate at least one of random addresses of the local memory for the BIST memory accesses or random data for storage in the local memory for the BIST memory accesses.

Assignments (22)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
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 →
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/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2011
From: SCOTT, JEFFREY W.; MOYER, WILLIAM C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 026507/0358 →