IP Library Granted Patent US 10,725,912
Granted Patent B2
US 10,725,912 · App. 16/226,282 · Granted Jul 28, 2020

Power loss protection in memory sub-systems

Inventor: Andrew M. Kowles (Boise, ID)
Assignee: Micron Technology, Inc.
G06F12/0804G11C29/44G06F2212/1032
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,725,912
App. No.
16/226,282
Granted
Jul 28, 2020
Kind
B2
Abstract

Aspects of the present disclosure provide systems and methods for improved power loss protection in a memory sub-system of a device. In particular, a power loss protection component allocates a portion of the memory sub-system to non-volatile memory. Responsive to detecting a trigger event at the device, wherein the trigger event may include asynchronous power loss of the device, the power loss protection component detects data written to a volatile cache of the memory sub-system, retrieves the data from the volatile cache, and writes the data to the portion of the memory sub-system allocated to the non-volatile memory.

Claims (82)

1. A system comprising:

a plurality of memory components comprising a plurality of non-volatile memory components and a volatile cache; and

a processing device, operatively coupled with the plurality of memory components, to perform operations comprising:

performing a performance test upon the plurality of memory components;

identifying a portion of the plurality of memory components based on the performance test;

allocating the portion of the plurality of memory components to one or more of the plurality of non-volatile memory components;

performing a write command of data to the volatile cache;

detecting a trigger event at a device associated with the plurality of memory components, the trigger event including asynchronous power loss to the system;

retrieving the data from the volatile cache responsive to the detecting the trigger event at the device; and

writing the data to the portion of the plurality of memory components allocated to the one or more of the plurality of non-volatile memory components.

2. The system of claim 1 , wherein the plurality of memory components comprises a set of flash blocks, the portion of the plurality of memory components comprises a portion of the set of flash blocks, and allocating the portion of the plurality of memory components to the non-volatile memory further comprises:

ranking the set of flash blocks based on the performance test;

identifying the portion of the set of flash blocks based on the ranking; and

allocating the portion of the set of flash blocks to a power loss protection component that comprises a subset of the plurality of non-volatile memory components in response to the identifying the portion of the set of flash blocks based on the ranking.

3. The system of claim 2 , wherein the ranking the set of flash blocks based on the performance test comprises:

determining a write time of each flash block among the set of flash blocks; and

ranking the set of flash blocks based on the write time of each flash block among the set of flash blocks.

4. The system of claim 2 , wherein the portion of the set of flash blocks includes at least a first block and a second block, and allocating the portion of the set of flash blocks to the subset of the plurality of non-volatile memory components comprises:

logically mapping the first block to the second block.

5. The system of claim 2 , wherein performing the performance test upon the set of flash blocks comprises:

causing the device to perform the performance test upon the set of flash blocks.

6. The system of claim 2 , wherein the performance test is a first performance test, the portion of the set of flash blocks is a first portion, and identifying the portion of the set of flash blocks based on the ranking comprises:

identifying a subset of the set of flash blocks based on the ranking, the subset of the set of flash blocks comprising at least the first portion and a second portion;

allocating the first portion of the set of flash blocks to the plurality of non-volatile memory components;

reserving the second portion of the set of flash blocks;

performing a second performance test upon the first portion of the set of flash blocks;

determining a performance of the first portion of the set of flash blocks transgresses a minimum value based on the second performance test; and

allocating the second portion of the set of flash blocks to the non-volatile memory responsive to the performance of the first portion of the set of flash blocks transgressing the minimum value.

7. The system of claim 1 , wherein the plurality of non-volatile memory components comprises NAND flash memory that includes single-level cell NAND flash memory.

8. A method comprising:

performing, by at least one hardware processor, a performance test upon the plurality of memory components;

identifying, by the at least one hardware processor, a portion of the plurality of memory components based on the performance test;

allocating, by the at least one hardware processor, the portion of the plurality of memory components to one or more of the plurality of non-volatile memory components;

performing, by the at least one hardware processor, a write command of data to the volatile cache;

detecting, by the at least one hardware processor, a trigger event at a device associated with the plurality of memory components, the trigger event including asynchronous power loss to the system;

retrieving, by the at least one hardware processor, the data from the volatile cache responsive to the detecting the trigger event at the device; and

writing, by the at least one hardware processor, the data to the portion of the plurality of memory components allocated to the one or more of the plurality of non-volatile memory components.

9. The method of claim 8 , wherein the memory component comprises a set of flash blocks, the portion of the memory component comprises a portion of the set of flash blocks, and the allocation the portion of the memory component to the non-volatile memory comprises:

ranking the set of flash blocks based on the performance test;

identifying the portion of the set of flash blocks based on the ranking; and

allocating the portion of the set of flash blocks of the memory component to the non-volatile memory in response to the identifying the portion of the set of flash blocks based on the ranking.

10. The method of claim 9 , wherein the ranking the set of flash blocks based on the performance test comprises:

determining a write time of each flash block from among the set of flash blocks; and

ranking the set of flash blocks based on the write time of each flash block.

11. The method of claim 9 , wherein the portion of the set of flash blocks includes at least a first block and a second block, and the allocating the portion of the set of flash blocks to the non-volatile memory comprises:

logically mapping the first block to the second block.

12. The method of claim 9 , wherein the performing the performance test upon the set of flash blocks of the memory component comprises:

causing the device to perform the performance test upon the set of flash blocks of the memory component.

13. The method of claim 9 , wherein the performance test is a first performance test, the portion of the set of flash blocks is a first portion, and the identifying the portion of the set of flash blocks based on the ranking comprises:

identifying a subset of the set of flash blocks based on the ranking, the subset of the set of flash blocks comprising at least the first portion and a second portion;

allocating the first portion of the set of flash blocks to the non-volatile memory;

reserving the second portion of the set of flash blocks;

performing a second performance test upon the first portion of the set of flash blocks;

determining a performance of the first portion of the set of flash blocks transgresses a minimum value based on the second program time test; and

allocating the second portion of the set of flash blocks to the non-volatile memory responsive to the performance of the first portion of the set of flash blocks transgressing the minimum value.

14. The method of claim 8 , wherein the non-volatile memory comprises NAND flash memory that includes single-level cell NAND flash memory.

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

performing a performance test upon the plurality of memory components;

identifying a portion of the plurality of memory components based on the performance test;

allocating the portion of the plurality of memory components to one or more of the plurality of non-volatile memory components;

performing a write command of data to the volatile cache;

detecting a trigger event at a device associated with the plurality of mrlemory components, the trigger event including asynchronous power loss to the system;

retrieving the data from the volatile cache responsive to the detecting the trigger event at the device; and

writing the data to the portion of the plurality of memory components allocated to the one or more of the plurality of non-volatile memory components.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the memory component comprises a set of flash blocks, the portion of the memory component comprises a portion of the set of flash blocks, and the allocation the portion of the memory component to the non-volatile memory comprises:

ranking the set of flash blocks based on the performance test;

identifying the portion of the set of flash blocks based on the ranking; and

allocating the portion of the set of flash blocks of the memory component to the non-volatile memory in response to the identifying the portion of the set of flash blocks based on the ranking.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the ranking the set of flash blocks based on the latency test comprises:

determining a write time of each flash block from among the set of flash blocks; and

ranking the set of flash blocks based on the write time of each flash block.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the portion of the set of flash blocks includes at least a first block and a second block, and the allocating the portion of the set of flash blocks to the non-volatile memory comprises:

logically mapping the first block to the second block.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the performing the performance test upon the set of flash blocks of the memory component comprises:

causing the device to perform the performance test upon the set of flash blocks of the memory component.

20. The non-transitory computer-readable storage medium of claim 16 wherein the performance test is a first program time test, the portion of the set of flash blocks is a first portion, and the identifying the portion of the set of flash blocks based on the ranking comprises:

identifying a subset of the set of flash blocks based on the ranking, the subset of the set of flash blocks comprising at least the first portion and a second portion;

allocating the first portion of the set of flash blocks to the non-volatile memory;

reserving the second portion of the set of flash blocks;

performing a second performance test upon the first portion of the set of flash blocks;

determining a performance of the first portion of the set of flash blocks transgresses a minimum value based on the second performance test; and

allocating the second portion of the set of flash blocks to the non-volatile memory responsive to the performance of the first portion of the set of flash blocks transgressing the minimum value.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: KOWLES, ANDREW M.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051795/0451 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051026/0568 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050718/0764 →
SUPPLEMENT NO. 11 TO PATENT SECURITY AGREEMENT Recorded Jan 16, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048082/0860 →
SUPPLEMENT NO. 2 TO PATENT SECURITY AGREEMENT Recorded Jan 16, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048082/0889 →
Continuity (1)
Related Publication 20200201761A1 · Jun 25, 2020
Cited By (1)
US 12,711,069