WO2017014860A1 - Traitement de données mises en forme - Google Patents

Traitement de données mises en forme Download PDF

Info

Publication number
WO2017014860A1
WO2017014860A1 PCT/US2016/037035 US2016037035W WO2017014860A1 WO 2017014860 A1 WO2017014860 A1 WO 2017014860A1 US 2016037035 W US2016037035 W US 2016037035W WO 2017014860 A1 WO2017014860 A1 WO 2017014860A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
shaping
shaped data
nvm
volatile memory
Prior art date
Application number
PCT/US2016/037035
Other languages
English (en)
Inventor
Stella Achtenberg
Eran Sharon
Original Assignee
Sandisk Technologies Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/803,777 external-priority patent/US9575683B2/en
Application filed by Sandisk Technologies Llc filed Critical Sandisk Technologies Llc
Publication of WO2017014860A1 publication Critical patent/WO2017014860A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Definitions

  • the present disclosure is generally related to processing shaped data.
  • W/E write/erase
  • P/E program/erase
  • Such failures are usually related to wearing of an oxide isolation layer of cells in the flash memory due to electrons passing through the oxide isolation layer during W/E cycles and generating electron trap sites.
  • Such failures can be manifested in several ways, such as by failing to erase or program a block of cells in the flash memory or by having reduced cell data retention (i.e., a reduced ability to store data reliably for a certain period of time).
  • Non-volatile memories such as NAND-based flash memory.
  • Data with a distribution that is different (e.g., significantly different) than a distribution induced by an independent and identically distributed (i.i.d.) bit source having equal probability for 1 and 0 may be said to be "shaped.”
  • Examples of shaped data include data that contains a higher number of 1-s than 0-s, or vice versa (e.g., data which contains a higher number of 0-s than 1-s).
  • An amount of shaping may correspond to entropy of a data source that is determined relative to an alphabet of data and its distribution.
  • binary entropy is the entropy of an i.i.d. data source having an alphabet ⁇ 0, 1 ⁇ .
  • Any data that includes a logical page of data having entropy lower (e.g., significantly lower) than one (where one is the binary entropy of data having 50% zeros and 50% ones) can be considered to be shaped. Criteria for considering a value of entropy to be significantly lower than ' 1 ' may vary according to each particular implementation. In some examples, shaped data may have a higher number of 1 -s because in conventional NAND flash systems, T typically represents an erase ("ER") state while '0' typically represents a programmed state.
  • ER erase
  • Shaping data to have a higher number of 1 -s may increase a useful life of a flash memory because increasing the proportion of memory cells that are set to the erase state (i.e., cells set to logical ⁇ ”) causes less wear of the flash cells and increases the number of W/E cycles that the NAND flash cells may undergo while maintaining a pre-defined storage reliability.
  • non-volatile memory may be the factor that limits the useful life of a flash memory system.
  • Various methods may be used to shape compressible data to form shaped data, such that the portion of 1-s in the shaped data is larger than the portion of 0-s. Because ' 1 ' typically corresponds to the Erase state in a NVM, the NVM partition may experience less wear when programmed with shaped data. Thus, shaping the data stored in the NVM may reduce wear, thereby increasing an endurance of the NVM. Additionally, shaping the data may reduce an average bit error rate (BER). However, shaping data may increase a variance (e.g., a maximum or instantaneous value) of the BER due to potentially problematic combinations of shaped data.
  • BER bit error rate
  • the shaping adjustment criteria may be indicative of a combination of logical pages of shaped data that is likely to result in an unacceptably high bit error rate (BER).
  • BER bit error rate
  • the shaping adjustment criteria may be indicative of a combination of logical pages that is associated with a sufficiently high likelihood of program disturb or that is associated with a problematic overlap of neighboring cell states.
  • Performing the modification operation may modify the shaped data such that the shaped data does not experience an unacceptably high bit error rate.
  • the data may be shaped without modification while the shaping adjustment criteria is not satisfied, thereby providing enhanced endurance and average BER associated with shaping data, and the data may be modified when the shaping adjustment criteria is satisfied, thereby addressing high individual or instantaneous BER associated with potentially problematic combinations of shaped data.
  • Techniques are disclosed for discontinuing shaping of data to be stored to at least a portion of a memory when a health metric associated with the at least the portion satisfies a threshold.
  • the threshold may be selected to reduce or avoid reliability issues associated with worn cells of the memory. For example, storing a particular
  • combination of logical pages of shaped data may result in a higher BER when the memory is worn than when the memory is fresh.
  • the BER induced by the particular combination when the memory is fresh may correspond to a BER that a data storage device can correct or otherwise compensate for.
  • the particular combination may not introduce reliability issues when the memory is fresh.
  • the higher BER caused by the particular combination when the memory is worn may correspond to a BER that a data storage device is unable to correct or otherwise compensate for.
  • the particular combination may introduce reliability issues when the memory is worn.
  • the data storage device may be configured to shape data while the memory is fresh enough to not result in more errors than the data storage device can correct or otherwise compensate for.
  • the data storage device may be configured to curb reliability issues associated with shaping data by discontinuing shaping of data when the memory is worn enough to experience an instantaneous BER due to data shaping that the data storage device is not capable of correcting or otherwise compensating for.
  • FIG. 1 is a block diagram illustrating a particular embodiment of a system to perform a modification operation based on whether one or more shaping adjustment criteria are satisfied;
  • FIG. 2 is a block diagram illustrating a particular embodiment of a system to
  • FIG. 3 is a general diagram depicting potentially problematic threshold voltage distribution patterns of shaped data
  • FIG. 4 is a block diagram of a particular embodiment of components of a system to perform a modification operation based on whether one or more shaping adjustment criteria are satisfied;
  • FIG. 5 is a flow chart illustrating a particular embodiment of a method of selectively performing a modification operation.
  • FIG. 6 is a flow chart illustrating a particular embodiment of a method of selectively discontinuing shaping data.
  • FIG. 1 depicts a system 100 that includes a data storage device 120 coupled to a host device 110.
  • the data storage device 120 is configured to determine whether shaped data satisfies a shaping adjustment criterion (shaping adjustment criteria).
  • the data storage device 120 includes a non-volatile memory (NVM) 140 and a controller 130 coupled to the NVM 140.
  • the NVM 140 may correspond to or include any type of nonvolatile memory, such as a flash memory (e.g., NAND flash memory).
  • the host device 110 may provide data 112 to the data storage device 120.
  • the data 112 may include multiple logical pages of data.
  • the controller 130 may be configured to receive the data 112 from the host device 110 and to send data and commands to the NVM 140.
  • the controller 130 includes a shaping unit 114.
  • the shaping unit 114 is configured to shape the data 112 to produce shaped data 116, which includes at least one logical page of data having an entropy lower (e.g., significantly lower) than one (where one is the binary entropy of data having 50% zeros and 50% ones).
  • each logical page of the logical pages 125, 127, and 129 of the shaped data 116 is shaped (e.g., has entropy lower or significantly lower than one). In other examples, less than all of (e.g.
  • shaped data may have a higher number of 1-s because in conventional NAND flash systems, T typically represents an erase state while '0' typically represents a programmed state.
  • Any shaping technique may be used to generate the shaped data 116 from the data 112.
  • the controller 130 may use a reversible process to shape the data 112 into the shaped data 116 by deciding whether to flip each particular bit of a data word based on a history of bit values of the data word that have been processed prior to processing the particular bit.
  • the NVM 140 may include a single level cell (SLC) portion 134 and a multi-level cell (MLC) portion 136.
  • the SLC portion 134 may act as a cache (e.g., a write cache) for blocks of the MLC portion 136.
  • the MLC portion 136 may include multiple word lines of storage elements, such as a word line of a multi-level cell (MLC) flash memory.
  • the word line may include a physical page 137 that includes flash MLC cells.
  • Logical pages of data may be copied from physical pages 138, 142, and 144 of the SLC portion 134 to a single physical page 137 of the MLC portion 136 by reading the data from the physical pages 138, 142, and 144 of the SLC portion 134 and writing the same data to the physical page 137 of the MLC portion 136 in an operation referred to as folding.
  • the folding operation may be performed using on-chip circuitry.
  • the logical pages 125, 127, and 129 may be cached into the physical pages 138, 142, and 144 of the SLC portion 134 and subsequently folded into the physical page 137 of the MLC portion 136 using circuitry on the NVM 140.
  • the MLC portion 136 may be configured to store more than three (e.g., 4) or less than three (e.g., 2) bits per cell.
  • the controller 130 may include a shaped data tester 122.
  • the NVM 140 may include on-chip circuitry, such as counter 153 or shaped data tester 123, that is configured to perform one or more shaped data testing operations as described below.
  • the shaped data tester 122 or 123 may be configured to determine a shaping level of the logical pages 125, 127, and 129 of the shaped data 116, and/or may be configured to determine whether a combination of the logical pages 125, 127, and 129 of the shaped data 116 satisfies one or more criteria of shaping adjustment criteria 124 based on a shaping level of the logical pages 125, 127, and 129 of the shaped data 116, as described below.
  • the shaped data tester 122 or 123 may be configured to measure a shaping level of the shaped data 116, such as by counting ' 1 ' values in the shaped data 116.
  • the shaped data tester 122 or 123 may be configured to determine an indication of an observed shaping level (p e ) for each of the logical pages 125, 127, and 129 of the shaped data.
  • the indication of the observed shaping level p e may represent a ratio of a count of 1 values of data as compared to total count of values of the data.
  • the shaped data tester 122 or 123 may determine an indication of an observed shaping level p e i for the logical page 125 corresponding to a ratio of the number of 1 -s in the data of the logical page 125 as compared to a total count of values (the number of 1 -s added to the number of 0-s) of the data of the logical page 125.
  • the shaped data tester 122 or 123 may determine an indication of an observed shaping level p e 2 for the logical page 127 corresponding to a ratio of the number of 1-s in the data of the logical page 127 as compared to a total count of values (the number of 1-s added to the number of 0-s) of the data of the logical page 127.
  • the shaped data tester 122 or 123 may determine an indication of an observed shaping level p e 3 for the logical page 129 corresponding to a ratio of the number of 1 -s in the data of the logical page 129 as compared to a total count of values (the number of 1-s added to the number of 0-s) of the data of the logical page 129.
  • the data storage device 120 may be configured to determine shaping levels of the logical pages 125, 127, and 129 of the shaped data 1 16 before transferring the shaped data 1 16 to the NVM 140.
  • the shaped data tester 122 may determine the shaping levels of the logical pages 125, 127, and 129 and the controller 130 may store the indications of the observed shaping levels p e i, p e 2, and p e 3 for the logical pages 125, 127, and 129 in a management table (e.g., a logical to physical mapping table) managed by the controller 130.
  • a management table e.g., a logical to physical mapping table
  • the data storage device 120 may be configured to determine the shaping levels of the shaped data 1 16 after storing the shaped data 116 in the NVM 140.
  • the data storage device 120 may be configured to store the shaped data 1 16 in the SLC portion 134 without modifying the shaped data 116 (e.g., without performing a modification operation on the shaped data 116).
  • the controller 130 e.g., to the shaped data tester 122).
  • the shaped data tester 122 on the controller 130 may subsequently determine shaping levels of the logical pages 125, 127, and 129 of the shaped data 1 16 as described above.
  • the counter 153 on the NVM 140 may be configured to determine shaping levels of the logical pages 125, 127, and 129 of the shaped data 116 by counting l 's as described above.
  • the data storage device 120 may configured to determine a shaping level of each of the logical pages 125, 127, and 129 of the shaped data 116 before transferring the shaped data 1 16 to the NVM 140, after transferring the shaped data 116 to the NVM 140, or both, and the shaping levels may be determined by the controller 130, by on- chip circuitry of the NVM 140, or both.
  • the shaped data tester 122 or 123 may be configured to use the determined shaping levels to determine a characteristic, property, or distribution pattern of the shaped data 116 (e.g., of a combination of the logical pages 125, 127, and 129 of the shaped data 1 16).
  • the shaped data tester 122 or 123 may be configured to use the determined shaping levels of the logical pages 127, 127, and 129 of the shaped data 1 16 to determine a distribution partem indicative of a probability of one or more cell states, as described in more detail below with reference to FIG. 3.
  • the shaped data tester 122 or 123 may be configured to determine whether the shaped data 1 16 (e.g., the combination of the logical pages 125, 127, and 129 to be folded into the physical page 137) satisfies one or more criteria associated with one or more modification operations (e.g., one or more criteria of the shaping adjustment criteria 124).
  • the shaped data tester 122 or 123 may be configured to determine whether the combination of the logical pages 125, 127, and 129 satisfies one or more criteria of the shaping adjustment criteria 124 by comparing the shaping adjustment criteria 124 to the determined shaping levels of the logical pages 125, 127, and 129 and/or to the determined characteristic, property, or distribution pattern.
  • the shaping adjustment criteria 124 may correspond to, include, or be based on (e.g., derived from) threshold voltage distribution patterns (including particular probabilities of one or more cell states of distribution patterns) resulting from combinations of logical pages of shaped data that are regarded as problematic (e.g., may induce unacceptable bit error rate (BER)).
  • threshold voltage distribution patterns including particular probabilities of one or more cell states of distribution patterns
  • BER bit error rate
  • the one or more modification operations may include an interchange operation, a scrambling operation, a page matching operation, an adaptive trim operation, a read verify operation, or an operation to adjust one or more system thresholds.
  • the modification operations are described in more detail with reference to FIG. 4. Based on whether the shaped data 1 16 is determined to satisfy one or more criteria of the shaping adjustment criteria 124, the shaped data 1 16 may be modified and subsequently folded into the physical page 137 or may be folded into the physical page 137 without performing a modification operation.
  • FIG. 2 illustrates a system 200 that includes a data storage device 220.
  • the data storage device 220 is configured to bypass a shaping unit (e.g., to discontinue shaping data) based on a health metric for at least a portion of a NVM 240 of the data storage device 220.
  • the data storage device 220 includes the NVM 240 and a controller 230 coupled to the NVM 240.
  • the NVM 240 may correspond to or include any type of non-volatile memory, such as a flash memory (e.g., NAND flash memory).
  • the controller 230 may be configured to receive data 212 (e.g., multiple logical pages of data) from host device 210 and to send data and commands to the NVM 240.
  • the controller 230 may include a comparator 214, a shaping unit 226, and a scrambler 224.
  • the controller 230 may be configured to determine a health metric 216 for each region of one or more regions of the NVM 240.
  • the shaping unit 1 14 may be configured to perform a shaping operation on data (e.g., the data 212) to generate shaped data, such as shaped data 228, to be stored at a portion of the NVM 240 (e.g., at a region of the one or more regions) until the controller 230 determines that the health metric 216 that corresponds to the portion of the NVM 240 satisfies (e.g., matches/equals or exceeds) a threshold.
  • the shaped data 228 may be any data that includes at least one logical page of data (e.g., at least one logical page of logical pages 225, 227, or 229) having entropy less than (e.g., significantly less than) 1.
  • the controller 230 may bypass the shaping unit 226 in response to the comparator 214 indicating that the health metric 216 satisfies the threshold. For example, the controller 230 may discontinue shaping of data to be stored at the portion of the NVM 240 while not discontinuing shaping data to be stored to one or more other portions of the NVM 240 that are healthier (e.g., associated with health metrics that do not satisfy the threshold).
  • the threshold may be selected to reduce reliability issues that may be associated with worn cells of the NVM 240. For example, storing shaped data (e.g., the shaped data 228) to the NVM 240 may result in a higher BER when the NVM 240 is worn than when the NVM 240 is fresh.
  • the BER induced by the storing the shaped data when the NVM 240 is fresh may correspond to a BER that the data storage device 220 can correct (e.g., using an ECC) or otherwise compensate for.
  • storing the shaped data 228 (and therefore performance of the shaping operation to shape the data) may not introduce reliability issues when the NVM 240 is fresh.
  • the higher BER caused by storing the shaped data 228 when the NVM 240 is worn may correspond to a BER that the data storage device 220 is unable to correct or otherwise compensate for.
  • storing the shaped data 228 (and therefore performance of the shaping operation) may introduce reliability issues when the NVM 240 is worn.
  • the threshold may be selected based on a point at which the health metric 216 is indicative of a transition from a wear level at which shaped data (e.g., the shaped data 228) will not result in more errors than the data storage device 220 can correct or otherwise compensate for to a wear level at which the shaped data will (or is sufficiently likely to) result in more errors than the data storage device 220 can correct or otherwise compensate for.
  • the health metric 216 may be a single metric that corresponds to the entire NVM 240.
  • the NVM 240 may include multiple regions and the controller 230 may maintain a health metric for each of the regions.
  • each region of the multiple regions of the NVM 240 may correspond to one or more planes of the NVM 240.
  • the NVM 240 may include multiple planes and a first region may correspond to a first plane and a second region may correspond to a second plane.
  • the multiple planes may include first, second, third, and fourth planes, and the first region may correspond to the first and second planes and the second region may correspond to the third and fourth planes.
  • each region of the multiple regions may correspond to an individual block (e.g., a flash erase block) of the NVM 240.
  • the first region may correspond to a first block ("1") and the second region may correspond to a second block ("2").
  • each region of the multiple regions of the NVM 240 may correspond to a group of blocks of the NVM 240.
  • the first region may correspond to a first group of blocks including the first block 1 and the second block 2
  • the second region may correspond to a second group of blocks including a third block ("3") and a fourth block ("4").
  • each region of the multiple regions may correspond to one or more dies of the NVM 240.
  • the NVM 240 may include multiple dies and the first region may correspond to a first die and the second region may correspond to a second die.
  • the multiple dies may include first, second, third, and fourth dies, and the first region may correspond to the first and second dies and the second region may correspond to the third and fourth dies.
  • the multiple dies may include first, second, third, and fourth dies, and the first region may correspond to the first and second dies and the second region may correspond to the third and fourth dies.
  • each region of the multiple regions of the NVM 240 may correspond to a group of word-lines of the NVM 240.
  • the first region may correspond to a first group of word-lines of the NVM 240
  • the second region may correspond to a second group of word-lines of the NVM 240.
  • the health metric 216 may be determined on a block by block basis, a block group by block group basis, a die by die basis, a plane by plane basis, a word-line group by word-line group basis, one or more other bases, or a combination thereof.
  • the health metric 216 may correspond to a number or count of program/erase (P/E) cycles 218 performed to a particular region of the NVM 240.
  • the count of P/E cycles 218 may be determined using a technique that may be performed in a wear leveling process.
  • the comparator 214 may include one or more counters. Each of the one or more counters may be configured to store a value corresponding to or indicative of a count a number of P/E cycles 218 performed to a corresponding region of the one or more regions of the NVM 240.
  • the one or more regions of the NVM 240 may include a first region and a second region, and the one or more counters may include a first counter and a second counter.
  • the first counter may be configured to track the count of P/E cycles 218 performed on the first region and the second counter may be configured to track a second count of P/E cycles performed on the second region.
  • the health metric 216 may correspond to an average BER 219.
  • the health metric 216 may correspond to the average BER 219 of data stored at a particular region of the one or more regions.
  • the comparator 214 may be configured to determine (e.g., may compute, calculate, or receive) the average BER 219 based on a single P/E cycle or over multiple P/E cycles.
  • the comparator 214 may determine the average BER 219 using any known technique.
  • the comparator 214 may include or be coupled to an ECC engine [not illustrated].
  • the ECC engine may be configured to receive shaped data read from the NVM 240, check the read shaped data for errors, and determine a number of errors in the read shaped data.
  • data 212/228 may be shaped data and may be read from a first region of the NVM 240 and provided to the ECC engine.
  • the ECC engine may check the data 212/228 to determine a number of errors in the data 212/228.
  • the ECC engine may identify errors in the data 212/228, provide information indicative of the identified errors to the comparator 214, and the comparator 214 may calculate or compute an average BER 219 for the first region (e.g., for the at least the portion of the NVM 240) based on the information indicative of the identified errors received from the ECC engine.
  • the health metric 216 may correspond to an average shaping level 221.
  • the average shaping level 221 for at least a portion of the NVM 240 (e.g., for a region of the one or more regions) may correspond to an average of measured shaping levels of stored data in the at least the portion at a particular time or to an average of measured shaping levels of data stored in the at least the portion during a particular period (during multiple P/E cycles performed to the region).
  • the average shaping level 221 of a first region of the one or more regions may correspond to an average of measured shaping levels of shaped data stored at the first region over the life of the NVM 240 (e.g., up to the point of latest measurement).
  • the comparator 214 may measure the shaping levels using any known technique.
  • the controller 230 may include a shaping level engine [not illustrated] to determine the shaping levels.
  • the NVM 240 may include a counter 258 to determine the shaping levels.
  • the shaping level engine on the controller 230 or the counter 258 may be configured to measure the shaping levels by counting T values.
  • the shaping level engine on the controller 230 or the counter 258 may determine an indication of an observed shaping level p e (as described above) for each of the one or more regions.
  • the shaped data 228 may correspond to shaped data stored in a first region of the one or more regions.
  • the shaping level engine on the controller 230 or the counter 258 may be configured to measure shaping levels for the first region by counting ' 1 ' values in the shaped data 228.
  • the shaping level engine on the controller 230 or the counter 258 may be configured to determine the indication of the observed shaping level p e for the first region by determining a ratio of the count of 1 values in the shaped data 228 as compared to a total count of values of the shaped data 228.
  • the indication of the observed shaping level p e may correspond to the average shaping level 221 for the data stored in the first region.
  • the indication of the observed shaping level p e may be determined at various times, and the average of the indication of the observed shaping level p e at the various times may correspond to the average shaping level 221 for the data stored in the first region, and thus the health metric 216 for the at least the portion of the NVM 240 (e.g., for the first region).
  • the controller 230 may be configured to determine the shaping levels of data without reading the data from the NVM 240.
  • the shaped data 228 may correspond to shaped data to be stored in the first region and the shaping unit 226 may provide the shaped data 228 to the shaping level engine on the controller 230.
  • the shaping level engine may subsequently determine a shaping level of the shaped data 228 as described above (e.g., by counting 1-s of the shaped data 228) and may store an indication of the observed shaping level (p e ) in a management table (e.g., a logical to physical mapping table) stored by the data storage device 220.
  • a management table e.g., a logical to physical mapping table
  • the comparator 214 may access the management table to determine an average shaping level for the at least the portion of the NVM 240 and/or may compare the average shaping level to the threshold.
  • the data storage device 220 may be configured to determine a shaping level of data before transferring the data to the NVM 240.
  • the data storage device 220 may be configured to determine shaping levels of data after storing the data in the NVM 240.
  • the shaped data 228 may be stored in the SLC portion 254.
  • the NVM 240 may be configured to fold the shaped data 228 into a first region of the MLC portion 256.
  • the data 212/228 may be read from a first region of the NVM 240 and transferred to the controller 230 (e.g., to the shaping level engine).
  • the shaping level engine may subsequently determine shaping levels (or an indication of the shaping levels p e ) of the shaped data 228 of the first region based on the data 212/228 read from the NVM as described above and may determine an average shaping level based on the determined shaping levels as described above .
  • the NVM 240 may include on-chip circuitry, such as the counter 258.
  • the data 212/228 may be read from the first region and provided to the counter 258.
  • the counter 258 may be configured to determine shaping levels of the data 212/228 of the first region as described above.
  • the NVM 240 may provide the shaping levels of the shaped data 228 stored in the first region as determined by the counter 258 (or an indication of the shaping level p e ) to the comparator 214, e.g., as health metric information 238, and the comparator 214 may determine the average shaping level of the at least the portion of the NVM 240 (e.g., of the first region) based on the health metric information 238.
  • the NVM 240 may include circuitry to determine average shaping levels based on the shaping levels determined using the counter 258.
  • the data storage device 220 may be configured to determine shaping levels of data after transferring the data to the NVM 240, and the shaping levels may be determined by the controller 230, by on-chip circuitry of the NVM 240, or both.
  • the threshold value may be selected based on a point at which the count of P/E cycles 218, the average BER 219, or the average shaping level 221, is indicative of a transition from a first wear level of the at least the portion of the NVM 240 to a second wear level of the at least the portion of the NVM 240.
  • the first wear level may correspond to a wear level that will not result in more errors than the data storage device 220 can correct or otherwise compensate for if a problematic combination of logical pages of shaped data is stored at the at least the portion of the NVM 240 and the second wear level may correspond to a wear level that is likely to result in more errors than the data storage device 220 can correct or otherwise compensate for if the problematic combination is stored at the at least the portion of the NVM 240.
  • the controller 230 may determine that the health metric 216 for at least a portion of the NVM 240 (e.g., for at least one region of the one or more regions) satisfies the threshold value when the comparator 214 determines that the number of P/E cycles 218 performed to the at least the portion (e.g., to at least one region of the one or more regions) satisfies the threshold value, that the average BER 219 of the at least the portion (e.g., for at least one region of the one or more regions) satisfies the threshold, that the average shaping level 221 of the at least the portion (e.g., for at least one region of the one or more regions) satisfies the threshold, or a combination thereof.
  • the controller 230 may discontinue shaping data to be stored at the at least the portion of the NVM 240.
  • the one or more regions of the NVM 240 may include a first region including a group of blocks including the first block 1 and the second block 2 and a second region including a group of blocks including the third block 3 and the fourth block 4.
  • the controller 230 may discontinue shaping data to be stored to the first region.
  • the controller 230 may not determine that the health metric 216 for the second region satisfies the threshold, and thus may continue shaping data to be stored to the second region while discontinuing shaping data to be stored to the first region. In some examples, the controller 230 may discontinue shaping data to be stored at the at least the portion of the NVM 240 for the remainder of the life of the NVM 240.
  • the controller 230 may issue a command or set one or more bits that will cause the controller 230 not to shape data to be stored to the at least the portion of the NVM 240 for the remainder of the life of the NVM 240.
  • the controller 230 may experience benefits of shaping data to be stored at the at least the portion of the NVM 240, such as increased endurance and reduced average BER, while the health metric 216 for the at least the portion of the NVM 240 indicates that the at least the portion is fresh enough to not result in more errors (in response to the problematic combination) than the data storage device 220 can correct or otherwise compensate for, and may curb reliability issues associated with shaping data to be stored at the at least the portion by
  • the data storage device 220 may be configured to perform a scrambling operation on data to be stored at the at least the portion of the NVM 240. In some examples, the data storage device 220 may be configured to scramble data before transferring the data to the NVM 240.
  • the comparator 214 may route the data 212 to the scrambler 224 on the controller 230.
  • the scrambler 224 may scramble the data 212 before storing the data 212 to the NVM 240.
  • the data storage device 220 may be configured to scramble data after transferring the data to the NVM 240.
  • the NVM 240 includes a scrambler 252
  • the controller 230 may route the data 212 to the NVM 240 without shaping or scrambling the data 212.
  • the data 212 may be stored in the SLC portion 254 of the NVM 240.
  • the data 212 may be read from the SLC portion 254 and provided to the scrambler 252, where the data 212 is scrambled into the scrambled data 232.
  • the scrambled data 232 may subsequently be stored in the MLC portion 256.
  • the NVM 240 may scramble the data 212 at the scrambler 252 prior to storing the data 212 at the SLC portion 254.
  • FIG. 3 illustrates three examples of distribution patterns 302, 304, and 306.
  • the distribution patterns 302, 304, and 306 may correspond to potentially problematic distribution patterns associated with a combination of logical pages of shaped data, such as the shaped data 116 of FIG.
  • Each of the distribution patterns 302, 304, and 306 of FIG. 3 illustrates a different non-uniform distribution of cell states ER, A, B, C, D, E, F, and G and a corresponding mapping of bits to cell states for a combination of logical pages of different shaped data.
  • An X-axis of the distribution patterns 302, 304, and 306 corresponds to cell threshold voltage, where a lowest threshold voltage corresponds to a left-most state (ER) and highest threshold voltage corresponds to a right-most state (G).
  • a Y-axis corresponds to a number (or probability) of cells having a particular threshold voltage.
  • An area of each lobe corresponds to a total number of cells programmed to the lobe's corresponding state.
  • the shaped data 116 of FIG. 1 or the shaped data 228 of FIG. 2 may correspond to first data and the first distribution pattern 302 of FIG. 3 may correspond to a threshold voltage distribution pattern describing a combination of logical pages of the first data.
  • the first distribution pattern 302 may correspond to shaped data that has a lower logical page having a shaping level that corresponds to 90% ones (10% zeros), a middle logical page having a shaping level that corresponds to 50% ones (50% zeros), and an upper logical page having a shaping level that corresponds to 90% ones (10% zeros).
  • a probability of the ER state may correspond to 40.5% (e.g.,
  • a probability of the G state may correspond to 40.5%.
  • a large number of cells at the highest voltage state increases a likelihood of bit errors due to cell-to-cell interference and mechanisms such as program disturb, which tends to shift cells in the ER state to higher threshold voltages.
  • cells in the ER lobe that have shifted across the ER-A state boundary are incorrectly read as being in the "A" state, thereby introducing bit errors to the stored data.
  • the example shaping levels of 50%, 90%, and 90% may correspond to a probability value of the ER state corresponding to 40.5% and a probability value of the G state corresponding to 40.5%.
  • a probability of the ER and G states corresponding to 40% or greater may correspond to shaping levels that are considered to cause program disturb.
  • lower, middle, and upper logical pages having shaping levels of 90%, 50%, and 90%, respectively may be considered to cause problematic program disturb.
  • the shaped data 116 of FIG. 1 or the shaped data 228 of FIG. 2 may correspond to second data and the second distribution pattern 304 of FIG. 3 may correspond to a threshold voltage distribution partem describing a combination of logical pages of the second data.
  • the second distribution pattern 304 may correspond to shaped data that has a lower logical page having a shaping level that corresponds to 50% ones (50% zeros), a middle logical page having a shaping level that corresponds to 90% ones (10% zeros), and an upper logical page having a shaping level that corresponds to 90% ones (10% zeros).
  • a large number of cells at neighboring cell states may increase a likelihood of bit errors due to cell-to-cell interference or other mechanisms.
  • the example shaping levels of 50%, 90%, and 90% may correspond to a probability value of the ER state corresponding to 40.5% and a probability value of the A state corresponding to 40.5%.
  • a probability of the neighboring pairs corresponding to 40% or greater may correspond to shaping levels that are considered to cause problematic overlap of the states.
  • lower, middle, and upper logical pages having shaping levels of 50%, 90%, and 90%, respectively may be considered to cause problematic overlap of the cell states.
  • the shaped data 116 of FIG. 1 or the shaped data 228 of FIG. 2 may correspond to third data and the third distribution pattern 306 of FIG. 3 may correspond to a threshold voltage distribution pattern describing a combination of logical pages of the third data.
  • the third distribution pattern 306 may correspond to shaped data that has a lower logical page having a shaping level that corresponds to 60% ones (40% zeros), a middle logical page having a shaping level that corresponds to 55% ones (45% zeros), and an upper logical page having a shaping level that corresponds to 90% ones (10% zeros).
  • the third distribution pattern 306 may represent a combination of relatively large ER, A, and G populations, and the program disturb and neighboring pair (e.g., adjacent-state) error mechanisms of the first and second distribution patterns 302 and 304 may cause the third distribution partem 306 to be potentially problematic.
  • the example shaping levels of 60%, 55%, and 90% may correspond to a probability value of the ER state that corresponds to 29.7% (e.g., 0.6x0.55 0.90), a probability value of the A state that corresponds to 19.8% (e.g., 0.4x0.55 x0.90), and a probability of the G state that corresponds to 24.3% (e.g., 0.60x0.45 x0.90).
  • a probability of the ER state greater than or equal to 28%, a probability of the A state greater than or equal to 19%, and a probability of the G state greater than or equal to 24% may be associated with a potentially problematic BER, such as may be empirically determined.
  • lower, middle, and upper logical pages having shaping levels of 60%, 55%, and 90%, respectively may be considered a problematic combination of logical pages of shaped data for folding into a MLC page.
  • FIG. 3 illustrates threshold voltage distribution patterns for an MLC having 3- bits per cell (e.g., eight cell states), memory having a different number of bits per cell may be used.
  • the MLC may use two bits per cell or more than three bits per cell (e.g., four bits per cell).
  • FIG. 3 illustrates threshold voltage distribution patterns for an MLC having 3- bits per cell (e.g., eight cell states)
  • memory having a different number of bits per cell may be used.
  • the MLC may use two bits per cell or more than three bits per cell (e.g.
  • the data storage device may include a controller and an NVM.
  • the data storage device may correspond to the system 100 of FIG. 1 including the controller 130 and the NVM 140.
  • the components 400 of FIG. 4 include a shaped data tester 422, one or more shaping adjustment criteria 424, and a modification engine 428.
  • the shaping adjustment criteria 424 may correspond to the shaping adjustment criteria 124 of FIG. 1.
  • One or more of the components 400 of FIG. 4 may be implemented using circuitry or sub-components on a controller of the data storage device, on a NVM of the data storage device, or both.
  • the shaped data tester 422, the modification engine 428, and/or the shaping adjustment criteria 424 may be implemented using circuitry of, or may be stored by, the controller 130 of FIG. 1.
  • the shaped data tester 422 of FIG. 4 may correspond to the shaped data tester 122 of FIG. 1.
  • the shaped data tester 422 of FIG. 4, the modification engine 428, and/or the shaping adjustment criteria 424 may be implemented using circuitry of, or may be stored by, the NVM 140 of FIG. 1.
  • the shaped data tester 422 may correspond to or include the counter 153 of FIG. 1 and/or the shaped data tester 123.
  • the modification engine 428 of FIG. 4 may include an on-chip scrambler on the NVM to perform scrambling.
  • scrambler 407 may correspond to the scrambler 151 of FIG. 1.
  • the shaped data tester 422 of FIG. 4 may be configured to process shaped data (e.g., shaped data 412) to be folded into a physical page (e.g., the physical page 137 of FIG. 1) of an MLC of the NVM to determine shaping levels 461 of FIG. 4 of logical pages 462, 464, and 466 of the shaped data 412.
  • the shaped data tester 422 may process the shaped data 412 to determine a shaping level 472 of a lower logical page 462, a shaping level 474 of a middle logical page 464, and a shaping level 476 of an upper logical page 466.
  • the shaped data (e.g., the shaped data 412) may correspond to data that includes at least one logical page of data having entropy less than (e.g., significantly less than) 1 as described above with reference to the shaped data 116 of FIG. 1.
  • the shaping levels 461 of FIG. 4 of the logical pages 462, 464, and 466 of the shaped data 412 may correspond to the shaping levels described above with reference to the first distribution pattem 302 of FIG. 3, the shaping levels described above with reference to the second distribution pattem 304, the shaping levels described above with reference to the third distribution pattem 306, or other shaping levels.
  • the shaped data tester 422 of FIG. 4 may determine the shaping levels 461 prior to providing the shaped data 412 to the NVM. For example, as described above with reference to FIG. 1, the shaped data tester 422 of FIG. 4 may determine the shaping levels 461 of the shaped data 412 before providing the shaped data 412 to the NVM 140 of FIG. 1, and the shaped data tester 422 of FIG. 4 may store the shaping levels 461 in management tables on the controller 130 of FIG. 1. Alternatively or additionally, the shaped data tester 422 of FIG. 4 may determine the shaping levels 461 of the shaped data 412 after providing the shaped data 412 to the NVM 140 of FIG. 1.
  • the SLC pages may be provided to the shaped data tester 422 of FIG. 4 (e.g., on the NVM or transferred to the controller), which may determine a shaping level of the pages.
  • the shaped data tester 422 may process the shaped data 412 having the shaping levels 461 to determine one or more properties, characteristics, or distribution pattems 463 of a combination of the logical pages 462, 464, and 466 of the shaped data 412.
  • the distribution patterns may correspond to threshold voltage distribution patterns and the properties or characteristics may correspond to a probability of one or more cell states associated with the logical pages of the shaped data 412.
  • the shaped data tester 422 may process the lower logical page 462, the middle logical page 464, and the upper logical page 466 using the shaping levels 461 of the shaped data 412 to determine a threshold voltage distribution pattern of the shaped data 412 and/or a characteristic or property corresponding to a probability for one or more cell states (e.g., ER, A, B, C, D, E, F, and G as illustrated in FIG. 3 associated with the shaped data 412 of FIG. 4).
  • cell states e.g., ER, A, B, C, D, E, F, and G as illustrated in FIG. 3 associated with the shaped data 412 of FIG. 4).
  • the shaped data 412 may correspond to the first data described above with reference to the first distribution pattem 302 of FIG. 3 and the shaping levels 461 of FIG. 4 may correspond to the first shaping levels described above with reference to the first distribution pattem 302 of FIG. 3.
  • the shaped data tester 422 of FIG. 4 may process the first data using the first shaping levels to determine the distribution pattern 302 of FIG. 3.
  • the characteristic, property, or distribution pattern 463 of FIG. 4 of the shaped data 412 may correspond to the distribution pattem 302 of FIG. 3. Additionally or alternatively, the characteristic, property, or distribution pattern 463 of FIG.
  • a probability of the ER state corresponding to 40.5% or greater and a probability of the G state corresponding to 40.5% or greater may correspond to shaping levels that are considered to stress the ER state and cause a high BER.
  • the shaped data 412 may correspond to the second data described above with reference to the second distribution pattern 304 of FIG. 3 and the shaping levels 461 of FIG. 4 may correspond to the second shaping levels described above with reference to the second distribution pattem 304 of FIG. 3.
  • the shaped data tester 422 of FIG. 4 may process the second data using the second shaping levels to determine the second distribution pattern 304 of FIG. 3.
  • the characteristic, property, or distribution pattern of the shaped data 412 of FIG. 4 may correspond to the second distribution partem 304 of FIG. 3. Additionally or alternatively, the characteristic, property, or distribution pattern of the shaped data 412 of FIG.
  • a probability of the ER state that corresponds to 40.5% may correspond to shaping levels that are considered to cause problematic overlap of the states.
  • the shaped data 412 may correspond to the third data described above with reference to the third distribution pattern 306 of FIG. 3 and the shaping levels 461 of FIG. 4 may correspond to the third shaping levels described above with reference to the third distribution partem 306 of FIG. 3.
  • the shaped data tester 422 of FIG. 4 may process the third data using the third shaping levels to determine the third distribution pattern 306 of FIG. 3.
  • the characteristic, property, or distribution pattern of the shaped data 412 of FIG. 4 may correspond to the second distribution partem 306 of FIG. 3. Additionally or alternatively, the characteristic, property, or distribution pattern of the shaped data 412 of FIG.
  • ER 4 may correspond to a probability value of the ER state that corresponds to 29.7% (e.g., 0.6x0.55 x0.90), a probability value of the A state that corresponds to 19.8% (e.g., 0.4x0.55 x0.90), and a probability of the G state that corresponds to 24.3% (e.g., 0.60x0.45 x0.90).
  • the shaped data tester 422 may determine a characteristic, property, or distribution partem 463 associated with the shaped data 412 using the shaping levels of the shaped data 412. Other characteristics or properties or cell states, or other number of cell states, may be determined by the shaped data tester 422 using the shaping levels of the logical pages of the shaped data 412.
  • the shaped data tester 422 may compare the shaping levels 461 of the shaped data 412 and/or the characteristic, property, or distribution pattern 463 associated with the shaped data 412 to one or more of the shaping adjustment criteria 424.
  • the shaping adjustment criteria 424 associated with the modification operations 423 may correspond to, include, or be based on (e.g., derived from) threshold voltage distribution patterns (including particular probabilities of one or more cell states of distribution patterns) that are problematic (e.g., may induce unacceptable bit error rate (BER)).
  • the shaping adjustment criteria 424 may correspond to shaping levels of logical pages.
  • the shaping adjustment criteria 424 may include one or more sets of shaping level values indicative of potentially problematic combinations of logical pages.
  • the shaping adjustment criteria 424 may correspond to (or may include some criteria that correspond to) distribution patterns indicative of potentially problematic combinations of logical pages.
  • the distribution patterns may include particular probabilities for one or more cell states that are indicative of problematic combinations.
  • the shaping adjustment criteria 424 may correspond to particular probability values for one or more cell states.
  • the potentially problematic combinations of logical pages may include combinations that correspond to (e.g., would result in) threshold voltage distribution patterns having levels of a ER state and/or a G state associated with inducing program disturb.
  • a shaping adjustment criteria 425 may correspond to a set of shaping levels (e.g., of logical pages to be folded into a physical page) that, in combination, correspond to (e.g., would result in) a threshold voltage distribution pattern having particular probability levels of an ER state and a G state.
  • heuristic evaluation of a particular NVM e.g., the NVM 140 of FIG.
  • the shaping adjustment criteria 425 of FIG. 4 may thus be selected to correspond to a set of shaping levels of logical pages that would result in a threshold voltage distribution partem having a probability value of the Erase state and the G state each being greater than or equal to 40%.
  • the potentially problematic combinations may include
  • a shaping adjustment criteria 455 may correspond to a set of shaping levels (e.g., of logical pages to be folded into a physical page) that, in combination, correspond to (e.g., would result in) a threshold voltage distribution pattern having particular probability levels of an ER state and an A state. For example, heuristic evaluation of a particular NVM (e.g., the NVM 140 of FIG.
  • the shaping adjustment criteria 455 of Fig. 4 may thus be selected to correspond to one or more shaping levels that would result in a threshold voltage distribution pattern having a probability of the ER state and the A state each being greater than or equal to 40%.
  • the potentially problematic combinations may include
  • heuristic evaluation of a particular NVM may indicate that a combination of logical pages that correspond to a threshold voltage distribution pattern having a probability of the ER state greater than or equal to 28%, a probability of the A state greater than or equal to 19%, and a probability of the G state greater than or equal to 24% is associated with a probability of a high number of bit errors.
  • shaping adjustment criteria 424 may include one or more shaping adjustment criteria that are indicative of other causes or markers of bit errors.
  • one or more shaping adjustment criteria of the shaping adjustment criteria 424 may be defined without using probabilities of one or more of the ER state, the A state, or the G state, or may be defined using probabilities of one or more other cell states additional to the ER state, the A state, or the G state.
  • the cell states of the shaping adjustment criteria 424 are described with reference to particular shaping level combination probabilities, one or more different probability values may be used and the exemplary probabilities described herein for illustration purposes should not be considered as being restrictive.
  • the shaped data tester 422 may determine whether the combination of the logical pages 462, 464, and 466 satisfies the shaping adjustment criteria 424 before transferring the shaped data 412 to the NVM.
  • the controller e.g., the controller 130 of FIG. 1
  • the controller may determine (before transferring the shaped data 412 of FIG. 4 to the NVM) that the shaped data 412 is to be folded into a single physical page of the MLC portion of the NVM.
  • a shaping unit on the controller e.g., the shaping unit 114 of FIG. 1 may provide the shaped data to the shaped data tester 422 of FIG. 4 prior to transferring the shaped data 412 to the NVM, and the shaped data tester 422 may determine shaping levels as described above.
  • the shaped data tester 422 may then determine whether the shaped data 412 satisfies the shaping adjustment criteria 424 as described above. Thus, the shaped data tester 422 may determine whether the combination of the logical pages 462, 464, and 466 satisfies the shaping adjustment criteria 424 before transferring the shaped data 412 to the NVM.
  • the shaped data tester 422 may determine whether the combination of the logical pages 462, 464 and 466 satisfies the shaping adjustment criteria 424 after transferring the shaped data 412 to the NVM using stored shaping levels. For example, the shaped data tester 422 may determine shaping levels of the shaped data 412 and store the shaping levels in a management table before transferring the shaped data 412 to the NVM as described above. After storing the logical pages 462, 464, and 466 in the SLC portion of the NVM, the NVM may inform the controller that the logical pages 462, 464, and 466 of the shaped data 412 are set or scheduled to be folded into a physical page of the MLC portion.
  • the shaped data tester 422 may access the shaping levels 461 of the logical pages 462, 464, and 466 stored in the management tables and may determine whether the combination of the logical pages 462, 464, and 466 satisfies the shaping adjustment criteria 424 based on the shaping level information in the management tables.
  • the shaped data tester 422 may determine whether the combination of the logical pages 462, 464, and 466 satisfies the shaping adjustment criteria 424 after transferring the shaped data 412 to the NVM without using stored shaping levels.
  • the NVM may inform the controller that the logical pages 462, 464, and 466 of the shaped data 412 are set or scheduled to be folded into a physical page of the MLC portion.
  • the logical pages 462, 464, and 466 may be provided to the shaped data tester 422.
  • the shaped data tester 422 may determine the shaping levels 461 as described above and may determine whether the shaped data 412 satisfies the shaping adjustment criteria without storing the shaping levels in memory of the controller 130 of FIG. 1.
  • the modification engine 428 of FIG. 4 may be configured to modify the shaped data 412 (or otherwise perform a modification operation such as adjusting a system threshold) prior to folding the data into a cell of an MLC portion of a NVM, such as the MLC portion 136 of the NVM 140 of FIG. 1 , based on the shaped data tester 422 of FIG. 4 determining that the shaped data 412 satisfies at least one of the shaping adjustment criteria 424.
  • the modification engine 428 may be configured to perform an interchange operation 403, a page matching operation 413, an adaptive trim operation 414, a logical NOT operation 418, a scrambling operation 405, a write verify trigger operation 432, or an operation that adjusts one or more system thresholds (an adjust system threshold operation 416).
  • the modification engine 428 may be configured with the capability to perform one of the modification operations 423 or more than one of the modification operations 423.
  • each of the multiple modification operations may correspond to distinctive shaping adjustment criteria, and the multiple modification operations may be selectively performed based on the particular shaping adjustment criteria satisfied by the shaped data 412.
  • the modification engine 428 may perform the interchange operation 403 in response to determining that the shaped data satisfies the shaping adjustment criteria 425 and may alternatively perform the logical NOT operation 418 in response to determining that the shaped data satisfies the shaping adjustment criteria 455.
  • the interchange operation 403 may include interchanging one or more logical pages of the shaped data 412 prior to storing the shaped data to a physical page of a multi-level cell portion of the non-volatile memory (e.g., to the physical page 137 of the MLC portion 136 of the NVM 140 of FIG. 1).
  • the interchange operation 403 of FIG. 4 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies at least one of the shaping adjustment criteria 424 that corresponds to an unacceptably high probability of program disturb.
  • the interchange operation 403 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies the shaping adjustment criteria 425.
  • the lower logical page 462, the middle logical page 464, and the upper logical page 466 may be set or scheduled to be folded into a physical page of an MLC portion of the NVM.
  • the logical pages 462, 464, and 466 may be provided to the modification engine 428, which may cause one or more of the logical pages 462, 464, and 466 to be interchanged.
  • the modification engine 428 may use a lookup table (LUT) or other stored data structure to select the interchange operation 403 based on which particular shaping adjustment criteria 424 is determined to be satisfied. For example, if the shaping adjustment criteria 425 is satisfied, the modification engine 428 may access the LUT and locate an entry corresponding to the shaping adjustment criteria 425 that indicates an interchange of the upper logical page 466 with the middle logical page 464. Alternatively, the modification engine 428 may be configured to analyze multiple interchange configurations, combinations, or permutations to determine an interchange combination.
  • LUT lookup table
  • the modification engine 428 may be configured to analyze multiple interchange configurations, combinations, or permutations to determine an interchange combination.
  • the modification engine 428 may analyze a first interchange combination in which the upper logical page 466 is interchanged with the middle logical page 464, resulting in a probability of 4.5% (e.g., 0.9x0.1 x0.5) for the G state.
  • the modification engine 428 may determine to use the first interchange combination because the combination does not satisfy the shaping adjustment criteria 425 (or any of the shaping adjustment criteria 424).
  • the modification engine 428 may determine to use the first interchange combination because the G state of the first interchanged combination is not greater than or equal to 40%.
  • the modification engine 428 may be configured to determine an interchange combination based on whether the lower logical page 462 has the highest shaping level of the logical pages 462, 464, and 466 of the shaped data 412. For example, when lower logical page 462 does not have the highest shaping level of the logical pages 462, 464, and 466 of the shaped data 412, the modification engine 428 may be configured to determine an interchange combination that interchanges the lower logical page 462 with the logical page of the logical pages 464 and 466 having the highest shaping level. To illustrate, the middle logical page 462 may have the highest shaping level of the logical pages 462, 464, and 466.
  • the modification engine 428 may determine an interchange configuration (e.g., a second interchange configuration) in which the middle logical page 464 is interchanged with the lower logical page 462. Subsequent to determining the interchange combination, the modification engine 428 may determine to proceed using the interchanged combination. For example, the modification engine 428 may provide the shaped pages (e.g., unmodified shaped pages) to the NVM along with an instruction that, when executed by the NVM, causes the NVM to fold the shaped pages into a physical page of the MLC portion based on the interchanged configuration.
  • an interchange configuration e.g., a second interchange configuration
  • the modification engine 428 may determine to proceed using the interchanged combination. For example, the modification engine 428 may provide the shaped pages (e.g., unmodified shaped pages) to the NVM along with an instruction that, when executed by the NVM, causes the NVM to fold the shaped pages into a physical page of the MLC portion based on the interchanged configuration.
  • the modification engine 428 may perform the interchange operation and may provide the interchanged combination of pages to the NVM, which may fold the interchanged combination of the pages into a physical page of the MLC portion.
  • the lower logical page 462, the middle logical page 464, and the upper logical page 466 of the shaped data 412 may be folded into a physical page of the MLC portion according to the interchanged configuration.
  • the reordering or interchange configuration may be recorded by the data storage device 120 of FIG. 1.
  • the data storage device 120 may maintain a record of the reordering in a management table [not illustrated].
  • the page matching operation 413 of FIG. 4 may include identifying a page of the shaped data 412 as being a problematic page in the context of the combination of the logical pages 462, 464, and 466 of the shaped data 412 and determining a suitable replacement logical page for the problematic page that in combination with the remaining pages of the shaped data 412 results in an acceptable combination.
  • the page matching operation 413 may be performed when the combination of the logical pages of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 associated with the page matching operation 413.
  • the page matching operation 413 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more shaping adjustment criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of problematic overlap of neighboring states.
  • the page matching operation 413 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies the shaping adjustment criteria 455.
  • the lower page 462, the middle page 464, and the upper page 466 may be set or scheduled to be folded into a physical page of an MLC portion of the NVM (e.g., the physical page 137 of the MLC portion 136 of the NVM 140 of FIG.
  • the shaped data tester 422 of FIG. 4 may determine that the combination of the lower, middle, and upper pages 462, 464, and 466 results in a probability of 40.5% for the ER state and a probability of 40.5% for the A state as described above with reference to the second distribution pattern 304 of FIG. 3.
  • the shaped data tester 422 of FIG. 4 may determine that the combination of the lower logical page 462, the middle logical page 464, and the upper logical page 466 satisfies the shaping adjustment criteria 455 because the determined probability of 40.5% for the ER state is greater than 40% and the determined probability of 40.5% for the A state is greater than 40%.
  • the logical pages 462, 464, and 466 may be provided to the modification engine 428, which may determine which logical page of the logical pages 462, 464, and 466 will be replaced (e.g., a "problematic page") and search for a logical page (e.g., a "replacement page") to replace the problematic page.
  • the modification engine 428 may identify the middle logical page 464 as the problematic pattern and search one or more logical pages of one or more potential replacement logical pages 482, 484, and 486 (e.g., logical pages scheduled for storage into the MLC) to identify a suitable replacement page.
  • the potential replacement logical page 482 may have a shaping level of 89%
  • the potential replacement logical page 484 may have a shaping level of 95%
  • the potential replacement logical page 486 may have a shaping level of 55%.
  • the modification engine 428 may evaluate the suitability of using the potential replacement logical page 482 as the replacement page.
  • the modification engine 428 may determine that using the potential replacement logical page 482 as a replacement for the middle logical page 464 results in combination (e.g., lower logical page 462, the potential replacement logical page 482 as a middle logical page, and upper logical page 466) that includes a probability of 40.05% for the ER state and a probability of 40.05% for the A state.
  • the modification engine 428 may determine not to use the potential replacement logical page 482 as the replacement page because the combination results in probabilities of the ER state and the A state that satisfy the shaping adjustment criteria 455 (e.g., the probabilities of the ER and A states exceed 40%).
  • the modification engine 428 may evaluate the suitability of using the potential replacement logical page 484 as the replacement page.
  • the modification engine 428 may determine that using the logical page 484 results in a combination of logical pages (e.g., lower logical page 462, the potential replacement logical page 484 as a middle logical page, and upper logical page 466) having a probability of 42.75% for the ER state and a probability of 42.75% for the A state.
  • the modification engine 428 may determine not to use the potential replacement logical page 484 as the replacement page because the combination results in probabilities of the ER state and the A state that satisfy the shaping adjustment criteria 455 (e.g., the probabilities of the ER and A states exceed 40%).
  • the modification engine 428 may evaluate the suitability of using the logical page 386 as the replacement page.
  • the modification engine 428 may determine that using the potential replacement logical page 486 results in a probability of 24.75% for the ER state and a probability of 24.75% for the A state.
  • the modification engine 428 may determine to use the potential replacement logical page 486 as the replacement page because the combination results in probabilities of the ER state and the A state that do not satisfy the shaping adjustment criteria 455 (e.g., the probabilities of the ER and A states do not exceed 40%).
  • the modification engine 428 may determine to proceed using the lower logical page 462, the potential replacement logical page 486 as a middle logical page, and the upper logical page 466. For example, the modification engine 428 may provide the logical pages 462, 486, and 466 to the NVM along with an instruction that, when executed by the NVM, causes the NVM to fold the logical pages 462, 486, and 466 into a physical page of the MLC portion. The modification engine 428 may add the middle logical page 464 to the potential replacement pages 473.
  • the adaptive trim operation 414 may include determining one or more trim parameters to modify, determining an amount to modify the determined trim parameter, and modifying the determined trim parameter the determined amount.
  • the trim parameters may include write line/bit line voltages, program verify voltage levels, read reference values, or any other trim parameter. With reference to FIG. 3, the program verify voltage levels may correspond to the leftmost edge of the cell states A, B, C, D, E, F, and G or a voltage between the leftmost edge and a center of each state.
  • the adaptive trim operation 414 of FIG. 4 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 associated with the adaptive trim operation 414.
  • the adaptive trim operation 414 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of overlap of neighboring states (e.g., the shaping adjustment criteria 455) and/or in response to one or more of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of program disturb (e.g., the shaping adjustment criteria 425).
  • the adaptive trim operation 414 may be performed when the combination of the logical pages of the shaped data 412 satisfies the shaping adjustment criteria 485.
  • the lower page 462, the middle page 464, and the upper page 466 may be set or scheduled to be folded into a physical page of an MLC portion of the NVM (e.g., into the physical page 137 of the MLC portion 136 of the NVM 140 of FIG. 1), and the shaped data tester 422 of FIG.
  • the shaped data tester 422 of FIG. 4 may determine that the combination of the lower, middle, and upper pages 462, 464, and 466 results in a probability of 29.7% for the ER state, a probability of 19.8% for the A state, and a probability of 24.3% for the G state as described above with reference to the third distribution pattern 306 of FIG. 3.
  • the 4 may determine that the combination of the lower logical page 462, the middle logical page 464, and the upper logical page 466 satisfies the shaping adjustment criteria 485 because the determined probability of 29.7% for the ER state is greater than 28% as defined by the shaping adjustment criteria 485, the determined probability 19.8% for the A state is greater than 19% as defined by the shaping adjustment criteria 485, and the determined probability of 24.3% for the G state is greater than 24% as defined by the shaping adjustment criteria 485.
  • the logical pages 462, 464, and 466 may be provided to the modification engine 428, which may determine which trim parameter to modify (e.g., selected trim parameters). For example, the modification engine 428 may determine to modify a program verify voltage level of the A state, the B state, and the G state. The modification engine 428 may determine modified values for the selected trim parameters.
  • trim parameter to modify e.g., selected trim parameters.
  • the modification engine 428 may determine to modify a program verify voltage level of the A state, the B state, and the G state.
  • the modification engine 428 may determine modified values for the selected trim parameters.
  • the modification engine 428 may determine to increase a program verify voltage of the A state to a first particular value to increase a separation between the ER an A states, to increase a program verify voltage of the B state to a second particular value to increase separation between the A and B states, and to decrease a program verify voltage of the G state to a third particular value to reduce a programming voltage of cells in the G state.
  • the adaptive trim operation 414 may increase a number of program pulses to more tightly cluster cells into a center of a cell state, or may include one or more other adjustments to reduce errors associated with the shaping adjustment criteria 424.
  • the modification engine 428 may store the determined trim parameter values in a controller of a data storage device or the NVM.
  • the data storage device e.g., the data storage device 120 of FIG. 1
  • the data storage device 120 of FIG. 1 may apply the determined trim parameters when interacting with cells of the NVM in which the shaped data 412 of FIG. 4 is folded.
  • the logical NOT operation 418 may include identifying one or more of the logical pages 462, 464, and 466 of the shaped data 412 on which to perform a logical NOT operation and performing the logical NOT operation on bit values (e.g., the bit values 1 18 of FIG. 1) of one or more of the logical pages 462, 464, and 466 of the shaped data 412 prior to storing the shaped data 412 to a physical page of an MLC portion of an NVM (e.g., the physical page 137 of the MLC portion 136 of the NVM 140 of FIG. 1).
  • the logical NOT operation 418 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 associated with the logical NOT operation 418.
  • the logical NOT operation 418 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more shaping adjustment criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of program disturb or when the combination satisfies one or more shaping adjustment criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of problematic overlap of neighboring states.
  • the logical NOT operation 418 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies the shaping adjustment criteria 455, the shaping adjustment criteria 425, or the shaping adjustment criteria 485, as described above.
  • the shaped data 412 may be provided to the modification engine 428.
  • the modification engine 428 may determine to which logical page of the shaped data 412 to perform the logical NOT operation 418. Performing the logical NOT operation 418 may transform the logical page on which the logical NOT operation is performed into a "transformed page", and a set of logical pages including the transformed logical page may be a "modified set" of the shaped data 412.
  • the logical NOT operation 418 may be performed on the middle logical page 464 based on a shaping level of the lower logical page 462 satisfying a first threshold.
  • the modification engine 428 may determine to perform the logical NOT operation 418 on the middle logical page 464 when a shaping level of the lower logical page 462 is about 50% (or less).
  • the modification engine 428 may generate a transformed middle logical page by performing a bit-wise logical NOT on data of the middle logical page 464.
  • the modified set of the shaped data 412 may correspond to the lower logical page 462, the transformed middle logical page, and the upper logical page 466 (e.g., a "first modified set").
  • the logical NOT operation 418 may be performed on the upper logical page 466 when a shaping level of the lower logical page 462 satisfies a second threshold and a shaping level of the middle logical page 464 satisfies a third threshold, where the third threshold is less than the second threshold.
  • the modification engine 428 may determine to perform the logical NOT operation 418 on the upper logical page 466 when a shaping level of the lower logical page 462 is greater than or equal to about 90% and a shaping level of the middle logical page 464 is less than or equal to about 50%.
  • the modification engine 428 may generate a transformed upper logical page by performing a logical NOT on data of the upper logical page 466.
  • the modified set of the shaped data 412 may correspond to the lower logical page 462, the middle logical page 464, and the transformed upper logical page (e.g., a "second modified set").
  • the scrambling operation 405 may include scrambling one or more logical pages of the shaped data 412 using a scrambler 407.
  • the scrambler 407 may correspond to a linear feedback shift register (LFSR) configured to generate a pseudo-random sequence of bit values that are XOR'ed with the input data to generate scrambled data.
  • LFSR linear feedback shift register
  • the scrambling operation 405 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that are associated with the scrambling operation 405.
  • the scrambling operation 405 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of program disturb or when the combination satisfies one or more criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of problematic overlap of neighboring states.
  • the scrambling operation 405 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies the shaping adjustment criteria 425, the shaping adjustment criteria 455, or the shaping adjustment criteria 485, as described above.
  • the shaped data 412 may be scrambled.
  • the shaped data tester 422 may determine the shaping levels without reading the shaped data 412 from an NVM (e.g., the NVM 140 of FIG. 1) as described above with reference to FIG. 1 (e.g., the shaped data tester 422 of FIG. 4 stores the shaping levels in a management table).
  • a controller e.g., the controller 130 of FIG. 1 may, in response to determining that the combination satisfies one or more criteria of the shaping adjustment criteria 424 of FIG.
  • the modification engine 128 of FIG. 1 may include a scrambler and the NVM may read the shaped data 412 of FIG. 4 from an SLC portion (e.g., the SLC portion 134 of FIG. 1) of the NVM and transfer the shaped data 412 of FIG. 4 to the scrambler of the modification engine.
  • the scrambler of the modification engine may scramble the shaped data 412 and provide the scrambled data to the NVM to be stored in a physical page (e.g., the physical page 137 of FIG.
  • the controller may determine before transferring the shaped data 412 of FIG. 4 to the NVM that the shaped data 412 is to be folded into the physical page of the MLC portion of the NVM prior to the shaped data 412 being transferred to the NVM.
  • the modification engine 428 may scramble the shaped data 412 prior to transferring the shaped data to the NVM.
  • the shaped data tester 422 may determine the shaping levels of the shaped data 412 after transferring the shaped data 412 to the NVM (e.g., by using the shaped data 412 read from the NVM) as described above with reference to FIG. 1.
  • the scrambler of the modification engine 428 or a scrambler (e.g., the scrambler 151 of FIG. 1) of the NVM may scramble the shaped data 412 of FIG. 4 and provide the scrambled data to the NVM to be stored in the physical page of the MLC portion.
  • the write verify trigger operation 432 may include causing, triggering, instructing, inducing, or taking action toward performance of at least a portion of a write verify operation on one or more of the logical pages 462, 464, and 466 of the shaped data 412.
  • the write verify trigger operation 432 may be performed when the combination of the logical pages of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that are associated with the write verify operation 432.
  • the write verify trigger operation 432 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of program disturb or when the combination satisfies one or more criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of problematic overlap of neighboring states.
  • the write verify trigger operation 432 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies the shaping adjustment criteria 425, the shaping adjustment criteria 455, or the shaping adjustment criteria 485, as described above.
  • the modification engine 428 may trigger performance of at least a portion of the write verify operation on a block in which the shaped data 412 is stored. For example, in response to determining that at least one criteria of the shaping adjustment criteria 424 that is associated with the write verify trigger operation 432 is satisfied, the modification engine 428 may issue a command causing or instructing a controller (e.g., the controller 130 of FIG. 1) or an NVM (e.g., the NVM 140 of FIG. 1) to perform at least a portion of the write verify operation.
  • a controller e.g., the controller 130 of FIG. 1
  • an NVM e.g., the NVM 140 of FIG.
  • the at least the portion of the write verify operation may include reading (e.g., by the NVM) a copy (e.g., a "first copy") of the shaped data 412 of FIG. 4 from a first physical page of the MLC portion of the NVM (e.g., from the physical page 137 of the MLC portion 136 of the NVM 140 of FIG. 1).
  • the at least the portion of the write verify operation may additionally or alternatively include transferring the first copy of the shaped data 412 of FIG. 4 that is read by the NVM (e.g., the "read back data") to the controller to determine errors in the read back data.
  • the at least the portion of the write verify operation may additionally or alternatively include the controller checking for errors either by comparison with an original copy of the shaped data 412 which may be cached in an SLC portion of the NVM (e.g., the SLC portion 134 of the NVM 140 of FIG. 1) or by checking an error detection code portion of an error correction code (ECC).
  • the at least the portion of the write verify operation may additionally or alternatively include the controller determining whether a number of error bits (e.g., a BER 434 of FIG. 4) in the read back data satisfies a threshold 436 (e.g., whether the number of error bits exceeds a predetermined amount).
  • the at least the portion of the write verify operation may not include rewriting the shaped data 412 to a different physical page of the MLC portion if the number of error bits in the read back data does not satisfy the threshold 436. For example, when the number of error bits detected in the read back data does not satisfy the threshold 436, the first copy may be deemed valid, subsequent reads of the shaped data 412 may be from the first copy at the first physical page, and any errors in the first copy may be corrected by ECC at the controller.
  • the at least the portion of the write verify operation may include rewriting a second copy of the shaped data 412 to a different physical page of the MLC portion of the NVM if the number of error bits (e.g., the BER 434) detected in the read back data satisfies the threshold 436.
  • the second copy may correspond to the original shaped data 412 which may be cached or may correspond to corrected shaped data (e.g., the first copy corrected using the ECC).
  • the least the portion of the write verify trigger operation 432 may be performed when the combination of the logical pages of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that are associated with the write verify trigger operation, and may not be performed when the combination of the logical pages of the shaped data 412 does not satisfy one or more criteria of the shaping adjustment criteria 424 that are associated with the write verify trigger operation.
  • At least a portion of the write verify operation may be performed periodically. For example, at least a read operation of the write verify operation may be performed periodically in response to determining that the BER 434 associated with the shaped data 412 (the read back copy of the shaped data 412) satisfies the threshold 436.
  • At least a portion of the write verify operation may be performed only in response to the write verify trigger operation 432 until a write verify operation (triggered by the write verify trigger operation 432) is performed and determines that the number of error bits (e.g., the BER 434) detected in the read back data satisfies the threshold 436, at which point the at least the portion of the write verify operation may be performed intermittently regardless of whether the write verify trigger operation 432 is performed.
  • a write verify operation triggered by the write verify trigger operation 432
  • the number of error bits e.g., the BER 434
  • the adjust system threshold operation 416 may include adjusting a threshold associated with a write verify operation performed on one or more of the logical pages 462, 464, and 466 of the shaped data 412.
  • the adjust system threshold operation 416 may be performed when the combination of the logical pages of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that are associated with the adjust system threshold operation 416.
  • the adjust system threshold operation 416 may be performed when the combination of the logical pages 462, 464, and 466 of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of program disturb or when the combination satisfies one or more criteria of the shaping adjustment criteria 424 that correspond to an unacceptably high probability of problematic overlap of neighboring states.
  • the adjust system threshold operation 416 may be performed in response to the shaped data tester 422 determining that the shaped data 412 satisfies the shaping adjustment criteria 425, the shaping adjustment criteria 455, or the shaping adjustment criteria 485, as described above.
  • a write verify operation may include selectively rewriting a second copy of data read from a first physical page of an MLC portion of an NVM (e.g., the physical page 137 of the MLC portion 136 of the NVM 140) to a different physical page of the MLC portion of the NVM based on whether a number of errors in a first copy of the data read form the first physical page satisfies the threshold 436 of FIG. 4.
  • the adjust system threshold may include adjusting the threshold 436 when the combination of the logical pages of the shaped data 412 satisfies one or more criteria of the shaping adjustment criteria 424 that are associated with the adjust system threshold operation 416.
  • the operations 403, 405, 413, 414, 416, 418, and/or 432 are described above using one or more examples in which the shaping adjustment criteria 424 corresponds to criteria indicative of a high program disturb and/or a problematic cell state overlap, the operations 403, 405, 413, 414, 416, 418, and/or 432 may be performed in response to one or more criteria that are indicative of other causes or markers of bit errors.
  • the cell states used to describe program disturb or problematic overlap are described above as including the ER state, the G state, and/or the A state, program disturb or problematic overlap may be characterized by threshold voltage distribution patterns having particular probabilities of other cell states (e.g., additional to, or not inclusive of, the ER state, the A state, or the G state).
  • the cell states of the shaping adjustment criteria 424 are described with reference to particular shaping level combination probabilities, one or more different probability values may be used and the exemplary probabilities described herein for illustration purposes should not be considered as being restrictive.
  • the shaping adjustment criteria 424 are described with reference to threshold voltage distribution patterns for an MLC having 3-bits per cell (e.g., eight cell states), memory having a different number of bits per cell may be used.
  • the MLC may use two bits per cell or more than three bits per cell.
  • FIG. 5 illustrates an embodiment of a method 500 of initiating a modification operation in response to determining that shaped data satisfies one or more shaping adjustment criteria.
  • the method 500 may be performed using the system 100 of FIG. 1 and/or the components 400 of FIG. 4.
  • the method 500 of FIG. 5 includes determining that shaped data satisfies one or more shaping adjustment criteria, at 502.
  • the shaped data may correspond to the shaped data 116 of FIG. 1 or the shaped data 412 of FIG. 4, and the shaping adjustment criteria may correspond to one or more of the shaping adjustment criteria 424 of FIG. 4.
  • the shaping adjustment criteria 424 are described above using example shaping adjustment criteria that are indicative of a high program disturb and/or a problematic cell state overlap, the shaping adjustment criteria 424 may include one or more shaping adjustment criteria that are indicative of other causes or markers of bit errors.
  • one or more shaping adjustment criteria of the shaping adjustment criteria 424 may be defined without using probabilities of one or more of the ER state, the A, or the G state or may be defined using probabilities of one or more other cell states additional to the ER state, the A state, or the G state.
  • the cell states of the shaping adjustment criteria 424 are described with reference to particular shaping level combination probabilities, one or more different probability values may be used and the exemplary probabilities described herein for illustration purposes should not be considered as being restrictive.
  • the shaped data may be determined to satisfy the shaping adjustment criteria as described above with reference to FIG. 4.
  • a data storage device may determine a shaping level of logical pages to be folded into a physical page of an MLC portion of a NVM as described above.
  • the data storage device may compare the shaping levels to a set of criteria to determine whether the shaping levels match the criteria.
  • the data storage device may determine a characteristic, property, or distribution pattern associated with the combination of the shaped data.
  • the data storage device may determine a threshold voltage distribution pattern including one or more cell state probabilities as described above.
  • the data storage device may determine whether the combination of the shaped data satisfies the shaping adjustment criteria by comparing the characteristic, property, or distribution pattern associated with the combination of the shaped data to the shaping adjustment criteria as described above.
  • the method 500 of FIG. 5 includes initiating a modification operation in response to determining that the shaped data satisfies the shaping adjustment criteria, at 504.
  • the modification operation may include an interchange operation (e.g., the interchange operation 403 of FIG. 4), a page matching operation (e.g., the page matching 413), an adaptive trim operation (e.g., the adaptive trim operation 414), a logical NOT operation (e.g., the logical NOT operation 418), a write verify trigger operation (e.g., the write verify trigger operation 432), or an operation that adjusts one or more system thresholds (e.g., the adjust system threshold operation 416).
  • an interchange operation e.g., the interchange operation 403 of FIG. 4
  • a page matching operation e.g., the page matching 413
  • an adaptive trim operation e.g., the adaptive trim operation 4114
  • a logical NOT operation e.g., the logical NOT operation 418
  • a write verify trigger operation e.g.,
  • FIG. 6 illustrates an embodiment of a method 600 of discontinuing a shaping operation based on determining that a health metric satisfies a threshold.
  • the method 600 may be performed using a data storage device configured to perform a shaping operation to shape data prior to storing the data to a non-volatile memory of the data storage device.
  • the method 600 may be performed using the data storage device 220 of FIG. 2 including the shaping unit 226 to shape data prior to storing the data to the NVM 240.
  • the method 600 includes determining that a health metric corresponding to at least a portion of the NVM satisfies a threshold, at 602 of FIG. 6.
  • the at least the portion of the NVM may correspond to one or more blocks of the NVM, one or more planes of the NVM, or one or more dies of the NVM.
  • the at least the portion of the NVM may correspond to one or more blocks of the NVM 240 of FIG. 2, one or more planes of the NVM 240, or one or more dies of the NVM 240 as described above with reference to FIG. 2.
  • the health metric may correspond to a number of program/erase (P/E) cycles, to an amount of the at least the portion of the NVM storing data, to a BER (e.g., an average BER) corresponding to the at least the portion of the NVM, or to an average shaping level of data stored in the at least the portion of the NVM, as described above with reference to FIG. 2.
  • P/E program/erase
  • the threshold may be selected to avoid reliability issues associated with shaping data as described above with reference to FIG. 2.
  • the controller 230 may take action that causes the controller (e.g., the shaping unit 226) to discontinue shaping data to be stored at the at least the portion of the NVM 240, as described above.
  • data to be stored at the at least the portion of the NVM may be scrambled in lieu of shaping in response to determining that the health metric corresponding to the at least the portion of the NVM satisfies the threshold.
  • various components depicted herein are illustrated as block components and described in general terms, such components may include one or more microprocessors, state machines, or other circuits or circuitry configured to enable the disclosed components to perform the particular functions attributed to such components.
  • the shaped data tester 422 of FIG. 4, or the modification engine 428 of FIG. 4 may represent physical components, such as hardware controllers, state machines, logic circuits, or other structures.
  • one of more aspects of the functionality of the preceding modules may be implemented using a microprocessor or microcontroller programmed to perform the respective functionality.
  • the NVM 140 of FIG. 1 or 240 of FIG. 2 includes executable instructions that are executed by a processor in the controller 130 of FIG. 1 or 230 of FIG. 2, respectively.
  • executable instructions that are executed by a processor in the controller 130 of FIG. 1 or 230 of FIG. 2 may be stored at a separate memory location that is not part of the NVM 140 or 240, such as at a RAM or at a read-only memory (ROM).
  • the instructions may include instructions that when executed by the processor cause the processor to determine whether shaped data (e.g., the shaped data 1 16 of FIG. 1, 228 of FIG. 2, or 412 of FIG. 4) satisfies one or more shaping adjustment criteria (e.g., one or more of the shaping adjustment criteria 424 of FIG. 4).
  • the instructions may include instructions that cause the processor to determine shaping levels of shaped data before transferring the shaped data to NVM by counting 1 -s in the shaped data and storing the shaping levels in management tables as described above.
  • the instructions may include instructions that cause the processor to determine shaping levels of the shaped data after transferring the shaped data to the NVM by counting 1-s in the shaped data read from the NVM as described above.
  • the instructions may further cause the processor to compare the shaping levels to the shaping adjustment criteria to determine whether the shaping levels satisfy one or more of the shaping adjustment criteria as described above by comparing each logical page's shaping level to a corresponding threshold for that logical page, and in response to each of the shaping levels equaling or exceeding its respective threshold, generating an indicator (e.g., a bit) that the shaping adjustment criteria has been satisfied.
  • an indicator e.g., a bit
  • the instructions may include instructions that when executed by the processor cause the processor to initiate a modification operation in response to determining that the shaped data satisfies one or more of the shaping adjustment criteria.
  • initiating the modification operation may include accessing a LUT that associates modification operations with shaping adjustment criteria.
  • the instructions may include instructions that when executed by the processor cause the processor to determine that one or more health metrics (e.g., the health metric 216, 218, 219, or 221 of FIG. 2) satisfy a threshold.
  • the instructions may cause the processor to determine the health metric by counting a number of P/E cycles 218 as described above and storing the count in memory of a controller (e.g., the controller 230 of FIG. 2).
  • the instructions may cause the processor to read a threshold LUT to access one or more thresholds (e.g., from a threshold LUT) and compare one or more of the health metrics to the accessed thresholds.
  • the instructions may include instructions that when executed by the processor cause the processor to discontinue performance of the shaping operation to data (e.g.
  • the instructions may cause the processor to compare the health metric to the threshold. In response to the health metric exceeding the threshold, the instructions may cause the processor to set an indicator (e.g., a bit value in a control register) that indicates that the shaping unit (e.g., the shaping unit 226 of FIG. 2) is to be bypassed during data processing.
  • the controller may route the data from a host device (e.g, the host device 210) to a NVM (e.g., the NVM 240 of FIG. 2) without providing the data to the shaping unit.
  • the instructions may include instructions that cause the processor to scramble the data. For example, the instructions may cause a linear feedback shift register (LFSR) to generate a pseudo-random sequence of bit values that are XOR'ed with the input data to generate scrambled data.
  • LFSR linear feedback shift register
  • the data storage device 120 of FIG. 1 or 220 of FIG. 2 may be a portable device configured to be selectively coupled to one or more external devices.
  • the data storage device may be attached or embedded within one or more host devices, such as within a housing of a portable communication device.
  • the data storage device may be within a packaged apparatus such as a wireless telephone, a personal digital assistant (PDA), a gaming device or console, a portable navigation device, a computer device, or other device that uses internal non-volatile memory.
  • Semiconductor memory devices such as the NVM 140 of FIG. 1 or the NVM 240 of FIG. 2, include volatile memory devices, such as dynamic random access memory (“DRAM”) or static random access memory (“SRAM”) devices, non-volatile memory devices, such as magnetoresistive random access memory (“MRAM”), resistive random access memory (“ReRAM”), electrically erasable programmable read only memory (“EEPROM”), flash memory (which can also be considered a subset of EEPROM), ferroelectric random access memory (“FRAM”), and other semiconductor elements capable of storing information.
  • volatile memory devices such as dynamic random access memory (“DRAM”) or static random access memory (“SRAM”) devices
  • non-volatile memory devices such as magnetoresistive random access memory (“MRAM”), resistive random access memory (“ReRAM”), electrically erasable programmable read only memory (“EEPROM”), flash memory (which can also be considered a subset of EEPROM), ferroelectric random access memory (“FRAM”), and other semiconductor elements capable of storing information.
  • passive semiconductor memory elements include ReRAM device elements, which in some embodiments include a resistivity switching storage element, such as an anti-fuse, phase change material, etc., and optionally a steering element, such as a diode, etc.
  • active semiconductor memory elements include EEPROM and flash memory device elements, which in some embodiments include elements containing a charge storage region, such as a floating gate, conductive nanoparticles, or a charge storage dielectric material. Multiple memory elements may be configured so that they are connected in series or so that each element is individually accessible.
  • flash memory devices in a NAND configuration typically contain memory elements connected in series.
  • a NAND memory array may be configured so that the array is composed of multiple strings of memory in which a string is composed of multiple memory elements sharing a single bit line and accessed as a group.
  • memory elements may be configured so that each element is individually accessible, e.g., a NOR memory array.
  • NAND and NOR memory configurations are exemplary, and memory elements may be otherwise configured.
  • the semiconductor memory elements located within and/or over a substrate may be arranged in two or three dimensions, such as a two dimensional memory structure or a three dimensional memory structure.
  • the semiconductor memory elements are arranged in a single plane or a single memory device level.
  • memory elements are arranged in a plane (e.g., in an x-z direction plane) which extends substantially parallel to a major surface of a substrate that supports the memory elements.
  • the substrate may be a wafer over or in which the layer of the memory elements are formed or it may be a carrier substrate which is attached to the memory elements after they are formed.
  • the substrate may include a semiconductor such as silicon.
  • the memory elements may be arranged in the single memory device level in an ordered array, such as in a plurality of rows and/or columns. However, the memory elements may be arrayed in non-regular or non-orthogonal configurations.
  • the memory elements may each have two or more electrodes or contact lines, such as bit lines and word lines.
  • a three dimensional memory array is arranged so that memory elements occupy multiple planes or multiple memory device levels, thereby forming a structure in three dimensions (i.e., in the x, y and z directions, where the y direction is substantially perpendicular and the x and z directions are substantially parallel to the major surface of the substrate).
  • a three dimensional memory structure may be vertically arranged as a stack of multiple two dimensional memory device levels.
  • a three dimensional memory array may be arranged as multiple vertical columns (e.g., columns extending substantially perpendicular to the major surface of the substrate, i.e., in the y direction) with each column having multiple memory elements in each column.
  • the columns may be arranged in a two dimensional configuration, e.g., in an x-z plane, resulting in a three dimensional arrangement of memory elements with elements on multiple vertically stacked memory planes.
  • Other configurations of memory elements in three dimensions can also constitute a three dimensional memory array.
  • the memory elements may be coupled together to form a NAND string within a single horizontal (e.g., x-z) memory device levels.
  • the memory elements may be coupled together to form a vertical NAND string that traverses across multiple horizontal memory device levels.
  • Other three dimensional configurations can be envisioned wherein some NAND strings contain memory elements in a single memory level while other strings contain memory elements which span through multiple memory levels.
  • Three dimensional memory arrays may also be designed in a NOR configuration and in a ReRAM configuration.
  • a monolithic three dimensional memory array typically, one or more memory device levels are formed above a single substrate.
  • the monolithic three dimensional memory array may also have one or more memory layers at least partially within the single substrate.
  • the substrate may include a semiconductor material such as silicon.
  • the layers constituting each memory device level of the array are typically formed on the layers of the underlying memory device levels of the array.
  • layers of adjacent memory device levels of a monolithic three dimensional memory array may be shared or have intervening layers between memory device levels.
  • two dimensional arrays may be formed separately and then packaged together to form a non-monolithic memory device having multiple layers of memory.
  • non-monolithic stacked memories can be constructed by forming memory levels on separate substrates and then stacking the memory levels atop each other. The substrates may be thinned or removed from the memory device levels before stacking, but as the memory device levels are initially formed over separate substrates, the resulting memory arrays are not monolithic three dimensional memory arrays.
  • Associated circuitry is typically used for operation of the memory elements and for communication with the memory elements.
  • memory devices may have circuitry used for controlling and driving memory elements to accomplish functions such as programming and reading.
  • This associated circuitry may be on the same substrate as the memory elements and/or on a separate substrate.
  • a controller for memory read-write operations may be located on a separate controller chip and/or on the same substrate as the memory elements.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

L'invention concerne des systèmes et des procédés de traitement de données mises en forme afin d'inclure de façon sélective l'exécution une opération de modification. L'opération de modification peut être exécutée après avoir déterminé que certaines données mises en forme satisfont à un ou plusieurs critères de réglage de mise en forme. La mise en forme de données peut être interrompue sur au moins une partie d'une mémoire sur la base d'une métrique de santé concernant la partie satisfaisant à un seuil.
PCT/US2016/037035 2015-07-20 2016-06-10 Traitement de données mises en forme WO2017014860A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/803,777 US9575683B2 (en) 2012-11-30 2015-07-20 Processing shaped data
US14/803,777 2015-07-20

Publications (1)

Publication Number Publication Date
WO2017014860A1 true WO2017014860A1 (fr) 2017-01-26

Family

ID=57834485

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/037035 WO2017014860A1 (fr) 2015-07-20 2016-06-10 Traitement de données mises en forme

Country Status (1)

Country Link
WO (1) WO2017014860A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117809725A (zh) * 2024-03-01 2024-04-02 四川云海芯科微电子科技有限公司 一种闪存颗粒筛选分级方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014085166A2 (fr) * 2012-11-30 2014-06-05 Sandisk Technologies Inc. Stockage et extraction de données formées

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014085166A2 (fr) * 2012-11-30 2014-06-05 Sandisk Technologies Inc. Stockage et extraction de données formées

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117809725A (zh) * 2024-03-01 2024-04-02 四川云海芯科微电子科技有限公司 一种闪存颗粒筛选分级方法
CN117809725B (zh) * 2024-03-01 2024-05-14 四川云海芯科微电子科技有限公司 一种闪存颗粒筛选分级方法

Similar Documents

Publication Publication Date Title
US9575683B2 (en) Processing shaped data
US11385802B2 (en) Temperature variation compensation
US10636504B2 (en) Read verify for improved soft bit information for non-volatile memories with residual resistance
CN108475530B (zh) 用于在储存体装置的编程之前进行擦除检测的系统和方法
US10102920B2 (en) Memory system with a weighted read retry table
US10249382B2 (en) Determination of fast to program word lines in non-volatile memory
CN106663046B (zh) 用于刷新存储器设备中的数据的系统和方法
US9721662B1 (en) Non-volatile memory with efficient programming
US9740425B2 (en) Tag-based wear leveling for a data storage device
US9547571B2 (en) Block behavior tracking in a memory system
US20160141029A1 (en) Health data associated with a resistance-based memory
US10573397B1 (en) Parameter tracking for non-volatile memory to avoid over-programming
US9484098B1 (en) Smart reread in nonvolatile memory
US9501400B2 (en) Identification and operation of sub-prime blocks in nonvolatile memory
US10026488B2 (en) Non-volatile memory with read disturb detection for open blocks
US20160004464A1 (en) System and method of updating metablocks
US9841910B2 (en) Moving and committing valid data on a set-by-set basis
CN107430491B (zh) 数据存储设备和方法
US20170116076A1 (en) Bad Column Management in Nonvolatile Memory
US20180307431A1 (en) Bad Page And Bad Block Management In Memory
US9910730B2 (en) System for handling erratic word lines for non-volatile memory
US8737125B2 (en) Aggregating data latches for program level determination
US9583207B2 (en) Adaptive data shaping in nonvolatile memory
US9401216B1 (en) Adaptive operation of 3D NAND memory
US9502123B2 (en) Adaptive block parameters

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16731475

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16731475

Country of ref document: EP

Kind code of ref document: A1