IP Library Granted Patent US 10,795,828
Granted Patent B2
US 10,795,828 · App. 16/101,288 · Granted Oct 6, 2020

Data validity tracking in a 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 10,795,828
App. No.
16/101,288
Granted
Oct 6, 2020
Kind
B2
Abstract

A computer device reads an indicator from a configuration file that identifies a granularity of units of data at which to track validity. The granularity is one of a plurality of granularities ranging from one unit of data to many units of data. The computer device generates a machine-readable file configured to cause a processing device of a memory system to track validity at the identified granularity using a plurality of data validity counters with each data validity counter in the plurality of data validity counters tracking validity of a group of units of data at the identified granularity. The computer device transfers the machine-readable file to a memory of the memory system.

Claims (43)

1. A method comprising:

reading, by a computer device, an indicator from a configuration file, the indicator identifying a granularity of units of data at which to track validity, wherein the granularity is a group of units of data and the granularity is one of a plurality of granularities ranging from one unit of data in each group to many units of data in each group;

generating, by the computer device based on the indicator in the configuration file, a machine-readable file configured to cause a processing device of a memory system to track validity of one or more units of data within each group at the identified granularity using a plurality of data validity counters, each data validity counter in the plurality of data validity counters tracking validity of each individual unit of data in a corresponding group at the identified granularity, wherein each data validity counter indicates a number of units of data in a corresponding group of units of data that are valid; and

transferring the machine-readable file from the computer device to a memory of the memory system.

2. The method of claim 1 , wherein if the granularity identifies a first granularity from the plurality of granularities, the machine-readable file is further configured to cause the processing device to provision space in a non-volatile memory array for a logical-to-physical address translation table and a physical-to-logical address translation table.

3. The method of claim 2 , wherein if the granularity identifies a second granularity from the plurality of granularities, the machine-readable file is further configured to cause the processing device to provision space in a non-volatile memory array for a logical-to-physical address translation table and excludes a physical-to-logical address translation table.

4. The method of claim 1 , wherein the machine-readable file is further configured to cause the processing device to provision space in a volatile memory for a validity table, the validity table storing a value of each validity counter in the plurality of data validity counters.

5. The method of claim 4 , wherein the machine-readable file is further configured to cause the processing device to update a first value of a first validity counter in the validity table when a first unit of data within the group of units of data tracked by the first validity counter is flagged as stale.

6. The method of claim 4 , wherein the machine-readable file is further configured to cause the processing device to reclaim a portion of a non-volatile memory array based in part on the validity table.

7. The method of claim 6 , wherein to reclaim the portion of the non-volatile memory array comprises:

reading a value of a first validity counter in the plurality of validity counters from the validity table, the first validity counter tracking validity of a first group of units of data at the identified granularity;

if the value of the first validity counter is not equal to zero or to a total number of units of data of the identified granularity:

reading metadata associated with the first group of units of data;

determining a first physical address of a first unit of data within the first group of units of data from a logical-to-physical address lookup based on a logical address of the first unit of data stored within the metadata;

determining a second physical address of the first unit of data within the first group of units of data based on a location of the first unit of data within the first group of units of data; and

if the first physical address matches the second physical address, moving the first unit of data in the non-volatile memory array.

8. A non-transitory computer-readable storage medium comprising instructions that, when executed by a computer device, cause the computer device to:

read an indicator from a configuration file, the indicator identifying a granularity of units of data at which to track validity, wherein the granularity is a group of units of data and the granularity is one of a plurality of granularities ranging from one unit of data in each group to many units of data in each group;

generate, based on the indicator in the configuration file, a machine-readable file configured to cause a processing device of a memory system to track validity of one or more units of data within each group at the identified granularity using a plurality of data validity counters, each data validity counter in the plurality of data validity counters to track validity of each individual unit of data in a corresponding group at the identified granularity, wherein each data validity counter indicates a number of units of data in a corresponding group of units of data that are valid; and

transfer the machine-readable file to a memory of the memory system.

9. The non-transitory computer-readable medium of claim 8 , wherein if the granularity identifies a first granularity from the plurality of granularities, the machine-readable file is further configured to cause the processing device to provision space in a non-volatile memory array for a logical-to-physical address translation table and a physical-to-logical address translation table.

10. The non-transitory computer-readable medium of claim 9 , wherein if the granularity identifies a second granularity from the plurality of granularities, the machine-readable file is further configured to cause the processing device to provision space in a non-volatile memory array for a logical-to-physical address translation table and excludes a physical-to-logical address translation table.

11. The non-transitory computer-readable medium of claim 8 , wherein the machine-readable file is further configured to cause the processing device to provision space in a volatile memory for a validity table, the validity table to store a value of each validity counter in the plurality of data validity counters.

12. The non-transitory computer-readable medium of claim 11 , wherein the machine-readable file is further configured to cause the processing device to update a first value of a first validity counter in the validity table when a first unit of data within the group of units of data tracked by the first validity counter is flagged as stale.

13. The non-transitory computer-readable medium of claim 11 , wherein the machine-readable file is further configured to cause the processing device to reclaim a portion of a non-volatile memory array based in part on the validity table.

14. The non-transitory computer-readable medium of claim 13 , wherein to reclaim a portion of the non-volatile memory array, the processing device is to:

read a value of a first validity counter in the plurality of validity counters from the validity table, the first validity counter to track validity of a first group of units of data at the identified granularity;

if the value of the first validity counter is not equal to zero or to a total number of units of data of the identified granularity:

read metadata associated with the first group of units of data;

determine a first physical address of a first unit of data within the first group of units of data from a logical-to-physical address lookup based on a logical address of the first unit of data stored within the metadata;

determine a second physical address of the first unit of data within the first group of units of data based on a location of the first unit of data within the first group of units of data; and

if the first physical address matches the second physical address, move the first unit of data in the non-volatile memory array.

15. A system comprising:

a processing device of a memory subsystem; and

a computer device, operatively coupled with the processing device, to:

read an indicator from a configuration file, the indicator identifying a granularity of units of data at which to track validity, wherein the granularity is a group of units of data and the granularity is one of a plurality of granularities ranging from one unit of data in each group to many units of data in each group;

generate, based on the indicator in the configuration file, a machine-readable file configured to cause a processing device of a memory system to track validity of one or more units of data within each group at the identified granularity using a plurality of data validity counters, each data validity counter in the plurality of data validity counters to track validity of each individual unit of data in a corresponding group at the identified granularity, wherein each data validity counter indicates a number of units of data in a corresponding group of units of data that are valid; and

transfer the machine-readable file to a memory of the memory system.

16. The system of claim 15 , wherein if the granularity identifies a first granularity from the plurality of granularities, the machine-readable file is further configured to cause the processing device to provision space in a non-volatile memory array for a logical-to-physical address translation table and a physical-to-logical address translation table.

17. The system of claim 16 , wherein if the granularity identifies a second granularity from the plurality of granularities, the machine-readable file is further configured to cause the processing device to provision space in a non-volatile memory array for a logical-to-physical address translation table and excludes a physical-to-logical address translation table.

18. The system of claim 15 , wherein the machine-readable file is further configured to cause the processing device to provision space in a volatile memory for a validity table, the validity table to store a value of each validity counter in the plurality of data validity counters.

19. The system of claim 18 , wherein the machine-readable file is further configured to cause the processing device to update a first value of a first validity counter in the validity table when a first unit of data within the group of units of data tracked by the first validity counter is flagged as stale.

20. The system of claim 18 , wherein the machine-readable file is further configured to cause the processing device to reclaim a portion of a non-volatile memory array based in part on the validity table.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 14, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051028/0835 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050719/0550 →
SUPPLEMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Nov 13, 2018
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A.., AS COLLATERAL AGENT
Reel/Frame 047630/0756 →
SUPPLEMENT NO. 10 TO PATENT SECURITY AGREEMENT Recorded Nov 13, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048102/0420 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2018
From: YEAP, BOON LEONG; SCHUH, KARL D.
To: MICRON TECHNOLOGY, INC
Reel/Frame 046618/0963 →