IP Library Granted Patent US 10,290,331
Granted Patent B1
US 10,290,331 · App. 15/581,191 · Granted May 14, 2019

Method and system for modulating read operations to support error correction in solid state memory

Inventor: Seungjune Jeon (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G11C7/00G11C16/0408G11C16/3459G11C29/50016
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,290,331
App. No.
15/581,191
Granted
May 14, 2019
Kind
B1
Abstract

In general, embodiments of the technology relate to improving read performance of solid-state storage by using decoding schemes deemed particularly suitable for the read operation that is currently being performed. More specifically, embodiments of the technology relate to using program/erase (P/E) cycle values, retention times, and page numbers in order to determine the appropriate decoding parameters to use when reading data that has been previously stored in the solid-state storage.

Claims (97)

1. A method for reading and decoding data from solid state memory, the method comprising:

receiving a client read request for data from a client, wherein the client read request comprises a logical address;

determining a physical address corresponding to the logical address, wherein the physical address comprises a page number for a physical page in the solid state memory;

determining, using one selected from a group consisting of the physical address and the logical address, a retention time for the data;

determining a program/erase (P/E) cycle value associated with the physical page;

obtaining at least one read threshold value and a decoding scheme using the P/E cycle value, the retention time, and the page number;

issuing a control module read request comprising the at least one read threshold value and the decoding scheme to a storage module, wherein the storage module comprises the physical page;

obtaining the data from the physical page using the at least one read threshold value; and

decoding the data obtained from the physical page using the decoding scheme.

2. The method of claim 1 , further comprising:

receiving a second client read request for second data from the client, wherein the second client read request comprises a second logical address;

determining a second physical address corresponding to the second logical address, wherein the second physical address comprises a second page number for a second physical page in the solid state memory;

determining, using one selected from a group consisting of the second physical address and the second logical address, a second retention time for the second data stored on the second physical page;

determining a second P/E cycle value associated with the second physical page;

obtaining the at least one read threshold value and a second decoding scheme different from the decoding scheme, using the second P/E cycle value, the second retention time, and the second page number;

issuing a second control module read request comprising the at least one read threshold value and the second decoding scheme to the storage module, wherein the storage module comprises the second physical page, wherein the second physical page is distinct from the physical page;

obtaining the second data from the second physical page using the at one read threshold value; and

decoding the second data obtained from the second physical page using the second decoding scheme.

3. The method of claim 1 , further comprising:

receiving a second client read request for second data from the client, wherein the second client read request comprises a second logical address;

determining a second physical address corresponding to the second logical address, wherein the second physical address comprises a second page number for a second physical page in the solid state memory;

determining, using one selected from a group consisting of the second physical address and the second logical address, a second retention time for the second data stored on the second physical page;

determining a second P/E cycle value associated with the second physical page;

obtaining at least one second read threshold value different from the at least one read threshold value, and a second decoding scheme different from the decoding scheme, using the second P/E cycle value, the second retention time, and the second page number;

issuing a second control module read request comprising the at least one second read threshold value and the second decoding scheme to the storage module, wherein the storage module comprises the second physical page, wherein the second physical page is distinct from the physical page;

obtaining the second data from the second physical page using the at one second read threshold value; and

decoding the second data obtained from the second physical page using the second decoding scheme.

4. The method of claim 1 , further comprising:

obtaining confidence levels associated with the at least one read threshold value using the P/E cycle value, the retention time, and the page number,

wherein the issued control module read request further comprises the confidence levels, and

wherein the decoding of the data is performed using the confidence levels.

5. The method of claim 1 , wherein obtaining the data from the physical page using the at least one read threshold value comprises accessing a memory cell to read one data value for each of the read threshold values of the at least one read threshold values.

6. The method of claim 5 , wherein the memory cell is one selected from a group consisting of a single-level cell (SLC) and a multi-level cell (MLC).

7. The method of claim 1 , wherein the data obtained from the physical page comprises a plurality of data sets obtained from a set of memory cells using a plurality of read threshold values,

wherein each data set of the plurality of data sets is obtained from the same set of memory cells using a particular read threshold value selected from the plurality of read threshold values.

8. The method of claim 7 , wherein the decoding of the data obtained from the physical page comprises determining a final data set to send to the client, based on the plurality of data sets.

9. The method of claim 1 , wherein obtaining the at least one read threshold value and the decoding scheme comprises performing a look-up in an in-memory data structure, wherein the in-memory data structure comprises a plurality of entries, wherein each of the plurality of entries comprises one of a plurality of read threshold values, one of a plurality of decode schemes, one of a plurality of P/E cycle values, and one of a plurality of retention times, and one of a plurality of page numbers.

10. The method of claim 1 , further comprising, prior to receiving the client read request:

characterizing the solid state memory to establish a relationship between P/E cycle values, physical pages, retention times, read threshold values and decoding schemes; and

storing the relationship in an in-memory data structure.

11. The method of claim 1 , wherein the decoding scheme is one selected from a group of hard threshold decoder and soft threshold decoder.

12. The method of claim 1 , wherein the at least one read threshold value comprises a voltage value.

13. The method of claim 1 , wherein the at least one read threshold value comprises a shift value, wherein the shift value corresponds to a voltage shift of a default read threshold value.

14. 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 the control module:

receives a client read request for data from a client, wherein the client read request comprises a logical address;

determines a physical address corresponding to the logical address, wherein the physical address comprises a page number for a physical page in the persistent storage;

determines, using one selected from a group consisting of the physical address and the logical address, a retention time for the data;

determines a program/erase (P/E) cycle value associated with the physical page;

obtains at least one read threshold value and a decoding scheme using the P/E cycle value, the retention time, and the page number; and

issues a control module read request comprising the at least one read threshold value and the decoding scheme to a storage module, wherein the storage module comprises the physical page,

wherein the storage module:

receives the control module read request;

obtains the data from the physical page using the at least one read threshold value; and

decodes the data obtained from the physical page using the decoding scheme.

15. The system of claim 14 ,

wherein the control module further:

receives a second client read request for second data from the client, wherein the second client read request comprises a second logical address;

determines a second physical address corresponding to the second logical address, wherein the second physical address comprises a second page number for a second physical page in the persistent storage;

determines, using one selected from a group consisting of the second physical address and the second logical address, a second retention time for the second data stored on the second physical page;

determines a second P/E cycle value associated with the second physical page;

obtains the at least one read threshold value and a second decoding scheme different from the decoding scheme, using the second P/E cycle value, the second retention time, and the second page number;

issues a second control module read request comprising the at least one read threshold value and the second decoding scheme to the storage module, wherein the storage module comprises the second physical page, wherein the second physical page is distinct from the physical page; and

wherein the storage module:

receives the second control module read request;

obtains the second data from the second physical page using the at one read threshold value; and

decodes the second data obtained from the second physical page using the second decoding scheme.

16. The system of claim 14 ,

wherein the control module further:

receives a second client read request for second data from the client, wherein the second client read request comprises a second logical address;

determines a second physical address corresponding to the second logical address, wherein the second physical address comprises a second page number for a second physical page in the persistent storage;

determines, using one selected from a group consisting of the second physical address and the second logical address, a second retention time for the second data stored on the second physical page;

determines a second P/E cycle value associated with the second physical page;

obtains at least one second read threshold value different from the at least one read threshold value, and a second decoding scheme different from the decoding scheme, using the second P/E cycle value, the second retention time, and the second page number;

issues a second control module read request comprising the at least one second read threshold value and the second decoding scheme to the storage module, wherein the storage module comprises the second physical page, wherein the second physical page is distinct from the physical page; and

wherein the storage module:

receives the second control module read request;

obtains the second data from the second physical page using the at one second read threshold value; and

decodes the second data obtained from the second physical page using the second decoding scheme.

17. The system of claim 14 , wherein the control module further:

obtains confidence levels associated with the at least one read threshold value using the P/E cycle value, the retention time, and the page number, and

wherein the issued control module read request further comprises the confidence levels, and

wherein the decoding of the data is performed using the confidence levels.

18. The system of claim 14 , wherein the data obtained from the physical page comprises a plurality of data sets obtained from a set of memory cells using a plurality of read threshold values,

wherein each data set of the plurality of data sets is obtained from the same set of memory cells using a particular read threshold value selected from the plurality of read threshold values.

19. The system of claim 18 , wherein the decoding of the data obtained from the physical page comprises determining a final data set to send to the client, based on the plurality of data sets.

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

receive a client read request for data from a client, wherein the client read request comprises a logical address;

determine a physical address corresponding to the logical address, wherein the physical address comprises a page number for a physical page in solid state memory;

determine, using one selected from a group consisting of the physical address and the logical address, a retention time for the data;

determine a program/erase (P/E) cycle value associated with the physical page;

obtain at least one read threshold value and a decoding scheme using the P/E cycle value, the retention time, and the page number;

issue a control module read request comprising the at least one read threshold value and the decoding scheme to a storage module, wherein the storage module comprises the physical page;

obtain the data from the physical page using the at least one read threshold value; and

decode the data obtained from the physical page using the decoding scheme.

Assignments (8)
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 (042769/0001) Recorded Apr 26, 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 (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2017
From: JEON, SEUNGJUNE
To: EMC IP HOLDING COMPANY
Reel/Frame 042423/0692 →