IP Library › Granted Patent US 9,613,214
Granted Patent B2
US 9,613,214 · App. 13/937,887 · Granted Apr 4, 2017

Self-measuring nonvolatile memory devices with remediation capabilities and associated systems and methods

Inventor: Lance W. Dover (Citrus Heights, CA)
Assignee: Micron Technology, Inc.
G06F21/57G06F2221/034
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 9,613,214
App. No.
13/937,887
Granted
Apr 4, 2017
Kind
B2
Abstract

Several embodiments of systems incorporating nonvolatile memory devices are disclosed herein. In one embodiment, a system can include a central processor (CPU) and a nonvolatile memory device operably coupled to the CPU. The nonvolatile memory device can include a memory that stores pre-measurement instructions that are executable by the nonvolatile memory upon startup, but not executable by the CPU upon startup. In operation, the pre-measurement instructions direct the nonvolatile memory to take a measurement of at least a portion of its contents and to cryptographically sign the measurement to indicate that the measurement was taken by the nonvolatile memory device. In one embodiment, the CPU can use the measurement to determine whether the nonvolatile memory device is trustworthy.

Claims (40)

1. A computer system, comprising:

a central processor (CPU); and

a nonvolatile memory device operably coupled to the CPU, wherein the nonvolatile memory device includes memory and a controller operably coupled to the memory, wherein the memory stores boot block code and pre-measurement instructions, wherein the pre-measurement instructions are executable by the controller of the nonvolatile memory device upon startup, wherein the pre-measurement instructions are not executable by the CPU, and wherein the pre-measurement instructions

direct the controller of the nonvolatile memory device to obtain a measurement of at least a portion of the boot block code stored in the memory, wherein the measurement is a measured value based on contents of the boot block code stored in the memory,

direct the controller of the nonvolatile memory device to prevent read and write access by the CPU upon startup and at least until the measurement is obtained,

direct the nonvolatile memory device to cryptographically sign the measurement, and

provide the CPU access to the signed measurement to a component separate from the nonvolatile; and

a security coprocessor separate from the nonvolatile memory device and operably coupled to the CPU,

wherein the CPU is configured to compare the measured value to an expected value provided by the security coprocessor to determine whether the nonvolatile memory device is trustworthy.

2. The system of claim 1 wherein the nonvolatile memory device is configured to prevent CPU access to the boot block code upon startup and at least until the measurement is cryptographically signed.

3. The system of claim 2 wherein:

the nonvolatile memory device stores the pre-measurement instructions in a dedicated portion of the memory; and

the nonvolatile memory device stores the startup instructions in a main portion of the memory separate from the dedicated portion of the memory.

4. The system of claim 1 wherein the nonvolatile memory device is further configured to flag itself as trustworthy or untrustworthy based on the determination of whether the nonvolatile memory device is trustworthy.

5. The system of claim 1 wherein the nonvolatile memory device is further configured to enable read and/or write access based on the determination of whether the nonvolatile memory device is trustworthy.

6. The system of claim 1 wherein the nonvolatile memory device is configured to determine whether the nonvolatile memory device is trustworthy, and wherein in response to the determination of whether the nonvolatile memory device is trustworthy, the nonvolatile memory device is configured to carry out a remediation measure that includes at least one of:

notifying the CPU that at least a portion of the nonvolatile memory device is not trustworthy,

disabling CPU read and/or write access, and

loading alternate startup instructions in response to a request from the CPU.

7. The system of claim 1 wherein the nonvolatile memory device comprises a boot block, and wherein the nonvolatile memory device is configured to flag whether the boot block is trustworthy based on the measurement taken by the nonvolatile memory device.

8. The system of claim 1 wherein the nonvolatile memory device comprises a basic input/output system (BIOS), and wherein the nonvolatile memory device is configured to flag whether the BIOS is trustworthy based on the measurement taken by the nonvolatile memory device.

9. A method of initiating system boot in a computer system having a nonvolatile memory device operably coupled to a central processing unit (CPU), the method comprising:

upon powering on a computer system, directing a controller of the nonvolatile memory device to perform operations based on pre-measurement instructions stored in a memory of the nonvolatile memory device, wherein the pre-measurement instructions are not executable by the CPU, and wherein the operations include

obtaining a measured value from a portion of the nonvolatile memory device using a controller of the nonvolatile memory device, wherein the nonvolatile memory device stores boot block code, and wherein the measured value is indicative of whether the nonvolatile memory device is trustworthy,

preventing CPU access to the boot block code stored in the nonvolatile memory device via the controller of the nonvolatile memory device at least until the measured value is obtained, and

communicating the measured value to the CPU;

obtaining an expected value from a security coprocessor separate from the nonvolatile memory device; and

comparing the measured value to the expected value via the CPU to determine whether the nonvolatile device is trustworthy.

10. The method of claim 9 , further comprising,

after comparing the measured value to the expected value, providing read and/or write access to the nonvolatile memory device in response to a request from the CPU.

11. A memory system comprising nonvolatile memory, a separate processor operably coupled to the nonvolatile memory, and a security coprocessor coupled to the separate processor, wherein the separate processor is independent of the nonvolatile memory, and wherein the nonvolatile memory comprises:

a controller module including a microcontroller and a first memory configured to store microcode executable by the microcontroller that initiates pre-measurement instructions upon powering on the nonvolatile memory, wherein the microcode is not executable by a processor other than the microcontroller; and

a second memory separate from the first memory and configured to store startup instructions executable by the separate processor, wherein the startup instructions include boot block code stored in the second memory, and

wherein the pre-measurement instructions direct the microcontroller to (1) obtain a measurement of at least a portion of the boot block code stored in the second memory, (2) prevent access to the boot block code by the separate processor upon powering on the nonvolatile memory and at least until the measurement is obtained, and (3) provide the measurement to the separate processor to compare the measurement to an expected value stored in the security coprocessor to detect whether the nonvolatile memory is corrupted.

12. The memory system of claim 11 wherein the first memory is a read only memory (ROM).

13. The memory system of claim 11 wherein the startup instructions are encoded in program code other than microcode.

14. The memory system of claim 11 wherein the pre-measurement instructions include instructions that direct the nonvolatile memory to take a remediation measure in response to detecting that the nonvolatile memory is corrupted.

15. The memory system of claim 11 wherein the startup instructions are original startup instructions, and wherein:

at least one of the first memory and the second memory store alternate startup instructions; and

upon determining that the original startup instructions are corrupted, the pre-measurement instructions instruct the microcontroller to provide alternate startup instructions in response to a request from the separate processor.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: DOVER, LANCE W.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 030761/0416 →
Continuity (1)
Related Publication 20150019793A1 · Jan 15, 2015