IP Library Granted Patent US 10,642,728
Granted Patent B2
US 10,642,728 · App. 15/908,545 · Granted May 5, 2020

Storage class memory status

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,642,728
App. No.
15/908,545
Granted
May 5, 2020
Kind
B2
Abstract

Devices and techniques for storage class memory status are disclosed herein. A storage portion characteristics data structure is maintained. Here, the data structure includes an array of elements—where each element is sized to contain a reference to a storage portion in a storage class memory storage device, a first pointer to a first element in the array of elements, a second pointer to a second element in the array of elements, and a third pointer to a third element in the array of elements. The data structure includes a direction of pointer motion in which the second pointer precedes the third pointer and the first pointer precedes the second pointer with respect to the direction of pointer motion. A write request is performed to a storage portion reference retrieved from the first element. The first pointer is then advanced.

Claims (68)

1. A device comprising:

a storage class memory array; and

a controller including processing circuitry to perform operations comprising:

maintaining a storage portion characteristics data structure that comprises:

an array of elements, each element sized to store a reference to a storage portion in the storage class memory array, the array of elements being accessed as a circular array;

a first pointer to a first element in the array of elements, the first pointer pointing to a start of a first list of elements in the array of elements, the first list of elements storing references to clean pages in the storage portion;

a second pointer to a second element in the array of elements, the second pointer pointing to a start of a second list of elements in the array of elements, the second list of elements storing references to invalidated pages in the storage portion, the start of the second list of elements following an end of the first list of elements; and

a third pointer to a third element in the array of elements, the third pointer pointing to a start, of a third list of elements in the array of elements, the third list of elements storing references to unencumbered pages in the storage portion, the start of the third list of elements following an end of the second list of elements, the storage portion characteristics data structure having a direction of pointer motion that determines whether any one of the first pointer, the second pointer, and the third pointer is incremented or decremented when advanced to another element in the array of elements;

receiving a write request; and

in response to receiving the write request:

retrieving a storage portion reference from the first element;

performing the write request to the storage portion reference; and

advancing the first pointer.

2. The device of claim 1 , wherein the operations further comprising:

retrieving, from a translation table, an original storage portion reference to an original storage portion in the storage class memory array, the write request to update a previously stored value on the original storage portion;

writing the original storage portion reference to the third element; and

advancing the third pointer.

3. The device of claim 1 , wherein the operations further comprising:

performing maintenance upon a given storage portion with a reference stored in the second element; and

advancing the second pointer in response to performing the maintenance.

4. The device of claim 1 , wherein each element in the first list of elements stores a given storage portion reference to a given storage portion that is available for writing data.

5. The device of claim 1 , wherein each element in the second list of elements stores a given storage portion reference to a given storage portion that is invalid.

6. The device of claim 1 , wherein the first pointer, the second pointer, and the third pointer are stored in a reserved area of the storage class memory array, the reserved area being distinct from a logical-to-physical translation area of the storage class memory array and distinct from a data content area of the storage class memory array.

7. The device of claim 6 , wherein the storage portion characteristics data structure is stored in the reserved area.

8. A method comprising:

maintaining a storage portion characteristics data structure that comprises:

an array of elements, each element sized to store a reference to a storage portion in a storage class memory storage device, the array of elements being accessed as a circular array;

a first pointer to a first element in the array of elements, the first pointer pointing to a start of a first list of elements in the array of elements the first list of elements storing references to clean pages in the storage portion;

a second pointer to a second element in the array of elements, the second pointer pointing to a start of a second list of elements in the array of elements, the second list of elements storing references to elements in the storage portion, the start of the second list of elements following an end of the first list of elements; and

a third pointer to a third element in the array of elements, the third pointer pointing to a start of a third list of elements in the array of elements, the third list of elements storing references to unencumbered pages in the storage portion, the start of the third list of elements following an end of the second list of elements, the storage portion characteristics data structure having a direction of pointer motion that determines whether any one of the first pointer, the second pointer, and the third pointer is incremented or decremented when advanced to another element in the array of elements;

receiving a write request; and

in response to receiving the write request:

retrieving a storage portion reference from the first element;

performing the write request to the storage portion reference; and

advancing the first pointer.

9. The method of claim 8 , further comprising:

retrieving, from a translation table, an original storage portion reference to an original storage portion in the storage class memory storage device, the write request to update a previously stored value on the original storage portion;

writing the original storage portion reference to the third element; and

advancing the third pointer.

10. The method of claim 8 , further comprising:

performing maintenance upon a given storage portion with a reference stored in the second element; and

advancing the second pointer in response to performing the maintenance.

11. The method of claim 8 , wherein each element in the first list of elements stores a given storage portion reference to a given storage portion that is available for writing data.

12. The method of claim 8 , wherein each element in the second list of elements stores a given storage portion reference to a given storage portion that is invalid.

13. The method of claim 8 , wherein the first pointer, the second pointer, and the third pointer are stored in a reserved area of the storage class memory storage device, the reserved area being distinct from a logical-to-physical translation area of the storage class memory storage device and distinct from a data content area of the storage class memory storage device.

14. The method of claim 13 , wherein the storage portion characteristics data structure is stored in the reserved area.

15. At least one computer readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations comprising:

maintaining a storage portion characteristics data structure that comprises:

an array of elements, each element sized to store a reference to a storage portion in a storage class memory storage device, the array of elements being accessed as a circular array;

a first pointer to a first element in the array of elements, the first pointer pointing to a start of a first list of elements in the array of elements, the first list of elements storing references to clean pages in the storage portion;

a second pointer to a second element in the array of elements, the second pointer pointing to a start of a second list of elements in the array of elements, the second list of elements storing references to invalidated pages in the storage portion, the start of the second list of elements following an end of the first list of elements; and

a third pointer to a third element in the array of elements, the third pointer pointing to a start of a third list of elements in the array of elements, the third list of elements storing references to unencumbered pages in the storage portion, the start of the third list of elements following an end of the second list of elements, the storage portion characteristics data structure having a direction of pointer motion that determines whether any one of the first pointer, the second pointer, and the third pointer is incremented or decremented when advanced to another element in the array of elements;

receiving a write request; and

in response to receiving the write request:

retrieving a storage portion reference from the first element;

performing the write request to the storage portion reference; and

advancing the first pointer.

16. The computer readable medium of claim 15 , wherein the operations further comprise:

retrieving, from a translation table, an original storage portion reference to an original storage portion in the storage class memory storage device, the write request to update a previously stored value on the original storage portion;

writing the original storage portion reference to the third element; and

advancing the third pointer.

17. The computer readable medium of claim 15 , wherein the operations further comprise:

performing maintenance upon a given storage portion with a reference stored in the second element; and

advancing the second pointer in response to performing the maintenance.

18. The computer readable medium of claim 15 , wherein each element in the first list of elements stores a given storage portion reference to a given storage portion that is available for writing data.

19. The computer readable medium of claim 15 , wherein each element in the second list of elements stores a given storage portion reference to a given storage portion that is invalid.

20. The computer readable medium of claim 15 , wherein the first pointer, the second pointer, and the third pointer are stored in a reserved area of the storage class memory storage device, the reserved area being distinct from a logical-to-physical translation area of the storage class memory storage device and distinct from a data content area of the storage class memory storage device.

21. The computer readable medium of claim 20 , wherein the storage portion characteristics data structure is stored in the reserved area.

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 11, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050713/0001 →
SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT Recorded Aug 9, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 047282/0463 →
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 13, 2018
From: PORZIO, LUCA; MIRICHIGNI, GRAZIANO; CARACCIO, DANILO
To: MICRON TECHNOLOGY, INC.
Reel/Frame 045191/0473 →