Fast tracking for flash channels
Abstract
An SSD controller dynamically adjusts read thresholds in an NVM to reduce errors due to device threshold voltage distribution shifts, thus improving performance, reliability, and/or cost of a storage sub-system, such as an SSD. In a first aspect, the controller periodically performs offline tracking on a portion of the NVM. The controller reads a representative sub-portion with current read thresholds. If the read meets a condition, then the controller reads the sub-portion with sample read thresholds, estimates the device threshold voltage distributions, and adjusts the current read thresholds of the portion to calculated new operating read thresholds of the sub-portion. In a second aspect, the portion includes data with a known statistical average number of zero and/or one bits.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
determining that a sub-portion of one or more portions of a Non-Volatile Memory (NVM) meets a condition when read in accordance with one or more current operating read thresholds; adjusting the current operating read thresholds to new operating read thresholds in response to at least the determining; and wherein data of the sub-portion has a known statistical average number of zero bits and a known statistical average number of one bits.
2 . The method of claim 1 , wherein the condition comprises the read exceeding any one or more of a configurable target bit error rate and a configurable target disparity between a number of zero bits and a number of one bits.
3 . The method of claim 1 , further comprising:
producing the data of the sub-portion at least in part via scrambling such that scrambled data output from the producing has the known statistical average number of zero bits and the known statistical average number of one bits; writing the scrambled data to the sub-portion; and subsequent to the writing, reading the sub-portion in accordance with the current operating read thresholds.
4 . The method of claim 1 , wherein the determining comprises:
selecting one or more representative ones of the one or more portions, wherein the one or more portions are of a managed group of portions; reading at least a respective sub-portion of each of the representative portions in accordance with respective ones of the current operating read thresholds; and testing whether the reading of at least one of the respective sub-portions meets the condition.
5 . The method of claim 4 ,
wherein the adjusting comprises:
reading the at least one of the respective sub-portions in accordance with sample read thresholds,
estimating new device threshold voltage distributions, based at least in part on at least some results of the reading the at least one of the respective sub-portions in accordance with the sample read thresholds, and
calculating the new operating read thresholds, based at least in part on at least some of the estimated new device threshold voltage distributions; and
further comprising, subsequent to the adjusting, performing one or more reads of one or more locations of the one or more portions in accordance with the new operating read thresholds.
6 . The method of claim 5 , further comprising repeating any one or more of the determining, the adjusting, and the performing.
7 . The method of claim 1 , wherein the determining is performed in response to a configurable timer.
8 . A system comprising:
means for determining that a sub-portion of one or more portions of a Non-Volatile Memory (NVM) meets a condition when read in accordance with one or more current operating read thresholds; means for adjusting the current operating read thresholds to new operating read thresholds in response to at least the means for determining; and wherein data of the sub-portion has a known statistical average number of zero bits and a known statistical average number of one bits.
9 . The system of claim 8 , wherein the condition comprises the read exceeding any one or more of a configurable target bit error rate and a configurable target disparity between a number of zero bits and a number of one bits.
10 . The system of claim 8 , further comprising:
means for producing the data of the sub-portion at least in part via scrambling such that scrambled data output from the means for producing has the known statistical average number of zero bits and the known statistical average number of one bits; means for writing the scrambled data to the sub-portion; and means for reading, operable subsequent to the means for writing, the sub-portion in accordance with the current operating read thresholds.
11 . The system of claim 8 , wherein the means for determining comprises:
means for selecting one or more representative ones of the one or more portions, wherein the one or more portions are of a managed group of portions; means for reading at least a respective sub-portion of each of the representative portions in accordance with respective ones of the current operating read thresholds; and means for testing whether at least one of the respective sub-portions read by the means for reading the at least a respective sub-portion meets the condition.
12 . The system of claim 11 ,
wherein the means for adjusting comprises:
means for reading the at least one of the respective sub-portions in accordance with sample read thresholds,
means for estimating new device threshold voltage distributions, based at least in part on at least some results of the means for reading the at least one of the respective sub-portions in accordance with the sample read thresholds, and
means for calculating the new operating read thresholds, based at least in part on at least some of the estimated new device threshold voltage distributions; and
further comprising, means for performing, operable subsequent to the means for adjusting, one or more reads of one or more locations of the one or more portions in accordance with the new operating read thresholds.
13 . The system of claim 12 , further comprising means for repeatedly operating any one or more of the means for determining, the means for adjusting, and the means for performing.
14 . The system of claim 8 , wherein the means for determining is operable in response to a configurable timer.
15 . An apparatus comprising:
read condition hardware logic circuitry enabled to determine that a sub-portion of one or more portions of a Non-Volatile Memory (NVM) meets a condition when read in accordance with one or more current operating read thresholds; operating read threshold adjustment hardware logic circuitry enabled to adjust the current operating read thresholds to new operating read thresholds in response to at least the read condition hardware logic circuitry; and wherein data of the sub-portion has a known statistical average number of zero bits and a known statistical average number of one bits.
16 . The apparatus of claim 15 , wherein the condition comprises the read exceeding any one or more of a configurable target bit error rate and a configurable target disparity between a number of zero bits and a number of one bits.
17 . The apparatus of claim 15 , further comprising:
data scrambling hardware logic circuitry enabled to produce the data of the sub-portion at least in part via scrambling such that scrambled data output from the data scrambling hardware logic circuitry has the known statistical average number of zero bits and the known statistical average number of one bits; and NVM interface control circuitry enabled to cause the NVM to write the scrambled data to the sub-portion, and further enabled to cause the NVM to read the sub-portion in accordance with the current operating read thresholds.
18 . The apparatus of claim 17 , wherein the read condition hardware logic circuitry comprises:
portion selection hardware logic circuitry enabled to select one or more representative ones of the one or more portions, wherein the one or more portions are of a managed group of portions, wherein the NVM interface control circuitry is further enabled to cause the NVM to read at least a respective sub-portion of each of the representative portions in accordance with respective ones of the current operating read thresholds; and testing hardware logic circuitry enabled to test whether at least one of the respective sub-portions read in accordance with the respective current operating read thresholds meets the condition.
19 . The apparatus of claim 18 ,
wherein the operating read threshold adjustment hardware logic circuitry comprises:
device threshold voltage distribution estimation hardware logic circuitry, wherein the NVM interface control circuitry is further enabled to cause the NVM to read the at least one of the respective sub-portions in accordance with sample read thresholds, and the device threshold voltage distribution estimation hardware logic circuitry is enabled to estimate new device threshold voltage distributions, based at least in part on at least some results of the read of the at least one of the respective sub-portions in accordance with the sample read thresholds, and
new operating read threshold calculation hardware logic circuitry enabled to calculate the new operating read thresholds, based at least in part on at least some of the estimated new device threshold voltage distributions; and
wherein, subsequent to operation of the operating read threshold adjustment hardware logic circuitry, one or more reads of one or more locations of the one or more portions are performed in accordance with the new operating read thresholds.
20 . The apparatus of claim 19 , further comprising iteration control hardware logic circuitry enabled to activate repeated operation of any one or more of the read condition hardware logic circuitry and the operating read threshold adjustment hardware logic circuitry.
21 . The apparatus of claim 15 , wherein the read condition hardware logic circuitry is operable in response to a configurable timer.
22 . A tangible computer readable medium having a set of instructions stored therein that when executed by a processing element cause the processing element to perform and/or control operations comprising:
determining that a sub-portion of one or more portions of a Non-Volatile Memory (NVM) meets a condition when read in accordance with one or more current operating read thresholds; adjusting the current operating read thresholds to new operating read thresholds in response to at least the determining; and wherein data of the sub-portion has a known statistical average number of zero bits and a known statistical average number of one bits.
23 . The tangible computer readable medium of claim 22 , wherein the condition comprises the read exceeding any one or more of a configurable target bit error rate and a configurable target disparity between a number of zero bits and a number of one bits.
24 . The tangible computer readable medium of claim 22 , wherein the operations further comprise:
producing the data of the sub-portion at least in part via scrambling such that scrambled data output from the producing has the known statistical average number of zero bits and the known statistical average number of one bits; writing the scrambled data to the sub-portion; and reading, subsequent to the writing, the sub-portion in accordance with the current operating read thresholds.
25 . The tangible computer readable medium of claim 22 , wherein the determining comprises:
selecting one or more representative ones of the one or more portions, wherein the one or more portions are of a managed group of portions; reading at least a respective sub-portion of each of the representative portions in accordance with respective ones of the current operating read thresholds; and testing whether the reading of at least one of the respective sub-portions meets the condition.
26 . The tangible computer readable medium of claim 25 ,
wherein the adjusting comprises:
reading the at least one of the respective sub-portions in accordance with sample read thresholds,
estimating new device threshold voltage distributions, based at least in part on at least some results of the reading the at least one of the respective sub-portions in accordance with the sample read thresholds, and
calculating the new operating read thresholds, based at least in part on at least some of the estimated new device threshold voltage distributions; and
wherein the operations further comprise, subsequent to the adjusting, performing one or more reads of one or more locations of the one or more portions in accordance with the new operating read thresholds.
27 . The tangible computer readable medium of claim 26 , wherein the operations further comprise repeating any one or more of the determining, the adjusting, and the performing.
28 . The tangible computer readable medium of claim 22 , wherein the determining is performed in response to a configurable timer.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.