Read level grouping algorithms for increased flash performance

US9905302B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9905302-B2
Application numberUS-201414549532-A
CountryUS
Kind codeB2
Filing dateNov 20, 2014
Priority dateNov 20, 2014
Publication dateFeb 27, 2018
Grant dateFeb 27, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A plurality of flash memory wordlines of a flash storage device are divided into a plurality of wordline groups based on read error counts associated with the wordlines and a plurality of read level offsets. Each wordline group is associated with one of a plurality of read level offsets determined while dividing the plurality of flash memory wordlines, and associations between the plurality of read level offsets and the plurality of wordline groups are stored for use in connection with read levels to read the flash memory wordlines of the respective wordline groups.

First claim

Opening claim text (preview).

What is claimed is: 1. A machine-implemented method, the method comprising: dividing a plurality of flash memory wordlines of a flash storage device into a plurality of wordline groups based on read error counts associated with the wordlines and a plurality of read level offsets; associating each wordline group with one of the plurality of read level offsets determined while dividing the plurality of flash memory wordlines; and storing associations between the plurality of read level offsets and the plurality of wordline groups for use in connection with read levels to read the flash memory wordlines of the respective wordline groups. 2. The machine-implemented method of claim 1 , wherein each of the plurality of wordline groups comprises consecutively ordered wordlines of a flash memory block. 3. The machine-implemented method of claim 1 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups comprises: selecting respective permutations of consecutive wordline subgroups from within a predetermined set of wordline candidate groups based on a minimum of total error counts associated with the respective permutations, the consecutive wordline subgroups each being associated with a read level offset corresponding to a minimum of error counts associated with a plurality of possible read level offsets. 4. The machine-implemented method of claim 3 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups comprises: (a) selecting first and second consecutive candidate wordline groups from the predetermined set of candidate wordline groups; (b) providing a plurality of subgroup permutations for the selected first and second consecutive candidate wordline groups, each subgroup permutation comprising multiple consecutive wordline subgroups of wordlines spanning the first and second consecutive wordline groups; (c) for each wordline subgroup of a respective subgroup permutation, identifying from the plurality of possible read level offsets a respective read level offset that when used with the read level to read the wordlines in the wordline subgroup generates the least number of errors for the wordline subgroup; and (d) choosing one of the plurality of subgroup permutations having a lowest total error count for consecutive wordline subgroups in the subgroup permutation based on the identified read level offsets for the consecutive wordline subgroups, wherein the plurality of wordline groups are based at least in part on one or more read level offsets corresponding to the selected one of the plurality of subgroup permutations. 5. The machine-implemented method of claim 4 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups further comprises: (e) storing an association between a first of the consecutive wordline subgroups in the chosen subgroup permutation and a corresponding identified read level offset; and (f) repeating steps (a) through (e) using a second of the consecutive wordline subgroups in the chosen subgroup permutation as the first consecutive candidate wordline group and a next candidate group from the predetermined set of candidate wordline groups as the second consecutive candidate wordline group, the repeating ending when associations have been stored for all wordlines in the predetermined set of candidate wordline groups. 6. The machine-implemented method of claim 5 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups further comprises: repeating steps (a) through (f) until wordline boundaries of the consecutive wordline subgroups do not change from one iteration to a next iteration, or until an overall bit error rate measured based on identified read level offsets for the consecutive wordline subgroups does not change from one iteration to a next iteration, or a certain number of iterations is reached. 7. The machine-implemented method of claim 3 , wherein each consecutive wordline subgroup of a respective permutation is generated based on an interleaving of consecutive wordlines within the predetermined set of candidate wordline groups. 8. The machine-implemented method of claim 1 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups comprises: selecting respective permutations of consecutive wordline subgroups from within a predetermined set of candidate groups based on selecting a minimum of maximum error counts associated with the respective permutations, the consecutive wordline subgroups each being associated with a read level offset corresponding to a minimum of respective error counts associated with a plurality of possible read level offsets. 9. The machine-implemented method of claim 8 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups comprises: (a) selecting first and second consecutive candidate wordline groups from the predetermined set of candidate groups; (b) providing a plurality of subgroup permutations for the selected first and second consecutive candidate wordline groups, each subgroup permutation comprising multiple consecutive wordline subgroups of wordlines spanning the first and second consecutive wordline groups; (c) for each consecutive wordline subgroup of a respective subgroup permutation, determining a maximum error count associated with reading wordlines in the wordline subgroup for each possible read level offset used with the read level to read the wordlines of the wordline subgroup, and selecting from the plurality of possible read level offsets a read level offset corresponding to the minimum of the determined maximum error counts for the wordline subgroup; (d) for each subgroup permutation, determining a maximum error count of the error counts associated with the wordline subgroups of the subgroup permutation; and (e) choosing one of the plurality of subgroup permutations having a minimum of the determined maximum error counts. 10. The machine-implemented method of claim 9 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups further comprises: (f) storing an association between a first of the consecutive wordline subgroups in the chosen subgroup permutation and a corresponding identified read level offset; and (g) repeating steps (a) through (f) using a second of the consecutive wordline subgroups in the chosen subgroup permutation as the first consecutive candidate wordline group and a next candidate group from the predetermined set of candidate groups as the second consecutive candidate wordline group, the repeating ending when associations have been stored for all wordlines in the predetermined set of candidate groups. 11. The machine-implemented method of claim 10 , wherein dividing the plurality of flash memory wordlines into the plurality of wordline groups further comprises: repeating steps (a) through (g) until wordline boundaries of the consecutive wordline subgroups do not change from one iteration to a next iteration, or until an overall bit error rate measured for the consecutive wordline subgroups does not change from one iteration to a next iteration, or a certain number of iterations is reached. 12. The machine-implemented method of claim 3 , further comprising: generating an error count table, each error count in the table being indexed based on a respective read level offset and a respective flash memory wordline; and generating a respective normalized read level offset group based on: indexing the error count table by a plurality of consecutive flash memory wordlines to identify corresponding read level

Assignees

Inventors

Classifications

  • Sensing or reading circuits; Data output circuits · CPC title

  • G11C16/26Primary

    Sensing or reading circuits; Data output circuits · CPC title

  • Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9905302B2 cover?
A plurality of flash memory wordlines of a flash storage device are divided into a plurality of wordline groups based on read error counts associated with the wordlines and a plurality of read level offsets. Each wordline group is associated with one of a plurality of read level offsets determined while dividing the plurality of flash memory wordlines, and associations between the plurality of …
Who is the assignee on this patent?
Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G11C16/26. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 27 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).