IP Library › Granted Patent US 11,635,899
Granted Patent B2
US 11,635,899 · App. 17/573,224 · Granted Apr 25, 2023

SLC cache management

Inventors: Kulachet Tanpairoj (Santa Clara, CA); Sebastien Andre Jean (Meridian, ID); Kishore Kumar Muchherla (Fremont, CA); Ashutosh Malshe (Fremont, CA); Jianmin Huang (San Carlos, CA)
Assignee: Micron Technology, Inc.
G06F3/0619G06F3/061G06F3/0655G06F3/0688G06F12/0246G06F12/0811G06F2212/283G06F2212/7202G06F2212/7203
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 11,635,899
App. No.
17/573,224
Filed
Jan 11, 2022
Granted
Apr 25, 2023
Kind
B2
Art Unit
2139
USPC
711/103
Abstract

Disclosed in some examples are memory devices which feature customizable Single Level Cell (SLC) and Multiple Level Cell (MLC) configurations. The SLC memory cells serve as a high-speed cache providing SLC level performance with the storage capacity of a memory device with MLC memory cells. The proportion of cells configured as MLC vs the proportion that are configured as SLC storage may be configurable, and in some examples, the proportion may change during usage based upon configurable rules based upon memory device metrics. In some examples, when the device activity is below an activity threshold, the memory device may skip the SLC cache and place the data directly into the MLC storage to reduce power consumption.

Claims (55)

1. A memory device comprising:

an array of memory cells, the memory cells in the array configurable as either a multi-level cell (MLC) configuration or a single-level cell (SLC) configuration; and

a memory controller operable to execute instructions which when executed cause the memory controller to perform operations comprising:

configuring memory cells of the array as belonging to either an SLC cache pool or an MLC storage pool based upon a profile received from a host device and a performance metric of the memory device, the profile specifying at least one rule for a size of the SLC cache pool based upon a value of the performance metric of the memory device;

placing first data in a first portion of the SLC cache pool responsive to the first data being updated a specified number of times in a specified time period;

placing second data in a second portion of the SLC cache pool responsive to the second data being updated less than the specified number of times in the specified time period; and

during an idle period, maintaining the first data in the first portion of the SLC cache and moving the second data from the SLC cache pool to the MLC storage pool.

2. The memory device of claim 1 , wherein the profile from the host device includes a location of the SLC cache in the array of memory cells.

3. The memory device of claim 1 , wherein the profile from the host device includes a reconfiguration location of the SLC cache in the array of memory cells.

4. The memory device of claim 1 , wherein the performance metric is a logical saturation.

5. The memory device of claim 1 , wherein the operations further comprise:

receiving, from the host device, over a communications interface, an updated profile, the updated profile specifying a different rule for the size of the SLC cache pool; and

responsive to receiving the updated profile, reconfiguring the memory cells of the array as belonging to the SLC cache pool or the MLC storage pool according to the different rule in the updated profile and the value of the performance metric of the memory device.

6. The memory device of claim 1 , wherein the profile specifies a usage rule specifying at least one condition for writing to the SLC cache; and wherein the operations further comprise:

receiving a write request from the host device;

determining that the at least one condition is not satisfied; and

responsive to determining that the at least one condition is not satisfied, satisfying the write request by storing data in the write request in the MLC storage pool without first storing the data in the write request in the SLC cache pool.

7. The memory device of claim 1 , wherein the profile specifies a usage rule specifying at least one condition for using the SLC cache; and wherein the operations further comprise:

receiving a write request from the host device;

determining that the at least one condition is satisfied; and

responsive to determining that the at least one condition is satisfied, satisfying the write request by first storing data in the write request in the SLC cache pool.

8. A method comprising:

configuring memory cells of an array of memory cells of a memory device as belonging to either a single-level cell (SLC) cache pool or a multi-level cell (MLC) storage pool based upon a profile received from a host device and a performance metric of the memory device, the profile specifying at least one rule for a size of the SLC cache pool based upon a value of the performance metric of the memory device;

placing first data in a first portion of the SLC cache pool responsive to the first data being updated a specified number of times in a specified time period;

placing second data in a second portion of the SLC cache pool responsive to the second data being updated less than the specified number of times in the specified time period; and

during an idle period, maintaining the first data in the first portion of the SLC cache and moving the second data from the SLC cache pool to the MLC storage pool.

9. The method of claim 8 , wherein the profile from the host device includes a location of the SLC cache in the array of memory cells.

10. The method of claim 8 , wherein the profile from the host device includes a reconfiguration location of the SLC cache in the array of memory cells.

11. The method of claim 8 , wherein the performance metric is a logical saturation.

12. The method of claim 8 , wherein the method further comprises:

receiving, from the host device, over a communications interface, an updated profile, the updated profile specifying a different rule for the size of the SLC cache pool; and

responsive to receiving the updated profile, reconfiguring the memory cells of the array as belonging to the SLC cache pool or the MLC storage pool according to the different rule in the updated profile and the value of the performance metric of the memory device.

13. The method of claim 8 , wherein the profile specifies a usage rule specifying at least one condition for writing to the SLC cache; and wherein the method further comprises:

receiving a write request from the host device;

determining that the at least one condition is not satisfied; and

responsive to determining that the at least one condition is not satisfied, satisfying the write request by storing data in the write request in the MLC storage pool without first storing the data in the write request in the SLC cache pool.

14. The method of claim 8 , wherein the profile specifies a usage rule specifying at least one condition for using the SLC cache; and wherein the method further comprises:

receiving a write request from the host device;

determining that the at least one condition is satisfied; and

responsive to determining that the at least one condition is satisfied, satisfying the write request by first storing data in the write request in the SLC cache pool.

15. A non-transitory machine-readable medium, storing instructions, which when executed by a processor, causes the processor to perform operations comprising:

configuring memory cells of an array of memory cells of a memory device as belonging to either a single-level cell (SLC) cache pool or a multi-level cell (MLC) storage pool based upon a profile received from a host device and a performance metric of the memory device, the profile specifying at least one rule for a size of the SLC cache pool based upon a value of the performance metric of the memory device;

placing first data in a first portion of the SLC cache pool responsive to the first data being updated a specified number of times in a specified time period;

placing second data in a second portion of the SLC cache pool responsive to the second data being updated less than the specified number of times in the specified time period; and

during an idle period, maintaining the first data in the first portion of the SLC cache and moving the second data from the SLC cache pool to the MLC storage pool.

16. The non-transitory machine-readable medium of claim 15 , wherein the profile from the host device includes a location of the SLC cache in the array of memory cells.

17. The non-transitory machine-readable medium of claim 15 , wherein the profile from the host device includes a reconfiguration location of the SLC cache in the array of memory cells.

18. The non-transitory machine-readable medium of claim 15 , wherein the performance metric is a logical saturation.

19. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

receiving, from the host device, over a communications interface, an updated profile, the updated profile specifying a different rule for the size of the SLC cache pool; and

responsive to receiving the updated profile, reconfiguring the memory cells of the array as belonging to the SLC cache pool or the MLC storage pool according to the different rule in the updated profile and the value of the performance metric of the memory device.

20. The non-transitory machine-readable medium of claim 15 , wherein the profile specifies a usage rule specifying at least one condition for writing to the SLC cache; and wherein the operations further comprise:

receiving a write request from the host device;

determining that the at least one condition is not satisfied; and

responsive to determining that the at least one condition is not satisfied, satisfying the write request by storing data in the write request in the MLC storage pool without first storing the data in the write request in the SLC cache pool.

Continuity (3)
Continuation 16773334 · Jan 27, 2020
Continuation 15690869 · Aug 30, 2017
Related Publication 20220129168A1 · Apr 28, 2022