This application claims the benefit of Korean Patent Application No. 10-2013-0143945, filed on Nov. 25, 2013, the subject matter of which is hereby incorporated by reference.
The inventive concept relates generally to memory devices, memory systems and methods of programming the memory cells of a memory system.
Continuous demands for ever greater data storage capacity per unit area of a memory device (i.e., data integration density) has motivated the incorporation of memory cells capable of storing two or more bits of data per memory cell (i.e., multi-level memory cells, or MLC), in contemporary nonvolatile memory devices, such as flash memory. However, as the number of bits stored per memory cell increases, the plurality of threshold voltage distributions uniquely and respectively associated with each memory cell program state become more and more narrow, and the respective read margins between adjacent threshold voltage distributions shrink. These realities increase the possibility of read errors arising when the data programmed to MLC is subsequently read from memory.
New approaches are required to ensure the reliability of data stored in MLC, particularly MLC configured to store three or more bits of data.
According to an aspect of the inventive concept, there is provided a method of programming a memory system including multi-level memory cells (MLC) configured to be programmed in accordance with a first program state and a second program state, wherein the first program state is indicated by a first threshold voltage distribution (“distribution”) and the second program state is indicated by a second distribution having a higher level than the first distribution. The method comprises; defining a first program start voltage and a second program start voltage higher than the first program start voltage, programming first memory cells among the MLC to the first program state using a program operation that begins programming of the first memory cells at the first program start voltage, and programming second memory cells among the MLC to the second program state using a program operation that begins programming of the second memory cells at the second program start voltage.
According to another aspect of the inventive concept, there is provided a method of programming a memory system including multi-level memory cells (MLC) configured to be programmed in accordance with first through Nth program states, wherein each one of the first through Nth program states is respectively indicated by a successively higher threshold voltage distribution. The method comprises; defining first through Nth program start voltages respectively corresponding to the first through Nth program states, programming an Mth set of MLC to an Mth program state among the first through Nth program states by initially applying an Mth program start voltage, ‘N’ being a natural number greater than 2, and ‘M’ being a natural number less than or equal to N, wherein the Mth program start voltage is higher than a first program start voltage initially applied during the programming a first set of MLC to the first program state, and the Mth program start voltage is lower than an Nth program start voltage initially applied during the programming of an Nth set of MLC to the Nth program state.
According to another aspect of the inventive concept, there is provided a method of programming a memory system including multi-level memory cells (MLC) configured to be programmed in accordance with a selected one of first through Nth program states, wherein each one of the first through Nth program states is indicated by a respective, and successively higher threshold voltage distribution. The method comprises; defining respective first through Kth program start voltages;
grouping at least the first program state into a first group of program states, and grouping at least the Nth program state into a second group of program states to define K groups of program states, programming a first set of MLC to the first program state by initially applying a first program start voltage, programming a Jth set of MLC to a Jth program state, and thereafter programming a Jth+1 set of MLC to a Jth+1 program state by initially applying a Jth program start voltage higher than the first program start voltage, wherein the Jth program state and the Jth+1 program state are grouped in an Dth group of program states, wherein ‘N’, ‘K’, ‘J’ and ‘D’ are respective natural numbers, N being greater than 3, K being less than N, J being less than N and greater than 1, and D being less than K.
Certain embodiments of the inventive concept, or relevant aspects of certain embodiments of the inventive concept are illustrated in the accompanying drawings in which:
Hereinafter, the inventive concept will be described in some additional detail with reference to the accompanying drawings. The inventive concept may, however, be embodied in many different forms and should not be construed as being limited to only the illustrated embodiments. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those of ordinary skill in the art. Although a few embodiments of the inventive concept have been shown and described, it would be appreciated by those of ordinary skill in the art that changes may be made in these exemplary embodiments without departing from the principles and scope of the inventive concept as defined by the following claims and their equivalents. Throughout the drawings and written description, like reference numbers and labels denote like or similar elements.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concept. 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’ and/or ‘comprising,’ 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, components, and/or groups thereof.
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 or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the inventive concept.
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 the inventive concept 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 will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list.
Referring to
The memory controller 100 may be used to control the overall operation of the memory device 200. In this regard, the memory controller 100 may provide the memory device 200 with one or more address(es) ADDR, command(s) CMD, and/or control signal(s) CTRL to cause the execution of, at a minimum, program (or write), read, and erase operations by the memory device 200. Write data or read data, DATA, may be exchanged between the memory controller 100 and the memory controller 200 as the result of a program or read operation.
With reference to
The embodiments of the inventive concept described hereafter assume the use of flash MLC, but those skilled in the art will recognize that other types of nonvolatile memory cells, such as resistive type memory cells (e.g., resistive random access memory (RAM)), phase change random access memory (PRAM), and/or magnetic random access memory (MRAM), might alternately or additionally be used. In certain embodiments of the inventive concept, the constituent memory cell array maybe configured as a three-dimensional memory cell array (e.g., a vertical NAND flash memory cell array).
As is conventionally understood, the MLC arranged in a particular block of flash MLC may be collectively erased by application of one or more erase voltage(s) during an erase operation. However, each MLC in a flash memory device may be individually (or group) programmed to a particular “program state”. Here, each program state corresponds to a unique data value that may be programmed to the MLC by applying an appropriate set of control voltages/currents to (e.g.,) the word line and/or bit line associated the MLC being programmed. Thus, assuming the use of a 3-bit MLC configured to store three bits of data, a total of eight (8) unique data values may each be respectively programmed to the MLC in accordance with an erase state (E) or one of seven possible program states (P1, P2, P3, P4, P5, P6 and P7, collectively referred to as “P1 through P7”). The data value of the MLC may thereafter be “read” by discriminating the threshold voltage exhibited by the MLC in view of a range of defined threshold voltage distributions (hereafter, “distributions”)
Thus, referring to
Returning to
As will be appreciated by those skilled in the art, certain program operations executed by flash memory devices use an iterative approach to the programming of one or more memory cells. Each succession of program iterations (or program loops) will begin with a “program start voltage” (Vstart) that is initially applied to a selected word line. Hence, the voltage control unit 110 may be used to define first through Nth program start voltages (Vstart_1 through Vstart_N) respectively corresponding to first through Nth program states (P1 through PN) for a MLC.
In certain embodiments of the inventive concept, the voltage control unit 110 may determine the first through Nth program start voltages (Vstart_1 through Vstart_N), such that the Nth program start voltage (Vstart_N) has a highest voltage level among the first through Nth program start voltages, and the first program start voltage (Vstart_1) has a lowest voltage level among the first through Nth program start voltages. It follows that the second program start voltage through n−1 th program start voltage (Vstart_2 through Vstart_N−1) will successively increase in voltage level between the first program start voltage (Vstart_1) and the Nth program start voltage (Vstart_N).
With this capability and operational understanding associated with the voltage control unit 110, memory systems according to embodiments of the inventive concept are capable of adaptively setting the program start voltage for a program operation directed to a memory cell depending on the program state to which the memory cell will be programmed. Exemplary approaches to accomplishing this novel programming method will be described in some additional detail in relation to
According to different embodiments of the inventive concept, each program state defined for a MLC in a memory cell array may have a different program start voltage, or alternately, two or more program states defined for the MLC may have a same program start voltage.
The voltage control unit 110 of
In this regard, the voltage control unit 110 may set a logic level of an inhibit voltage during an inhibit interval to ‘high,’ and the logic level of the inhibit voltage to ‘low’ after the inhibit interval elapses. Thus, the voltage control unit 110 may generate a first inhibit voltage having a logically high level and apply the first inhibit voltage to bit line(s) connected to selected memory cell(s) during the inhibit interval, while also generating a second inhibit voltage having a logically low level and apply the second inhibit voltage to bit line(s) connected to the selected memory cells following the inhibit interval. Accordingly, when a program operation directed to one of the relatively lower program states is executed, the possibility of a program disturbance occurring with respect to memory cells to be programmed to one of the relatively higher program states during the inhibit interval may be markedly reduced.
Thus, according to the certain embodiments of the inventive concept, the second through Nth program start voltages (Vstart_2 through Vstart_N) may be successively higher in voltage than the first program start voltage (Vstart_1). Accordingly, when a program operation with respect to a first program state P1 is performed and the corresponding program voltage has a lower voltage level than the second program start voltage (Vstart_2), a corresponding program voltage is not applied to the memory cells MC that are to be programmed to the second program state P2.
Conventionally, a program disturbance may arise in relation to the memory cells to be programmed to the second program state P2 due to the program operation with respect to the first program state P1. However, according to the embodiments of the inventive concept, the voltage control unit 110 may generate an appropriate control signal such that a predetermined voltage is applied to a bit line during an inhibit interval so as to prevent program disturbance in the memory cells MC to be programmed to the second program state P2.
In
The voltage generating unit 220 may also be used to gradually increase the level of a program voltage over an incrementing count of program loops. That is, the voltage generating unit 220 may in certain embodiments be used to generate a pulse-type program start voltage having a first level during a first program loop, and then to generate a pulse-type program voltage having a second higher level (e.g., increased by a defined step voltage “Vstep”) during a second program loop, etc. As will be recognized by those skilled in the art, this programming approach is sometimes referred to as an incremental stepping pulse programming (ISPP) method.
When programming one or more memory cell(s) using an iterative program operation, each successively-executed program loop comprises a program step that is usually followed by a program verification step. Program loops continue until the memory cell(s) are properly programmed, or until a maximum program loop count is reached. Accordingly, in certain embodiments of the inventive concept, each program step is performed using a pulse-type program voltage, and each program verification step is performed using a pulse-type program verify voltage. As a program loop count value increases, the respective program voltage and program verify voltage may increase according to variously defined step increases.
In alternate embodiments of the inventive concept, the voltage control unit 110 may also be included in the memory device 200 rather than the memory controller 100.
Referring to
The control logic 230 may be used to provide various control signals necessary to the programming of data to, the erasing of data stored in, and the reading of data from the memory cell array 210 in response to command(s) CMD, address(es) ADDR, and control signal(s) CTRL received from the memory controller 100.
Various control signals provided by the control logic 230 may be used to control the operation (and the inter-operation) of voltage generating unit 220, row decoder 240, column decoder 260, and I/O buffer 270. For example, the control logic 230 may be used to provide a voltage control to the voltage generating unit 220, a row address to the row decoder 240, and a column address to the column decoder 260.
Under the control of the control logic 230, the voltage generating unit 220 may be used to selectively generate and apply word line voltages to the word lines. For example, the voltage generating unit 220 may be used to generate and apply to a selected word line any one of the first through Nth program start voltages (Vstart_1 through Vstart_N) respectively corresponding to the first through Nth program states (P1 through PN). The voltage generating unit 220 may also be used to generate the incrementally increasing program voltages and program verify voltages.
The row decoder 240 is operationally connected to the memory cell array 210 via word lines and may be used to selectively activate one or more word lines in response to the row address received from the control logic 230. For example, during a read operation, the row decoder 240 may apply a read voltage to a selected word line and a pass voltage to unselected word lines. During a program operation, the row decoder 240 may apply a program voltage to a selected word line and a pass voltage to unselected word lines.
The page buffer 250 is operationally connected to the memory cell array 210 via bit lines. Thus, during a read operation, the page buffer 250 may be configured to operate as a sense amplifier and provide “read data” retrieved from the memory cell array 210 to an external circuit. Alternately, during a program operation, the page buffer 250 may be configured to operate as a write driver and program “write data” to selected memory cells of the memory cell array 210.
In response to the column address received from the control logic 230, the column decoder 260 may select read data stored in the page buffer 250 and transfer the read data to the I/O buffer 270 during a read operation. Alternately, the column decoder 260 may select write data stored in the I/O buffer 270 and transfer the write data to the page buffer 250. The I/O buffer 270 may also be used to store write data received from the memory controller 100, or to transfer read data retrieved from the memory cell array 210 to the memory controller 100.
Referring to
Referring to
In a NAND flash memory having a structure like the one illustrated in
Referring to
Again assuming the use of flash MLC in the memory cell array 210 of
However, some electrical charge stored in the floating gate FG of the memory cell MC may leak away into the substrate (arrow direction) due to various factor. As a result, the initially programmed threshold voltage of the memory cell MC may change over time. For example, some of the electrical charge stored in the floating gate FG may leak due to abrasion of the memory cell MC. That is, the insulating layer in a channel region of the substrate disposed between the Source S and Drain D and below the floating gate FG may become worn due to repeated access operations (e.g., program, erase, and read operations). Alternatively or additionally, electrical charge stored in the floating gate FG may leak due to a high-temperature stress, or a temperature difference between program and read times.
Referring to
Referring to
That is, when a memory cell is programmed to one of the first through Nth program states (P1 through PN), a program verify operation is performed to determine whether the programming of the memory cell is complete. In this regard, a voltage generating unit, like voltage generating unit 220 of
Here, in certain embodiments of the inventive concept, the first program verify voltage (Vver_1) may correspond to a minimum threshold voltage for memory cell(s) programmed to the first program state P1, the second program verify voltage (Vver_2) may correspond to a minimum threshold voltage for memory cell(s) programmed to the second program state P2, and so on.
If memory cell(s) being verified in relation to a program verify voltage are determined to be turned OFF (e.g., a current does not flow through the memory cell), then the memory cell(s) are determined to be successfully programming with respect to a given program state. In contrast, if memory cell(s) being verified in relation to a program verify voltage are determined to be turner ON (e.g., a current flows through the memory cell), then the memory cell(s) are determined to not yet be successfully programmed with respect to the given program state.
With reference back to
Referring to
In each of the cases 1, 2 and 3 shown in
Referring to
Referring to
Referring now to
Referring to
Referring to
Referring to
As noted above, the higher a program start voltage, the lower a threshold voltage shift level will be for programmed memory cells. Accordingly, in order to reduce the relative shift level for memory cell threshold voltages, a relatively high program start voltage should be set wherever possible.
Referring to
Then, an Mth program verify operation is performed by applying an Mth program verify voltage to the target memory cell (S130). Then, a determination is made as to whether the programming of the target memory cell is complete (S140).
In each of the foregoing method steps, the constituent elements of the embodiments shown in
Referring to
Next, after the inhibit interval, the program operation continues by applying an Lth program start voltage to the target memory cell. That is, the voltage control unit 110 may be used to set an inhibit voltage such that target memory cell may be programmed following the inhibit interval. For example, the voltage control unit 110 may be used to generate a logically low (e.g., a ground signal) inhibit voltage applied to a bit line connected to the target memory cell following inhibit interval (S220).
The voltage generating unit 220 may be used to generate an Lth program start voltage corresponding to the Lth program state in response to the control signal, and may apply the Lth program start voltage to a selected word line connected to the target memory cell
Then, a program verify operation may be performed by applying an Lth program verify voltage to the target memory cell (S230). That is, the voltage generating unit 220 may be used to generate an Lth program verify voltage to determine whether the programming of the target memory cell to the Lth program state is complete by applying an Lth verify voltage to a selected word line connected to a memory cell.
Then, a determination is made as to whether the programming is complete (S250).
If the programming in determined to not be complete (S240=No), the method proceeds to step S310 of
In the determination of S240, if the memory cell being verified by the Lth program verify voltage is turned OFF, it may be determined that programming is complete and method ended. However, if the memory cell being verified by the Lth program verify voltage is turned ON, it may be determined that programming is not complete.
Referring to
An initial program loop “i” is assumed (S310).
For this program loop, the voltage control unit 110 sets a program voltage to be equal to the Mth program start voltage plus “i” times a predetermined voltage step (Vstep) (S320). This approach assumes the use of a ISPP programming method, wherein a program voltage is gradually increased according to the step voltage Vstep during each succeeding program loop.
Next, a program operation is performed for the current program loop by applying the program voltage to the target memory cell (S330). Here, the voltage generating unit 210 may be used to generate the program voltage of S320 in response to a control signal and apply program voltage to a word line connected to the target memory cell.
Then, a program verify operation is performed by applying the Mth program verify voltage to the target memory cell (S340). That is, the voltage generating unit 220 may be used again to generate the Mth program verify voltage in order to determine whether or not the programming of the target memory cell to the Mth program state is complete.
In view of the program verify operation (S340), a determination is made as to whether or not the programming of the target memory cell to the Mth program state is complete. If S350=Yes, the method ends. However, if S350=No, then the method potentially loops back to S320 through S360 and S370. That is, if the memory cell being verified in relation to the Mth program state is turned OFF, then it is determined that programming is complete. However, if the memory cell is turned ON, then it is determined that programming is not complete, and S360 is performed.
Assuming that the current loop count value “i” has not reached a maximum loop count value (LM) (S360=No), then the loop count is incremented (S370) and the method returns to S320.
Referring to
Accordingly, the first program start voltage (Vstart_1) is to (Vstart), the second program start voltage (Vstart_2) is set to (Vstart+α1), the third program start voltage (Vstart_3) is set to (Vstart+a2), and so forth until, the (N−1)th program start voltage (Vstart_N−1) is set to (Vstart+α(n−1)), and the Nth program start voltage (Vstart_N) is set to Vstart+αn, where a predetermined voltage level difference increases from α1 to αn, successively.
As described with reference to
When programming second memory cells to a second program state P2 using a second program start voltage (Vstart_2) higher than the first program start voltage (Vstart_1), a second initial distribution Di_2 of the second memory cells higher than the first initial distribution Di_1 is obtained, and so forth until when programming of an Nth program state PN is performed by applying the Nth program start voltage (Vstart_N) higher than all other program start voltages to Nth memory cells, an Nth initial distribution Di_n for the Nth memory cells highest of all initial distributions is obtained.
Once programming of the first memory cells is complete and final distribution Df_1 is obtained, the first memory cells will thereafter be maintained in a program inhibit state in order to prevent over-programming, and so on with respect to the other second through Nth memory cells.
In this regard according to the certain embodiments of the inventive concept, when performing a program operation with respect to the second through Nth program states (P2 through PN), the voltage control unit 110 may be used to maintain the second through Nth memory cells in a program inhibit state during an inhibit interval, and thereafter allow a program operation to be performed with respect to the second through Nth memory cells following the inhibit interval. The term “inhibit interval in a program operation” with respect to the Nth program state PN refers to an interval in which a program operation is performed using a program voltage lower than the Nth program start voltage (Vstart_N) when performing a program operation with respect to lower program states.
Thus, when programming second memory cells to a second program state P2, the second memory cells will be maintained in a program inhibit state during the inhibit interval in which a program operation with respect to a first program state P1 is performed using a program voltage that is lower than a second program start voltage Vstart_2 with respect to the first memory cells that are adjacent to the second memory cells. And when programming Nth memory cells to an Nth program state PN, the Nth memory cells may be maintained in a program inhibit state during an inhibit interval in which a program operation with respect to lower program states is performed with respect to (N−1)th memory cells by using a program voltage that is lower than the Nth program start voltage Vstart_N.
Referring to
Then, during a program preparation interval 320, a source voltage (Vcsl) is applied to the common source line CSL.
Then, during a programming interval 330, a pass voltage Vpass is applied to a selected word line (Sel.WL) and unselected word line (UnSel.WL) for channel boosting. Then, a program voltage is applied to the selected word line (Sel. WL, and a program voltage is gradually increased as a program loop count value increases.
Referring to
During a program preparation interval 420, the source voltage Vcsl is applied to the common source line CSL.
During the program inhibit interval 430, in which a program operation with respect to a memory cell adjacent to the selection memory cell is performed at a program voltage lower than a program start voltage according to a program state to be programmed. Here, a pass voltage Vpass for channel boosting is commonly applied to a selected word line (Sel.WL) and unselected word lines (UnSel.Wl). Then, a program voltage is applied to the selection word line (Sel.WL), and a program voltage increases by stages as a program loop count value increases.
As described above, even when a pass voltage Vpass and a program voltage (Vpgm) are applied to a selected word line (Sel.WL), as a power voltage is applied to the selection bit line (Sel.BL), a program disturbance may not occur with respect to the selected memory cell.
During a programming interval 440 with respect to a memory cell adjacent to the selection memory cell is performed by using a program voltage that is equal to or higher than a program start voltage according to a program state to be programmed. Here, ground voltage is applied to the selected bit line (Sel.Bl), and accordingly, a program operation with respect to the second through Nth program states P2 through PN may be performed.
Referring to
Here, the voltage control unit 110 may be used to group two or more program states (e.g., P2 & P3; PN−1 & PN) such that each program state in a particular group of program states uses the same program start voltage. All groups of program states in this regard may have an equal number of grouped program states or a different number.
Similar to the approach described with reference to
Of further note with respect to the embodiment shown in
Referring to
The host 1100 may write data to the memory card 1200 or read data stored in the memory card 1200. The host controller 1110 may transmit a clock signal CLK generated in a clock generator (not shown) in the host 1100 and data to the memory card 1200 through the host contact 1120.
In response to the command CMD received by using the card contact 1210, the card controller 1220 may store data in the memory device 1230 in synchronization with a clock signal generated by a clock generator (not shown) in the card controller 1220. The memory device 1230 may store data transmitted from the host 1100.
The memory card 1230 may be a compact flash card (CFC), a Microdrive, a smart media card (SMC), a multimedia card (MMC), a security digital card (SDC), a memory stick, or a universal serial bus (USB) flash memory driver.
Referring to
The processor 2200 may perform particular computations or tasks. According to an embodiment of the inventive concept, the processor 2200 may be a micro-processor or a central processing unit (CPU). The processor 2200 may perform communication with the RAM 2300, the input/output device 2400, and the memory system 2100 via a bus 2600 such as an address bus, a control bus, or a data bus. According to an embodiment of the inventive concept, the processor 2200 may also be connected to an extension bus such as a peripheral component interconnect (PCI) bus.
The RAM 2300 may store data needed in operating the computing system 2000. For example, the RAM 2300 may be a DRAM, a mobile DRAM, an SRAM, a PRAM, an FRAM, an RRAM, and/or an MRAM.
The input/output device 2400 may include an input unit such as a keyboard, a keypad, or a mouse and an output unit such as a printer or a display. The power device 2500 may supply an operating voltage needed in operating the computing system 2000.
Referring to
While the inventive concept has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood that various changes in form and details may be made therein without departing from the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2013-0143945 | Nov 2013 | KR | national |