IP Library Granted Patent US 10,854,290
Granted Patent B1
US 10,854,290 · App. 14/751,507 · Granted Dec 1, 2020

Utilizing a flash memory drive which includes single-level cell flash memory and multi-level cell flash memory

Inventors: Bo Wu (Shanghai, CN); Guangliang Lei (Shanghai, CN); Scott David Von Rhee (Boston, MA)
Assignee: EMC IP Holding Company LLC
G11C14/0018G06F12/0246G11C7/1072G06F2212/2228G06F2212/7203G11C16/0441
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,854,290
App. No.
14/751,507
Granted
Dec 1, 2020
Kind
B1
Abstract

A technique manages data in a flash memory drive which includes single-level cell (SLC) flash memory and multi-level cell (MLC) flash memory. The technique involves performing, within the flash memory drive, data placement operations on data which has been written to the flash memory drive. The technique further involves, based on the data placement operations, storing hot data in the SLC flash memory. The technique further involves, based on the data placement operations, storing cold data in the MLC flash memory, the hot data being accessed more frequently than the cold data. Such hot data and cold data can be distinguished based on access frequency.

Claims (69)

1. In a flash memory drive which includes single-level cell (SLC) flash memory and multi-level cell (MLC) flash memory, a method of managing data, the method comprising:

within the flash memory drive, performing data placement operations on data which has been written to the flash memory drive;

based on the data placement operations, storing hot data in the SLC flash memory; and

based on the data placement operations, storing cold data in the MLC flash memory, the hot data being accessed more frequently than the cold data;

wherein performing the data placement operations includes detecting existence of cold data in the SLC flash memory;

wherein storing the cold data in the MLC flash memory includes, in response to detecting existence of the cold data in the SLC flash memory, moving the cold data from the SLC flash memory into the MLC flash memory;

wherein the method further comprises:

detecting occurrence of an idle time event within the flash memory drive; and

wherein moving the cold data from the SLC flash memory into the MLC flash memory is performed in response to detection of the occurrence of the idle time event.

2. A method as in claim 1 wherein performing the data placement operations includes detecting existence of hot data in the SLC flash memory; and

wherein storing the hot data in the SLC flash memory includes, in response to detecting existence of the hot data in the SLC flash memory, maintaining placement of the hot data in the SLC flash memory.

3. A method as in claim 1 wherein detecting the existence of the cold data in the SLC flash memory includes:

identifying the existence of the cold data in the SLC flash memory based on access frequency.

4. A method as in claim 1 wherein detecting the existence of the cold data in the SLC flash memory includes:

identifying the existence of the cold data in the SLC flash memory based on most recent access time.

5. A method as in claim 1 wherein performing the data placement operations further includes detecting existence of hot data in the MLC flash memory; and

wherein storing the hot data in the SLC flash memory includes, in response to detecting the existence of the hot data in the MLC flash memory, moving the hot data from the MLC flash memory into the SLC flash memory.

6. A method as in claim 5 wherein performing the data placement operations further includes detecting existence of cold data in the MLC flash memory; and

wherein storing the cold data in the MLC flash memory includes, in response to detecting the existence of the cold data in the MLC flash memory, maintaining placement of the cold data in the MLC flash memory.

7. A method as in claim 5 wherein moving the hot data from the MLC flash memory into the SLC flash memory is performed in response to detection of the occurrence of the idle time event.

8. A method as in claim 5 wherein detecting the existence of the hot data in the MLC flash memory includes:

identifying the existence of the hot data in the MLC flash memory based on access frequency.

9. A method as in claim 5 wherein detecting the existence of the hot data in the MLC flash memory includes:

identifying the existence of the hot data in the MLC flash memory based on most recent access time.

10. A method as in claim 1 wherein the data written to the flash memory drive is initially saved in the SLC flash memory; and

wherein performing the data placement operations includes labeling data as hot data and cold data while the data is initially saved in the SLC flash memory.

11. A method as in claim 1 wherein the flash memory drive further includes a dynamic random access memory (DRAM) cache;

wherein the data written to the flash memory drive is initially cached in the DRAM cache; and

wherein performing the data placement operations includes labeling data as hot data and cold data while the data is initially cached in the DRAM cache.

12. A flash memory drive, comprising:

single-level cell (SLC) flash memory;

multi-level cell (MLC) flash memory; and

control circuitry coupled to the SLC flash memory and the MLC flash memory, the control circuitry being constructed and arranged to:

perform data placement operations on data which has been written to the flash memory drive,

based on the data placement operations, store hot data in the SLC flash memory, and

based on the data placement operations, store cold data in the MLC flash memory, the hot data being accessed more frequently than the cold data;

wherein the control circuitry, when performing the data placement operations, is constructed and arranged to detect existence of cold data in the SLC flash memory;

wherein the control circuitry, when storing the cold data in the MLC flash memory, is constructed and arranged to, in response to detecting existence of the cold data in the SLC flash memory, move the cold data from the SLC flash memory into the MLC flash memory;

wherein the control circuitry is further constructed and arranged to:

detect occurrence of an idle time event within the flash memory drive; and

wherein moving the cold data from the SLC flash memory into the MLC flash memory is performed in response to detection of the occurrence of the idle time event.

13. A flash memory drive as in claim 12 wherein the control circuitry, when performing the data placement operations, is further constructed and arranged to detect existence of hot data in the MLC flash memory; and

wherein the control circuitry, when storing the hot data in the SLC flash memory, is constructed and arranged to, in response to detecting the existence of the hot data in the MLC flash memory, move the hot data from the MLC flash memory into the SLC flash memory.

14. A flash memory drive as in claim 12 wherein the control circuitry, when performing the data placement operations, is further constructed and arranged to detect existence of hot data in the MLC flash memory; and

wherein the control circuitry, when storing the hot data in the SLC flash memory, is constructed and arranged to, in response to (i) detecting the existence of the hot data in the MLC flash memory and (ii) the idle time event, move the hot data from the MLC flash memory into the SLC flash memory.

15. A flash memory drive as in claim 14 wherein the data written to the flash memory drive is initially saved in the SLC flash memory; and

wherein the control circuitry, when performing the data placement operations, is constructed and arranged to label data as hot data and cold data while the data initially resides in the SLC flash memory.

16. A flash memory drive as in claim 14 , further comprising:

a dynamic random access memory (DRAM) cache coupled to the control circuitry;

wherein the data written to the flash memory drive is initially cached in the DRAM cache; and

wherein the control circuitry, when performing the data placement operations, is constructed and arranged to label data as hot data and cold data while the data is initially cached in the DRAM cache.

17. A data storage enclosure, comprising:

a physical housing;

a communications interface disposed within the physical housing; and

a set of flash memory drives disposed within the physical housing and electronically coupled to the communications interface, each flash memory drive including:

single-level cell (SLC) flash memory,

multi-level cell (MLC) flash memory, and

control circuitry coupled to the SLC flash memory and the MLC flash memory, the control circuitry being constructed and arranged to (i) perform data placement operations on data which has been written to the flash memory drive through the communications interface, (ii) based on the data placement operations, store hot data in the SLC flash memory, and (iii) based on the data placement operations, store cold data in the MLC flash memory, the hot data being accessed more frequently than the cold data;

wherein the control circuitry, when performing the data placement operations, is constructed and arranged to detect existence of cold data in the SLC flash memory;

wherein the control circuitry, when storing the cold data in the MLC flash memory, is constructed and arranged to, in response to detecting existence of the cold data in the SLC flash memory, move the cold data from the SLC flash memory into the MLC flash memory;

wherein the control circuitry is further constructed and arranged to:

detect occurrence of an idle time event within the flash memory drive; and

wherein moving the cold data from the SLC flash memory into the MLC flash memory is performed in response to detection of the occurrence of the idle time event.

18. A method as in claim 1 wherein detecting the occurrence of the idle time event within the flash memory drive includes:

by circuitry within the flash memory drive, measuring an amount of time that passes since receiving a data access request, and indicating the occurrence of the idle time event when the measured amount of time reaches the predefined amount of time.

19. A method as in claim 18 wherein performing the data placement operations further includes (i) detecting existence of hot data in the SLC flash memory and (ii) detecting existence of hot data and cold data in the MLC flash memory;

wherein storing the hot data in the SLC flash memory includes maintaining existing hot data in the SLC flash memory and, in response to the idle time event, moving new hot data from the MLC flash memory into the SLC flash memory; and

wherein storing the cold data in the MLC flash memory further includes maintaining existing cold data in the MLC flash memory.

20. A method as in claim 19 wherein the predefined amount of time is at least one minute.

Assignments (6)
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2017
From: VON RHEE, SCOTT DAVID
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042128/0713 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2017
From: WU, BO; LEI, GUANGLIANG
To: EMC CORPORATION
Reel/Frame 041169/0206 →
Cited By (2)
US 12,699,515 US 12,704,987