IP Library › Granted Patent US 10,275,162
Granted Patent B2
US 10,275,162 · App. 15/631,773 · Granted Apr 30, 2019

Methods and systems for managing data migration in solid state non-volatile memory

Inventors: Lip Vui Kan (Hillbrooks, SG); Young Hwan Jang (Singapore, SG)
Assignee: Dell Products L.P.
G06F3/061G06F3/0655G06F3/0688G06F12/122G06F12/0253G06F2212/69G06F2212/7205
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,275,162
App. No.
15/631,773
Filed
Jun 23, 2017
Granted
Apr 30, 2019
Kind
B2
Examiner
DOAN, HAN V
Art Unit
2136
USPC
711/103
Abstract

Methods and systems that may be implemented for managing data migration from relatively higher performance and higher endurance solid state non-volatile memory media to relatively lower performance and lower endurance solid state non-volatile memory media. The disclosed methods and systems may be implemented to reduce write amplification that occurs to solid state non-volatile memory media of a memory device by using frequency of LBA update as a parameter for controlling and optimizing data eviction from a relatively higher performance and higher endurance input buffer section in the receiving front of a memory device to a relatively lower performance and lower endurance main memory section of the same memory device.

Claims (73)

1. A memory device, comprising:

high endurance solid state memory having a first program-erase (P/E) cycle endurance level;

low endurance solid state memory having a second program-erase (P/E) cycle endurance level that is less than the first program-erase (P/E) cycle endurance level;

at least one programmable integrated circuit programmed to control writing of incoming data to the memory device by:

writing all incoming data to data blocks in the high endurance solid state memory,

invalidating existing data in the data blocks of the low endurance solid state memory and the high endurance solid state memory corresponding to a logical block address (LBA) as it is modified by the LBA of the incoming data,

determining a LBA update frequency of the valid data in the data blocks of the high endurance solid state memory,

identifying valid high frequency LBA update data in the data blocks of the high endurance solid state memory that has a LBA update frequency that is greater than a LBA update frequency of other high frequency LBA update data in the data blocks of the high endurance solid state memory, and

migrating valid low frequency LBA update data to the data blocks of the low endurance solid state memory from data blocks of the high endurance solid state memory that also contain invalidated data, and not migrating any valid high frequency LBA update data from the data blocks of the high endurance solid state memory to the data blocks of the low endurance solid state memory.

2. The memory device of claim 1 , further comprising non-volatile memory coupled to the at least one programmable integrated circuit for storing a mapping table and LBA write counter data; where the the at least one programmable integrated circuit is programmed to access the mapping table to determine physical block addresses in the high endurance solid state memory corresponding to a LBA of the incoming data; and to determining a LBA update frequency of the valid data in the data blocks of the high endurance solid state memory in real time by incrementing a counter in the LBA write counter data corresponding to the LBA of the incoming data.

3. The memory device of claim 1 , where the at least one programmable integrated circuit is further programmed to perform the step of migrating so as to evict the valid low frequency LBA update data to the data blocks of the low endurance solid state memory as part of a garbage collection operation for the memory device; and to:

select valid low frequency LBA update data for eviction only from data blocks of the high endurance solid state memory that include more than a defined threshold level amount of invalid data; and

erase any given data block of the high endurance solid state memory only after all data in the given data block has been invalidated.

4. The memory device of claim 1 , where the at least one programmable integrated circuit is further programmed to identify the high frequency LBA update data as valid data blocks of the high endurance solid state memory having a LBA update frequency that is greater than or equal to a defined high frequency data threshold value; and to to identify the low frequency LBA update data as valid data blocks of the high endurance solid state memory having a LBA update frequency that is less than the defined high frequency data threshold.

5. The memory device of claim 4 , where the at least one programmable integrated circuit is further programmed to monitor the amount of high frequency LBA update data contained in the the high endurance solid state memory; and to:

lower the defined high frequency data threshold value when the monitored amount of high frequency LBA update data fills the high endurance solid state memory so as to reduce the amount of high frequency LBA update data contained in the the high endurance solid state memory; and

leave the defined high frequency data threshold value unchanged when the monitored amount of high frequency LBA update data does not fill the high endurance solid state memory.

6. The memory device of claim 1 , where the at least one programmable integrated circuit is further programmed to:

identify valid medium frequency LBA update data in the data blocks of the high endurance solid state memory that has a LBA update frequency that is less than a LBA update frequency of the high frequency LBA update data and that is greater than a LBA update frequency of the low frequency LBA update data;

migrating the valid low frequency LBA update data from data blocks of the high endurance solid state memory only to a designated low frequency portion of the low endurance solid state memory media; and

migrating the valid medium frequency LBA update data from data blocks of the high endurance solid state memory only to a designated medium frequency portion of the low endurance solid state memory media that is a different portion of the the low endurance solid state memory media from the designated low frequency portion of the low endurance solid state memory media;

where the at least one programmable integrated circuit is further programmed to never migrate the valid low frequency LBA update data from data blocks of the high endurance solid state memory to the designated medium frequency portion of the low endurance solid state memory media, and to never migrate the valid medium frequency LBA update data from data blocks of the high endurance solid state memory to the designated low frequency portion of the low endurance solid state memory media.

7. The memory device of claim 1 , where the high endurance solid state memory is single-level cell (SLC) NAND flash media having a single bit per cell; and where the low endurance solid state memory is at least one of multi-level cell (MLC) memory having two bits per cell, triple-level cell (TLC) memory having three bits per cell, or quad-level cell (QLC) memory having four bits per cell.

8. An information handling system, comprising:

a host programmable integrated circuit;

a memory device coupled to receive incoming data from the host programmable integrated circuit, the memory device comprising:

high endurance solid state memory having a first program-erase (P/E) cycle endurance level,

low endurance solid state memory having a second program-erase (P/E) cycle endurance level that is less than the first program-erase (P/E) cycle endurance level, and

at least one programmable integrated circuit;

where the at least one programmable integrated circuit of the memory device is programmed to control writing of incoming data to the memory device by:

writing all the incoming data to data blocks in the high endurance solid state memory,

invalidating existing data in the data blocks of the low endurance solid state memory and the high endurance solid state memory corresponding to a logical block address (LBA) as it is modified by the LBA of the incoming data,

determining a LBA update frequency of valid data in the data blocks of the high endurance solid state memory,

identifying valid high frequency LBA update data in the data blocks of the high endurance solid state memory that has a LBA update frequency that is greater than a LBA update frequency of other high frequency LBA update data in the data blocks of the high endurance solid state memory, and

migrating valid low frequency LBA update data to the data blocks of the low endurance solid state memory from data blocks of the high endurance solid state memory that also contain invalidated data, and not migrating any valid high frequency LBA update data from the data blocks of the high endurance solid state memory to the data blocks of the low endurance solid state memory.

9. The system of claim 8 , where the memory device further comprises non-volatile memory coupled to the at least one programmable integrated circuit of the memory device for storing a mapping table and LBA write counter data; where the the at least one programmable integrated circuit of the memory device is programmed to access the mapping table to determine physical block addresses in the high endurance solid state memory corresponding to a LBA of the incoming data, and to determining a LBA update frequency of the valid data in the data blocks of the high endurance solid state memory in real time by incrementing a counter in the LBA write counter data corresponding to the LBA of the incoming data.

10. The system of claim 8 , where the at least one programmable integrated circuit of the memory device is further programmed to perform the step of migrating so as to evict the valid low frequency LBA update data to the data blocks of the low endurance solid state memory as part of a garbage collection operation for the memory device; and to:

select valid low frequency LBA update data for eviction only from data blocks of the high endurance solid state memory that include more than a defined threshold level amount of invalid data; and

erase any given data block of the high endurance solid state memory only after all data in the given data block has been invalidated.

11. The system of claim 8 , where the at least one programmable integrated circuit of the memory device is further programmed to identify the high frequency LBA update data as valid data blocks of the high endurance solid state memory having a LBA update frequency that is greater than or equal to a defined high frequency data threshold value; and to to identify the low frequency LBA update data as valid data blocks of the high endurance solid state memory having a LBA update frequency that is less than the defined high frequency data threshold.

12. The system of claim 8 , where the at least one programmable integrated circuit of the memory device is further programmed to:

identify valid medium frequency LBA update data in the data blocks of the high endurance solid state memory that has a LBA update frequency that is less than a LBA update frequency of the high frequency LBA update data and that is greater than a LBA update frequency of the low frequency LBA update data;

migrating the valid low frequency LBA update data from data blocks of the high endurance solid state memory only to a designated low frequency portion of the low endurance solid state memory media; and

migrating the valid medium frequency LBA update data from data blocks of the high endurance solid state memory only to a designated medium frequency portion of the low endurance solid state memory media that is a different portion of the the low endurance solid state memory media from the designated low frequency portion of the low endurance solid state memory media;

where the at least one programmable integrated circuit is further programmed to never migrate the valid low frequency LBA update data from data blocks of the high endurance solid state memory to the designated medium frequency portion of the low endurance solid state memory media, and to never migrate the valid medium frequency LBA update data from data blocks of the high endurance solid state memory to the designated low frequency portion of the low endurance solid state memory media.

13. The system of claim 8 , where the at least one programmable integrated circuit is further programmed to migrate the valid low frequency LBA update data to the data blocks of the low endurance solid state memory from data blocks of the high endurance solid state memory only while the host programmable integrated circuit is idle or during system idle time.

14. A method of operating a memory device comprising:

receiving incoming data in a memory device from a host programmable integrated circuit, the memory device comprising:

high endurance solid state memory having a first program-erase (P/E) cycle endurance level, and

low endurance solid state memory having a second program-erase (P/E) cycle endurance level that is less than the first program-erase (P/E) cycle endurance level; and

controlling writing of the incoming data to the memory device by:

writing all the incoming data to data blocks in the high endurance solid state memory,

invalidating existing data in the data blocks of the low endurance solid state memory and the high endurance solid state memory corresponding to a logical block address (LBA) as it is modified by the LBA of the incoming data,

determining a LBA update frequency of the valid data in the data blocks of the high endurance solid state memory,

identifying valid high frequency LBA update data in the data blocks of the high endurance solid state memory that has a LBA update frequency that is greater than a LBA update frequency of other high frequency LBA update data in the data blocks of the high endurance solid state memory, and

migrating valid low frequency LBA update data to the data blocks of the low endurance solid state memory from data blocks of the high endurance solid state memory that also contain invalidated data, and not migrating any valid high frequency LBA update data from the data blocks of the high endurance solid state memory to the data blocks of the low endurance solid state memory.

15. The method of claim 14 , further comprising accessing a mapping table to determine physical block addresses in the high endurance solid state memory corresponding to a LBA of the incoming data, and determining a LBA update frequency of the valid data in the data blocks of the high endurance solid state memory in real time by incrementing a counter in the LBA write counter data corresponding to the LBA of the incoming data.

16. The method of claim 14 , further comprising:

performing the step of migrating so as to evict the valid low frequency LBA update data to the data blocks of the low endurance solid state memory as part of a garbage collection operation for the memory device;

selecting valid low frequency LBA update data for eviction only from data blocks of the high endurance solid state memory that include more than a defined threshold level amount of invalid data; and

erasing any given data block of the high endurance solid state memory only after all data in the given data block has been invalidated.

17. The method of claim 14 , further comprising identifying the high frequency LBA update data as valid data blocks of the high endurance solid state memory having a LBA update frequency that is greater than or equal to a defined high frequency data threshold value; and identifying the low frequency LBA update data as valid data blocks of the high endurance solid state memory having a LBA update frequency that is less than the defined high frequency data threshold.

18. The method of claim 17 , further comprising:

monitoring the amount of high frequency LBA update data contained in the the high endurance solid state memory;

lowering the defined high frequency data threshold value when the monitored amount of high frequency LBA update data fills the high endurance solid state memory so as to reduce the amount of high frequency LBA update data contained in the the high endurance solid state memory; and

leaving the defined high frequency data threshold value unchanged when the monitored amount of high frequency LBA update data does not fill the high endurance solid state memory.

19. The method of claim 14 , further comprising:

identifying valid medium frequency LBA update data in the data blocks of the high endurance solid state memory that has a LBA update frequency that is less than a LBA update frequency of the high frequency LBA update data and that is greater than a LBA update frequency of the low frequency LBA update data;

migrating the valid low frequency LBA update data from data blocks of the high endurance solid state memory only to a designated low frequency portion of the low endurance solid state memory media; and

migrating the valid medium frequency LBA update data from data blocks of the high endurance solid state memory only to a designated medium frequency portion of the low endurance solid state memory media that is a different portion of the the low endurance solid state memory media from the designated low frequency portion of the low endurance solid state memory media;

never migrating the valid low frequency LBA update data from data blocks of the high endurance solid state memory to the designated medium frequency portion of the low endurance solid state memory media; and

never migrating the valid medium frequency LBA update data from data blocks of the high endurance solid state memory to the designated low frequency portion of the low endurance solid state memory media.

20. The method of claim 14 , further comprising migrating the valid low frequency LBA update data to the data blocks of the low endurance solid state memory from data blocks of the high endurance solid state memory only while the host programmable integrated circuit is idle or during system idle time.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (043775/0082) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060958/0468 →
RELEASE OF SECURITY INTEREST AT REEL 043772 FRAME 0750 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0606 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 043775/0082 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2017
From: KAN, LIP VUI; JANG, YOUNG HWAN
To: DELL PRODUCTS L.P.
Reel/Frame 042983/0455 →
Continuity (1)
Related Publication 20180373428A1 · Dec 27, 2018
Cited By (2)
US 12,222,874 US 12,663,946