IP Library Granted Patent US 10,387,336
Granted Patent B2
US 10,387,336 · App. 15/469,287 · Granted Aug 20, 2019

Memory protection based on system state

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 10,387,336
App. No.
15/469,287
Granted
Aug 20, 2019
Kind
B2
Abstract

Disclosed in some examples are memory systems, computing systems, and machine readable mediums for protecting memory at identified addresses based upon access rules defining permissible access to the identified memory addresses that depends on the value of one or more registers stored in the memory system. In some examples, the value of the registers (e.g., a Platform Configuration Register) may depend on a state of a computing device in which the memory system is installed.

Claims (65)

1. A memory system, comprising:

a non-volatile memory array, the non-volatile memory array including multiple addressable memory storage locations and storing an access rule, the access rule specifying a control register, the control register modifiable from an initial value only by extending the value of the control register;

a second memory array storing the control register; and

a controller, the controller coupled to the non-volatile memory array and the second memory array;

the controller to perform operations comprising:

receive a request to access a particular one of the multiple addressable memory storage locations of the non-volatile memory array;

determine, based upon the access rule, that the particular memory storage location is protected by the access rule; and

in response to the determination that the particular memory storage location is protected by the access rule, determining that the particular memory storage location is accessible given a value of the control register; and

responsive to determining that the particular memory storage location is accessible given the value of the control register, process the request to access the particular memory storage location.

2. The memory system of claim 1 , wherein the controller is to perform further operations comprising:

receive a command to extend the control register, the command including an extension value;

extending the control register by applying an algorithm to the value of the control register and the extension value to create a new value; and

setting the control register to the new value.

3. The memory system of claim 2 , wherein the algorithm is a hash algorithm.

4. The memory system of claim 2 , wherein the controller is to perform further operations comprising:

receive a second request to access the particular one of the multiple addressable memory storage locations of the non-volatile memory array;

determine, based upon the access rule, that the particular memory storage location is protected by the access rule;

in response to the determination that the particular memory storage location is protected by the access rule, determining that the particular memory storage location is not accessible given the new value of the control register; and

responsive to determining that the particular memory storage location is not accessible given the new value of the register, deny the request to access the particular memory storage location.

5. The memory system of claim 1 , wherein the controller is to perform further operations comprising:

receive a second request to access another one of the multiple addressable memory storage locations of the non-volatile memory array;

determine, based upon a second access rule, that the another addressable memory storage location is protected by the second access rule, the second access rule specifying a second control register, the second control register modifiable from an initial value only by extending the value of the second control register;

in response to the determination that the another memory storage location is protected by the second access rule, determining that the another memory storage location is not accessible given the value of the second register; and

responsive to determining that the another memory storage location is not accessible given the value of the second register, deny the second request.

6. The memory system of claim 1 , wherein the controller is to determine that the particular memory storage location is accessible by evaluating the access rule using a value of the control register to produce a Boolean value indicating that the memory storage location is accessible.

7. The memory system of claim 6 , wherein the controller is to determine that the particular memory storage location is accessible if the value of the control register equals the comparison value.

8. The memory system of claim 1 , wherein the controller is to perform further operations to:

set the control register to the initial value upon system power up.

9. A memory access method comprising:

receiving a request to access a particular addressable memory storage location of a non-volatile memory array, the non-volatile memory array storing an access rule, the access rule specifying a control register, the control register modifiable from an initial value only by extending the value of the control register, the control register in a second memory array;

determining, based upon the access rule, that the particular memory storage location is protected by the access rule;

in response to the determination that the particular memory storage location is protected by the access rule, determining that the particular memory storage location is accessible given a value of the control register; and

responsive to determining that the particular memory storage location is accessible given the value of the control register, processing the request to access the particular memory storage location.

10. The memory access method of claim 9 , comprising:

receiving a command to extend the control register, the command including an extension value;

extending the control register by applying an algorithm to the value of the control register and the extension value to create a new value; and

setting the control register to the new value.

11. The memory access method of claim 10 , wherein the algorithm is a hash algorithm.

12. The memory access method of claim 10 , comprising:

receiving a second request to access the particular one of the multiple addressable memory storage locations of the non-volatile memory array;

determining, based upon the access rule, that the particular memory storage location is protected by the access rule;

in response to determining that the particular memory storage location is protected by the access rule, determining that the particular memory storage location is not accessible given the new value of the control register; and

responsive to determining that the particular memory storage location is not accessible given the new value of the register, denying the request to access the particular memory storage location.

13. The memory access method of claim 9 , comprising:

receiving a second request to access another one of the multiple addressable memory storage locations of the non-volatile memory array;

determining, based upon a second access rule, that the another addressable memory storage location is protected by the second access rule, the second access rule specifying a second control register, the second control register modifiable from an initial value only by extending the value of the second control register;

in response to determining that the another memory storage location is protected by the second access rule, determining that the another memory storage location is not accessible given the value of the second register; and

responsive to determining that the another memory storage location is not accessible given the value of the second register, denying the second request.

14. The memory access method of claim 9 , wherein determining that the particular memory storage location is accessible comprises evaluating the access rule using a value of the control register to produce a Boolean value indicating that the memory storage location is accessible.

15. The memory access method of claim 14 , wherein determining that the particular memory storage location is accessible comprises evaluating if the value of the control register equals the comparison value.

16. The memory access method of claim 9 , comprising setting the control register to the initial value upon system power up.

17. A memory controller, the memory controller comprising:

a first memory location comprising a first value; and

the memory controller configured to:

receive, over a computer system bus, a request to extend the first value in the first memory location, the request including a computer system measurement value;

set the first memory location to a new value that is calculated based upon a cryptographic hash of the first value and the computer system measurement value.

18. The memory controller of claim 17 , wherein the cryptographic hash is a hash algorithm.

19. The memory controller of claim 17 , wherein the controller is further configured to:

set the value of the first memory location to an initial value upon power up of the memory controller.

20. The memory controller of claim 17 , wherein the controller is further configured to:

authenticate the request using a cryptographic key prior to setting the first memory location to the new value.

21. The memory controller of claim 17 , wherein the controller is further configured to:

receive, over the computer system bus, an access request from an application executing on a processor of the computer system for a second non-volatile memory location managed by the memory controller; and

determine that for the second non-volatile memory location the value of a second memory location equals a second value to allow an access of the type requested by the application, and in response, process the request.

22. The memory controller of claim 17 , wherein the first memory location is a platform configuration register.

Assignments (5)
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 050702/0451 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2018
From: DOVER, LANCE W
To: MICRON TECHNOLOGY, INC.
Reel/Frame 045359/0129 →
SUPPLEMENT NO. 4 TO PATENT SECURITY AGREEMENT Recorded May 4, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042405/0909 →