×

Systems and methods for low latency, high reliability error correction in a flash drive

  • US 8,788,910 B1
  • Filed: 05/22/2012
  • Issued: 07/22/2014
  • Est. Priority Date: 05/22/2012
  • Status: Active Grant
First Claim
Patent Images

1. A method of decoding data with low latency, the method comprising:

  • receiving a request for data stored in at least one of a plurality of flash memory devices;

    identifying a page stripe that includes the requested data, wherein the page stripe comprises a grouping of one or more equally-sized flash pages or integer fractions of flash pages, wherein each page or each integer fraction of the page stripe contains primary parity symbols for error correction of data stored within the page or integer fraction, and wherein the pages or integer fractions of the page stripe contain secondary parity symbols for error correction of data stored throughout the page stripe;

    determining a portion of the page stripe that contains an integer number of a first set of primary codewords containing the requested data and associated primary parity symbols such that retrieval and decoding of the requested data is performed with a first amount of latency;

    retrieving from flash memory the first set of primary codewords containing the requested data;

    performing error correction on the first set of primary codewords to determine if the raw requested data contains errors and if the errors, if any, are correctable, to generate first corrected requested data;

    releasing the first corrected requested data based at least partly on a determination that the first corrected requested data has been decoded with a likelihood of error below a predetermined acceptable uncorrectable bit error rate (aUBER) when the first corrected requested data cannot be considered to be error free to within the aUBER, performing the following;

    reading the page stripe containing the requested data such that a second set of primary codewords is retrieved, wherein reading of page stripe is performed with a second latency longer than the first latency;

    performing error correction on the second set of primary codewords of the page stripe to generate an updated page stripe;

    interleaving data from the updated page stripe to arrange secondary codewords;

    performing error correction on the secondary codewords to generate corrected secondary codewords, wherein execution of error correction on the secondary codewords is not performed in parallel with execution of error correction on the primary codewords;

    de-interleaving the corrected secondary codewords to generate a further updated page stripe having an updated second set of primary codewords;

    performing error correction on at least a portion of the updated second set of primary codewords to generate updated corrected requested data; and

    releasing the second corrected requested data based at least partly on a determination that the likelihood of the requested data containing an error is less than a predetermined acceptable failure rate;

    wherein at least performing error correction is performed by an integrated circuit;

    wherein at least performing error correction is performed concurrently with a read operation for an end user.

View all claims
  • 7 Assignments
Timeline View
Assignment View
    ×
    ×