IP Library Granted Patent US 9,905,289
Granted Patent B1
US 9,905,289 · App. 15/581,101 · Granted Feb 27, 2018

Method and system for systematic read retry flow in solid state memory

Inventors: Seungjune Jeon (Santa Clara, CA); Haleh Tabrizi (San Francisco, CA)
Assignee: EMC IP Holding Company LLC
G11C11/4096G11C11/4087G06F11/1072G11C11/5621G11C29/52
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,905,289
App. No.
15/581,101
Granted
Feb 27, 2018
Kind
B1
Abstract

In general, embodiments of the technology relate to improving read performance of solid-state storage by using decoding parameters deemed particularly suitable for the read operation that is currently being performed. More specifically, embodiments of the technology relate to using different decoding parameters when a read operation needs to be repeated because the initial read operation has failed.

Claims (128)

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 an address;

determining a page number for a physical page identified by the address;

obtaining a read threshold value using the page number;

obtaining a first read threshold shift and a first decoding mode for an initial read in the page identified by the page number;

obtaining a first modified read threshold value by applying the first read threshold shift to the read threshold value;

issuing a first control module read request comprising the first modified read threshold value and the decoding mode to a storage module, wherein the storage module comprises the physical page;

obtaining first data by decoding data bits obtained from the physical page using the first modified read threshold value and the first decoding mode;

making a first determination, that the obtaining the first data has failed, and based on the determination:

obtaining a second read threshold shift and a second decoding mode for a first read retry in the physical page;

obtaining a second modified read threshold value by applying the second read threshold shift to the read threshold value;

issuing a second control module read request comprising the second modified read threshold value and the second decoding mode to the storage module;

obtaining second data by decoding data bits obtained from the physical page using the second modified read threshold value and the second decoding mode; and

making a second determination, that the obtaining the second data was successful, and based on the determination:

returning the second data to the requesting client.

2. The method of claim 1 , further comprising:

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

determining a second page number for a second physical page identified by the second address;

obtaining a second read threshold value using the second page number;

obtaining a third read threshold shift and a third decoding mode for an initial read in the physical page identified by the second page number;

obtaining a third modified read threshold value by applying the third read threshold shift to the second read threshold value;

issuing a third control module read request comprising the third modified read threshold value and the third decoding mode to the storage module, wherein the storage module comprises the second physical page;

obtaining third data by decoding data bits obtained from the physical page using the third modified read threshold value and the third decoding mode;

making a third determination, that the obtaining the third data has failed, and based on the determination:

obtaining a fourth read threshold shift and a fourth decoding mode for a first read retry in the second physical page;

obtaining a fourth modified read threshold value by applying the fourth read threshold shift to the second read threshold value;

issuing a fourth control module read request comprising the fourth modified read threshold value and the fourth decoding mode to the storage module;

obtaining fourth data by decoding data bits obtained from the physical page using the fourth modified read threshold value and the fourth decoding mode; and

making a fourth determination, that the obtaining the fourth data has failed, and based on the determination:

reconstructing the fourth data using a RAID mechanism, and

returning the fourth data to the requesting client.

3. The method of claim 1 , wherein obtaining the read threshold value further comprises using a retention time for the data and a program/erase (P/E) cycle value associated with the physical page,

wherein the retention time is determined using the address.

4. The method of claim 1 , wherein the first determination is made based on a detection that the first data comprises entries that indicate unsuccessful decoding.

5. The method of claim 1 , wherein the data bits obtained from the physical page using the first modified read threshold value comprise bit errors that are not correctable using the first decoding mode.

6. The method of claim 1 , wherein obtaining the first read threshold shift, and the first decoding mode for the initial read and obtaining the second read threshold shift and the second decoding mode for the first read retry 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 shifts, one of a plurality of decoding modes, one of a plurality of page numbers and one of a plurality of retry counts.

7. The method of claim 6 ,

wherein the entries are organized in the order of retry counts, and

wherein for increasingly higher retry count numbers the associated decoding modes identify increasingly computationally demanding decoding algorithms.

8. The method of claim 6 ,

wherein the entries are organized in the order of retry counts, and

wherein for increasingly higher retry count numbers the associated read threshold shifts increase in magnitude.

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

characterizing the solid state memory to establish a relationship between page numbers, retry counts, read threshold shifts and decoding modes; and

storing the relationship in an in-memory data structure.

10. The method of claim 1 , wherein the first and the second decoding mode are selected from a group consisting of a hard threshold decoder, a soft threshold decoder using a single read operation per memory cell and a soft threshold decoder using a plurality of read operations per memory cell.

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

12. 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 an address;

determines a page number for a physical page identified by the address;

obtains a read threshold value using the page number;

obtains a first read threshold shift and a first decoding mode for an initial read in the page identified by the page number;

obtains a first modified read threshold value by applying the first read threshold shift to the read threshold value;

issues a first control module read request comprising the first modified read threshold value and the decoding mode to a storage module, wherein the storage module comprises the physical page,

wherein the storage module:

receives the first control module read request;

obtains first data by decoding data bits obtained from the physical page using the first modified read threshold value and the first decoding mode; and

provides the first data to the control module,

wherein the control module further:

receives the first data;

makes a first determination, that the obtaining the first data has failed, and based on the determination:

obtains a second read threshold shift and a second decoding mode for a first read retry in the physical page;

obtains a second modified read threshold value by applying the second read threshold shift to the read threshold value; and

issues a second control module read request comprising the second modified read threshold value and the second decoding mode to the storage module,

wherein the storage module further:

receives the second control module read request;

obtains second data by decoding data bits obtained from the physical page using the second modified read threshold value and the second decoding mode; and

provides the second data to the control module,

wherein the control module further:

receives the second data;

makes a second determination, that the obtaining the second data was successful, and based on the determination:

returns the second data to the requesting client.

13. The system of claim 12 ,

wherein the control module further:

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

determines a second page number for a second physical page identified by the second address;

obtains a second read threshold value using the second page number;

obtains a third read threshold shift and a third decoding mode for an initial read in the physical page identified by the second page number;

obtains a third modified read threshold value by applying the third read threshold shift to the second read threshold value;

issues a third control module read request comprising the third modified read threshold value and the third decoding mode to the storage module, wherein the storage module comprises the second physical page,

wherein the storage module further:

receives the third control module read request;

obtains third data by decoding data bits obtained from the physical page using the third modified read threshold value and the third decoding mode; and

provides the third data to the control module,

wherein the control module further:

receives the third data;

makes a third determination, that the obtaining the third data has failed, and based on the determination:

obtains a fourth read threshold shift and a fourth decoding mode for a first read retry in the second physical page;

obtains a fourth modified read threshold value by applying the fourth read threshold shift to the second read threshold value;

issues a fourth control module read request comprising the fourth modified read threshold value and the fourth decoding mode to the storage module,

wherein the storage module further:

receives the fourth control module read request;

obtains fourth data by decoding data bits obtained from the physical page using the fourth modified read threshold value and the fourth decoding mode; and

makes a fourth determination, that the obtaining the fourth data has failed, and based on the determination:

reconstructs the fourth data using a RAID mechanism, and

returns the fourth data to the requesting client.

14. The system of claim 12 wherein the data bits obtained from the physical page using the first modified read threshold value comprise bit errors that are not correctable using the first decoding mode.

15. The system of claim 12 , wherein obtaining the first read threshold shift, and the first decoding mode for the initial read and obtaining the second read threshold shift and the second decoding mode for the first read retry 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 shifts, one of a plurality of decoding modes, one of a plurality of page numbers and one of a plurality of retry counts.

16. The system of claim 15 ,

wherein the entries are organized in the order of retry counts, and

wherein for increasingly higher retry count numbers the associated decoding modes identify increasingly computationally demanding decoding algorithms.

17. The system of claim 15 ,

wherein the entries are organized in the order of retry counts, and

wherein for increasingly higher retry count numbers the associated read threshold shifts increase in magnitude.

18. The system of claim 15 , further comprising, prior to receiving the client read request:

characterizing the solid state memory to establish a relationship between page numbers, retry counts, read threshold shifts and decoding modes; and

storing the relationship in an in-memory data structure.

19. The system of claim 12 , wherein the first and the second decoding mode are selected from a group consisting of a hard threshold decoder, a soft threshold decoder using a single read operation per memory cell and a soft threshold decoder using a plurality of read operations per memory cell.

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 an address;

determine a page number for a physical page identified by the address;

obtain a read threshold value using the page number;

obtain a first read threshold shift and a first decoding mode for an initial read in the page identified by the page number;

obtain a first modified read threshold value by applying the first read threshold shift to the read threshold value;

issue a first control module read request comprising the first modified read threshold value and the decoding mode to a storage module, wherein the storage module comprises the physical page;

obtain first data by decoding data bits obtained from the physical page using the first modified read threshold value and the first decoding mode;

make a first determination, that the obtaining the first data has failed, and based on the determination:

obtain a second read threshold shift and a second decoding mode for a first read retry in the physical page;

obtain a second modified read threshold value by applying the second read threshold shift to the read threshold value;

issue a second control module read request comprising the second modified read threshold value and the second decoding mode to the storage module;

obtain second data by decoding data bits obtained from the physical page using the second modified read threshold value and the second decoding mode; and

make a second determination, that the obtaining the second data was successful, and based on the determination:

return the second data to the requesting client.

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; TABRIZI, HALEH
To: EMC IP HOLDING COMPANY
Reel/Frame 042423/0748 →