IP Library Granted Patent US 10,230,406
Granted Patent B2
US 10,230,406 · App. 14/594,165 · Granted Mar 12, 2019

LDPC Erasure Decoding for Flash Memories

Inventors: Hao Zhong (Milpitas, CA); Yan Li (San Jose, CA); Radoslav Danilak (Cupertino, CA); Earl T. Cohen (Oakland, CA)
Assignee: SEAGATE TECHNOLOGY LLC
H03M13/3715G06F3/064G06F3/0611G06F3/0619G06F3/0655G06F3/0679G06F11/1008G06F11/1048G06F11/1068G06F11/1072G11C11/5642G11C16/10G11C16/26G11C29/52H03M13/1108H03M13/1111H03M13/373H03M13/3707H03M13/6502
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,230,406
App. No.
14/594,165
Granted
Mar 12, 2019
Kind
B2
Abstract

A Solid-State Disk (SSD) controller uses LDPC decoding to enable flash memory accesses with improved latency and/or error correction capabilities. With SLC flash memory having a BER less than a predetermined value, the SSD controller uses a 1-bit read (single read) hard-decision LDPC decoder to access the flash memory. If the hard-decision LDPC decoder detects an uncorrectable error, then the SSD controller uses a 1.5-bit read (two reads) erasure-decision LDPC decoder to access the flash memory. With flash memory having a raw BER between two other predetermined values, the SSD controller omits the use of the hard-decision LDPC decoder and uses only the erasure-decision LDPC decoder to access the flash memory. Variations of the SSD controller similarly access MLC flash memory. Some SSD controllers dynamically switch between hard-decision and erasure-based decoders based on dynamic decoder selection criteria.

Claims (55)

1. A method comprising:

detecting an uncorrectable error via a hard-decision based Low Density Parity Check (LDPC) decoding using results of one or more initial reads at a particular location in a flash memory; and

performing an erasure-decision LDPC decoding using respective results of one or more additional reads performed at the particular location in response to the detecting.

2. The method of claim 1 , wherein the flash memory comprises Single-Level Cell (SLC) technology flash memory, the initial reads are one in number, the additional reads are two in number, and each of the additional reads is at a respective read voltage.

3. The method of claim 2 , further comprising providing respective voltage specifiers for each of the additional reads.

4. The method of claim 3 , wherein at least one of the voltage specifiers is one of an explicit voltage level, an identifier of one of a plurality of predetermined voltage levels, and a unique identification of one of a plurality of read request types.

5. The method of claim 1 , wherein the flash memory comprises Multi-Level Cell (MLC) technology flash memory.

6. The method of claim 1 , wherein the initial reads are in response to receiving a request via an interface compatible with one or more of a plurality of interface standards, the interface standards comprising

a Serial Advanced Technology Attachment (SATA) interface standard,

a Serial Attached Small Computer System Interface (SAS) interface standard,

a Peripheral Component Interconnect express (PCIe) interface standard,

a Fibre Channel interface standard, and

an Ethernet interface standard.

7. The method of claim 1 , wherein the initial reads and the additional reads are requested via a controller, the controller and the flash memory are comprised in a storage sub-system implemented as one of a plurality of nonvolatile storage component types, and the non-volatile storage component types comprise

a Universal Serial Bus (USB) storage component type,

a Compact Flash (CF) storage component type,

a MultiMediaCard (MMC) storage component type,

a Secure Digital (SD) storage component type,

a Memory Stick storage component type, and

an xD-picture card storage component type.

8. A system comprising:

an interface; and

a controller enabled to detect, an uncorrectable error via a hard-decision based Low Density Parity Check (LDPC) decoding using results of one or more initial reads at a particular location in a flash memory; and

perform, an erasure-decision LDPC decoding using respective results of one or more additional reads performed at the particular location in response to the detection.

9. The system of claim 8 , wherein the flash memory comprises Single-Level Cell (SLC) technology flash memory, the initial reads are one in number, the additional reads are two in number, and each of the additional reads is at a respective read voltage.

10. The system of claim 9 , wherein the controller is further enabled to provide respective voltage specifiers for each of the additional reads.

11. The system of claim 10 , wherein at least one of the voltage specifiers is one of an explicit voltage level, an identifier of one of a plurality of predetermined voltage levels, and a unique identification of one of a plurality of read request types.

12. The system of claim 8 , wherein the flash memory comprises Multi-Level Cell (MLC) technology flash memory.

13. The system of claim 8 , wherein the controller and the flash memory are comprised in a storage sub-system implemented as one of a plurality of non-volatile storage component types, and the non-volatile storage component types comprise

a Universal Serial Bus (USB) storage component type,

a Compact Flash (CF) storage component type,

a MultiMediaCard (MMC) storage component type,

a Secure Digital (SD) storage component type,

a Memory Stick storage component type, and

an xD-picture card storage component type.

14. A system comprising:

means for detecting an uncorrectable error via a hard-decision based Low Density Parity Check (LDPC) decoding using results of one or more initial reads at a particular location in a flash memory; and

means for performing an erasure-decision LDPC decoding using respective results of one or more additional reads performed at the particular location in response to the detecting.

15. The system of claim 14 , wherein the flash memory comprises Single-Level Cell (SLC) technology flash memory, the initial reads are one in number, the additional reads are two in number, and each of the additional reads is at a respective read voltage.

16. The system of claim 15 , further comprising providing respective voltage specifiers for each of the additional reads.

17. The system of claim 16 , wherein at least one of the voltage specifiers is one of an explicit voltage level, an identifier of one of a plurality of predetermined voltage levels, and a unique identification of one of a plurality of read request types.

18. The system of claim 1 , wherein the flash memory comprises Multi-Level Cell (MLC) technology flash memory.

19. The system of claim 14 , wherein the initial reads are in response to receiving a request via an interface compatible with one or more of a plurality of interface standards, the interface standards comprising

a Serial Advanced Technology Attachment (SATA) interface standard,

a Serial Attached Small Computer System Interface (SAS) interface standard,

a Peripheral Component Interconnect express (PCIe) interface standard,

a Fibre Channel interface standard, and

an Ethernet interface standard.

20. The system of claim 14 , wherein the initial reads and the additional reads are requested via a controller, the controller and the flash memory are comprised in a storage sub-system implemented as one of a plurality of non-volatile storage component types, and the non-volatile storage component types comprise

a Universal Serial Bus (USB) storage component type,

a Compact Flash (CF) storage component type,

a MultiMediaCard (MMC) storage component type,

a Secure Digital (SD) storage component type,

a Memory Stick storage component type, and

an xD—picture card storage component type.

Continuity (3)
Continuation 13583617
Provisional Application 61313681 · Mar 12, 2010
Related Publication 20170155409A1 · Jun 1, 2017
Cited By (1)
US 12,298,852