IP Library › Granted Patent US 9,690,655
Granted Patent B2
US 9,690,655 · App. 14/501,917 · Granted Jun 27, 2017

Method and system for improving flash storage utilization by predicting bad m-pages

Inventors: Haleh Tabrizi (Santa Clara, CA); Rajiv Agarwal (Santa Clara, CA); Jeffrey Paul Ferreira (Santa Clara, CA); Jeffrey S. Bonwick (Santa Clara, CA); Michael W. Shapiro (Menlo Park, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1072G06F3/064G06F3/0619G06F3/0653G06F3/0679G06F3/0688G06F11/076G06F11/0727G06F11/108G06F11/2221G06F2212/403
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 9,690,655
App. No.
14/501,917
Filed
Sep 30, 2014
Granted
Jun 27, 2017
Kind
B2
Examiner
RIAD, AMINE
Art Unit
2113
USPC
714/6.1
Abstract

A method for managing persistent storage. The method includes selecting a page for a proactive read request, where the page is located in the persistent storage. The method further includes issuing the proactive read request to the page, receiving, in response to the proactive read request, a bit error value (BEV) for data stored on the page, obtaining a BEV threshold (T) for the page, wherein T is determined using a program/erase cycle value associated with the page and a retention time of the data stored on the page, making a first determination that the BEV is greater than T, based on the first determination: identifying an m-page, where the m-page is a set of pages and the page is in the set of pages, and setting the m-page as non-allocatable for future operations.

Claims (60)

1. A method for managing persistent storage, the method comprising:

selecting a page for a proactive read request, wherein the page is located in the persistent storage;

issuing the proactive read request to the page;

receiving, in response to the proactive read request, a bit error value (BEV) for data stored on the page;

obtaining a BEV threshold (T) for the page, wherein T is determined using a program/erase (P/E) cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in an in-memory data structure in memory, wherein the memory is located in a control module operatively connected to the persistent storage, wherein the in-memory data structure comprises a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of Ts, one of a plurality of P/E cycle values, and one of a plurality of retention times;

making a first determination that the BEV is greater than T;

based on the first determination:

identifying an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages;

setting the m-page as non-allocatable for future operations.

2. The method of claim 1 , further comprising:

making a second determination that the data on the page is correctable using error-correcting codes;

based on the second determination:

scheduling the data on the page to be written to a new allocatable page in the persistent storage.

3. The method of claim 2 , further comprising:

after the scheduling:

writing the data on the page to the new allocatable page as part of a garbage collection operation.

4. The method of claim 1 , further comprising:

making a second determination that the data on the page is not correctable using error-correcting codes;

based on the second determination, making a third determination to proactively correct the data on the page using a RAID correction mechanism.

5. The method of claim 4 , wherein the third determination takes into account a BEV of at least one other page in the persistent storage, wherein the page and the at least one other page are part of a RAID stripe.

6. The method of claim 1 , wherein future operations comprise at least one selected from a group consisting of a write operation and a garbage collection operation.

7. The method of claim 1 , wherein the BEV specifies a percentage of bits in the page that are incorrect.

8. The method of claim 1 , wherein the BEV specifies a number of bits in the page that are incorrect.

9. The method of claim 1 , wherein the BEV is determined using error-correcting codes.

10. The method of claim 1 , wherein the page is located on a solid-state memory module in the persistent storage, wherein the solid-state memory module comprises a multi-level cell (MLC).

11. The method of claim 1 , wherein the retention time is determined using a first time that the data was written to the page and a second time associated with the proactive read request.

12. The method of claim 1 , wherein the P/E cycle value is a P/E cycle value range.

13. A system, comprising:

a storage module comprising a storage module controller and persistent storage; and

a control module operatively connected to the storage module and a client,

wherein control module comprises memory, wherein the memory comprises an in-memory data structure comprising a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of bit error value (BEV) thresholds (Ts), one of a plurality of P/E cycle values, and one of a plurality of retention times, and

wherein the retention time for the data stored on the page is determined using a birth time for the data stored on the page from the memory,

wherein the control module performs the following steps:

selecting a page for a proactive read request, wherein the page is located in the persistent storage;

issuing the proactive read request to the page;

obtaining, in response to the proactive read request, a BEV for data stored on the page;

obtaining a T for the page, wherein T is determined using a program/erase cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in the in-memory data structure;

making a first determination that the BEV is greater than T;

based on the first determination:

identifying an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages; and

setting the m-page as non-allocatable for future operations.

14. The system of claim 13 , wherein the persistent storage comprises flash memory and wherein the page is located in the flash memory.

15. The system of claim 13 , wherein the control module further performs the following steps:

making a second determination that the data on the page is correctable using error-correcting codes;

based on the second determination:

scheduling the data on the page to be written to a new allocatable page in the persistent storage;

after the scheduling, writing the data on the page to the new allocatable page as part of a garbage collection operation.

16. The system of claim 13 , wherein the control module further performs the following steps:

making a second determination that the data on the page is not correctable using error-correcting codes;

based on the second determination, making a third determination to proactively correct the data on the page using a RAID correction mechanism.

17. The system of claim 16 , wherein the third determination takes into account a BEV of at least one other page in the persistent storage, wherein the page and the at least one other page are part of a RAID stripe.

18. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to:

select a page for a proactive read request, wherein the page is located in the persistent storage;

issue the proactive read request to the page;

receive, in response to the proactive read request, a bit error value (BEV) for data stored on the page;

obtain a BEV threshold (T) for the page, wherein T is determined using a program/erase (P/E) cycle value associated with the page and a retention time of the data stored on the page, wherein obtaining T comprises performing a look-up in an in-memory data structure in memory, wherein the memory is located in a control module operatively connected to the persistent storage, wherein the in-memory data structure comprises a birth time for all data stored in the persistent storage and a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of Ts, one of a plurality of P/E cycle values, and one of a plurality of retention times;

make a first determination that the BEV is greater than T;

based on the first determination:

identify an m-page, wherein the m-page is a set of pages, wherein the page is in the set of pages; and

set the m-page as non-allocatable for future operations.

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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/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 Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2016
From: TABRIZI, HALEH; AGARWAL, RAJIV; FERREIRA, JEFFREY PAUL; BONWICK, JEFFREY S.; SHAPIRO, MICHAEL W.
To: EMC CORPORATION
Reel/Frame 038771/0626 →
Continuity (1)
Related Publication 20160092304A1 · Mar 31, 2016