IP Library › Granted Patent US 10,545,685
Granted Patent B2
US 10,545,685 · App. 15/690,869 · Granted Jan 28, 2020

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/0811G06F2212/283
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,545,685
App. No.
15/690,869
Filed
Aug 30, 2017
Granted
Jan 28, 2020
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 (56)

1. A memory device, the 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;

a controller, the controller executing firmware instructions, which cause the controller to perform operations comprising:

receiving, from a host device, over a communications interface, a behavior profile for an SLC cache of the memory device, the behavior profile describing at least one of: one or more rules for determining, based upon a performance metric of the memory device, a size of the SLC cache or one or more rules for reconfiguring the SLC cache;

configuring memory cells of the array as belonging either to an SLC cache pool or an MLC storage pool based upon the behavior profile;

receiving a write command to write data to the memory device;

writing the data to the SLC cache pool; and

subsequent to writing the data to the SLC cache pool, transferring the data to the MLC storage pool;

subsequent to transferring the data to the MLC storage pool, receiving, from the host device, over the communications interface, an updated behavior profile for the SLC cache of the memory device, and

responsive to receiving the updated behavior profile, reconfiguring the memory cells of the array as belonging to an SLC cache pool or an MLC storage pool according to the updated behavior profile.

2. The memory device of claim 1 , wherein the communications interface is a Universal Flash Storage interface.

3. The memory device of claim 1 , wherein the behavior profile comprises a target logical block addressing (LBA) saturation threshold and a corresponding target size of the SLC cache, and wherein the operations further comprise:

determining that a current LBA saturation exceeds the target LBA saturation threshold, and in response, adjusting the configuration of the memory cells in the array such that a number of the memory cells in the SLC cache produces an SLC cache size that is the target size.

4. The memory device of claim 1 , wherein the write command is received from a host over an interface implemented according to a Universal Flash Storage (UFS) standard.

5. The memory device of claim 1 , wherein the operations of receiving the behavior profile of the SLC cache of the memory device and configuring memory cells of the array as belonging either to the SLC cache pool or the MLC storage pool based upon the behavior profile are performed upon a first execution of a firmware object containing the firmware instructions.

6. The memory device of claim 1 , wherein the behavior profile comprises a target activity threshold and a corresponding target size of the SLC cache, and wherein the operations further comprise:

determining that a current activity threshold exceeds the target activity threshold, and in response, adjusting the configuration of the memory cells in the array such that a number of the memory cells in the SLC cache produces an SLC cache size that is the target size.

7. The memory device of claim 1 , wherein the behavior profile includes a write activity threshold and wherein the operations further comprise:

receiving a second write command to write second data to the memory device; and

determining that write activity of the memory device is below the write activity threshold, and in response, writing the second data to the MLC storage pool, bypassing the SLC cache.

8. The memory device of claim 7 , wherein the write activity threshold is a number of pending write requests.

9. A method comprising:

at 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, using a controller, performing operations comprising:

receiving, from a host device, over a communications interface, a behavior profile for an SLC cache of the memory device, the behavior profile describing at least one of: rules for determining, based upon a performance metric of the memory device, a size of the SLC cache or one or more rules for reconfiguring the SLC cache;

configuring memory cells of the array as belonging either to an SLC cache pool or an MLC storage pool based upon the behavior profile;

receiving a write command to write data to the memory device;

writing the data to the SLC cache pool; and

subsequent to writing the data to the SLC cache pool, transferring the data to the MLC storage pool;

subsequent to transferring the data to the MLC storage pool, receiving, from the host device, over the communications interface, an updated behavior profile for the SLC cache of the memory device; and

responsive to receiving the updated behavior profile, reconfiguring the memory cells of the array as belonging to an SLC cache pool or an MLC storage pool according to the updated behavior profile.

10. The method of claim 9 , wherein the communications interface is a Universal Flash Storage interface.

11. The method of claim 9 , wherein the behavior profile comprises a target logical block addressing (LBA) saturation threshold and a corresponding target size of the SLC cache, and wherein the operations further comprise:

determining that a current LBA saturation exceeds the target LBA saturation threshold, and in response, adjusting the configuration of the memory cells in the array such that a number of the memory cells in the SLC cache produces an SLC cache size that is the target size.

12. The method of claim 9 , wherein the write command is received from a host over an interface implemented according to a Universal Flash Storage (UFS) standard.

13. The method of claim 9 , wherein the operations of receiving the behavior profile of the SLC cache of the memory device and configuring memory cells of the array as belonging either to the SLC cache pool or the MLC storage pool based upon the behavior profile are performed upon a first execution of a firmware object containing the firmware instructions.

14. The method of claim 9 , wherein the behavior profile comprises a target activity threshold and a corresponding target size of the SLC cache, and wherein the operations further comprise:

determining that a current activity threshold exceeds the target activity threshold, and in response, adjusting the configuration of the memory cells in the array such that a number of the memory cells in the SLC cache produces an SLC cache size that is the target size.

15. The method of claim 9 , wherein the behavior profile includes a write activity threshold and wherein the operations further comprise:

receiving a second write command to write second data to the memory device; and

determining that write activity of the memory device is below the write activity threshold, and in response, writing the second data to the MLC storage pool, bypassing the SLC cache.

16. The method of claim 15 , wherein the write activity threshold is a number of pending write requests.

17. A machine-readable medium comprising instructions, that when executed by a machine, cause the machine to perform operations comprising:

receiving, from a host device, over a communications interface, a behavior profile for an SLC cache of a memory device, the behavior profile describing at least one of: rules for determining, based upon a performance metric of the memory device, a size of the SLC cache or one or more rules for reconfiguring the SLC cache;

configuring memory cells of an array of memory cells as belonging either to an SLC cache pool or an MLC storage pool based upon the behavior profile;

receiving a write command to write data to the memory device;

writing the data to the SLC cache pool; and

subsequent to writing the data to the SLC cache pool, transferring the data to the MLC storage pool;

subsequent to transferring the data to the MLC storage pool, receiving, from the host device, over the communications interface, an updated behavior profile for the SLC cache of the memory device; and

responsive to receiving the updated behavior profile, reconfiguring the memory cells of the array as belonging to an SLC cache pool or an MLC storage pool according to the updated behavior profile.

18. The machine-readable medium of claim 17 , wherein the communications interface is a Universal Flash Storage interface.

19. The machine-readable medium of claim 17 , wherein the behavior profile comprises a target logical block addressing (LBA) saturation threshold and a corresponding target size of the SLC cache, and wherein the operations further comprise:

determining that a current LBA saturation exceeds the target LBA saturation threshold, and in response, adjusting the configuration of the memory cells in the array such that a number of the memory cells in the SLC cache produces an SLC cache size that is the target size.

20. The machine-readable medium of claim 17 , wherein the behavior profile includes a write activity threshold and wherein the operations further comprise:

receiving a second write command to write second data to the memory device; and

determining that write activity of the memory device is below the write activity threshold, and in response, writing the second data to the MLC storage pool, bypassing the SLC cache.

21. The machine-readable medium of claim 20 , wherein the write activity threshold is a number of pending write requests.

Assignments (7)
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 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050709/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2019
From: TANPAIROJ, KULACHET; JEAN, SEBASTIEN ANDRE; MUCHHERLA, KISHORE KUMAR; MALSHE, ASHUTOSH; HUANG, JIANMIN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 049381/0115 →
RELEASE OF SECURITY INTEREST Recorded Jul 20, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046597/0333 →
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 →
SUPPLEMENT NO. 6 TO PATENT SECURITY AGREEMENT Recorded Nov 1, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 044653/0333 →
SUPPLEMENT NO. 6 TO PATENT SECURITY AGREEMENT Recorded Nov 1, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 044348/0253 →
Continuity (1)
Related Publication 20190065080A1 · Feb 28, 2019
Cited By (3)
US 12,189,562 US 12,386,552 US 12,699,533