US7782666B2 - Apparatus and method of multi-bit programming - Google Patents

Apparatus and method of multi-bit programming Download PDF

Info

Publication number
US7782666B2
US7782666B2 US12/076,392 US7639208A US7782666B2 US 7782666 B2 US7782666 B2 US 7782666B2 US 7639208 A US7639208 A US 7639208A US 7782666 B2 US7782666 B2 US 7782666B2
Authority
US
United States
Prior art keywords
threshold voltage
programming
bit
state
data
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related, expires
Application number
US12/076,392
Other versions
US20090109748A1 (en
Inventor
Kyoung Lae Cho
Yoon Dong PARK
Jun Jin Kong
Seung Hoon Lee
Jung Hun SUNG
Sung-jae Byun
Seung-Hwan Song
Donghun YU
Sung Chung Park
Heeseok Eun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Assigned to SAMSUNG ELECTRONICS CO., LTD. reassignment SAMSUNG ELECTRONICS CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BYUN, SUNG-JAE, CHO, KYOUNG LAE, EUN, HEESEOK, KONG, JUN JIN, LEE, SEUNG HOON, PARK, SUNG CHUNG, PARK, YOON DONG, SONG, SEUNG-HWAN, SUNG, JUNG HUN, YU, DONGHUN
Publication of US20090109748A1 publication Critical patent/US20090109748A1/en
Application granted granted Critical
Publication of US7782666B2 publication Critical patent/US7782666B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • 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/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Definitions

  • Example embodiments relate to apparatuses and/or methods that may program data in memory devices. Also, example embodiments relate to multi-bit (multi-level) programming apparatuses and/or methods that may program data in multi-level memory devices.
  • a single-level cell (SLC) memory device stores one bit of data in a single memory cell.
  • the SLC memory is referred to as a single-bit cell (SBC) memory.
  • the SLC memory stores and reads data of one bit at a voltage level included in two distributions that are divided by a threshold voltage level programmed in a memory cell.
  • the programmed threshold voltage has a distribution within a certain range due to a fine electric characteristic difference between the SLC memories. For example, when a voltage level read from the memory cell is greater than 0.5V and less than 1.5V, it is determined that the data stored in the memory cell has a logic value of “1”.
  • the data stored in the memory cell has a logic value of “0”.
  • the data stored in the memory cell is classified depending on the difference between cell currents and/or cell voltages during the reading operations.
  • MLC multi-level cell
  • MLC multi-bit cell
  • an MLC memory device is being widely used and thus new multi-level (multi-bit) programming apparatuses and/or methods of changing a data storing process are proposed in order to reduce a read-failure rate in the present specification.
  • Example embodiments may provide apparatuses and/or methods that may apply a new multi-level (multi-bit) programming scheme to a multi-level cell (MLC) memory device and thereby reduce a read-failure rate.
  • multi-bit multi-level programming scheme
  • MLC multi-level cell
  • Example embodiments also may provide apparatuses and/or methods that may apply a new multi-level (multi-bit) programming scheme to an MLC memory device and thereby efficiently adjust a distribution of a threshold voltage of an MLC in a limited voltage window.
  • multi-level programming scheme multi-bit
  • a multi-bit programming apparatus may include: a first control unit that allocates any one of 2 N threshold voltage states to the N-bit data; a second control unit that spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2 N threshold voltage states; and a programming unit that programs the N-bit data by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
  • a multi-bit programming method that programs N-bit data in at least one multi-bit cell may include: allocating any one of 2 N threshold voltage states to the N-bit data; spacing, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2 N threshold voltage states; and programming the N-bit data in each of the at least one multi-bit cell by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
  • FIG. 1 is a diagram illustrating a multi-bit programming apparatus according to an example embodiment
  • FIG. 2 is a graph illustrating an example of a distribution of threshold voltages of multi-bit cells in a multi-bit cell array generated by a multi-bit programming apparatus of FIG. 3 ;
  • FIG. 3 is a diagram illustrating a multi-bit programming apparatus according to another example embodiment
  • FIG. 4 is a graph illustrating another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array generated by the multi-bit programming apparatus of FIG. 3 ;
  • FIG. 5 is a graph illustrating still another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array generated by the multi-bit programming apparatus of FIG. 3 ;
  • FIG. 6 is a graph illustrating yet another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array generated by the multi-bit programming apparatus of FIG. 3 ;
  • FIG. 7 is a flowchart illustrating a multi-bit programming method according to an example embodiment.
  • first, second, third, etc. may be used herein to describe various elements, components, regions, layers, and/or sections, these elements, components, regions, layers, and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer, and/or section from another element, component, region, layer, and/or section. For example, a first element, component, region, layer, and/or section could be termed a second element, component, region, layer, and/or section without departing from the teachings of example embodiments.
  • FIG. 1 is a diagram illustrating a multi-bit programming apparatus 100 according to an example embodiment.
  • the multi-bit programming apparatus 100 programs N ⁇ M-bit data in a page 141 of a multi-bit cell array 140 .
  • the page 141 includes simultaneously-programmed ‘M’ multi-bit cells.
  • N-bit data is programmed in at least one multi-bit cell.
  • the multi-bit programming apparatus 100 may include a first control unit 110 , a second control unit 120 , and a programming unit 130 .
  • the first control unit 110 allocates any one of 2 N threshold voltage states to the N-bit data.
  • the first control unit 110 allocates any one of four threshold voltage states to the 2-bit data.
  • the first threshold voltage state is allocated to data “11”, and the second threshold voltage state is allocated to data “10”.
  • the third threshold voltage state is allocated to data “01”, and the fourth threshold voltage state is allocated to data “00”.
  • the first control unit 110 allocates any one of the 2 N threshold voltage states to the data programmed in each of a plurality of multi-bit cells included in the page 141 .
  • each of the threshold voltage states allocated by the first control unit 110 is the threshold voltage state in which a mutual sequence is determined.
  • the second threshold voltage state denotes a threshold voltage higher than the first threshold voltage state
  • the third threshold voltage state denotes a threshold voltage higher than the second threshold voltage state.
  • the second control unit 120 spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2 N threshold voltage states.
  • the second control unit 120 may set an interval between the first threshold voltage state and the second threshold voltage state as the first interval, and set an interval between the second threshold voltage state and the third threshold voltage state as the second interval.
  • the programming unit 130 generates, in each of the multi-bit cells of the page 141 , a distribution state corresponding to the allocated threshold voltage state.
  • each of the multi-bit cells may be regarded as storing the data corresponding to the threshold voltage state.
  • the data stored in the first multi-bit cell is “11”.
  • the distribution state generated in the second multi-bit cell corresponds the third threshold voltage state, the data stored in the second multi-bit cell is “01”.
  • FIG. 3 is a diagram illustrating a multi-bit programming apparatus 300 according to another example embodiment.
  • the multi-bit programming apparatus 300 programs N ⁇ M-bit data in a page 361 of a multi-bit cell array 360 .
  • the page 361 includes simultaneously-programmed ‘M’ multi-bit cells.
  • the multi-bit programming apparatus 300 may include a first control unit 310 , a second control unit 320 , a programming unit 330 , a verification unit 340 , and a detection unit 350 .
  • the first control unit 310 allocates any one of 2 N threshold voltage states to the N-bit data.
  • the second control unit 320 spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2 N threshold voltage states.
  • the programming unit 330 generates, in each of the multi-bit cells of the page 361 , a distribution state corresponding to the allocated threshold voltage state.
  • each of the multi-bit cells may be regarded as storing the data corresponding to the threshold voltage state.
  • the verification unit 340 measures a threshold voltage of each of the multi-bit cells of the page 361 .
  • the verification unit 340 compares the measured threshold voltage of each of the multi-bit cells and a verification voltage.
  • the verification unit 340 verifies whether the distribution state corresponding to the allocated threshold voltage state is generated in each of the multi-bit cells based on a comparison result.
  • the verification voltage corresponds to the allocated threshold voltage state.
  • Each of the 2 N threshold voltage states has the verification voltage corresponding to each of the 2 N threshold voltage states.
  • the verification unit 340 may feed back a verification result to the programming unit 330 , and the programming unit 330 may determine whether to additionally perform programming of each of the multi-bit cells based on the fed-back verification result.
  • the verification unit 340 determines that the distribution state corresponding to the allocated threshold voltage state is not generated in each of the multi-bit cells.
  • the verification unit 340 feeds back, to the programming unit 330 , a determination result of the multi-bit cells in which the distribution state is not generated.
  • the programming unit 330 continuously performs the programming of the multi-bit cells to which the determination result that the distribution state is not generated is fed back.
  • the threshold voltage of the multi-bit cells additionally programmed by the programming unit 330 increases.
  • the programming unit 330 may perform the programming during a predetermined time via a unit programming operation.
  • the verification unit 340 compares the measured threshold voltage of each of the multi-bit cells and the verification voltage after the first unit programming operation is completed.
  • the verification unit 340 feeds back, to the programming unit 330 , a comparison result of the multi-bit cells in which the measured threshold voltage is lower than the verification voltage.
  • the programming unit 330 performs the second unit programming operation of the multi-bit cells corresponding to the fed-back comparison result.
  • the programming unit 330 performs the unit programming operation until the distribution state corresponding to the allocated threshold voltage state is generated in all the multi-bit cells in the page 361 .
  • the second control unit 320 adjusts the distribution states generated by the programming unit 330 by adjusting the verification voltage.
  • the second control unit 320 may adjust an interval between the threshold voltage states by adjusting an interval between the verification voltages.
  • the detection unit 350 compares a threshold voltage of the multi-bit cell and a detection voltage.
  • the detection unit 350 determines which threshold voltage state includes the threshold voltage of the multi-bit cell based on a comparison result with the detection voltage.
  • the multi-bit programming apparatus 300 determines whether the threshold voltage state of each multi-bit cell, the threshold voltage state being detected by the detection unit 350 , corresponds to the data programmed in each multi-bit cell.
  • the second control unit 320 may adjust the verification voltages to increase a distance between the specific threshold voltage states.
  • the detection unit 350 determines whether the threshold voltage of the first multi-bit cell is included in the first threshold voltage state.
  • the detection unit 350 determines whether the threshold voltage of the second multi-bit cell is included in the second threshold voltage state.
  • the threshold voltage of the first multi-bit cell detected by the detection unit 350 may be the second threshold voltage state.
  • the multi-bit programming apparatus 300 may record that a data determination error is generated between the first threshold voltage state and the second threshold voltage state.
  • the multi-bit programming apparatus 300 may generate statistics of the data determination error by collecting information about the data determination errors.
  • the second control unit 320 may adjust the verification voltages based on the generated statistics of the data determination error.
  • FIG. 2 is a graph illustrating an example of a distribution of threshold voltages of multi-bit cells in the multi-bit cell 360 array generated by the multi-bit programming apparatus 300 of FIG. 3 .
  • a horizontal axis of FIG. 2 denotes threshold voltages
  • a vertical axis of FIG. 2 denotes a number of multi-bit cells having the threshold voltages.
  • the first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “101”, and allocates the fourth threshold voltage state to data “100”.
  • the first control unit 310 allocates the fifth threshold voltage state to data “011”, allocates the sixth threshold voltage state to data “010”, allocates the seventh threshold voltage state to data “001”, and allocates the eighth threshold voltage state to data “000”.
  • the second control unit 320 allocates a voltage level 221 as the verification voltage to the first threshold voltage state, allocates a voltage level 222 as the verification voltage to the second threshold voltage state, allocates a voltage level 223 as the verification voltage to the third threshold voltage state, and allocates a voltage level 224 as the verification voltage to the fourth threshold voltage state.
  • the second control unit 320 allocates a voltage level 225 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 226 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 227 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 228 as the verification voltage to the eighth threshold voltage state.
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 221 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 211 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 222 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 212 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 223 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 213 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 224 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 214 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 225 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 215 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 226 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 216 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 227 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 217 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 228 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 218 .
  • the threshold voltage of the programmed multi-bit cells generates a distribution having some deviation from a center value as illustrated in FIG. 2 .
  • a mechanism including a difference of the characteristics of each multi-bit cell, floating polysilicon (FP) coupling, and the like may affect spreading the distribution of the threshold voltages of the multi-bit cells.
  • the FP coupling denotes a phenomenon that a threshold voltage of a center multi-bit cell is affected by a programming process of surrounding multi-bit cells.
  • the threshold voltage of the center multi-bit cell is affected by coupling of a parasitic capacitance between FPs of the multi-bit cells.
  • the threshold voltage of the center multi-bit cell becomes higher than a desired value by the FP coupling.
  • the distribution of the threshold voltage of the multi-bit cells has a spread tendency due to mechanisms such as the FP coupling.
  • a fact that a change of the threshold voltage due to the FP coupling is great when the threshold voltage is low is well-known.
  • the second control unit 320 may select threshold voltage states of the threshold voltage states as a first threshold voltage state group, the selected threshold voltage states having a voltage higher than a reference voltage, and may select remaining threshold voltage states as a second threshold voltage state group.
  • the second control unit 320 may space, by the first interval, the adjacent threshold voltage states of the selected first threshold voltage state group, and may space, by the second interval, the adjacent threshold voltage states of the selected second threshold voltage state group.
  • the second control unit 320 may select the voltage level 225 as the reference voltage.
  • the second control unit 320 may select the threshold voltage states corresponding to the distribution states 211 , 212 , 213 , and 214 , that is, the first threshold voltage state to the fourth threshold voltage state as the first threshold voltage state group.
  • the second control unit 320 may apply the first interval to the threshold voltage states of the first threshold voltage state group. As a result of the application, a distance between the distribution state 211 and the distribution state 212 generated by the programming unit 330 corresponds to the first interval.
  • the second control unit 320 may apply the second interval to the threshold voltage states of the second threshold voltage state group. As a result of the application, a distance between the distribution state 216 and the distribution state 217 generated by the programming unit 330 corresponds to the second interval.
  • the second control unit 320 may perform an adjustment to increase the interval between the threshold voltage states as the threshold voltage of the threshold voltage states decreases. In this case, different 2 N ⁇ 1 intervals of the 2 N threshold voltage states may exist.
  • the second control unit 320 may perform an adjustment to increase the interval between the threshold voltage states as the threshold voltage of the threshold voltage states decreases, and may apply the fixed interval to the threshold voltage states having the threshold voltage higher than the reference voltage.
  • the distribution states having the low threshold voltage may have a form being more spread than the distribution states having the high threshold voltage as illustrated in FIG. 2 .
  • the second control unit 320 provides a programming method adaptively corresponding to the distribution states being spread by the FP coupling by adjusting the verification voltages.
  • the programming unit 330 may program the N-bit data in the multi-bit cells of the page 361 by performing ‘N’ page programming operations.
  • each of ‘N’ page programming operations may be related to any one of the first interval and the second interval.
  • Each of page programming operations may include a plurality of unit programming operations.
  • FIG. 4 is a graph illustrating another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array 360 generated by the multi-bit programming apparatus 300 of FIG. 3 .
  • a horizontal axis of FIG. 4 denotes threshold voltages and a vertical axis of FIG. 4 denotes a number of multi-bit cells having the threshold voltages.
  • the first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “100”, and allocates the fourth threshold voltage state to data “101”.
  • the first control unit 310 allocates the fifth threshold voltage state to data “001”, allocates the sixth threshold voltage state to data “000”, allocates the seventh threshold voltage state to data “010”, and allocates the eighth threshold voltage state to data “011”.
  • the second control unit 320 allocates a voltage level 421 as the verification voltage to the first threshold voltage state, allocates a voltage level 422 as the verification voltage to the second threshold voltage state, allocates a voltage level 423 as the verification voltage to the third threshold voltage state, and allocates a voltage level 424 as the verification voltage to the fourth threshold voltage state.
  • the second control unit 320 allocates a voltage level 425 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 426 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 427 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 428 as the verification voltage to the eighth threshold voltage state.
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 421 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 411 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 422 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 412 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 423 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 413 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 424 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 414 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 425 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 415 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 426 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 416 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 427 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 417 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 428 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 418 .
  • the first control unit 310 allocates the first threshold voltage state to the fourth threshold voltage state to page data “1” of the first page programming operation, and allocates the fifth threshold voltage state to the eighth threshold voltage state to page data “0”.
  • the first control unit 310 allocates the first threshold voltage state, the second threshold voltage state, the seventh threshold voltage state, and the eighth threshold voltage state to page data “1” of the second page programming operation.
  • the first control unit 310 allocates the first threshold voltage state, the fourth threshold voltage state, the fifth threshold voltage state, and the eighth threshold voltage state to page data “1” of the third page programming operation.
  • the second control unit 320 adjusts the threshold voltage states corresponding to a section of changing the page data of each page programming operation from “1” to “0” or from “0” to “1” using any one of the first interval and the second interval.
  • the present example embodiment applies the first interval to the section in which the page data of the first page programming operation is changed, and applies the second interval to the section in which the page data of the second page programming operation and the third page programming operation are changed.
  • a distance between the distribution state 414 and the distribution state 415 is illustrated being longer than other intervals.
  • the distance between the distribution state 414 and the distribution state 415 generated by the programming unit 330 is adjusted to be longer than the other intervals.
  • the error rate of the multi-bit cell array 360 may be reduced.
  • FIG. 5 is a graph illustrating still another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array 360 generated by the multi-bit programming apparatus 300 of FIG. 3 .
  • a horizontal axis of FIG. 5 denotes threshold voltages and a vertical axis of FIG. 5 denotes a number of multi-bit cells having the threshold voltages.
  • the first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “100”, and allocates the fourth threshold voltage state to data “101”.
  • the first control unit 310 allocates the fifth threshold voltage state to data “001”, allocates the sixth threshold voltage state to data “000”, allocates the seventh threshold voltage state to data “010”, and allocates the eighth threshold voltage state to data “011”.
  • the second control unit 320 allocates a voltage level 521 as the verification voltage to the first threshold voltage state, allocates a voltage level 522 as the verification voltage to the second threshold voltage state, allocates a voltage level 523 as the verification voltage to the third threshold voltage state, and allocates a voltage level 524 as the verification voltage to the fourth threshold voltage state.
  • the second control unit 320 allocates a voltage level 525 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 526 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 527 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 528 as the verification voltage to the eighth threshold voltage state.
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 521 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 511 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 522 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 512 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 523 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 513 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 524 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 514 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 525 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 515 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 526 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 516 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 527 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 517 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 528 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 518 .
  • the first control unit 310 allocates the first threshold voltage state to the fourth threshold voltage state to page data “1” of the first page programming operation, and allocates the fifth threshold voltage state to the eighth threshold voltage state to page data “0”.
  • the first control unit 310 allocates the first threshold voltage state, the second threshold voltage state, the seventh threshold voltage state, and the eighth threshold voltage state to page data “1” of the second page programming operation.
  • the first control unit 310 allocates the first threshold voltage state, the fourth threshold voltage state, the fifth threshold voltage state, and the eighth threshold voltage state to page data “1” of the third page programming operation.
  • the second control unit 320 adjusts the threshold voltage states corresponding to a section of changing the page data of each page programming operation from “1” to “0” or from “0” to “1” using any one of the first interval and the second interval.
  • the present example embodiment applies the first interval to the section in which the page data of the second page programming operation is changed, and applies the second interval to the section in which the page data of the first page programming operation and the third page programming operation are changed.
  • a distance between the distribution state 512 and the distribution state 513 , and a distance between the distribution state 516 and the distribution state 517 are illustrated being longer than other intervals.
  • the sections in which the page data of the second page programming operation is changed are a section between the second threshold voltage state and the third threshold voltage state, and a section between the sixth threshold voltage state and the seventh threshold voltage state, the distance between the distribution state 512 and the distribution state 513 , and the distance between the distribution state 516 and the distribution state 517 generated by the programming unit 330 are adjusted to be longer than the other intervals.
  • the error rate of the multi-bit cell array 360 may be reduced.
  • FIG. 6 is a graph illustrating yet another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array 360 generated by the multi-bit programming apparatus 300 of FIG. 3 .
  • a horizontal axis of FIG. 6 denotes threshold voltages and a vertical axis of FIG. 6 denotes a number of multi-bit cells having the threshold voltages.
  • the first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “100”, and allocates the fourth threshold voltage state to data “101”.
  • the first control unit 310 allocates the fifth threshold voltage state to data “001”, allocates the sixth threshold voltage state to data “000”, allocates the seventh threshold voltage state to data “010”, and allocates the eighth threshold voltage state to data “011”.
  • the second control unit 320 allocates a voltage level 621 as the verification voltage to the first threshold voltage state, allocates a voltage level 622 as the verification voltage to the second threshold voltage state, allocates a voltage level 623 as the verification voltage to the third threshold voltage state, and allocates a voltage level 624 as the verification voltage to the fourth threshold voltage state.
  • the second control unit 320 allocates a voltage level 625 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 626 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 627 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 628 as the verification voltage to the eighth threshold voltage state.
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 621 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 611 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 622 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 612 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 623 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 613 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 624 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 614 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 625 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 615 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 626 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 616 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 627 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 617 .
  • the programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 628 .
  • the programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 618 .
  • the first control unit 310 allocates the first threshold voltage state to the fourth threshold voltage state to page data “1” of the first page programming operation, and allocates the fifth threshold voltage state to the eighth threshold voltage state to page data “0”.
  • the first control unit 310 allocates the first threshold voltage state, the second threshold voltage state, the seventh threshold voltage state, and the eighth threshold voltage state to page data “1” of the second page programming operation.
  • the first control unit 310 allocates the first threshold voltage state, the fourth threshold voltage state, the fifth threshold voltage state, and the eighth threshold voltage state to page data “1” of the third page programming operation.
  • the second control unit 320 adjusts the threshold voltage states corresponding to a section of changing the page data of each page programming operation from “1” to “0” or from “0” to “1” using any one of the first interval and the second interval.
  • the present example embodiment applies the first interval to the section in which the page data of the third page programming operation is changed, and applies the second interval to the section in which the page data of the first page programming operation and the second page programming operation are changed.
  • a distance between the distribution state 611 and the distribution state 612 , a distance between the distribution state 613 and the distribution state 614 , a distance between the distribution state 615 and the distribution state 616 , and a distance between the distribution state 617 and the distribution state 618 are illustrated being longer than other intervals.
  • the sections in which the page data of the third page programming operation is changed are a section between the first threshold voltage state and the second threshold voltage state, a section between the third threshold voltage state and the fourth threshold voltage state, a section between the fifth threshold voltage state and the sixth threshold voltage state, and a section between the seventh threshold voltage state and the eighth threshold voltage state.
  • the distance between the distribution state 611 and the distribution state 612 , the distance between the distribution state 613 and the distribution state 614 , the distance between the distribution state 615 and the distribution state 616 , and the distance between the distribution state 617 and the distribution state 618 generated by the programming unit 330 are adjusted to be longer than the other intervals.
  • the error rate of the multi-bit cell array 360 may be reduced.
  • ECC error correction codes
  • the ECC are referred to as error control codes being a wide concept.
  • An encoding or decoding process via the ECC is performed for each page unit.
  • the multi-bit programming apparatus 300 performs an adjustment to increase the interval between the threshold voltage states corresponding to the third page programming operation.
  • FIG. 7 is a flowchart illustrating a multi-bit programming method according to an example embodiment.
  • the multi-bit programming method programs N-bit data in at least one multi-bit cell.
  • the multi-bit programming method allocates any one of 2 N threshold voltage states to the N-bit data.
  • the multi-bit programming method spaces, by any one of a first interval and a second interval, adjacent threshold voltage states.
  • the multi-bit programming method generates, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
  • the multi-bit programming method programs the N-bit data in each of the at least one multi-bit cell by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
  • the multi-bit programming method may verify whether the distribution state corresponding to the allocated threshold voltage state is generated by comparing a threshold voltage of the at least one multi-bit cell and a verification voltage.
  • the multi-bit programming method spaces, by any one of the first interval and the second interval, the adjacent threshold voltage states by adjusting the verification voltage.
  • the multi-bit programming method may select threshold voltage states of the threshold voltage states as a first threshold voltage state group, the selected threshold voltage states having a threshold voltage higher than a reference voltage.
  • the multi-bit programming method spaces, by the first interval, the adjacent threshold voltage states of the first threshold voltage state group.
  • the multi-bit programming method may detect a threshold voltage state of the at least one multi-bit cell by comparing a threshold voltage of the at least one multi-bit cell and a detection voltage.
  • the multi-bit programming method may generate statistics based on whether the detected threshold voltage state of the at least one multi-bit cell corresponds to the N-bit data.
  • the multi-bit programming method may determine any one of the first interval and the second interval according to the generated statistics.
  • the multi-bit programming method programs the N-bit data in the at least one multi-bit cell by performing ‘N’ page programming operations.
  • each of the ‘N’ page programming operations is performed based on any one of the first interval and the second interval.
  • the multi-bit programming method may be recorded in computer-readable media including program instructions to implement various operations embodied by a computer.
  • the media may also include, alone or in combination with the program instructions, data files, data structures, and the like.
  • the media and program instructions may be those specially designed and constructed for the purposes of example embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVD; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like.
  • Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
  • the described hardware devices may be configured to act as one or more software modules in order to perform the operations of example embodiments.

Abstract

Multi-bit programming apparatuses and/or methods are provided. A multi-bit programming apparatus may include: a first control unit that allocates any one of 2N threshold voltage states to the N-bit data; a second control unit that spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2N threshold voltage states; and a programming unit that programs the N-bit data by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state. The multi-bit programming apparatus can reduce an error rate when reading data.

Description

PRIORITY STATEMENT
This application claims priority from Korean Patent Application No. 10-2007-0108026, filed on Oct. 25, 2007, in the Korean Intellectual Property Office (KIPO), the entire contents of which are incorporated herein by reference.
BACKGROUND
1. Field
Example embodiments relate to apparatuses and/or methods that may program data in memory devices. Also, example embodiments relate to multi-bit (multi-level) programming apparatuses and/or methods that may program data in multi-level memory devices.
2. Description of Related Art
A single-level cell (SLC) memory device stores one bit of data in a single memory cell. The SLC memory is referred to as a single-bit cell (SBC) memory. The SLC memory stores and reads data of one bit at a voltage level included in two distributions that are divided by a threshold voltage level programmed in a memory cell. The programmed threshold voltage has a distribution within a certain range due to a fine electric characteristic difference between the SLC memories. For example, when a voltage level read from the memory cell is greater than 0.5V and less than 1.5V, it is determined that the data stored in the memory cell has a logic value of “1”. When the voltage level read from the memory cell is greater than 2.5V and less than 3.5V, it is determined that the data stored in the memory cell has a logic value of “0”. The data stored in the memory cell is classified depending on the difference between cell currents and/or cell voltages during the reading operations.
Meanwhile, a multi-level cell (MLC) memory device that can store data of two or more bits in a single memory cell has been proposed in response to a need for higher integration of memory. The MLC memory device is also referred to as a multi-bit cell (MBC) memory. However, as the number of bits stored in the single memory cell increases, reliability deteriorates and read-failure rate increases. To store ‘m’ bits in a single memory cell, 2m voltage level distributions are required. But, since the voltage window for a memory device is limited, the difference in threshold voltage between adjacent bits decreases as ‘m’ increases, causing the read-failure rate to increase. For this reason, it is difficult to improve storage density using the MLC memory device according to a conventional art.
Accordingly, an MLC memory device is being widely used and thus new multi-level (multi-bit) programming apparatuses and/or methods of changing a data storing process are proposed in order to reduce a read-failure rate in the present specification.
SUMMARY
Example embodiments may provide apparatuses and/or methods that may apply a new multi-level (multi-bit) programming scheme to a multi-level cell (MLC) memory device and thereby reduce a read-failure rate.
Example embodiments also may provide apparatuses and/or methods that may apply a new multi-level (multi-bit) programming scheme to an MLC memory device and thereby efficiently adjust a distribution of a threshold voltage of an MLC in a limited voltage window.
According to example embodiments, a multi-bit programming apparatus may include: a first control unit that allocates any one of 2N threshold voltage states to the N-bit data; a second control unit that spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2N threshold voltage states; and a programming unit that programs the N-bit data by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
According to another example embodiments, a multi-bit programming method that programs N-bit data in at least one multi-bit cell may include: allocating any one of 2N threshold voltage states to the N-bit data; spacing, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2N threshold voltage states; and programming the N-bit data in each of the at least one multi-bit cell by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and/or other aspects, and advantages will become more apparent and more readily appreciated from the following detailed description of example embodiments, taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a diagram illustrating a multi-bit programming apparatus according to an example embodiment;
FIG. 2 is a graph illustrating an example of a distribution of threshold voltages of multi-bit cells in a multi-bit cell array generated by a multi-bit programming apparatus of FIG. 3;
FIG. 3 is a diagram illustrating a multi-bit programming apparatus according to another example embodiment;
FIG. 4 is a graph illustrating another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array generated by the multi-bit programming apparatus of FIG. 3;
FIG. 5 is a graph illustrating still another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array generated by the multi-bit programming apparatus of FIG. 3;
FIG. 6 is a graph illustrating yet another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array generated by the multi-bit programming apparatus of FIG. 3; and
FIG. 7 is a flowchart illustrating a multi-bit programming method according to an example embodiment.
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
Example embodiments will now be described more fully with reference to the accompanying drawings. Embodiments, however, may be embodied in many different forms and should not be construed as being limited to example embodiments set forth herein. Rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope to those skilled in the art. In the drawings, the thicknesses of layers and regions may be exaggerated for clarity.
It will be understood that when an element is referred to as being “on,” “connected to,” “electrically connected to,” or “coupled to” to another component, it may be directly on, connected to, electrically connected to, or coupled to the other component or intervening components may be present. In contrast, when a component is referred to as being “directly on,” “directly connected to,” “directly electrically connected to,” or “directly coupled to” another component, there are no intervening components present. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will be understood that although the terms first, second, third, etc., may be used herein to describe various elements, components, regions, layers, and/or sections, these elements, components, regions, layers, and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer, and/or section from another element, component, region, layer, and/or section. For example, a first element, component, region, layer, and/or section could be termed a second element, component, region, layer, and/or section without departing from the teachings of example embodiments.
Spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper,” and the like may be used herein for ease of description to describe the relationship of one component and/or feature to another component and/or feature, or other component(s) and/or feature(s), as illustrated in the drawings. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, and/or components.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which example embodiments belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and should not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Reference will now be made to example embodiments, which are illustrated in the accompanying drawings, wherein like reference numerals may refer to like components throughout.
FIG. 1 is a diagram illustrating a multi-bit programming apparatus 100 according to an example embodiment.
Referring to FIG. 1, the multi-bit programming apparatus 100 programs N×M-bit data in a page 141 of a multi-bit cell array 140.
The page 141 includes simultaneously-programmed ‘M’ multi-bit cells.
N-bit data is programmed in at least one multi-bit cell.
The multi-bit programming apparatus 100 may include a first control unit 110, a second control unit 120, and a programming unit 130.
The first control unit 110 allocates any one of 2N threshold voltage states to the N-bit data.
For example, in the case of N=2, the first control unit 110 allocates any one of four threshold voltage states to the 2-bit data. The first threshold voltage state is allocated to data “11”, and the second threshold voltage state is allocated to data “10”. Similarly, the third threshold voltage state is allocated to data “01”, and the fourth threshold voltage state is allocated to data “00”.
The first control unit 110 allocates any one of the 2N threshold voltage states to the data programmed in each of a plurality of multi-bit cells included in the page 141.
In example embodiments, each of the threshold voltage states allocated by the first control unit 110 is the threshold voltage state in which a mutual sequence is determined. For example, the second threshold voltage state denotes a threshold voltage higher than the first threshold voltage state, and the third threshold voltage state denotes a threshold voltage higher than the second threshold voltage state.
The second control unit 120 spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2N threshold voltage states.
For example, the second control unit 120 may set an interval between the first threshold voltage state and the second threshold voltage state as the first interval, and set an interval between the second threshold voltage state and the third threshold voltage state as the second interval.
The programming unit 130 generates, in each of the multi-bit cells of the page 141, a distribution state corresponding to the allocated threshold voltage state. When the distribution state is generated in each of the multi-bit cells, each of the multi-bit cells may be regarded as storing the data corresponding to the threshold voltage state.
For example, when the distribution state generated in the first multi-bit cell corresponds the first threshold voltage state, the data stored in the first multi-bit cell is “11”. When the distribution state generated in the second multi-bit cell corresponds the third threshold voltage state, the data stored in the second multi-bit cell is “01”.
FIG. 3 is a diagram illustrating a multi-bit programming apparatus 300 according to another example embodiment.
Referring to FIG. 3, the multi-bit programming apparatus 300 programs N×M-bit data in a page 361 of a multi-bit cell array 360.
The page 361 includes simultaneously-programmed ‘M’ multi-bit cells.
The multi-bit programming apparatus 300 may include a first control unit 310, a second control unit 320, a programming unit 330, a verification unit 340, and a detection unit 350.
The first control unit 310 allocates any one of 2N threshold voltage states to the N-bit data.
The second control unit 320 spaces, by any one of a first interval and a second interval, adjacent threshold voltage states of the 2N threshold voltage states.
The programming unit 330 generates, in each of the multi-bit cells of the page 361, a distribution state corresponding to the allocated threshold voltage state. When the distribution state is generated in each of the multi-bit cells, each of the multi-bit cells may be regarded as storing the data corresponding to the threshold voltage state.
The verification unit 340 measures a threshold voltage of each of the multi-bit cells of the page 361. The verification unit 340 compares the measured threshold voltage of each of the multi-bit cells and a verification voltage. The verification unit 340 verifies whether the distribution state corresponding to the allocated threshold voltage state is generated in each of the multi-bit cells based on a comparison result.
In example embodiments, the verification voltage corresponds to the allocated threshold voltage state.
Each of the 2N threshold voltage states has the verification voltage corresponding to each of the 2N threshold voltage states.
According to example embodiments, the verification unit 340 may feed back a verification result to the programming unit 330, and the programming unit 330 may determine whether to additionally perform programming of each of the multi-bit cells based on the fed-back verification result.
In the present example embodiment, a case where the programming increases the threshold voltage of each of the multi-bit cells is assumed.
When the measured threshold voltage of each of the multi-bit cells is lower than the verification voltage, the verification unit 340 determines that the distribution state corresponding to the allocated threshold voltage state is not generated in each of the multi-bit cells. The verification unit 340 feeds back, to the programming unit 330, a determination result of the multi-bit cells in which the distribution state is not generated.
The programming unit 330 continuously performs the programming of the multi-bit cells to which the determination result that the distribution state is not generated is fed back. The threshold voltage of the multi-bit cells additionally programmed by the programming unit 330 increases.
The programming unit 330 may perform the programming during a predetermined time via a unit programming operation.
The verification unit 340 compares the measured threshold voltage of each of the multi-bit cells and the verification voltage after the first unit programming operation is completed. The verification unit 340 feeds back, to the programming unit 330, a comparison result of the multi-bit cells in which the measured threshold voltage is lower than the verification voltage.
The programming unit 330 performs the second unit programming operation of the multi-bit cells corresponding to the fed-back comparison result.
Using the above-described method, the programming unit 330 performs the unit programming operation until the distribution state corresponding to the allocated threshold voltage state is generated in all the multi-bit cells in the page 361.
The second control unit 320 adjusts the distribution states generated by the programming unit 330 by adjusting the verification voltage. In example embodiments, the second control unit 320 may adjust an interval between the threshold voltage states by adjusting an interval between the verification voltages.
The detection unit 350 compares a threshold voltage of the multi-bit cell and a detection voltage. The detection unit 350 determines which threshold voltage state includes the threshold voltage of the multi-bit cell based on a comparison result with the detection voltage.
The multi-bit programming apparatus 300 determines whether the threshold voltage state of each multi-bit cell, the threshold voltage state being detected by the detection unit 350, corresponds to the data programmed in each multi-bit cell.
When the detected threshold voltage state and the data are frequently different from specific threshold voltage states, the second control unit 320 may adjust the verification voltages to increase a distance between the specific threshold voltage states.
A case where the first threshold voltage state corresponds to data “10” and the second threshold voltage state corresponds to data “01” is assumed.
When data “10” is programmed in the first multi-bit cell, and data “01” is programmed in the second multi-bit cell, the detection unit 350 determines whether the threshold voltage of the first multi-bit cell is included in the first threshold voltage state.
Similarly, the detection unit 350 determines whether the threshold voltage of the second multi-bit cell is included in the second threshold voltage state.
When a distance between the first threshold voltage state and the second threshold voltage state is very small, the threshold voltage of the first multi-bit cell detected by the detection unit 350 may be the second threshold voltage state. In example embodiments, the multi-bit programming apparatus 300 may record that a data determination error is generated between the first threshold voltage state and the second threshold voltage state.
The multi-bit programming apparatus 300 may generate statistics of the data determination error by collecting information about the data determination errors.
The second control unit 320 may adjust the verification voltages based on the generated statistics of the data determination error.
FIG. 2 is a graph illustrating an example of a distribution of threshold voltages of multi-bit cells in the multi-bit cell 360 array generated by the multi-bit programming apparatus 300 of FIG. 3.
Referring to FIG. 2, a horizontal axis of FIG. 2 denotes threshold voltages, and a vertical axis of FIG. 2 denotes a number of multi-bit cells having the threshold voltages.
The first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “101”, and allocates the fourth threshold voltage state to data “100”.
The first control unit 310 allocates the fifth threshold voltage state to data “011”, allocates the sixth threshold voltage state to data “010”, allocates the seventh threshold voltage state to data “001”, and allocates the eighth threshold voltage state to data “000”.
The second control unit 320 allocates a voltage level 221 as the verification voltage to the first threshold voltage state, allocates a voltage level 222 as the verification voltage to the second threshold voltage state, allocates a voltage level 223 as the verification voltage to the third threshold voltage state, and allocates a voltage level 224 as the verification voltage to the fourth threshold voltage state.
The second control unit 320 allocates a voltage level 225 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 226 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 227 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 228 as the verification voltage to the eighth threshold voltage state.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 221. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 211.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 222. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 212.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 223. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 213.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 224. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 214.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 225. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 215.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 226. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 216.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 227. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 217.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 228. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 218.
Generally, since characteristics of each multi-bit cell are different from each other, the threshold voltage of the programmed multi-bit cells generates a distribution having some deviation from a center value as illustrated in FIG. 2.
A mechanism including a difference of the characteristics of each multi-bit cell, floating polysilicon (FP) coupling, and the like may affect spreading the distribution of the threshold voltages of the multi-bit cells.
The FP coupling denotes a phenomenon that a threshold voltage of a center multi-bit cell is affected by a programming process of surrounding multi-bit cells. The threshold voltage of the center multi-bit cell is affected by coupling of a parasitic capacitance between FPs of the multi-bit cells.
When the programming process increases the threshold voltage, the threshold voltage of the center multi-bit cell becomes higher than a desired value by the FP coupling.
The distribution of the threshold voltage of the multi-bit cells has a spread tendency due to mechanisms such as the FP coupling. A fact that a change of the threshold voltage due to the FP coupling is great when the threshold voltage is low is well-known.
Since a voltage window in which the multi-bit cell is operated is limited, a possibility that the distribution of the threshold voltage overlaps increases as the distribution of the threshold voltage spreads. As an overlapping degree of the distribution of the threshold voltage increases, an error rate of inaccurately reading the programmed data increases.
According to example embodiments, the second control unit 320 may select threshold voltage states of the threshold voltage states as a first threshold voltage state group, the selected threshold voltage states having a voltage higher than a reference voltage, and may select remaining threshold voltage states as a second threshold voltage state group.
The second control unit 320 may space, by the first interval, the adjacent threshold voltage states of the selected first threshold voltage state group, and may space, by the second interval, the adjacent threshold voltage states of the selected second threshold voltage state group.
For example, the second control unit 320 may select the voltage level 225 as the reference voltage. The second control unit 320 may select the threshold voltage states corresponding to the distribution states 211, 212, 213, and 214, that is, the first threshold voltage state to the fourth threshold voltage state as the first threshold voltage state group.
The second control unit 320 may apply the first interval to the threshold voltage states of the first threshold voltage state group. As a result of the application, a distance between the distribution state 211 and the distribution state 212 generated by the programming unit 330 corresponds to the first interval.
The second control unit 320 may apply the second interval to the threshold voltage states of the second threshold voltage state group. As a result of the application, a distance between the distribution state 216 and the distribution state 217 generated by the programming unit 330 corresponds to the second interval.
According to example embodiments, the second control unit 320 may perform an adjustment to increase the interval between the threshold voltage states as the threshold voltage of the threshold voltage states decreases. In this case, different 2N−1 intervals of the 2N threshold voltage states may exist.
According to example embodiments, the second control unit 320 may perform an adjustment to increase the interval between the threshold voltage states as the threshold voltage of the threshold voltage states decreases, and may apply the fixed interval to the threshold voltage states having the threshold voltage higher than the reference voltage.
As described above, since a great effect of the FP coupling is shown in the low threshold voltage, the distribution states having the low threshold voltage may have a form being more spread than the distribution states having the high threshold voltage as illustrated in FIG. 2.
The second control unit 320 provides a programming method adaptively corresponding to the distribution states being spread by the FP coupling by adjusting the verification voltages.
According to example embodiments, the programming unit 330 may program the N-bit data in the multi-bit cells of the page 361 by performing ‘N’ page programming operations.
In example embodiments, each of ‘N’ page programming operations may be related to any one of the first interval and the second interval.
Each of page programming operations may include a plurality of unit programming operations.
FIG. 4 is a graph illustrating another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array 360 generated by the multi-bit programming apparatus 300 of FIG. 3.
Referring to FIG. 4, a horizontal axis of FIG. 4 denotes threshold voltages and a vertical axis of FIG. 4 denotes a number of multi-bit cells having the threshold voltages.
The first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “100”, and allocates the fourth threshold voltage state to data “101”.
The first control unit 310 allocates the fifth threshold voltage state to data “001”, allocates the sixth threshold voltage state to data “000”, allocates the seventh threshold voltage state to data “010”, and allocates the eighth threshold voltage state to data “011”.
The second control unit 320 allocates a voltage level 421 as the verification voltage to the first threshold voltage state, allocates a voltage level 422 as the verification voltage to the second threshold voltage state, allocates a voltage level 423 as the verification voltage to the third threshold voltage state, and allocates a voltage level 424 as the verification voltage to the fourth threshold voltage state.
The second control unit 320 allocates a voltage level 425 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 426 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 427 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 428 as the verification voltage to the eighth threshold voltage state.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 421. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 411.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 422. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 412.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 423. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 413.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 424. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 414.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 425. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 415.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 426. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 416.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 427. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 417.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 428. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 418.
The first control unit 310 allocates the first threshold voltage state to the fourth threshold voltage state to page data “1” of the first page programming operation, and allocates the fifth threshold voltage state to the eighth threshold voltage state to page data “0”.
The first control unit 310 allocates the first threshold voltage state, the second threshold voltage state, the seventh threshold voltage state, and the eighth threshold voltage state to page data “1” of the second page programming operation.
The first control unit 310 allocates the first threshold voltage state, the fourth threshold voltage state, the fifth threshold voltage state, and the eighth threshold voltage state to page data “1” of the third page programming operation.
The second control unit 320 adjusts the threshold voltage states corresponding to a section of changing the page data of each page programming operation from “1” to “0” or from “0” to “1” using any one of the first interval and the second interval.
The present example embodiment applies the first interval to the section in which the page data of the first page programming operation is changed, and applies the second interval to the section in which the page data of the second page programming operation and the third page programming operation are changed.
Referring to FIG. 4, a distance between the distribution state 414 and the distribution state 415 is illustrated being longer than other intervals.
Since the section in which the page data of the first page programming operation is changed is a section between the fourth threshold voltage state and the fifth threshold voltage state, the distance between the distribution state 414 and the distribution state 415 generated by the programming unit 330 is adjusted to be longer than the other intervals.
According to the present example embodiment, when an error rate in reading the page data of the first page programming operation is high, the error rate of the multi-bit cell array 360 may be reduced.
FIG. 5 is a graph illustrating still another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array 360 generated by the multi-bit programming apparatus 300 of FIG. 3.
Referring to FIG. 5, a horizontal axis of FIG. 5 denotes threshold voltages and a vertical axis of FIG. 5 denotes a number of multi-bit cells having the threshold voltages.
The first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “100”, and allocates the fourth threshold voltage state to data “101”.
The first control unit 310 allocates the fifth threshold voltage state to data “001”, allocates the sixth threshold voltage state to data “000”, allocates the seventh threshold voltage state to data “010”, and allocates the eighth threshold voltage state to data “011”.
The second control unit 320 allocates a voltage level 521 as the verification voltage to the first threshold voltage state, allocates a voltage level 522 as the verification voltage to the second threshold voltage state, allocates a voltage level 523 as the verification voltage to the third threshold voltage state, and allocates a voltage level 524 as the verification voltage to the fourth threshold voltage state.
The second control unit 320 allocates a voltage level 525 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 526 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 527 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 528 as the verification voltage to the eighth threshold voltage state.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 521. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 511.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 522. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 512.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 523. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 513.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 524. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 514.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 525. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 515.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 526. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 516.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 527. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 517.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 528. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 518.
The first control unit 310 allocates the first threshold voltage state to the fourth threshold voltage state to page data “1” of the first page programming operation, and allocates the fifth threshold voltage state to the eighth threshold voltage state to page data “0”.
The first control unit 310 allocates the first threshold voltage state, the second threshold voltage state, the seventh threshold voltage state, and the eighth threshold voltage state to page data “1” of the second page programming operation.
The first control unit 310 allocates the first threshold voltage state, the fourth threshold voltage state, the fifth threshold voltage state, and the eighth threshold voltage state to page data “1” of the third page programming operation.
The second control unit 320 adjusts the threshold voltage states corresponding to a section of changing the page data of each page programming operation from “1” to “0” or from “0” to “1” using any one of the first interval and the second interval.
The present example embodiment applies the first interval to the section in which the page data of the second page programming operation is changed, and applies the second interval to the section in which the page data of the first page programming operation and the third page programming operation are changed.
Referring to FIG. 5, a distance between the distribution state 512 and the distribution state 513, and a distance between the distribution state 516 and the distribution state 517 are illustrated being longer than other intervals.
Since the sections in which the page data of the second page programming operation is changed are a section between the second threshold voltage state and the third threshold voltage state, and a section between the sixth threshold voltage state and the seventh threshold voltage state, the distance between the distribution state 512 and the distribution state 513, and the distance between the distribution state 516 and the distribution state 517 generated by the programming unit 330 are adjusted to be longer than the other intervals.
According to the present example embodiment, when an error rate in reading the page data of the second page programming operation is high, the error rate of the multi-bit cell array 360 may be reduced.
FIG. 6 is a graph illustrating yet another example of the distribution of the threshold voltages of the multi-bit cells in the multi-bit cell array 360 generated by the multi-bit programming apparatus 300 of FIG. 3.
Referring to FIG. 6, a horizontal axis of FIG. 6 denotes threshold voltages and a vertical axis of FIG. 6 denotes a number of multi-bit cells having the threshold voltages.
The first control unit 310 allocates the first threshold voltage state to data “111”, allocates the second threshold voltage state to data “110”, allocates the third threshold voltage state to data “100”, and allocates the fourth threshold voltage state to data “101”.
The first control unit 310 allocates the fifth threshold voltage state to data “001”, allocates the sixth threshold voltage state to data “000”, allocates the seventh threshold voltage state to data “010”, and allocates the eighth threshold voltage state to data “011”.
The second control unit 320 allocates a voltage level 621 as the verification voltage to the first threshold voltage state, allocates a voltage level 622 as the verification voltage to the second threshold voltage state, allocates a voltage level 623 as the verification voltage to the third threshold voltage state, and allocates a voltage level 624 as the verification voltage to the fourth threshold voltage state.
The second control unit 320 allocates a voltage level 625 as the verification voltage to the fifth threshold voltage state, allocates a voltage level 626 as the verification voltage to the sixth threshold voltage state, allocates a voltage level 627 as the verification voltage to the seventh threshold voltage state, and allocates a voltage level 628 as the verification voltage to the eighth threshold voltage state.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “111” is programmed may be higher than the voltage level 621. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “111” is programmed may generate a distribution state 611.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “110” is programmed may be higher than the voltage level 622. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “110” is programmed may generate a distribution state 612.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “100” is programmed may be higher than the voltage level 623. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “100” is programmed may generate a distribution state 613.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “101” is programmed may be higher than the voltage level 624. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “101” is programmed may generate a distribution state 614.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “001” is programmed may be higher than the voltage level 625. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “001” is programmed may generate a distribution state 615.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “000” is programmed may be higher than the voltage level 626. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “000” is programmed may generate a distribution state 616.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “010” is programmed may be higher than the voltage level 627. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “010” is programmed may generate a distribution state 617.
The programming unit 330 and the verification unit 340 perform programming so that the threshold voltage of the multi-bit cells in which data “011” is programmed may be higher than the voltage level 628. The programming unit 330 and the verification unit 340 perform the programming so that the multi-bit cells in which data “011” is programmed may generate a distribution state 618.
The first control unit 310 allocates the first threshold voltage state to the fourth threshold voltage state to page data “1” of the first page programming operation, and allocates the fifth threshold voltage state to the eighth threshold voltage state to page data “0”.
The first control unit 310 allocates the first threshold voltage state, the second threshold voltage state, the seventh threshold voltage state, and the eighth threshold voltage state to page data “1” of the second page programming operation.
The first control unit 310 allocates the first threshold voltage state, the fourth threshold voltage state, the fifth threshold voltage state, and the eighth threshold voltage state to page data “1” of the third page programming operation.
The second control unit 320 adjusts the threshold voltage states corresponding to a section of changing the page data of each page programming operation from “1” to “0” or from “0” to “1” using any one of the first interval and the second interval.
The present example embodiment applies the first interval to the section in which the page data of the third page programming operation is changed, and applies the second interval to the section in which the page data of the first page programming operation and the second page programming operation are changed.
Referring to FIG. 6, a distance between the distribution state 611 and the distribution state 612, a distance between the distribution state 613 and the distribution state 614, a distance between the distribution state 615 and the distribution state 616, and a distance between the distribution state 617 and the distribution state 618 are illustrated being longer than other intervals.
The sections in which the page data of the third page programming operation is changed are a section between the first threshold voltage state and the second threshold voltage state, a section between the third threshold voltage state and the fourth threshold voltage state, a section between the fifth threshold voltage state and the sixth threshold voltage state, and a section between the seventh threshold voltage state and the eighth threshold voltage state.
Accordingly, the distance between the distribution state 611 and the distribution state 612, the distance between the distribution state 613 and the distribution state 614, the distance between the distribution state 615 and the distribution state 616, and the distance between the distribution state 617 and the distribution state 618 generated by the programming unit 330 are adjusted to be longer than the other intervals.
According to the present example embodiment, when an error rate in reading the page data of the third page programming operation is high, the error rate of the multi-bit cell array 360 may be reduced.
Generally, error correction codes (ECC) are used to prepare for a possibility that an error is generated while reading data stored in a memory device (or storing the data). The ECC are referred to as error control codes being a wide concept.
An encoding or decoding process via the ECC is performed for each page unit. According to the present example embodiment, when the error rate in reading the page data of the third page programming operation is higher than an error correcting capability of an ECC decoder, the multi-bit programming apparatus 300 performs an adjustment to increase the interval between the threshold voltage states corresponding to the third page programming operation.
FIG. 7 is a flowchart illustrating a multi-bit programming method according to an example embodiment.
The multi-bit programming method programs N-bit data in at least one multi-bit cell.
Referring to FIG. 7, in operation S710, the multi-bit programming method allocates any one of 2N threshold voltage states to the N-bit data.
In operation S720, the multi-bit programming method spaces, by any one of a first interval and a second interval, adjacent threshold voltage states.
In operation S730, the multi-bit programming method generates, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
In operation S730, the multi-bit programming method programs the N-bit data in each of the at least one multi-bit cell by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state.
The multi-bit programming method may verify whether the distribution state corresponding to the allocated threshold voltage state is generated by comparing a threshold voltage of the at least one multi-bit cell and a verification voltage.
In operation S720, the multi-bit programming method spaces, by any one of the first interval and the second interval, the adjacent threshold voltage states by adjusting the verification voltage.
The multi-bit programming method may select threshold voltage states of the threshold voltage states as a first threshold voltage state group, the selected threshold voltage states having a threshold voltage higher than a reference voltage.
In example embodiments, in operation S720, the multi-bit programming method spaces, by the first interval, the adjacent threshold voltage states of the first threshold voltage state group.
The multi-bit programming method may detect a threshold voltage state of the at least one multi-bit cell by comparing a threshold voltage of the at least one multi-bit cell and a detection voltage.
In example embodiments, the multi-bit programming method may generate statistics based on whether the detected threshold voltage state of the at least one multi-bit cell corresponds to the N-bit data.
In example embodiments, the multi-bit programming method may determine any one of the first interval and the second interval according to the generated statistics.
In operation S730, the multi-bit programming method programs the N-bit data in the at least one multi-bit cell by performing ‘N’ page programming operations.
In example embodiments, each of the ‘N’ page programming operations is performed based on any one of the first interval and the second interval.
The multi-bit programming method according to example embodiments may be recorded in computer-readable media including program instructions to implement various operations embodied by a computer. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. The media and program instructions may be those specially designed and constructed for the purposes of example embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVD; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of example embodiments.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. Therefore, it is intended that the scope of the invention be defined by the claims appended thereto and their equivalents.
While example embodiments have been particularly shown and described, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims.

Claims (19)

1. A multi-bit programming apparatus that programs N-bit data in at least one multi-bit cell, the apparatus comprising:
a first control unit that allocates any one of 2N threshold voltage states to the N-bit data;
a second control unit that spaces, by any one of different 2N−1 intervals, adjacent threshold voltage states of the 2N threshold voltage states;
a programming unit that programs the N-bit data by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state; and
a verification unit that verifies whether the distribution state corresponding to the allocated threshold voltage state is generated by comparing a threshold voltage of the at least one multi-bit cell and a verification voltage,
wherein the second control unit spaces, by any one of the 2N−1 intervals, the adjacent threshold voltage states by adjusting the verification voltage.
2. The apparatus of claim 1, wherein the second control unit selects threshold voltage states of the 2N threshold voltage states as a first threshold voltage state group, the selected threshold voltage states having a threshold voltage higher than a reference voltage, and
spaces, by any one of the 2N−1 intervals, the adjacent threshold voltage states of the selected first threshold voltage state group.
3. The apparatus of claim 1, wherein the second control unit spaces, by any one of a first interval and a second interval of the different 2N−1 intervals, the adjacent threshold voltage states of the 2N threshold voltage states.
4. The apparatus of claim 1, wherein the second control unit adjusts the intervals to have a negative correlation to a threshold voltage of the threshold voltage states.
5. The apparatus of claim 1, further comprising:
a detection unit that detects a threshold voltage state of the at least one multi-bit cell by comparing a threshold voltage of the at least one multi-bit cell and a detection voltage.
6. The apparatus of claim 5, wherein the 2N−1 intervals are determined according to statistics based on whether the threshold voltage state detected by the detection unit corresponds to the N-bit data.
7. The apparatus of claim 3, wherein the programming unit programs the N-bit data in the at least one multi-bit cell by performing ‘N’ page programming operations.
8. The apparatus of claim 7, wherein, when an error rate is higher than an error correcting capability corresponding to an L-th page programming operation being any one of the ‘N’ page programming operations, the second control unit performs an adjustment to increase an interval between threshold voltage states corresponding to the L-th page programming operation.
9. A multi-bit programming method that programs N-bit data in at least one multi-bit cell, the method comprising:
allocating any one of 2N threshold voltage states to the N-bit data;
spacing, by any one of different 2N−1 intervals, adjacent threshold voltage states of the 2N threshold voltage states;
programming the N-bit data in each of the at least one multi-bit cell by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state; and
verifying whether the distribution state corresponding to the allocated threshold voltage state is generated by comparing a threshold voltage of the at least one multi-bit cell and a verification voltage, wherein
the spacing spaces, by any one of the 2N−1 intervals, the adjacent threshold voltage states by adjusting the verification voltage.
10. The method of claim 9, further comprising:
selecting threshold voltage states of the 2N threshold voltage states as a first threshold voltage state group, the selected threshold voltage states having a threshold voltage higher than a reference voltage,
wherein the spacing spaces, by any one of the 2N−1 intervals, the adjacent threshold voltage states of the selected first threshold voltage state group.
11. The method of claim 9, further comprising:
detecting a threshold voltage state of the at least one multi-bit cell by comparing a threshold voltage of the at least one multi-bit cell and a detection voltage.
12. The method of claim 11, further comprising:
determining the 2N−1 intervals according to statistics based on whether the detected threshold voltage state of the at least one multi-bit cell corresponds to the N-bit data.
13. The method of claim 9, wherein the programming programs the N-bit data in the at least one multi-bit cell by performing ‘N’ page programming operations.
14. The method of claim 13, wherein each of the ‘N’ page programming operations is performed based on any one of a first interval and a second interval of the different 2N−1 intervals.
15. A computer-readable recording medium storing a program for implementing a multi-bit programming method that programs N-bit data in at least one multi-bit cell, the method comprising:
allocating any one of 2N threshold voltage states to the N-bit data;
spacing, by any one of different 2N−1 intervals, adjacent threshold voltage states of the 2N threshold voltage states;
programming the N-bit data in each of the at least one multi-bit cell by generating, in each of the at least one multi-bit cell, a distribution state corresponding to the allocated threshold voltage state; and
verifying whether the distribution state corresponding to the allocated threshold voltage state is generated by comparing a threshold voltage of the at least one multi-bit cell and a verification voltage,
wherein the spacing spaces, by any one of the 2N−1 intervals, the adjacent threshold voltage states by adjusting the verification voltage.
16. The apparatus of claim 1, wherein the second control unit performs an adjustment to increase the interval between the threshold voltage states as the threshold voltage of the 2N threshold voltage states decreases.
17. The apparatus of claim 7, wherein each of the ‘N’ page programming operations are performed based on any one of the first interval and the second interval.
18. The method of claim 9, wherein the spacing spaces, by any one of a first interval and a second interval, the adjacent threshold voltage states of the 2N threshold voltage states.
19. The method of claim 9, wherein the spacing performs an adjustment to increase the interval between the threshold voltage states as the threshold voltage of the 2N threshold voltage states decreases.
US12/076,392 2007-10-25 2008-03-18 Apparatus and method of multi-bit programming Expired - Fee Related US7782666B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2007-0108026 2007-10-25
KR1020070108026A KR101301773B1 (en) 2007-10-25 2007-10-25 Apparatus and method of multi-bit programming

Publications (2)

Publication Number Publication Date
US20090109748A1 US20090109748A1 (en) 2009-04-30
US7782666B2 true US7782666B2 (en) 2010-08-24

Family

ID=40582608

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/076,392 Expired - Fee Related US7782666B2 (en) 2007-10-25 2008-03-18 Apparatus and method of multi-bit programming

Country Status (2)

Country Link
US (1) US7782666B2 (en)
KR (1) KR101301773B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110038207A1 (en) * 2009-08-14 2011-02-17 Samsung Electronics Co., Ltd. Flash memory device, programming and reading methods performed in the same
US20140119113A1 (en) * 2012-10-31 2014-05-01 Lsi Corporation Threshold Acquisition and Adaption in NAND Flash Memory
US9159382B2 (en) 2004-12-28 2015-10-13 Socionext Inc. Method and apparatus for timing adjustment

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101634340B1 (en) 2009-11-03 2016-06-28 삼성전자주식회사 Method for programming semiconductor memory device
KR101671326B1 (en) * 2010-03-08 2016-11-01 삼성전자주식회사 Nonvolatile memory using interleaving technology and program method thereof
TWI462104B (en) * 2010-08-04 2014-11-21 Silicon Motion Inc Data writing method and data storage device
US10540228B2 (en) 2018-03-07 2020-01-21 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
US11061762B2 (en) * 2019-02-04 2021-07-13 Intel Corporation Memory programming techniques

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768188A (en) * 1995-12-11 1998-06-16 Samsung Electronics Co., Ltd. Multi-state non-volatile semiconductor memory and method for driving the same
US6246613B1 (en) * 1991-02-08 2001-06-12 Btg International Inc. Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell
US6529405B2 (en) * 2000-12-30 2003-03-04 Hynix Semiconductor, Inc. Circuit and method for programming and reading multi-level flash memory
US6738289B2 (en) * 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
US6819592B2 (en) * 2001-03-29 2004-11-16 Kabushiki Kaisha Toshiba Semiconductor memory
JP2004334956A (en) 2003-05-06 2004-11-25 Nippon Telegr & Teleph Corp <Ntt> Threshold level write-in method of multi-level memory circuit
US6882567B1 (en) * 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
JP2005267687A (en) 2004-03-16 2005-09-29 Toshiba Corp Nonvolatile semiconductor memory
US6954380B2 (en) * 2003-08-08 2005-10-11 Sharp Kabushiki Kaisha Programming method of nonvolatile semiconductor memory device
JP2006331618A (en) 2005-04-28 2006-12-07 Toshiba Corp Semiconductor integrated circuit device
US20070115719A1 (en) 2005-11-23 2007-05-24 Macronix International Co., Ltd. Pulse width converged method to control voltage threshold (Vt) distribution of a memory cell
US20070171726A1 (en) 2006-01-24 2007-07-26 Dong-Ku Kang Program method of flash memory capable of compensating reduction of read margin between states due to hot temperature stress
US7272040B2 (en) * 2005-04-29 2007-09-18 Infineon Technologies Ag Multi-bit virtual-ground NAND memory device
US7298648B2 (en) * 2004-11-19 2007-11-20 Samsung Electronics Co., Ltd. Page buffer and multi-state nonvolatile memory device including the same
US7471559B2 (en) * 2006-04-13 2008-12-30 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multilevel data
US7613048B2 (en) * 2006-11-02 2009-11-03 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and nonvolatile memory system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4231922B2 (en) * 2002-12-26 2009-03-04 独立行政法人産業技術総合研究所 Protein structure prediction system

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246613B1 (en) * 1991-02-08 2001-06-12 Btg International Inc. Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell
US5768188A (en) * 1995-12-11 1998-06-16 Samsung Electronics Co., Ltd. Multi-state non-volatile semiconductor memory and method for driving the same
US6529405B2 (en) * 2000-12-30 2003-03-04 Hynix Semiconductor, Inc. Circuit and method for programming and reading multi-level flash memory
US6738289B2 (en) * 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
US6819592B2 (en) * 2001-03-29 2004-11-16 Kabushiki Kaisha Toshiba Semiconductor memory
US6882567B1 (en) * 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
JP2004334956A (en) 2003-05-06 2004-11-25 Nippon Telegr & Teleph Corp <Ntt> Threshold level write-in method of multi-level memory circuit
US6954380B2 (en) * 2003-08-08 2005-10-11 Sharp Kabushiki Kaisha Programming method of nonvolatile semiconductor memory device
JP2005267687A (en) 2004-03-16 2005-09-29 Toshiba Corp Nonvolatile semiconductor memory
US7298648B2 (en) * 2004-11-19 2007-11-20 Samsung Electronics Co., Ltd. Page buffer and multi-state nonvolatile memory device including the same
US7480177B2 (en) * 2004-11-19 2009-01-20 Samsung Electronic Co., Ltd. Page buffer and multi-state nonvolatile memory device including the same
JP2006331618A (en) 2005-04-28 2006-12-07 Toshiba Corp Semiconductor integrated circuit device
US7272040B2 (en) * 2005-04-29 2007-09-18 Infineon Technologies Ag Multi-bit virtual-ground NAND memory device
US20070115719A1 (en) 2005-11-23 2007-05-24 Macronix International Co., Ltd. Pulse width converged method to control voltage threshold (Vt) distribution of a memory cell
US20070171726A1 (en) 2006-01-24 2007-07-26 Dong-Ku Kang Program method of flash memory capable of compensating reduction of read margin between states due to hot temperature stress
US7471559B2 (en) * 2006-04-13 2008-12-30 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multilevel data
US7613048B2 (en) * 2006-11-02 2009-11-03 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and nonvolatile memory system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9159382B2 (en) 2004-12-28 2015-10-13 Socionext Inc. Method and apparatus for timing adjustment
US20110038207A1 (en) * 2009-08-14 2011-02-17 Samsung Electronics Co., Ltd. Flash memory device, programming and reading methods performed in the same
US8339846B2 (en) * 2009-08-14 2012-12-25 Samsung Electronics Co., Ltd. Flash memory device, programming and reading methods performed in the same
US20140119113A1 (en) * 2012-10-31 2014-05-01 Lsi Corporation Threshold Acquisition and Adaption in NAND Flash Memory
US8942037B2 (en) * 2012-10-31 2015-01-27 Lsi Corporation Threshold acquisition and adaption in NAND flash memory

Also Published As

Publication number Publication date
KR20090042108A (en) 2009-04-29
KR101301773B1 (en) 2013-09-02
US20090109748A1 (en) 2009-04-30

Similar Documents

Publication Publication Date Title
US7983082B2 (en) Apparatus and method of multi-bit programming
US9377962B2 (en) Determining bias information for offsetting operating variations in memory cells
US7782666B2 (en) Apparatus and method of multi-bit programming
US8179718B2 (en) Memory device and memory programming method
US9064594B2 (en) Methods and apparatus for soft data generation for memory devices based on performance factor adjustment
US7903459B2 (en) Memory devices and methods for determining data of bit layers based on detected error bits
US8799563B2 (en) Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US9047955B2 (en) Adjusting operating parameters for memory cells based on wordline address and cycle information
US8345487B2 (en) Method of setting read voltage minimizing read data errors
KR101574033B1 (en) Memory devices and configuration methods for a memory device
US7872909B2 (en) Memory device and memory data read method
US7738293B2 (en) Apparatus and method of memory programming
US7864574B2 (en) Memory device and memory programming method
US20130016562A1 (en) Method and system for adjusting read voltage in flash memory device
US8305818B2 (en) Memory device and method for estimating characteristics of multi-bit programming
US8276046B2 (en) Apparatus for determining number of bits to be stored in memory cell
KR20160060917A (en) Non-volatile memory device and method of programing the same
US8649216B2 (en) Data writing method and data storage device for adjusting programming voltage values
US8391076B2 (en) Nonvolatile memory device using interleaving technology and programming method thereof
US7929346B2 (en) Memory data detecting apparatus and method for controlling reference voltage based on error in stored data
US8004886B2 (en) Apparatus and method of multi-bit programming
US20090190396A1 (en) Memory device and method of reading memory data

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHO, KYOUNG LAE;PARK, YOON DONG;KONG, JUN JIN;AND OTHERS;REEL/FRAME:020716/0436

Effective date: 20080307

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20180824