WO2014081632A1 - Shaping codes for memory - Google Patents

Shaping codes for memory Download PDF

Info

Publication number
WO2014081632A1
WO2014081632A1 PCT/US2013/070303 US2013070303W WO2014081632A1 WO 2014081632 A1 WO2014081632 A1 WO 2014081632A1 US 2013070303 W US2013070303 W US 2013070303W WO 2014081632 A1 WO2014081632 A1 WO 2014081632A1
Authority
WO
WIPO (PCT)
Prior art keywords
digit
shaping
patterns
data
received
Prior art date
Application number
PCT/US2013/070303
Other languages
French (fr)
Inventor
Chandra C. Varanasi
Original Assignee
Micron Technology, Inc.
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
Application filed by Micron Technology, Inc. filed Critical Micron Technology, Inc.
Priority to KR1020157016144A priority Critical patent/KR101752987B1/en
Priority to EP13856826.6A priority patent/EP2923270B1/en
Priority to JP2015542819A priority patent/JP6059358B2/en
Priority to CN201380065908.4A priority patent/CN104871142B/en
Publication of WO2014081632A1 publication Critical patent/WO2014081632A1/en

Links

Classifications

    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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
    • 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
    • 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
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50016Marginal testing, e.g. race, voltage or current testing of retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic

Definitions

  • the present disclosure relates generally to semiconductor memory apparatuses and methods, and more particularly, to shaping codes for memory.
  • Memory devices are typically provided as internal,
  • Volatile memory can require power to maintain its data (e.g., user data, error data, etc.) and includes random-access memory (.RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), amon others.
  • RAM random-access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • Non-volatile memory can provide persistent data by retaining stored data whe not powered and can include NAND flash memory, NOR flash memory, read only memory (ROM), Electrically Erasable Programmable ROM (EEPROM), Erasable Programmable ROM (EPROM), and resistance variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoreslstive random access memory (MRAM), among others,
  • Non-volatile memory e.g., NAND flash memory, NOR flash .memory, etc.
  • portable electronic devices such as laptop computers . , solid state drives (SSDs), portabie memory sticks, digttai cameras, cellular telephones, portable music players such as MP3 players, movie players, and other electronic devices.
  • SSDs solid state drives
  • Memory cells can be arranged into arrays, with the arrays being used in memory devices,
  • Some memory ceils exhibit wear based on the quantity of program and/or erase cycles to which they are subjected. That is, memor ceil performance can degrade with repeated use. Degradation may lead to problems such as decreased data retention, for instance.
  • Figure 1 is a block diagram of an apparatus in the form o f a computing system including at least one memory system configured to implement shaping codes for memory in accordance with a number of embodiments of the present disclosure
  • figure 2 is a schematic of a portion of a memory comprising an array of memory cells operable in accordance with a number of embodiments of the present disclosure.
  • f gure 3 illustrates a diagram associated with programming memory cells in accordance with a number of embodiments of the present disclosure.
  • f igure 4 illustrates a mapping between received digit patterns and shaping digit patterns in accordance with a number of embodiments of the present disclosure.
  • Figure 5A is a diagram illustrating proportions of stored digit patterns associated with memory cells programmed in accordance with the prior art
  • Figure SB is a diagram illustrating proportions of stored digit patterns associated with memor cells programmed in accordance with the mapping shown in Figure 4,
  • FIG. 6A is a block diagram of a portion of an apparatus associated with shaping codes for memory in accordance with a number of embodiments of the present disclosure.
  • Figure 6B is a bl ock diagram of a port ion of an apparatus associated with shaping codes for memory in accordance with a number of embodiments of the present disclosure.
  • One example apparatus comprises an array of memory cells and a shaping component coupled to the array and configured to encode each of a number of received digit patterns according to a mapping of received digit patterns to shaping digit patterns.
  • the mapping of received digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost
  • a number of embodiments of the present disclosure can include encoding processes that can skew programmed data states toward those data states corresponding to lower threshold voltage levels, which can provide improved data retention as compared to prior approaches, among other benefits. Improved data retention can, for instance, increase the useful lifetime of memory devices, among other benefits.
  • designators "M” and “N”, particularly with respect to reference numerals in the drawings, indicates that a number of the particular feature so designated can be included.
  • "a number of a particular thing can refer to one or more of such things (e.g., a number of memory devices can refer to one or more memory devices),
  • .first digit or digits correspond to the -drawing- .figure number and the remaining digits identify an element or component in the drawing. Similar elements or components between different figures may be identified by the use of similar digits.
  • 1 10 may reference element 'MO" in figure i
  • a similar element ma be referenced as 10 in Figure 2
  • elements shown in the various embodiments herein can be added, exchanged, and/or eliminated so as to provide a number of additional embodiments of the present disclosure.
  • the proportion and the relative scale of the elements provided in the figures arc intended to illustrate certain embodiments of the present, invention, and should not be taken in a limiting sense.
  • FIG. 1 is a block diagram of an apparatus in the form of a computing system 100 including at least one memory system 104 configured to implement, shaping codes for memory in accordance with a number of embodiments of the present disclosure.
  • a memory system 1 4, a controller t OS, or a memory device 1 10 might also be separately considered an "apparatus.”
  • the memory system 104 can be a solid state drive (SSD), for instance, and can include a host interface 106, a controller 108 (e.g., a processor and/or other control circuitry), and a number of memory devices 1.10, which can be referred to as memory ⁇ 10.
  • the memory .1 .1 can comprise, for instance, a number of solid siate memory devices such as NA.ND flash devices, which provide a storage volume for the memory system 104.
  • the controller 108 can be coupled to the host interface 1 6 and to the memor 1 10 via a plurality of channels and can be used to transfer data between the memory system 104 and a host 102.
  • the interface 1 6 can be in the form of a standardized interface.
  • the interface 106 can be a serial advanced technology attachment (SATA j, peripheral component interconnect express (PCIe), or a universal serial bus (USB), among other connectors and interfaces, in general however, interface 106 can provide an interface for passing control, address, data, and other signals between the memory system 1 4 and a host 102 having compatible receptors for the interface 106.
  • SATA j serial advanced technology attachment
  • PCIe peripheral component interconnect express
  • USB universal serial bus
  • Most 102 can be a host system such as a personal laptop computer, a desktop computer, a digital camera, a mobile telephone, or a memory card reader, among various other types of hosts.
  • Host .102 can include a system motherboard and/or backplane and can include a number of memory access devices (e.g., a number of processors).
  • Most. 1.02 can also be a. memory controller, such as where memory system 104 is a memory device (e.g., a memory device having an on-die controller).
  • the controller 108 can communicate with the memory 1 10
  • the controller 108 can be on a same die or a different die than a die or dice corresponding to memory 1 1 .
  • the controller 108 can include a discrete memory channel controller for each channel coupling the controller 108 to the memory 1 10.
  • the controller 108 can include, for example, a number of components in the form of hardware and/or firmware (e.g., one o more integrated circuits) and/or software for controlling access to the memory 1 10 and/or for facilitating data transfer between the host 102 and memory 1 HI.
  • the controller 1 8 can include an error correction component ! 1 2 (E € € ENCODER/DECODER) and a shaping component 1 14 (SH APING ENCODER/DECODER).
  • the error correction component I i 2 can include, for example, an algebraic error correction circiiit suc as one of the group including a Bose-Chaud3 ⁇ 4uri-Hc ⁇ uenghem (BCH) error correction, circuit and a Reed Solomon error correction circuit, among other types of error correction circuits.
  • BCH Bose-Chaud3 ⁇ 4uri-Hc ⁇ uenghem
  • the shaping component 1 14 can include, for example, circuitr configured to encode received digit patterns (e.g., data received from host 102 and to be written to memory 1 10) in accordance with a mapping of received digit patterns to shaping digit patterns, as described further herein.
  • the shaping component 1 14 e.g., a shaping encoder and/or decoder
  • mapping is described further in connection with Figure 4.
  • bit e.g.. binary digit
  • embodiments are not limited to a binary digit system.
  • Each of the error correction component i 1.2 and shaping component 5 14 can be discrete components such as an application specific integrated circuit (ASIC) or the components may reflect functionally provided by circuitry within the controller 108 that does not necessarily have a discrete physical form separate from other portions of the controller 108.
  • ASIC application specific integrated circuit
  • each of the error correciion component 1 12 and shaping component i 1 can be external to the controller 108 or have a number of components located within the conf.roi.ier 108 and a number of components located external to the controller 108.
  • the error correction component 1 12 and shaping component 1 14 can comprise separate encoding and decoding components, in a number of embodiments.
  • the memory 1 .10 can include a number of arrays of memory cells (e.g., non-volatile memory cells).
  • the arrays can. be flash arrays with a NA ) architecture, for example.
  • embodiments are not limited to a part icular type of memory array or array architecture.
  • floating-gate type .flash memory cells in a AN ' D architecture are generally referred to herein, embodiments are not so limited.
  • the memory cells can be grouped, for instance, into a number of blocks including a. number of physical pages. A number of blocks can be included in a plane of memory ceils and an array can include a number of planes.
  • a memory device may be configured to store 8KB (kilobytes) of user data per page, 128 pages of user data per block, 2048 blocks per plane, and 16 planes per device.
  • Data can be sent to/from a host (e.g., host 1 2) in data segments referred to as sectors (e.g.. host sectors).
  • a sector of data can be referred to as a data transfer size of the host
  • controller 108 can be configured to control encoding each of a number of received bit patterns according to a mapping of received bit patterns to shaping bit patterns, wherein the .mapping of received bit patterns to shaping bit patterns obeys a shaping constraint that includes an uppermost amount of consecutive bits of the shaping bit patterns having a first bit value,
  • the controller 108 can also control programming the encoded number of recei ved bit patterns to a group of memory cells (e.g., a page of memory cells associated with memory 1 1 ).
  • the shaping constraint associated with the encoded bit patterns can result in skewing a proportion of programmed data states corresponding to lower threshold voltage (Vt) levels as ' compared to uniformly random bit patterns, for instance.
  • Vt threshold voltage
  • Figure 2 is a schematic of a portion of a memory 210 comprising an array o ' memory ceils operable in accordance with a number of embodiments of the present disclosure.
  • the embodiment of Figure 2 illustrates a HAND architecture non-volatile memory array.
  • the memory array includes access lines (e.g., word lines 205-1 , . . ., 205-N) and intersecting data lines (e.g., local bit lines 207-1 , 07-2, 207-3, . . ., 207-M).
  • the number of word lines 205-1 , . . ., 205- N and the number of local bit lines 207-1 , 207-2, 207-3, , . 207-M can be some power of two (e.g., 256 word lines by 4,096 bit li nes).
  • the memory array includes N AND strings 209-1 , 209-2, 209-3,
  • Bach NAND string includes non-volatile memory cells 21 1-1 , . . 21 1-N, each commanicatively coupled to a respective word line 205-1 , . . ., 205- N.
  • Each NAND string (and it constituent memory cells) is also associated with a local bit line 207-1 , 207-2, 207-3, . . 207-M.
  • SGS source select gate
  • FET field-effect transistor
  • SOD drain select gate
  • Each source select gate 213 is configured to selectively couple a respective NAND string to a common source 223 responsive to a signal on source select line 217
  • each drain, select gate 219 is configured to selectively couple a respective NAND string to a respective bit line responsive to a signal on drain select line 215.
  • a source of source select gate 213 is coupled to a common source line 223.
  • the drain of source select gate 213 is coupled to the source of the memory cell 21 1-1 of the corresponding NAND siring 209- 1.
  • the drain of drain select gate 219 is coupled to bit line 207-1 of the corresponding NAND string 209- 1 at drain contact 221 - 1.
  • l te source of drain select ga te 219 is coupled to the drain of the last memory ce.1l 21 1 -N (e.g., a floatin -gate transistor) of the corresponding NAND string 209- 1.
  • construction, of the non-volatile memory cells 21 1-1, . . ., 21 1-N includes a source, ' a drain, a floating gate or other charge storage structure, and a control gate.
  • the memory cells 21 1-1 , . . ., 2! 1 -N have their control gates coupled to a word line, 205-1 , . . ., 205-N, respectively.
  • a NOR array architecture would be similarly laid out, except that the string of memory cells would be coupled in parallel between the select gates.
  • a NOR architecture can provide for random access to the memory ceils in. the array (e.g., as opposed to page-based access as with a NAND architecture). ⁇ 0Q3.1) In operation, a number of cells coupled to a selected word line
  • the memory cells 2.1 .1-1 , . . 2.1 1 - can be multilevel cells configured to store more than one digit (e.g., bit) of data, m some such instances, the bits stored in each multilevel cell can correspond to different pages of data.
  • a first bit of a 2 ⁇ h.it cell may correspond t a first page of data (e.g., a lower page), and a second bit of the 2-bit cell may correspond to a second page of data (e.g., an upper page).
  • Cells storing more than two bits per cell may comprise a first, bit corresponding to a lower page of data, a second bit corresponding to an upper page of data, and one or more additional bits corresponding to one or more middle pages of data.
  • a number of cells coupled to a. particular word line and programmed together to respective data states can be referred to as a target page.
  • a programming operatio can include applyin a number of program pulses (e.g., 16V-20V) to a selected word line in order to increase the threshold voltage (Vt) of selected cells coupled to that selected word line to a desired voltage level corresponding to a targeted data state.
  • a number of program pulses e.g., 16V-20V
  • Vt threshold voltage
  • Read operations can include sensing a voltage and/or current change of a bit line coupled to a selected cell in order to determine the state of the selected ceil.
  • the read operation can include precharging a bit line and sensing the discharge when a selected cell begins to conduct.
  • One type of read operation comprises applying a ramping read signal to a selected word line, and another type of read operation comprises applying a plurality of discrete read signals to the selected word line to determine the states of the cells,
  • Figure 3 illustrates a diagram associated wit programming memory cells in accordance with a number of embodiments of the present disclosure.
  • the memory cells are 3-bit memory cells with each cell being programmable to one of eight data states (e.g., LI to L8) each indicating a different 3-bit stored bit pattern (e.g.. I l l , 01 1 , 001 , Hit, 100, 000, 010, and 1 10).
  • each of the bits in the 3-bit stored bit pattern corresponds to a different page of data.
  • the least significant bit (LSB) (right most bit shown as boxed in Figure 3) can contribute to a.
  • LSB least significant bit
  • first page of data e.g., a lower page of data
  • the middle bit ca contribute to a second page of data (e.g., a middle page of data)
  • the most significant bit (MSB) left most bit shown as surrounded by diamond symbol in Figure 3
  • MSB most significant bit
  • a page of ceils can store three pages of data, in this example,
  • embodiments are not limited to multilevel memory cells storing three bits of data.
  • a number of embodiments can include memory cells configured to store more or fewer than three bits of data and/or a -fractional number of bits of data.
  • embodiments are not limited to the particular hit values assigned, to the data states LI to L8.
  • FIG. 3 illustrates threshold voltage (Vt) distributions of a number of cells after lower page programming (LPP) process 325, a middle page programming (MPP) process 327, and an upper page programming (UPP) process 129,
  • LPP lower page programming
  • MPP middle page programming
  • UPP upper page programming
  • the Vt of the memory cells are adjusted (e.g., via programming pulses applied to a. selected word line) to one of two levels represented by Vt distributions 330-1 and 330-2.
  • the voltage levels are represented by Vt distributions, which can reflect a statistical average Vt level of ceils programmed to a particular level.
  • cells whose lower page is to store a bit value of " 1" e.g., LP ⁇ I
  • cells whose lower page is to store a bit value of "CP e.g.. LP ⁇ 0
  • CP e.g.. LP ⁇ 0
  • Vt of the memory cells are adjusted to one of four levels represented by Vt distributions 332-1 , 332-2, 332- 3, and 332-4.
  • cells whose middle page is to store a. bit value of * T ' e.g., MP ⁇ 1
  • cells whose middle page is to store a bit value of "0" e.g., M PTM 0
  • Vt of the memory cells are adjusted to one of eight levels represented by Vt distributions 334-1 to 334-8, which correspond to data states L I to L8, respectively, with each one of data states LI to L8 indicating a different 3-bit stored bit pattern.
  • ceils programmed to data state L I store data "1.1 1 ceils programmed to data- state L2 store data "01 1 ”
  • ceils programmed to data state 1,3 store data "001 " cells programmed to data state L4 store data "10L” ceils programmed to data state 1,5 store data "100”
  • ceils programmed to data state I..6 store data "000”
  • cells programmed to data state L7 store data "010. ' ' and cells programmed to data state L.8 store data " ⁇ 10.”
  • cells programmed to higher Vt levels may have an increased retention noise as compared to cells programmed to lower Vi levels.
  • the Vt of cells programmed to data states 1.7 and L8 may be more prone to increased shifting over time as compared to the Vt of cells programmed to data states LI and L2,
  • retention noise can be reduced by providing a coding scheme that skews the stored bit patterns toward those stored bit patterns corresponding to lower Vt levels, in the example illustrated in Figure 3, memory ceils storing bit patterns "100,” 4 ⁇ 00,” “010,” and “1 10" (e.g., those ceil programmed to data states L5, 1.6, L7, and L8, respectively) correspond to cells whose Sower page stores bit value "0," Memory cells storing bi pattern "I I I ,” “01 1 ,” “001 ,” and " 101" (e.g., those ceils programmed to data states LI, 12, L3, and 1 A respecti ely) correspond to cells whose lower page stores bit value "
  • retention noise can be reduced by encoding received bit patterns in accordance with a mapping of received bit patterns to shaping bit patterns such that when I e encoded bit patterns are programmed to a group (e.g., a page) of cells as at least a portion of a page of data (e.g., a lower page), the proportion of ceils whose lower page is programmed to a first bit value (e.g., ' ') as compared to the proportion of cells whose lower page is programmed to a second bit value (e.g., "0") is skewed (e.g., toward the bit value corresponding to those stored bit patterns corresponding to lower threshold voltage levels), ⁇ 6041 j
  • An example mapping of received digit (e.g., bit) patterns to shaping digit (e.g., bit) patterns is described further in association with Figure 4.
  • the mapping obeys a shaping constraint thai limits, to an uppermost amount, an amount of consecutive bits of the shaping bit patterns allowed to have a particular bit value.
  • the shaping constrain t may limit the amount of consecutive "0s" in the shaping bit patterns.
  • a shaping constraint cap be represented by (x, k), where "x" is the particular bit value (e.g..
  • * 4 k is the uppermost (e.g., maximum) amount of consecutive bits in the shaping bit patterns having bit value "x.”
  • a (0, 2) shaping constraint can indicate that the maximum amount of consecutive 4 W in a string of shaping bit patterns is two.
  • a shaping constraint of ⁇ L 4) can indicate that the maximum amount of consecutive " I s" in a string of shaping bit patterns is tour.
  • Embodiments are not limited to a particular value of**k M . For example, in a number of embodiments *'k" has a value of four or less.
  • a controller e.g., controller 108 shown in Figure I
  • the received data is encoded in accordance with the mapping only if It is determined that the data is to be written to the group of cells as a lower page of data.
  • received data to be written to the upper page and received data to be written to one or more middle pages of the group of memory cells may not be encoded in accordance with the mapping.
  • embodiments are not so limited.
  • data to be written to the upper page of a group of memory celts and/or data to be written to one or more middle pages of a group of memory ceils can be encoded with a mapping of received bit patterns to shaping bit patterns.
  • the mapping of received bit patterns to shaping bit patterns can be different for those bit patterns to be written to a lower page than the mapping for those bit patterns to be written to a middle page and/or an upper page of the group of memory celts,
  • the mapping of received bit patterns to mapping bit pattern can comprise a fixed number of -bit received bit patterns and a corresponding fixed number of N-bit shaping bit patterns.
  • N is greater than
  • N can be equal to M + 1,
  • Figure 4 illustrates a mapping 440 between sixteen 4-bit received bit patterns 442 and a corresponding sixteen 5-bit shaping bit patterns 444.
  • the received bit patterns 442 can represent data incoming (e.g., to a controller such as controller 108 shown in Figure 5) from a host (e.g., host 502 shown in Figure I), for instance.
  • each 4-bit received bit pattern 442 maps to a particular 5-bit shaping bit pattern 444,
  • the mapping 440 obeys a (0, 2) shaping, constraint. That is, none of the shaping bit patterns 444 comprises more than two consecutive data values of "0.”
  • the (0, 2) shaping constraint corresponding to mapping 440 also ensures that strings of the shaping bit patterns 444 do not i nclude more than two consecuti ve data values of "Q,"
  • received data e.g., a number of received 4-bit bit patterns 442
  • mapping 440 and then the encoded data (e.g., a number of shaping 5-bit bit patterns 444 ⁇ is programmed to memory (e.g., memory 1 1.0 shown in Figure I and .memory 210 shown in Figure 2).
  • this mapping example illustrated in Figure 4 achieves a code rate of 4/5 (80%), That is, there is a 1/5 (20%) overhead associated with mapping 440 since it takes 20% more bits to represent a particular amount of data.
  • mapping.440 when mapping 440 is employed in association with programming a lower page of data (e.g., LPP process 325 shown in. Figure 3), for example, about 62% of cells will store “! “ in their lower page and about 38% will store "0" in their lower page.
  • mapping 440 is .not used in association with programmin the upper pages or middle pages of the cells, the stored bit patterns of the cells (e.g., after upper page programming) will be skewed toward stored bit patterns whose LSB (e.g., lower page) has a bit value of 4* !'* (e.g., toward data states corresponding to lower Vt levels).
  • Embodiments are not limited to the mapping 440 described in
  • mappings other than mapping 440 can be used to achieve a (0, 2) shaping constraint, and embodiments are not Limited to a particular shaping constraint.
  • the code rates achievable via particular shaping constraints increase as the value of !* k" increases. For instance, as shown in Table 1 , increasing the limit on the uppermost amount of consecutive bits in the shaping bit patterns allowed to hav a bit value of "0" increases the maximum code rate achievable via a particular "k " value.
  • a mapping of 16-bit received bit patterns to I 7-bit shaping bit patterns can achieve a code rate of about 94% ( 16/17) and can achieve a distribution of about. 57% "I s" and 43% "0s" in the encoded data.
  • the 16: i 7 mapping achieves a higher code rate than the 4:5 mapping 440 shown in Figure 4, but achieves a lesser amount of skew of " I s"/ "0s" in the encoded data (e.g., 57/43 versus 62/38).
  • Figure 5 A is a diagram 550 illustrating proportions of stored bit patterns associated with memory cells programmed in accordance with the prior art.
  • the example illustrated in figure 5A corresponds to memory ceils programmed to one of eight data states, which each represent a different stored 3-bit bit pattern.
  • the memory ceils can be programmed vi a lower page, middle page, and upper page programming process such as that described in association with figure 3.
  • the cells are programmed to one of two Vt levels (e.g., 50% to each Vt level assuming uniformly random data).
  • the ceils are programmed to one of four Vt levels (e.g., 25% to each Vi .level assuming uniformly random data).
  • the eelis are programmed to one of eight Vt levels (e.g., 12.5% to eac Vt level assuming uniformly random data).
  • Vt levels e.g., 12.5% to eac Vt level assuming uniformly random data.
  • the likelihood of a ceil storing each of the eight different 3-bit bit. patterns is .12.5%, as shown in Figure SA,
  • FIG. 5B is a diagram 560 illustrating proportions of stored bit patterns associated with memory cells programmed in accordance with the mappin shown in Figure 4, As such, the example illustrated in Figure SB corresponds to memory cells programmed to one of eight data, states, which each represent a different stored 3-bit bit pattern.
  • the memory cells can be programmed via a lower page, middle page, and upper page programming process such as that described in association with figure 3,
  • the received bit pa tterns to be written to at least one of the lower page, middle page, and upper page of the cells are encoded in accordance with, embodiments described herein.
  • received bit patterns e.g..
  • received bit patterns 442) are encoded in accordance with the mapping 440 shown in Figure 4, which obeys a (0, 2) shaping constraint:.
  • the encoded bit patterns e.g., shaping bit patterns 444
  • the proportion of cells having a lower page data value of "I" versus a data value of"0" is about 62,4% / 37.6% (e.g., assuming uniformly random received data).
  • the mapping 440 can skew the stored bit patterns toward thos stored bit patterns corresponding to lower Vt levels (e.g., toward bit patterns "I I 1 ,” “ 1 1 ,” “001,” and “101", in this example). Assuming received bit pattern to b written to a middle page and an upper page of the cells are not encoded in. accordance with the mapping 440 (e.g., only data to be written to lower pages are encoded in accordance with the mapping 440), the proportions of stored bit patterns will be as illustrated in diagram 560.
  • cells programmed in accordance with a number of embodiments of the present disclosure can have an increased proportion, of cells programmed to data states corresponding to lower Vt levels. Therefore, embodiments of the present disclosure can reduce the likelihood of data retention noise as compared to previous approaches, among other benefits,
  • w049j Figures 6 A and 6.B illustrate each illustrate a block diagram of a portion of an apparatus associated with shaping codes for memory in accordance with a number of embodiments of the present disclosure.
  • FIG. 6A and 6B include an error correction code (CC) encoder 612-1 » a shaping encoder 61 -1 , a memory J 0, a shaping decoder 6 i 4-2, and an ECC decoder 612-2.
  • CC error correction code
  • the ECC encoder 12- 1 can comprise an. algebraic error correction circuit such as one of the group including a Bose ⁇ Chaudhuri ⁇
  • the ECC encoder 6! 2-1 can, for instance, add parity bits to incoming bit patterns received thereto.
  • the ECC decoder 612-2 can decode ECC encoded data received thereto.
  • the shaping encoder 614-1 can include, for example, circuitry configured to encode received bit patterns in. accordance with a mapping of received bit patterns to shaping bit patterns, as described above.
  • the shaping decoder 6.14-2 can also include circuitry configured to decode received bit patterns (e.g., data read from memory 610 that has been encoded in accordance with the aforementioned mapping.).
  • arrow 603-1 represents incoming data from a host (e.g., host 102 described in Figure I ) to be written to memory 610.
  • the incoming data 603- 1 is encoded via ECC encoder 612-1 prior to being encoded via shaping encoder 61 -1 and then the encoded data is written to memory 610.
  • error correction data e.g., parity bits
  • ECC encoder 612- 1 error correction data (e.g., parity bits)
  • arc added to data 603- 1 via ECC encoder 612- 1 are also encoded in accordance with the mapping via shaping encoder 614-1 prior to being written to memory 61.0.
  • the shaping decoder 634-2 can decode the read data in accordance with the mapping
  • the ECC decoder 612-2 can decode the ECC encoded data
  • the user data can be provided back io the host (e.g., as indicated by arrow 603-2,
  • the incoming data 603- 1 is encoded via ECC encoder 612- 1 after being encoded via shaping encoder 614- 1 and then the encoded data is written to memory 10,
  • error correction data e.g., parity hits
  • ECC encoder 612-1 are not encoded in accordance with the mappin via shaping encoder 614-1 prior to being written to memory 10.
  • Not encoding the error correction data via shaping encoder 14-1 can reduce the number of o verhead bits added to the recei ved data 603-1 (since the error correction parity bits added to the received data 603-1 will not be subject to encoding via shaping encoder 614- 1 ).
  • the data read from memory e.g., a page of data
  • the data read from memory can. be decoded via ECC decoder 12-2 prior to being decoded via the shaping decoder 614-2, and the user data can be provided back to the host.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Apparatuses and methods associated with shaping codes for memory are provided. One example apparatus comprises an array of memory cells and a shaping component coupled to the array and configured to encode each of a number of received digit patterns according to a mapping of received digit patterns to shaping digit patterns. The mapping of received digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost amount, an amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value.

Description

SHAPING COmS FOR MEMORY
X chnieal Heid
jOOOl [ The present disclosure relates generally to semiconductor memory apparatuses and methods, and more particularly, to shaping codes for memory.
(0002) Memory devices are typically provided as internal,
semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data (e.g., user data, error data, etc.) and includes random-access memory (.RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), amon others. Non-volatile memory can provide persistent data by retaining stored data whe not powered and can include NAND flash memory, NOR flash memory, read only memory (ROM), Electrically Erasable Programmable ROM (EEPROM), Erasable Programmable ROM (EPROM), and resistance variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoreslstive random access memory (MRAM), among others,
{0003] Memory is utilized as volatile and non-volatile data storage for a wide range of electronic applications. Non-volatile memory (e.g., NAND flash memory, NOR flash .memory, etc.) may be used in portable electronic devices, such as laptop computers., solid state drives (SSDs), portabie memory sticks, digttai cameras, cellular telephones, portable music players such as MP3 players, movie players, and other electronic devices. Memory cells can be arranged into arrays, with the arrays being used in memory devices,
[0004] Some memory ceils exhibit wear based on the quantity of program and/or erase cycles to which they are subjected. That is, memor ceil performance can degrade with repeated use. Degradation may lead to problems such as decreased data retention, for instance.
Ϊ |Θ005{ Figure 1 is a block diagram of an apparatus in the form o f a computing system including at least one memory system configured to implement shaping codes for memory in accordance with a number of embodiments of the present disclosure,
{0006] figure 2 is a schematic of a portion of a memory comprising an array of memory cells operable in accordance with a number of embodiments of the present disclosure.
00 7| f gure 3 illustrates a diagram associated with programming memory cells in accordance with a number of embodiments of the present disclosure.
j0008| f igure 4 illustrates a mapping between received digit patterns and shaping digit patterns in accordance with a number of embodiments of the present disclosure.
(6009] Figure 5A is a diagram illustrating proportions of stored digit patterns associated with memory cells programmed in accordance with the prior art,
|f)010| Figure SB is a diagram illustrating proportions of stored digit patterns associated with memor cells programmed in accordance with the mapping shown in Figure 4,
[0011{ Figure 6A is a block diagram of a portion of an apparatus associated with shaping codes for memory in accordance with a number of embodiments of the present disclosure.
|¾01 f Figure 6B is a bl ock diagram of a port ion of an apparatus associated with shaping codes for memory in accordance with a number of embodiments of the present disclosure.
Petal led Pescri pt son
{00:13} One example apparatus comprises an array of memory cells and a shaping component coupled to the array and configured to encode each of a number of received digit patterns according to a mapping of received digit patterns to shaping digit patterns. The mapping of received digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost
? amount, an amount of consecutive digit of the shaping digit patterns allowed to have a particular digit value.
0014) A number of embodiments of the present disclosure can include encoding processes that can skew programmed data states toward those data states corresponding to lower threshold voltage levels, which can provide improved data retention as compared to prior approaches, among other benefits. Improved data retention can, for instance, increase the useful lifetime of memory devices, among other benefits.
f0015) .I the following detailed description of the present disclosure, reference is made to die accompanying drawings that form a part hereof, and in which is shown by way of illustration how one or more embodiments of the disclosure may be practiced. These embodiments are described in. sufficient detail, to enable those of ordinary skill in the art to practice the embodiments of this disclosure, and it Is to be understood that other embodiments may be utilized and that process, electrical, and/or structural changes may be made without departing from the scope of the present disclosure. As used herein, the
designators "M" and "N", particularly with respect to reference numerals in the drawings, indicates that a number of the particular feature so designated can be included. As used herein, "a number of a particular thing can refer to one or more of such things (e.g., a number of memory devices can refer to one or more memory devices),
{0016} The figures herein follow a numbering convention in which the
.first digit or digits correspond to the -drawing- .figure number and the remaining digits identify an element or component in the drawing. Similar elements or components between different figures may be identified by the use of similar digits. For example, 1 10 may reference element 'MO" in figure i , and a similar element ma be referenced as 10 in Figure 2, As will be appreciated, elements shown in the various embodiments herein can be added, exchanged, and/or eliminated so as to provide a number of additional embodiments of the present disclosure. In addition, as will be appreciated, the proportion and the relative scale of the elements provided in the figures arc intended to illustrate certain embodiments of the present, invention, and should not be taken in a limiting sense. (00171 Figure 1 is a block diagram of an apparatus in the form of a computing system 100 including at least one memory system 104 configured to implement, shaping codes for memory in accordance with a number of embodiments of the present disclosure. As used herein, a memory system 1 4, a controller t OS, or a memory device 1 10 might also be separately considered an "apparatus." The memory system 104 can be a solid state drive (SSD), for instance, and can include a host interface 106, a controller 108 (e.g., a processor and/or other control circuitry), and a number of memory devices 1.10, which can be referred to as memory \ 10. The memory .1 .1 can comprise, for instance, a number of solid siate memory devices such as NA.ND flash devices, which provide a storage volume for the memory system 104.
|00'I | The controller 108 can be coupled to the host interface 1 6 and to the memor 1 10 via a plurality of channels and can be used to transfer data between the memory system 104 and a host 102. The interface 1 6 can be in the form of a standardized interface. For example, when the -memory system 104 is used for data storage in a computing system 100, the interface 106 can be a serial advanced technology attachment (SATA j, peripheral component interconnect express (PCIe), or a universal serial bus (USB), among other connectors and interfaces, in general however, interface 106 can provide an interface for passing control, address, data, and other signals between the memory system 1 4 and a host 102 having compatible receptors for the interface 106.
[00191 Most 102 can be a host system such as a personal laptop computer, a desktop computer, a digital camera, a mobile telephone, or a memory card reader, among various other types of hosts. Host .102 can include a system motherboard and/or backplane and can include a number of memory access devices (e.g., a number of processors). Most. 1.02 can also be a. memory controller, such as where memory system 104 is a memory device (e.g., a memory device having an on-die controller).
|0020| The controller 108 can communicate with the memory 1 10
(which in some embodiments can be a number of memory arrays on a single die) to control data read, write, and erase operations, among other operations. As an example, the controller 108 can be on a same die or a different die than a die or dice corresponding to memory 1 1 . {00211 Although not specifically illustrated, the controller 108 can include a discrete memory channel controller for each channel coupling the controller 108 to the memory 1 10. The controller 108 can include, for example, a number of components in the form of hardware and/or firmware (e.g., one o more integrated circuits) and/or software for controlling access to the memory 1 10 and/or for facilitating data transfer between the host 102 and memory 1 HI. {0022] As illustrated in Figure 1 , the controller 1 8 can include an error correction component ! 1 2 (E€€ ENCODER/DECODER) and a shaping component 1 14 (SH APING ENCODER/DECODER). The error correction component I i 2 can include, for example, an algebraic error correction circiiit suc as one of the group including a Bose-Chaud¾uri-Hc< uenghem (BCH) error correction, circuit and a Reed Solomon error correction circuit, among other types of error correction circuits. The shaping component 1 14 can include, for example, circuitr configured to encode received digit patterns (e.g., data received from host 102 and to be written to memory 1 10) in accordance with a mapping of received digit patterns to shaping digit patterns, as described further herein. The shaping component 1 14 (e.g., a shaping encoder and/or decoder) can also include circuitry configured to decode received digit patterns (e.g., data read from memory* 110 that has been encoded in accordance with the
aforementioned mapping). An example mapping is described further in connection with Figure 4. Although the term "bit" (e.g.. binary digit) is used in examples described herein, embodiments are not limited to a binary digit system.
[00231 Each of the error correction component i 1.2 and shaping component 5 14 can be discrete components such as an application specific integrated circuit (ASIC) or the components may reflect functionally provided by circuitry within the controller 108 that does not necessarily have a discrete physical form separate from other portions of the controller 108. Although illustrated as components within the controller 108 in Figure 1 , each of the error correciion component 1 12 and shaping component i 1 can be external to the controller 108 or have a number of components located within the conf.roi.ier 108 and a number of components located external to the controller 108. As illustrated in Figures 6A and 6B, the error correction component 1 12 and shaping component 1 14 can comprise separate encoding and decoding components, in a number of embodiments. {0024} The memory 1 .10 can include a number of arrays of memory cells (e.g., non-volatile memory cells). The arrays can. be flash arrays with a NA ) architecture, for example. However, embodiments are not limited to a part icular type of memory array or array architecture. Although floating-gate type .flash memory cells in a AN'D architecture are generally referred to herein, embodiments are not so limited. The memory cells can be grouped, for instance, into a number of blocks including a. number of physical pages. A number of blocks can be included in a plane of memory ceils and an array can include a number of planes. As one example, a memory device may be configured to store 8KB (kilobytes) of user data per page, 128 pages of user data per block, 2048 blocks per plane, and 16 planes per device.
{0025] In operation, data can foe written to and/or read from memory
1 10 as a page of data, for example. As such, a page of d a ta can be referred to as. a data transfer size of the memory system, Data can be sent to/from a host (e.g., host 1 2) in data segments referred to as sectors (e.g.. host sectors). As such, a sector of data can be referred to as a data transfer size of the host
{0026} According to a number of embodiments, controller 108 can be configured to control encoding each of a number of received bit patterns according to a mapping of received bit patterns to shaping bit patterns, wherein the .mapping of received bit patterns to shaping bit patterns obeys a shaping constraint that includes an uppermost amount of consecutive bits of the shaping bit patterns having a first bit value, The controller 108 can also control programming the encoded number of recei ved bit patterns to a group of memory cells (e.g., a page of memory cells associated with memory 1 1 ). As described further herein, the shaping constraint associated with the encoded bit patterns can result in skewing a proportion of programmed data states corresponding to lower threshold voltage (Vt) levels as 'compared to uniformly random bit patterns, for instance.
{00271 Figure 2 is a schematic of a portion of a memory 210 comprising an array o 'memory ceils operable in accordance with a number of embodiments of the present disclosure. The embodiment of Figure 2 illustrates a HAND architecture non-volatile memory array. However, embodiments described herein are not limited to this example. As shown in Figure 2, the memory array includes access lines (e.g., word lines 205-1 , . . ., 205-N) and intersecting data lines (e.g., local bit lines 207-1 , 07-2, 207-3, . . ., 207-M). For ease of addressing i the digital environment, the number of word lines 205-1 , . . ., 205- N and the number of local bit lines 207-1 , 207-2, 207-3, , . 207-M can be some power of two (e.g., 256 word lines by 4,096 bit li nes).
|¾028| The memory array includes N AND strings 209-1 , 209-2, 209-3,
. . 209-M. Bach NAND string includes non-volatile memory cells 21 1-1 , . . 21 1-N, each commanicatively coupled to a respective word line 205-1 , . . ., 205- N. Each NAND string (and it constituent memory cells) is also associated with a local bit line 207-1 , 207-2, 207-3, . . 207-M. The memory cells 21 i-i, . . .. 21 1-N of each NAND string 209-1, 209-2, 209-3, . . ., 209-M are coupled in series source to drai between a source select gate (SGS) (e.g., a field-effect transistor (FET) 213} and a drain select gate (SOD) (e.g,, PET 19). Each source select gate 213 is configured to selectively couple a respective NAND string to a common source 223 responsive to a signal on source select line 217, while each drain, select gate 219 is configured to selectively couple a respective NAND string to a respective bit line responsive to a signal on drain select line 215.
|0029| As shown in the embodiment illustrated in Figure 2, a source of source select gate 213 is coupled to a common source line 223. The drain of source select gate 213 is coupled to the source of the memory cell 21 1-1 of the corresponding NAND siring 209- 1. The drain of drain select gate 219 is coupled to bit line 207-1 of the corresponding NAND string 209- 1 at drain contact 221 - 1. l te source of drain select ga te 219 is coupled to the drain of the last memory ce.1l 21 1 -N (e.g., a floatin -gate transistor) of the corresponding NAND string 209- 1.
}0030| In a number of embodiments, construction, of the non-volatile memory cells 21 1-1, . . ., 21 1-N includes a source, 'a drain, a floating gate or other charge storage structure, and a control gate. The memory cells 21 1-1 , . . ., 2! 1 -N have their control gates coupled to a word line, 205-1 , . . ., 205-N, respectively. A NOR array architecture would be similarly laid out, except that the string of memory cells would be coupled in parallel between the select gates. Furthermore, a NOR architecture can provide for random access to the memory ceils in. the array (e.g., as opposed to page-based access as with a NAND architecture). {0Q3.1) In operation, a number of cells coupled to a selected word line
(e.g., 205- i, . . 205-N) can be written and/or read together as a group. A group of cells written and/or read together can be referred to as a page of cells and can store a number of pages of data. For instance, as described further below in association with Figure 3, the memory cells 2.1 .1-1 , . . 2.1 1 - can be multilevel cells configured to store more than one digit (e.g., bit) of data, m some such instances, the bits stored in each multilevel cell can correspond to different pages of data. For example, a first bit of a 2~h.it cell may correspond t a first page of data (e.g., a lower page), and a second bit of the 2-bit cell may correspond to a second page of data (e.g., an upper page). Cells storing more than two bits per cell may comprise a first, bit corresponding to a lower page of data, a second bit corresponding to an upper page of data, and one or more additional bits corresponding to one or more middle pages of data. A number of cells coupled to a. particular word line and programmed together to respective data states can be referred to as a target page. A programming operatio can include applyin a number of program pulses (e.g., 16V-20V) to a selected word line in order to increase the threshold voltage (Vt) of selected cells coupled to that selected word line to a desired voltage level corresponding to a targeted data state.
0 321 Read operations can include sensing a voltage and/or current change of a bit line coupled to a selected cell in order to determine the state of the selected ceil. The read operation can include precharging a bit line and sensing the discharge when a selected cell begins to conduct. One type of read operation comprises applying a ramping read signal to a selected word line, and another type of read operation comprises applying a plurality of discrete read signals to the selected word line to determine the states of the cells,
}0033| Figure 3 illustrates a diagram associated wit programming memory cells in accordance with a number of embodiments of the present disclosure. In this example, the memory cells are 3-bit memory cells with each cell being programmable to one of eight data states (e.g., LI to L8) each indicating a different 3-bit stored bit pattern (e.g.. I l l , 01 1 , 001 , Hit, 100, 000, 010, and 1 10). In a number of embodiments., each of the bits in the 3-bit stored bit pattern corresponds to a different page of data. For instance, the least significant bit (LSB) (right most bit shown as boxed in Figure 3) can contribute to a. first page of data (e.g., a lower page of data), the middle bit ca contribute to a second page of data (e.g., a middle page of data), and the most significant bit (MSB) (left most bit shown as surrounded by diamond symbol in Figure 3) can contribute to a third page of data (e.g., n upper page of data). As such, a page of ceils can store three pages of data, in this example,
|0034| However, embodiments are not limited to multilevel memory cells storing three bits of data. For instance, a number of embodiments can include memory cells configured to store more or fewer than three bits of data and/or a -fractional number of bits of data. Also, embodiments are not limited to the particular hit values assigned, to the data states LI to L8.
|0035| The diagram shown in Figure 3 illustrates threshold voltage (Vt) distributions of a number of cells after lower page programming (LPP) process 325, a middle page programming (MPP) process 327, and an upper page programming (UPP) process 129, As on e of ordinary skill in the art will appreciate, AND flash memory ceils can be erased prior to having new data programmed thereto .
(6036J As part of the LPP process 325, the Vt of the memory cells are adjusted (e.g., via programming pulses applied to a. selected word line) to one of two levels represented by Vt distributions 330-1 and 330-2. The voltage levels are represented by Vt distributions, which can reflect a statistical average Vt level of ceils programmed to a particular level. n this example, cells whose lower page is to store a bit value of " 1" (e.g., LP ~ I) are programmed to distribution 330- ! during LPP process 325, and cells whose lower page is to store a bit value of "CP (e.g.. LP ~ 0) are programmed to distribution 330-2 during LPP process 325.
|¾037 J As part of the MPP process 327, the Vt of the memory cells are adjusted to one of four levels represented by Vt distributions 332-1 , 332-2, 332- 3, and 332-4. In this example, cells whose middle page is to store a. bit value of *T' (e.g., MP ~ 1 ) are programmed to one of distributions 332-2 and 332-3 during MPP process 327, and cells whose middle page is to store a bit value of "0" (e.g., M P™ 0) are programmed to one of distributions 332-1 and 332-4 during MPP process 327,
|t)038 j As part of the UP process 329, the Vt of the memory cells are adjusted to one of eight levels represented by Vt distributions 334-1 to 334-8, which correspond to data states L I to L8, respectively, with each one of data states LI to L8 indicating a different 3-bit stored bit pattern. In this example, ceils programmed to data state L I store data "1.1 1 ceils programmed to data- state L2 store data "01 1 ," ceils programmed to data state 1,3 store data "001 " cells programmed to data state L4 store data "10L" ceils programmed to data state 1,5 store data "100," ceils programmed to data state I..6 store data "000," cells programmed to data state L7 store data "010.'' and cells programmed to data state L.8 store data "ί 10."
{0039J I i operation, cells programmed to higher Vt levels may have an increased retention noise as compared to cells programmed to lower Vi levels. For instance, the Vt of cells programmed to data states 1.7 and L8 may be more prone to increased shifting over time as compared to the Vt of cells programmed to data states LI and L2, As such, retention noise can be reduced by providing a coding scheme that skews the stored bit patterns toward those stored bit patterns corresponding to lower Vt levels, in the example illustrated in Figure 3, memory ceils storing bit patterns "100," 4Ό00," "010," and "1 10" (e.g., those ceil programmed to data states L5, 1.6, L7, and L8, respectively) correspond to cells whose Sower page stores bit value "0," Memory cells storing bi pattern "I I I ," "01 1 ," "001 ," and " 101" (e.g., those ceils programmed to data states LI, 12, L3, and 1 A respecti ely) correspond to cells whose lower page stores bit value "i Therefore, ceils storing bit value "1" in their lower page (e.g., ceil programmed to Vt distribution 330-1 during LFP process 325) have a lower Vt level than cells storing bit value "0" in their lower page (e.g., cells programmed to Vt distribution 330-2 during LPP process 325). If uniformly random, data is received (e.g., from, a host), it would be expected that the received data will comprise 50% "l"s and 50% "0"$, As such, according to the programming process shown in Figure 3, 50% of the cells (e.g., ceils storing hit value "I " in their lower page) would be programmed to one of data states Li to L4, and 50% of the ceils (e.g., cells storing bit value "0" in their lower page) would be programmed to one of data states L5 to LB. Moreover, if the received data is to be programmed to a group of ceils as a lo wer page of data, 50% of t he cells will be programmed to Vt distribution 330- i and 50% of the cells will be
programmed to Vt distribution 330-2,
100401 Therefore, retention noise can be reduced by encoding received bit patterns in accordance with a mapping of received bit patterns to shaping bit patterns such that when I e encoded bit patterns are programmed to a group (e.g., a page) of cells as at least a portion of a page of data (e.g., a lower page), the proportion of ceils whose lower page is programmed to a first bit value (e.g., ' ') as compared to the proportion of cells whose lower page is programmed to a second bit value (e.g., "0") is skewed (e.g., toward the bit value corresponding to those stored bit patterns corresponding to lower threshold voltage levels), {6041 j An example mapping of received digit (e.g., bit) patterns to shaping digit (e.g., bit) patterns is described further in association with Figure 4. In a number of embodiments, the mapping obeys a shaping constraint thai limits, to an uppermost amount, an amount of consecutive bits of the shaping bit patterns allowed to have a particular bit value. For instance, in order to skew programming of cells toward data states corresponding to lower Vt le vels, the shaping constrain t may limit the amount of consecutive "0s" in the shaping bit patterns. As art example, a shaping constraint cap be represented by (x, k), where "x" is the particular bit value (e.g.. "0" or and *4k" is the uppermost (e.g., maximum) amount of consecutive bits in the shaping bit patterns having bit value "x." For instance, a (0, 2) shaping constraint can indicate that the maximum amount of consecutive 4W in a string of shaping bit patterns is two. Similarly, a shaping constraint of ί L 4) can indicate that the maximum amount of consecutive " I s" in a string of shaping bit patterns is tour. Embodiments are not limited to a particular value of**kM. For example, in a number of embodiments *'k" has a value of four or less.
|0042] in a number of embodiments, only those received bit patterns to be written to a lower page of a group of memory ceils are encoded, in. accordance with the mappi ng of received bit patterns to shaping bit. patterns. For instance, a controller (e.g., controller 108 shown in Figure I ) can be configured to determine whether received data is to be written to the group of memor cells as a lower page of data, a middle page of data, or an upper page of data. In a number of embodiments, the received data is encoded in accordance with the mapping only if It is determined that the data is to be written to the group of cells as a lower page of data. In such embodiments, received data to be written to the upper page and received data to be written to one or more middle pages of the group of memory cells may not be encoded in accordance with the mapping. However, embodiments are not so limited. For example, in a number of embodiineiUs, data to be written to the upper page of a group of memory celts and/or data to be written to one or more middle pages of a group of memory ceils can be encoded with a mapping of received bit patterns to shaping bit patterns. The mapping of received bit patterns to shaping bit patterns can be different for those bit patterns to be written to a lower page than the mapping for those bit patterns to be written to a middle page and/or an upper page of the group of memory celts,
{0043} As an example, the mapping of received bit patterns to mapping bit pattern can comprise a fixed number of -bit received bit patterns and a corresponding fixed number of N-bit shaping bit patterns. In a number of embodiments, N is greater than , Also, in a number of embodiments, N can be equal to M + 1, For instance. Figure 4 illustrates a mapping 440 between sixteen 4-bit received bit patterns 442 and a corresponding sixteen 5-bit shaping bit patterns 444. The received bit patterns 442 can represent data incoming (e.g., to a controller such as controller 108 shown in Figure 5) from a host (e.g., host 502 shown in Figure I), for instance. As shown in Figure 4, each 4-bit received bit pattern 442 maps to a particular 5-bit shaping bit pattern 444, In this example, the mapping 440 obeys a (0, 2) shaping, constraint. That is, none of the shaping bit patterns 444 comprises more than two consecutive data values of "0." The (0, 2) shaping constraint corresponding to mapping 440 also ensures that strings of the shaping bit patterns 444 do not i nclude more than two consecuti ve data values of "Q,"
{0044} in operation, received data (e.g., a number of received 4-bit bit patterns 442) is encoded in. accordance with mapping 440 and then the encoded data (e.g., a number of shaping 5-bit bit patterns 444} is programmed to memory (e.g., memory 1 1.0 shown in Figure I and .memory 210 shown in Figure 2). As such, this mapping example illustrated in Figure 4 achieves a code rate of 4/5 (80%), That is, there is a 1/5 (20%) overhead associated with mapping 440 since it takes 20% more bits to represent a particular amount of data. However, en the mapping.440 is applied to approximately uniformly random data, it yields about 62% "Is" and 38% "0s" in the encoded data (e.g.. as compared to a 50/50 mix of "0s" and "Is" for unencoded uniformly random data). As such, when mapping 440 is employed in association with programming a lower page of data (e.g., LPP process 325 shown in. Figure 3), for example, about 62% of cells will store "! " in their lower page and about 38% will store "0" in their lower page. Therefore, even if the mapping 440 is .not used in association with programmin the upper pages or middle pages of the cells, the stored bit patterns of the cells (e.g., after upper page programming) will be skewed toward stored bit patterns whose LSB (e.g., lower page) has a bit value of4*!'* (e.g., toward data states corresponding to lower Vt levels).
{0045] Embodiments are not limited to the mapping 440 described in
Figure 4, For example, mappings other than mapping 440 can be used to achieve a (0, 2) shaping constraint, and embodiments are not Limited to a particular shaping constraint. As indicated in 'Fable i below, the code rates achievable via particular shaping constraints increase as the value of !*k" increases. For instance, as shown in Table 1 , increasing the limit on the uppermost amount of consecutive bits in the shaping bit patterns allowed to hav a bit value of "0" increases the maximum code rate achievable via a particular "k" value.
Table 1
Figure imgf000014_0001
As such, providing shaping constraints with higher "k" values increases the maximum -possible code rates, which can decrease overhead associated with mappings; however, providing shaping constraints with higher "k*" values also decreases the ability of an associated mapping to ske programmed data (e.g., toward lower Vt levels) since the proportion of "Is" and *W in the encoded bit patterns will be closer to 50/50, As one example, a mapping of 16-bit received bit patterns to I 7-bit shaping bit patterns (hat obeys a (0, 4) constraint can achieve a code rate of about 94% ( 16/17) and can achieve a distribution of about. 57% "I s" and 43% "0s" in the encoded data. As such, the 16: i 7 mapping achieves a higher code rate than the 4:5 mapping 440 shown in Figure 4, but achieves a lesser amount of skew of " I s"/ "0s" in the encoded data (e.g., 57/43 versus 62/38).
{0046] Figure 5 A is a diagram 550 illustrating proportions of stored bit patterns associated with memory cells programmed in accordance with the prior art. The example illustrated in figure 5A corresponds to memory ceils programmed to one of eight data states, which each represent a different stored 3-bit bit pattern. The memory ceils can be programmed vi a lower page, middle page, and upper page programming process such as that described in association with figure 3. During lower page programming, the cells are programmed to one of two Vt levels (e.g., 50% to each Vt level assuming uniformly random data). During 'middle page programmi ng, the ceils are programmed to one of four Vt levels (e.g., 25% to each Vi .level assuming uniformly random data). During upper page programming, the eelis are programmed to one of eight Vt levels (e.g., 12.5% to eac Vt level assuming uniformly random data). As such, the likelihood of a ceil storing each of the eight different 3-bit bit. patterns is .12.5%, as shown in Figure SA,
{O047J Figure 5B is a diagram 560 illustrating proportions of stored bit patterns associated with memory cells programmed in accordance with the mappin shown in Figure 4, As such, the example illustrated in Figure SB corresponds to memory cells programmed to one of eight data, states, which each represent a different stored 3-bit bit pattern. The memory cells can be programmed via a lower page, middle page, and upper page programming process such as that described in association with figure 3, However, in a number of embodiments, the received bit pa tterns to be written to at least one of the lower page, middle page, and upper page of the cells are encoded in accordance with, embodiments described herein. For instance, in the example illustrated in Figure 5B, received bit patterns (e.g.. received bit patterns 442) are encoded in accordance with the mapping 440 shown in Figure 4, which obeys a (0, 2) shaping constraint:. As such, during a lower page programming process, the encoded bit patterns (e.g., shaping bit patterns 444) are written to the lower page of a group (e.g., a page) of memory cells. Due to the encoding associated with mapping 440, the proportion of cells having a lower page data value of "I" versus a data value of"0" is about 62,4% / 37.6% (e.g., assuming uniformly random received data).
|f)048| As described above, the mapping 440 can skew the stored bit patterns toward thos stored bit patterns corresponding to lower Vt levels (e.g., toward bit patterns "I I 1 ," " 1 1 ," "001," and "101", in this example). Assuming received bit pattern to b written to a middle page and an upper page of the cells are not encoded in. accordance with the mapping 440 (e.g., only data to be written to lower pages are encoded in accordance with the mapping 440), the proportions of stored bit patterns will be as illustrated in diagram 560. That is, about 15.6% of the group of cells will store bit pattern "11 1." about 15.6% of the group of cells will store bit patteni "01 1 about, 15.6% of the group of cells will store bit patteni "001 ," about 15.6% of the group of ceils will store bit pattern "101." about 9.4% of the group of cells will store bit pattern "100," about 9.4% of the group of ceils will store bit pattern. "000," about 9,4% of the group of cells will store bit pattern "01 ," and about 9.4% of the group of ceils will store bit pattern " ! 10," As such, as compared to the prior art example of Figure 5 A, cells programmed in accordance with a number of embodiments of the present disclosure, such as that shown in Figure SB, can have an increased proportion, of cells programmed to data states corresponding to lower Vt levels. Therefore, embodiments of the present disclosure can reduce the likelihood of data retention noise as compared to previous approaches, among other benefits, |w049j Figures 6 A and 6.B illustrate each illustrate a block diagram of a portion of an apparatus associated with shaping codes for memory in accordance with a number of embodiments of the present disclosure. The examples illustrated in Figures 6A and 6B include an error correction code ( CC) encoder 612-1» a shaping encoder 61 -1 , a memory J 0, a shaping decoder 6 i 4-2, and an ECC decoder 612-2.
{0050J The ECC encoder 12- 1 can comprise an. algebraic error correction circuit such as one of the group including a Bose~Chaudhuri~
Hocquenghem (BCM) error correction circuit and a Reed Solomon error correction circuit, among other type of error correction circuits. The ECC encoder 6! 2-1 can,, for instance, add parity bits to incoming bit patterns received thereto. The ECC decoder 612-2 can decode ECC encoded data received thereto.
[0051] The shaping encoder 614-1 can include, for example, circuitry configured to encode received bit patterns in. accordance with a mapping of received bit patterns to shaping bit patterns, as described above. The shaping decoder 6.14-2 can also include circuitry configured to decode received bit patterns (e.g., data read from memory 610 that has been encoded in accordance with the aforementioned mapping.).
|¾0S2] Irs Figures 6A and 68, arrow 603-1 represents incoming data from a host (e.g., host 102 described in Figure I ) to be written to memory 610. In apparatus 680, the incoming data 603- 1 is encoded via ECC encoder 612-1 prior to being encoded via shaping encoder 61 -1 and then the encoded data is written to memory 610. As such, error correction data (e.g., parity bits), which, arc added to data 603- 1 via ECC encoder 612- 1 are also encoded in accordance with the mapping via shaping encoder 614-1 prior to being written to memory 61.0. When the data stored in memory is read from the memory 610 (e.g., in response to a read command), the shaping decoder 634-2 can decode the read data in accordance with the mapping, the ECC decoder 612-2 can decode the ECC encoded data, and the user data can be provided back io the host (e.g., as indicated by arrow 603-2,
|00S3] in apparatus 690, the incoming data 603- 1 is encoded via ECC encoder 612- 1 after being encoded via shaping encoder 614- 1 and then the encoded data is written to memory 10, As such, error correction data (e.g., parity hits), which are added via ECC encoder 612-1 are not encoded in accordance with the mappin via shaping encoder 614-1 prior to being written to memory 10. Not encoding the error correction data via shaping encoder 14-1 can reduce the number of o verhead bits added to the recei ved data 603-1 (since the error correction parity bits added to the received data 603-1 will not be subject to encoding via shaping encoder 614- 1 ). In response to a read command, the data read from memory (e.g., a page of data) can. be decoded via ECC decoder 12-2 prior to being decoded via the shaping decoder 614-2, and the user data can be provided back to the host.
00541 Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement calculated to achieve the same results can he substituted for the specific embodiments shown. This disclosure is intended to cover adaptations or variations of various embodiments of the present disclosure. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Combination of the above embodiments, and other embodiments not. specifically described herein will be apparent to those of skill in the art upon reviewing the above description. The scope of the various embodiments of the present disclosure includes other applications in which the above structures and methods are used. Therefore, the scope of various embodiments of the present disclosure should be determined with reference to the appended claims, alon with the full range of equivalents to which such claims are entitled,
{0055] in the foregoing Detailed Description, various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure Is not to be interpreted as reflecting an intention that the disclosed embodiments of the present disclosure have to use more features than are expressly recited in each claim. Rather, as the following claims reflect, inventi ve subject matter lies in less than ail features of a single disclosed embodiment. T us, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.

Claims

What is claimed is:
1. An apparatus, comprising:
an array of memory cells; and
a shaping encoder coupled to the array and configured to encode each of a number of recei ved digit patterns according to a mapping of received digit patterns to shaping digit patterns;
wherein the mapping of .received digit patte rns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost amount, an amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value.
2. The apparatus of claim I , wherein, the mapping is such that a string of the number of received digit patterns encoded in accordance with the mapping and corresponding to a page of data does not violate the shaping constraint,
3. The apparatus of claim h wherein the apparatus further comprises a controller coupled to the array and configured to control programming each digit of the encoded number of received digit patterns to a separate memory cell of a group of memory cells,
4. The apparatus of claim 3, wherein each memory cell of the group b configured to store multiple digits of data, the multiple digits of data comprising at. least a first digit corresponding to a lower page of data and a second digit correspond ing to an upper page of data.
5. The apparatus of claim 3, wherein programming each digit of the encoded number of received digit patterns to a separate memory cell of the group further comprises programming o l digits corresponding to a lower page of data to the memory ceils.
6. The apparatus of any one of claims I -5, wherein the mapping comprises a fixed number of received -digit digit patterns and a corresponding fixed number of shaping N-digit digit patterns, wherein N is greater than M
7. The apparatus of any one of claims 1 -5, wherein the shaping constraint limits, to the uppermost amount, the amount of consecutive digits of the shaping digit patterns allowed to have at least one of:
a digit value of "0"; and
a digit value οί'Τ'.
8. The apparatus of claim 7, wherein the uppermost amount is four or fewer.
9. An apparatus, comprising:
an array of memory cel ls; and
a controller coupled to the array and configured, to control:
encoding each of number of rece ived digit patterns according to a mapping of received digit patterns to shaping digit patterns, whereto the mapping of received digit patterns to shaping digit patterns obeys a shaping constraint that includes an uppermost amount of consecutive digits of the shaping digit patterns having a first digit value; and
programming the encoded number of received digit patterns to a group of .memory cells.
10. The apparatus of claim 9> w herei n the memory cells of the group are multilevel cells each configured to store digits corresponding to at least two different, pages of data,
1 1. The apparatu of claim 10, wherein the at least two different pages of data comprises a lower page of data and art uppe page of data, and wherein the controller is configured to program the encoded number of received digit patterns only to the lower pages of the memory ceils.
12. The apparatus of claim I. i, wherein the controller is further configured to control programmin a subsequent number of received digit patterns to the upper pages of the memory cells, and wherein the subsequent number of received digit patterns are not encoded according to the mapping of received dig t patterns to shaping digit patterns.
.
13. The apparatus of any one of claims 9- 12, wherein the mapping of received digit patterns to shaping digit patterns comprises a mapping of a number of M-dig.it digit patterns to N-digit digit patterns, wherei N is greater than M,
14. The apparatus of cl im 13, wherein N equals + L
15. The apparatus of any one of claims 9- 12, wherein the number of received digit patterns are error encoded digit patterns,
16. The apparatus of any one of claims 9- ! 2, wherein the memory cells are multilevel memory cells programmable to one of multiple data states, with each of the multiple data states corresponding io a particular stored digit pattern, and wherein the shaping constraint is configured to skew the stored digit patterns of the memory cells toward those stored digit patterns corresponding to lower threshold voltage levels.
! 7. An apparatus, comprising:
an array of memory cells programmable to a number of different data states each corresponding to one of a respective number of stored digit patterns comprising at least a first digit corresponding to a lower page of data and a second digit corresponding to an upper page of data; and
a controller coupled to the array and configured to control:
encoding each of a number of recei ved digi t patterns accordi ng to a mapping of received digit paitems to shaping digit patterns, wherein the mappin obeys a shaping constraint that constrains, to an uppermost amount, an amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value; and
performing a lower page programming process on a group of memory cells to program the encoded number of received digit patterns to the group of memory cells as lower page data,
18. The apparatus of claim it, wherein performing the lower page programming process comprises programming, to each memory cell of the group, a least significant digit of a stored digit pattern corresponding to a particular data state to which the respective ceils are to be programmed.
19. The apparatus of claim 17» wherein the controller is configured to control subsequently programming upper page data to the group of memory cells, wherein the upper page data is not encoded in accordance with the mapping.
20. The apparatus of any one of claims 1.7- 19, wherein the apparatus comprises:
a shaping encoder configured to encode the number of received digit patterns according to the mapping; and
a shaping decoder co.niigured to decode lower page data read from the grou of memory ceils based on the mapping.
21. The apparatus of claim 20, w herein the shaping encoder and the shaping decoder are located on the controller..
22. A method, comprising:
encoding eac of a number of received digit patterns according to a mapping of recei ved digit patterns to shaping digit patterns, wherein the mapping of received digit patterns to shaping digit patterns obeys a shaping constraint thai includes an uppermost amount of consecutive dig ts of the shaping digit patterns having a first digit value; and
programming the encoded number of received digit patterns to a group of memory cells as at least a portion of a page of data.
23. The method of claim 22, wherein programming the encoded number of received digit patterns to the group of memory cells as the at least a portion, of a page of data comprises performing a lower page programm ing process .
24. The method of claim 22, wherein the method includes providing a mapping such that the number of encoded digit patterns achieve a particular proportion of digit values to "P digit values,
25. The -method of claim 22, wherein the method includes, prior to encoding each of the -number of recei ed digit patterns:
determining whether the number of rec i ed digit patterns are to be written to the group .of cells as at least a -portion of a lower page of data; and encoding the number of received digit patterns only if the number of received digit, patterns are to be written to the group of cells as at least a portion, of a lower page of data.
26. The method of any one of claims .22-25, wherein the method includes encoding each of the number of received digit patterns via a shaping component
27. The method of any one of claims 22-25., wherein programming the encoded number of received digit patterns to a group of memory cells as at least a portion of a page of data includes programming the encoded number of received digit patterns via a controller coupled to an array of memory cells comprising the group of memory ceils.
28. An apparatus, comprising:
an error correction code (ECC) encoder configured to receive a digit pattern, and. add error correction data to the received digit pattern;
a shaping encoder coupled to the ECC encoder and configured to encode the received digit pattern and encode the added error correcti n data in accordance with a mapping of digit patterns to shaping digit patterns; and
a memory coupled to the shaping encoder, wherein, the mapping of digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost amount, an amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value.
29. The apparatus of claim 28, wherei n, the ECC encoder and the shaping encoder reside on a controller.
30. The apparatus of claim 29, wherein the controller is configured to control programming the encoded received digit pattern and the encoded added error correction data to the memory.
31. The apparatus of claim 29, wherein the shapin encoder is configured to encode the received digit pattern and encode the added error correction date in accordance with the mapping of digit patterns to shaping digit patterns onl when the received digit pattern is to be programmed to a group of memory ceils as a lower page of data .
32. The apparatus of claim 29, wherein the memory comprises multilevel memory cells programmable to one of multiple data states, with each of the multiple data states corresponding to a particular stored digit pattern, and wherein the shaping constraint is configured to skew the stored digit patterns of the memory cells toward those stored digit patterns corresponding to lower threshold voltage levels,
33. An apparatus, comprising:
a shaping encoder configured to recei ve a digit pattern, and encode the received digit pattern in accordance with a mapping of received digit patterns to shaping digit patterns;
an error correction code (ECC) encoder coupled to the shaping encoder and configured to add error correction data to the encoded received digit pattern; and
a memory coupled to the ECC encoder, wherein the mappi ng of received digit patterns to shaping digit patterns obeys a shaping constraint that limits, to an uppermost amount, m amount of consecutive digits of the shaping digit patterns allowed to have a particular digit value,
34. The apparatus of claim 33, wherein the shaping encoder and the ECC encoder reside on a controller. 35, The apparatus of any one of claims 33-34, wherein the controller is configured to control programming the encoded received digit patter and the added error correciion data to the memory.
PCT/US2013/070303 2012-11-21 2013-11-15 Shaping codes for memory WO2014081632A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020157016144A KR101752987B1 (en) 2012-11-21 2013-11-15 Shaping codes for memory
EP13856826.6A EP2923270B1 (en) 2012-11-21 2013-11-15 Shaping codes for memory
JP2015542819A JP6059358B2 (en) 2012-11-21 2013-11-15 Formatted codes for memory
CN201380065908.4A CN104871142B (en) 2012-11-21 2013-11-15 Shaping code for memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/683,440 US8984369B2 (en) 2012-11-21 2012-11-21 Shaping codes for memory
US13/683,440 2012-11-21

Publications (1)

Publication Number Publication Date
WO2014081632A1 true WO2014081632A1 (en) 2014-05-30

Family

ID=50729145

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/070303 WO2014081632A1 (en) 2012-11-21 2013-11-15 Shaping codes for memory

Country Status (7)

Country Link
US (2) US8984369B2 (en)
EP (1) EP2923270B1 (en)
JP (1) JP6059358B2 (en)
KR (1) KR101752987B1 (en)
CN (1) CN104871142B (en)
TW (1) TWI536391B (en)
WO (1) WO2014081632A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019169216A (en) * 2018-03-22 2019-10-03 東芝メモリ株式会社 Memory system

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405624B2 (en) * 2014-06-19 2016-08-02 Seagate Technology Llc On-die error detection and correction during multi-step programming
US9672102B2 (en) * 2014-06-25 2017-06-06 Intel Corporation NAND memory devices systems, and methods using pre-read error recovery protocols of upper and lower pages
KR102247087B1 (en) * 2014-07-08 2021-05-03 삼성전자주식회사 Storage device and operating method of storage device
US20160098197A1 (en) * 2014-10-06 2016-04-07 SanDisk Technologies, Inc. Nonvolatile memory and method with state encoding and page-by-page programming yielding invariant read points
US9727261B2 (en) 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
US10114549B2 (en) 2016-03-17 2018-10-30 Sandisk Technologies Llc Error correction code processing and data shaping for reducing wear to a memory
US10593398B2 (en) 2016-09-13 2020-03-17 Toshiba Memory Corporation Semiconductor storage device including a controller configured to execute a first write and a second write
JP6860787B2 (en) * 2017-07-25 2021-04-21 富士通株式会社 Memory control circuit, memory, and memory control method
US10972215B2 (en) * 2018-03-09 2021-04-06 Nokia Solutions And Networks Oy Methods and apparatus for joint use of probabilistic signal shaping and forward error correction
JP7213712B2 (en) * 2019-02-14 2023-01-27 キオクシア株式会社 Nonvolatile semiconductor memory device
KR20210013397A (en) * 2019-07-24 2021-02-04 삼성전자주식회사 Storage device
KR20210062845A (en) 2019-11-22 2021-06-01 삼성전자주식회사 Method of controlling operation of nonvolatile memory device and data converter for performing the same
KR20210094696A (en) 2020-01-21 2021-07-30 삼성전자주식회사 Non-volatile memory device, storage device and program method thereof
WO2022013589A1 (en) * 2020-07-14 2022-01-20 Micron Technology, Inc Methods and systems for improving access to memory cells
JP2022047393A (en) * 2020-09-11 2022-03-24 キオクシア株式会社 Memory system, semiconductor storage device, and data reading method
US20240020223A1 (en) * 2022-07-18 2024-01-18 Micron Technology, Inc. Center allocation data structure

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100202198A1 (en) 2009-02-09 2010-08-12 Samsung Electronics Co., Ltd. Semiconductor memory device and data processing method thereof
US20100269016A1 (en) * 2009-04-16 2010-10-21 Micron Technology, Inc. Multiple-level memory cells and error detection
US20110286271A1 (en) * 2010-05-21 2011-11-24 Mediatek Inc. Memory systems and methods for reading data stored in a memory cell of a memory device
US20120054582A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Detecting corrupted data for a system having non-volatile memory
US20120147672A1 (en) * 2007-10-31 2012-06-14 Micron Technology, Inc. Fractional bits in memory cells
US20120266043A1 (en) * 2011-04-12 2012-10-18 Mitsuru Nakura Semiconductor memory device

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
WO2001080249A1 (en) * 2000-04-19 2001-10-25 Fujitsu Limited Data write/read control method and memory device
US6794997B2 (en) 2003-02-18 2004-09-21 Sun Microsystems, Inc. Extending non-volatile memory endurance using data encoding
US8848442B2 (en) 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US7984360B2 (en) * 2006-12-31 2011-07-19 Ramot At Tel Aviv University Ltd. Avoiding errors in a flash memory by using substitution transformations
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
US7675783B2 (en) 2007-02-27 2010-03-09 Samsung Electronics Co., Ltd. Nonvolatile memory device and driving method thereof
EP1990918A1 (en) * 2007-05-07 2008-11-12 Deutsche Thomson OHG Method and apparatus for channel coding
US7802132B2 (en) 2007-08-17 2010-09-21 Intel Corporation Technique to improve and extend endurance and reliability of multi-level memory cells in a memory device
US7573969B2 (en) 2007-09-27 2009-08-11 Sandisk Il Ltd. Counter using shift for enhanced endurance
EP2592553B1 (en) * 2008-03-11 2015-11-18 Agere Systems, Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US7808819B2 (en) 2008-04-29 2010-10-05 Sandisk Il Ltd. Method for adaptive setting of state voltage levels in non-volatile memory
US8756365B2 (en) 2009-02-12 2014-06-17 Ramot At Tel Aviv University Ltd. Apparatus and method for enhancing flash endurance by encoding data
US8004900B2 (en) 2009-03-17 2011-08-23 Sandisk Technologies Inc. Controlling select gate voltage during erase to improve endurance in non-volatile memory
US7848152B1 (en) 2009-05-12 2010-12-07 Skymedi Corporation Method and system for adaptively finding reference voltages for reading data from a MLC flash memory
US8036016B2 (en) 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance
JP2011141914A (en) 2010-01-05 2011-07-21 Siglead Inc Input/output control method and device of nand type flash memory
JP2011204304A (en) * 2010-03-25 2011-10-13 Toshiba Corp Data memory device, and method of writing the same
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9070427B2 (en) * 2010-08-13 2015-06-30 Sandisk Technologies Inc. Data coding using divisions of memory cell states
CN103140894B (en) 2010-08-17 2017-08-22 技术研究及发展基金公司 Mitigate unit effects of coupling between in nonvolatile memory (NVM) unit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120147672A1 (en) * 2007-10-31 2012-06-14 Micron Technology, Inc. Fractional bits in memory cells
US20100202198A1 (en) 2009-02-09 2010-08-12 Samsung Electronics Co., Ltd. Semiconductor memory device and data processing method thereof
US20100269016A1 (en) * 2009-04-16 2010-10-21 Micron Technology, Inc. Multiple-level memory cells and error detection
US20110286271A1 (en) * 2010-05-21 2011-11-24 Mediatek Inc. Memory systems and methods for reading data stored in a memory cell of a memory device
US20120054582A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Detecting corrupted data for a system having non-volatile memory
US20120266043A1 (en) * 2011-04-12 2012-10-18 Mitsuru Nakura Semiconductor memory device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2923270A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019169216A (en) * 2018-03-22 2019-10-03 東芝メモリ株式会社 Memory system

Also Published As

Publication number Publication date
US20140143631A1 (en) 2014-05-22
EP2923270A1 (en) 2015-09-30
EP2923270B1 (en) 2018-08-01
US9405622B2 (en) 2016-08-02
CN104871142B (en) 2017-12-15
TWI536391B (en) 2016-06-01
JP6059358B2 (en) 2017-01-11
US8984369B2 (en) 2015-03-17
TW201432706A (en) 2014-08-16
CN104871142A (en) 2015-08-26
KR20150087337A (en) 2015-07-29
EP2923270A4 (en) 2016-06-29
JP2016504658A (en) 2016-02-12
US20150178158A1 (en) 2015-06-25
KR101752987B1 (en) 2017-07-03

Similar Documents

Publication Publication Date Title
EP2923270A1 (en) Shaping codes for memory
CN109196479B (en) Error Correction Code (ECC) operations in memory
US9941022B2 (en) Setting a default read signal based on error correction
JP6122152B2 (en) Judgment of soft data using classification code
US11243838B2 (en) Methods and apparatuses for error correction
US20130346812A1 (en) Wear leveling memory using error rate
EP2751659A1 (en) Apparatuses and methods of operating for memory endurance
US9697892B1 (en) Generation and application of gray codes
CN108701491B (en) Method and apparatus for error rate reduction
US9952981B2 (en) Read cache management in multi-level cell (MLC) non-volatile memory
US20190123768A1 (en) Error correction code (ecc) operations in memory

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: 13856826

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015542819

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013856826

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20157016144

Country of ref document: KR

Kind code of ref document: A