IP Library Granted Patent US 8,639,946
Granted Patent B2
US 8,639,946 · App. 11/166,872 · Granted Jan 28, 2014

System and method of using a protected non-volatile memory

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,639,946
App. No.
11/166,872
Granted
Jan 28, 2014
Kind
B2
Abstract

The disclosure includes a system and method of using a processor and protected memory. In a particular embodiment, the system includes a processor, a volatile memory accessible to the processor, and a first nonvolatile memory accessible to the processor. The first nonvolatile memory includes a first portion of memory that is protected and is readable when a shield bit indicates an unshielded mode of operation, but is unreadable when the shield bit indicates a shielded mode of operation and a second portion of memory that is unprotected and that is readable regardless of the value of the shield bit. The system includes a second nonvolatile memory including data to be transferred to the volatile memory.

Claims (52)

1. A system comprising:

a processor;

a volatile memory accessible to the processor;

a first nonvolatile memory accessible to the processor, the first nonvolatile memory including:

a first portion of memory that is protected and that is accessible during power up of the system when a shield bit indicates an unshielded mode of operation, but, after the first portion of memory is accessed and before execution of program code by the processor, the first portion of memory is inaccessible when the shield bit indicates a shielded mode of operation; and

a second portion of memory that is unprotected and that is readable regardless of a value of the shield bit;

a second nonvolatile memory, the second nonvolatile memory including the program code to be transferred to the volatile memory; and

external test interface protection logic responsive to an external test clock input, wherein the shield bit is set to the shielded mode of operation after detection that a number of cycles of the external test clock input exceeds a threshold;

wherein a key set is stored within the first portion of memory, the key set comprising an authentication key to authenticate the program code and a decryption key to decrypt the program code when the program code is encrypted.

2. The system of claim 1 , wherein the program code includes a plurality of authentication words.

3. The system of claim 1 , wherein the threshold is less than 40 clock cycles.

4. The system of claim 3 , wherein the threshold is 20 clock cycles and wherein the external test clock input is a Joint Test Action Group (JTAG) clock associated with a JTAG instruction.

5. The system of claim 1 , wherein the key set is associated with a unique product manufacturer.

6. The system of claim 1 , wherein the second portion of memory of the first nonvolatile memory includes audio data.

7. The system of claim 1 , wherein the first nonvolatile memory is read only memory and the second nonvolatile memory is flash memory.

8. The system of claim 1 , wherein the threshold is less than 20 clock cycles.

9. The system of claim 1 , further comprising a write once memory device to store the shield bit.

10. A memory device comprising:

a shield bit storage;

a first memory, the first memory including:

a first portion that is protected and that is accessible based on a value of a shield bit from the shield bit storage, and

a second portion that is unprotected and that is accessible independent of the value of the shield bit; and

a second memory to store program code;

wherein the first portion of the first memory includes a key set comprising an authentication key to authenticate the program code and a decryption key to decrypt the program code when the program code is encrypted;

wherein the value of the shield bit at power up of the memory device indicates an unshielded mode of operation that allows access to the first portion of the first memory; and

wherein the value of the shield bit is changed to indicate a shielded mode of operation where the first portion of the first memory is inaccessible when a number of test cycles of an external test clock input exceeds a threshold.

11. The memory device of claim 10 , further comprising a read multiplexer coupled to the first portion of the first memory, the multiplexer controlled at least in part in response to the shield bit.

12. The memory device of claim 11 , wherein the multiplexer outputs a data output value from the first portion of the first memory during the unshielded mode of operation and wherein the multiplexer outputs a fixed output value indicating an error condition during the shielded mode of operation.

13. The memory device of claim 10 , wherein the shield bit storage comprises a write once memory device so that the shield bit is not user modifiable after a single write operation.

14. The memory device of claim 10 , wherein the value of the shield bit is changed to indicate the shielded mode of operation after the first portion of the first memory is accessed but before execution of the program code by a processor.

15. A method comprising:

powering up a processor device having access to a memory device, wherein the memory device comprises:

a shield bit storage including a shield bit;

a first memory including:

a protected portion that is accessible based on a value of the shield bit, wherein the protected portion is in an unshielded mode upon powerup of the processor device, wherein the protected portion is accessible to the processor conditioned on the protected portion being in the unshielded mode, and wherein the protected portion is inaccessible to the processor when the protected portion is in a shielded mode, and

an unprotected portion that is accessible to the processor independent of the value of the shield bit; and

a second memory configured to store program code,

wherein the protected portion includes a key set comprising:

an authentication key to authenticate the program code, and

a decryption key to decrypt the program code when the program code is encrypted; and

changing a mode from the unshielded mode to the shielded mode in response to a number of test cycles of an external clock input detected at the processor device exceeding a threshold.

16. The method of claim 15 , wherein the key set is readable when the protected portion is in the unshielded mode.

17. The method of claim 15 , wherein the shield bit is stored in a write once memory.

18. The method of claim 15 , further comprising:

reading the key set from the protected portion when the mode is the unshielded mode; and

changing the mode from the unshielded mode to the shielded mode after transfer of data associated with the protected portion and before a processor of the processor device executes the program code.

19. The method of claim 15 , wherein the threshold is less than 20 clock cycles.

20. The method of claim 18 , wherein the first memory includes read only memory, and wherein the second memory includes flash memory.

21. The method of claim 15 , further comprising:

receiving an attempt to access the protected portion when the protected portion is in the shielded mode; and

returning an indication of a shielded and unreadable memory condition in response to the attempt.

22. The method of claim 15 , wherein the threshold is less than 40 clock cycles.

Assignments (25)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CHANGE OF NAME Recorded Aug 31, 2017
From: SIGMATEL, INC.
To: SIGMATEL, LLC
Reel/Frame 043735/0306 →
MERGER Recorded Jul 26, 2017
From: SIGMATEL, LLC
To: NXP USA, INC.
Reel/Frame 043328/0351 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 037354 FRAME: 0773. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT RELEASE. Recorded Aug 15, 2016
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, LLC
Reel/Frame 039723/0777 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, INC.
Reel/Frame 037354/0734 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, INC.
Reel/Frame 037354/0773 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, INC.
Reel/Frame 037355/0838 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
SECURITY AGREEMENT Recorded Nov 12, 2013
From: SIGMATEL, LLC
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031626/0218 →
SECURITY AGREEMENT Recorded Jun 17, 2013
From: SIGMATEL, LLC
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030628/0636 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded May 10, 2010
From: SIGMATEL, LLC
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 024358/0439 →
SECURITY AGREEMENT Recorded Mar 16, 2010
From: SIGMATEL, LLC
To: CITIBANK, N.A.
Reel/Frame 024079/0406 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Jul 9, 2008
From: SIGMATEL, INC.
To: CITIBANK, N.A.
Reel/Frame 021212/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2005
From: BAKER, DAVID CURETON
To: SIGMA TEL, INC.
Reel/Frame 016731/0823 →