Patent Publication Number: US-10789021-B2

Title: Memory device and memory system

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     A claim for priority under 35 U.S.C. § 119 is made to Korean Patent Application No. 10-2016-0022008, filed on Feb. 24, 2016, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference. 
     BACKGROUND 
     The inventive concept herein relates to a memory device, and more particularly, to a memory device and a memory system including a memory controller for controlling generation of a programming voltage and a verifying voltage. 
     Semiconductor memory devices may be classified into volatile memory devices such as dynamic random-access memories (DRAMs) and static RAMs (SRAMs) for example, and nonvolatile memory devices such as electrically erasable programmable read-only memories (EEPROMs), ferroelectric RAMs (FRAMs), phase-change RAMs (PRAMs), magnetoresistive RAMs (MRAMs), and flash memories for example. Volatile memory devices lose stored data when power is turned off, whereas nonvolatile memory devices preserve stored data even when power is turned off. 
     The availability and widespread use of electronic devices including nonvolatile memory devices have rapidly increased. For example, MP3 players, digital cameras, mobile phones, camcorders, flash cards, and solid-state disks (SSDs) typically include nonvolatile memory devices as storage devices. As the use and capabilities of electronic devices including nonvolatile memory devices as storage devices have increased, the storage capacity of nonvolatile memory devices has consequently increased. The storage capacity of a memory device may be increased by employing a multi-level cell (MLC) method in which a plurality of bits are stored in one memory cell. In order to recognize data stored in an MLC, a sufficient read margin must be secured. A general programming method which secures sufficient read margin may include a programming operation based on an incremental step pulse programming (ISPP) scheme in which programming states of memory cells are verified using a plurality of verifying voltages whenever a programming voltage pulse is applied to the memory cells. However, even after such a verifying operation is completed, the reliability of data stored in the memory cells is reduced due to memory cell characteristics. 
     SUMMARY 
     Embodiments of the inventive concept provide a memory device and a memory system including memory cells with improved reliability of stored data. 
     Embodiments of the inventive concept provide a memory device including a memory cell array including a plurality of memory cells on which a programming loop is executed a plurality of times; a voltage generator configured to apply a verifying voltage to each of the memory cells, for verifying at least one programming state of the memory cells; and a voltage controller configured to control the voltage generator to change a level of the verifying voltage as a program loop count increases, based on temperature information about a temperature inside or outside the memory device. 
     Embodiments of the inventive concept further provide a memory device including a memory cell array including a plurality of memory cells on which a programming loop is executed a plurality of times; a voltage generator configured to apply verifying voltages to the memory cell array, for verifying programming states of the memory cells; and a voltage controller configured to control the voltage generator so that levels of the verifying voltages gradually decrease as a program loop count increases. 
     Embodiments of the inventive concept also provide a memory system including a memory device including memory cells on which a programming loop is executed a plurality of times; and a memory controller configured to control the programming loop executed on the memory device. The memory device includes a voltage controller configured to control generation of verifying voltages having levels that are changed as a program loop count increases based on at least one of temperature information about a temperature inside or outside the memory device and programming states of the memory cells to be verified. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of the inventive concept will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which: 
         FIG. 1  illustrates a block diagram of a memory system according to an embodiment of the inventive concept; 
         FIG. 2  illustrates a detailed block diagram of a memory device included in the memory system of  FIG. 1 ; 
         FIG. 3  illustrates a circuit diagram of an equivalent circuit of a first block of  FIG. 2 ; 
         FIG. 4  illustrates a perspective view of the first block of  FIG. 2  according to an embodiment of the inventive concept; 
         FIG. 5  illustrates a graph of a programming voltage applied to a memory cell during a programming operation according to an embodiment of the inventive concept; 
         FIG. 6  illustrates a graph of a threshold voltage distribution of memory cells after a programming operation is completed; 
         FIGS. 7A, 7B and 7C  each illustrate a distribution graph of a program loop count needed until each programming state is formed when a pulse-type programming voltage is applied to memory cells; 
         FIGS. 8A and 8B  illustrate graphs showing a change in a threshold voltage of a memory cell according to memory cell characteristics and temperature; 
         FIGS. 9A and 9B  illustrate graphs showing a threshold voltage distribution according to characteristics of a memory cell of  FIG. 8 ; 
         FIG. 10  illustrates a block diagram of a voltage controller according to an embodiment of the inventive concept; 
         FIGS. 11A and 11B  illustrate diagrams of control information needed during an operation of the voltage controller according to an embodiments of the inventive concept; 
         FIGS. 12A, 12   b  and  12 C illustrate graphs for explaining an operation of the voltage controller to control changing of a level of a verifying voltage according to an embodiments of the inventive concept; 
         FIGS. 13A, 13B, 13C and 13D  illustrate graphs for explaining an operation of the voltage controller to control changing of a level of a verifying voltage according to various embodiments of the inventive concept; 
         FIGS. 14A and 14B  each illustrate a block diagram for explaining a control operation of a voltage controller according to embodiments of the inventive concept; 
         FIG. 15  illustrates a block diagram for explaining an operation of a program loop counter according to an embodiment of the inventive concept; 
         FIG. 16  illustrates a block diagram of a voltage controller according to another embodiment of the inventive concept; 
         FIGS. 17A and 17B  each illustrate a graph for explaining an operation of the voltage controller to control changing of a level of a verifying voltage according to the embodiment of  FIG. 16 ; 
         FIG. 18A  illustrates a block diagram for explaining an operation of a voltage controller to control changing of a level of a verifying voltage according to another embodiment of the inventive concept; 
         FIG. 18B  illustrates a diagram of control information needed during an operation of the voltage controller according to another embodiment of the inventive concept; 
         FIG. 19A  illustrates a block diagram for explaining an operation of a voltage controller to control changing of a level of a verifying voltage according to another embodiment of the inventive concept; 
         FIG. 19B  illustrates a graph for explaining a method of a temperature information generator to generate temperature information according to the embodiment described with respect to  FIG. 19A ; 
         FIGS. 20A and 20B  illustrate graphs for explaining an overall operation of a voltage controller according to an embodiment of the inventive concept; 
         FIG. 21  illustrates a flowchart for explaining a programming operation performed in a memory device according to an embodiment of the inventive concept; 
         FIG. 22  illustrates a block diagram of an example of applying a memory device to a memory card system according to embodiments of the inventive concept; 
         FIG. 23  illustrates a block diagram of a computing system including a memory device according to embodiments of the inventive concept; 
         FIG. 24  illustrates a block diagram of an example of applying a memory device to a solid-state disk (SSD) system according to embodiments of the inventive concept; and 
         FIG. 25  illustrates a block diagram of an example of applying a memory device to a universal flash storage (UFS) system according to embodiments of the inventive concept. 
     
    
    
     DETAILED DESCRIPTION 
     The inventive concept will now be described more fully with reference to the accompanying drawings, in which various embodiments are shown. 
     As is traditional in the field of the inventive concept, embodiments may be described and illustrated in terms of blocks which carry out a described function or functions. These blocks, which may be referred to herein as units or modules or the like, are physically implemented by analog and/or digital circuits such as logic gates, integrated circuits, microprocessors, microcontrollers, memory circuits, passive electronic components, active electronic components, optical components, hardwired circuits and the like, and may optionally be driven by firmware and/or software. The circuits may, for example, be embodied in one or more semiconductor chips, or on substrate supports such as printed circuit boards and the like. The circuits constituting a block may be implemented by dedicated hardware, or by a processor (e.g., one or more programmed microprocessors and associated circuitry), or by a combination of dedicated hardware to perform some functions of the block and a processor to perform other functions of the block. Each block of the embodiments may be physically separated into two or more interacting and discrete blocks without departing from the scope of the inventive concept. Likewise, the blocks of the embodiments may be physically combined into more complex blocks without departing from the scope of the inventive concept. 
       FIG. 1  illustrates a block diagram of a memory system  10  according to an embodiment of the inventive concept. 
     Referring to  FIG. 1 , the memory system  10  includes a memory device  100  and a memory controller  800 . The memory device  100  includes a memory cell array  110  and a control logic  120 . 
     The memory cell array  110  may include a plurality of memory cells. The plurality of memory cells may be, for example, flash memory cells. It is assumed in the following description that the plurality of memory cells are NAND flash memory cells. However, the inventive concept is not limited thereto, and in other embodiments, the plurality of memory cells may for example be resistive memory cells such as resistive random-access memories (RRAMs), phase-change RAMs (PRAMs), or magnetic RAMs (MRAMs). 
     In an embodiment, the memory cell array  110  may be a three-dimensional (3D) memory array. The 3D memory array may be monolithically formed at one or more physical levels of memory cell arrays having an active area disposed over a silicon substrate and circuitry associated with operations of memory cells and formed over or in the silicon substrate. The term “monolithic” means that layers of each level of the array are directly stacked on layers of each underlying level of the array. 
     In an embodiment, the 3D memory array includes NAND strings that are vertically oriented so that at least one memory cell is located over another memory cell. The at least one memory cell may include a charge trap layer. Suitable configurations for 3D memory arrays in which 3D memory arrays are configured as a plurality of levels and word lines and/or bit lines are shared between the levels are disclosed in U.S. Pat. Nos. 7,679,133, 8,553,466, 8,654,587, and 8,559,235 and U.S. Patent Publication No. 2011-0233648, which are hereby incorporated by reference. Also, U.S. Patent Publication No. 2014-0334232 and U.S. Pat. No. 8,488,381 are hereby incorporated by reference. 
     In the present embodiment, the memory cell array  110  may include a plurality of NAND strings, and each of the NAND strings may include a ground selection transistor connected to a ground selection line, memory cells connected to word lines, and a string selection transistor connected to a string selection line, which are vertically stacked on a substrate. The NAND string may include more than one ground selection transistor, and/or more than one string selection transistor. In the present embodiment, the control logic  120  may control changing of a level of a verifying voltage when a programming loop including a programming operation and a verifying operation is executed on memory cells selected from among the memory cells included in the memory cell array  110 . In an embodiment, the control logic  120  may gradually change levels of a plurality of verifying voltages based on at least one of a programming state of the memory cells to be verified and temperature information about a temperature inside or outside the memory device  100 . 
     The memory controller  800  may control the memory device  100  to read data stored in the memory device  100  or write data to the memory device  100  in response to a read/write request from a host HOST. In detail, the memory controller  800  may control a programming (or write) operation, a read operation, and an erase operation to be performed on the memory device  100  by applying an address ADDR, a command CMD, and a control signal CTRL to the memory device  100 . Also, data DATA for a programming operation and read data DATA may be transmitted/received between the memory controller  800  and the memory device  100 . 
     Although not shown in  FIG. 1 , the memory controller  800  may include a RAM, a processing unit, a host interface, and a memory interface. The RAM may be used as a working memory of the processing unit, and the processing unit may control an operation of the memory controller  800 . The host interface may include a protocol for performing data exchange between the host HOST and the memory controller  800 . For example, the memory controller  800  may be configured to communicate with the host HOST through at least one of various interface protocols such as a universal serial bus (USB), multimedia card (MMC), peripheral component interconnect express (PCI-E), advanced technology attachment (ATA), serial-ATA, parallel-ATA, small computer system interface (SCSI), enhanced small disk interface (ESDI), and integrated drive electronics (IDE). 
       FIG. 2  illustrates a detailed block diagram of the memory device  100  included in the memory system  10  of  FIG. 1 . 
     Referring to  FIG. 2 , the memory device  100  includes the memory cell array  110 , a read-only memory (ROM) fuse  112 , the control logic  120 , a voltage generator  130 , a row decoder  140 , and a page buffer  150 . Although not shown in  FIG. 2 , the memory device  100  may further include a data input/output circuit or an input/output interface. 
     The memory cell array  110  may include a plurality of memory cells, and may be connected to word lines WL, string selection lines SSL, ground selection lines GSL, and bit lines BL. In detail, the memory cell array  110  may be connected to the row decoder  140  through the word lines WL, the string selection lines SSL, and the ground selection lines GSL, and may be connected to the page buffer  150  through the bit lines BL. 
     The memory cell array  110  may include a plurality of blocks, e.g., first through z th  blocks BLK 1 , BLK 2  through BLKz, and each block may have a 3D structure (or a vertical structure). In detail, each block includes structures that extend in first through third directions. For example, each block includes a plurality of NAND strings (hereinafter, referred to as ‘strings’) that extend in the third direction. In this case, the plurality of strings may be spaced apart from one another in the first and second directions. One of the first through z th  blocks BLK 1  through BLKz may be selected by the row decoder  140 . For example, the row decoder  140  may select a block corresponding to a block address from among the first through z th  blocks BLK 1  through BLKz. 
     The memory cell array  110  may include at least one of a single-level cell block including single-level cells, a multi-level cell block including multi-level cells, and a triple-level cell block including triple-level cells. In other words, some blocks from among the plurality of blocks included in the memory cell array  110  may be single-level cell blocks and other blocks may be multi-level cell blocks or triple-level cell blocks. 
     The ROM fuse  112  may include memory cells having the same structure as that of the memory cells of the memory cell array  110 . Although the ROM fuse  112  is located adjacent to the memory cell array  110  in  FIG. 2 , the inventive concept is not limited thereto, and the ROM fuse  112  may be located far away from the memory cell array  110  or may be a part of the memory cell array  110 . Pieces of information needed to generate a verifying voltage and a programming voltage generated to execute a programming loop on the memory cells may be stored in the ROM fuse  112 . In an embodiment, the ROM fuse  112  may store control information including control parameters needed to gradually change a level of a verifying voltage as a programming loop is executed. In an embodiment, pieces of parameter information may include at least one of a change start verify voltage level parameter, a level change degree parameter, and a level change start loop parameter. In another embodiment, the pieces of parameter information may include at least one of a verifying voltage parameter and a program loop number parameter. A detailed explanation of the pieces of parameter information will be explained below. 
     The control logic  120  may output various control signals for writing data to the memory cell array  110  or reading data from the memory cell array  110  based on a command CMD, an address ADDR, and a control signal CTRL received from the memory controller  800 . Accordingly, the control logic  120  may control overall various operations in the memory device  100 . 
     The various control signals output from the control logic  120  may be applied to the voltage generator  130 , the row decoder  140 , and the page buffer  150 . In detail, the control logic  120  may include a voltage controller  121 . The voltage controller  121  may apply a voltage control signal CTRL_vol to the voltage generator  130 . In an embodiment, the voltage controller  121  may generate the voltage control signal CTRL_vol for controlling generation of a verifying voltage and a programming voltage applied to the memory cell array  110  in order to write data to the memory cells. 
     In an embodiment, the voltage controller  121  may generate the voltage control signal CTRL_vol so that voltage levels of verifying voltages gradually decrease as a program loop count for the memory cells increases. Also, the voltage controller  121  may generate the voltage control signal CTRL_vol by referring to information that is stored in the ROM fuse  112 . In another embodiment, the voltage controller  121  may generate the voltage control signal CTRL_vol so that verifying voltages for verifying programming states have different level change start timings. Also, the voltage controller  121  may generate the voltage control signal CTRL_vol so that verifying voltages have different level change degrees based on a programming state of memory cells to be verified. In an embodiment, the voltage controller  121  may generate the voltage control signal CTRL_vol so that the verifying voltages reach a level that is lower than reference voltage levels corresponding to verifying voltages. Also, the voltage controller  121  may generate the voltage control signal CTRL_vol so that a level of at least one verifying voltage from among verifying voltages is fixed after a programming loop is executed on the memory cells a predetermined number of times. 
     In another embodiment, the voltage controller  121  may generate the voltage control signal CTRL_vol so that levels of verifying voltages vary as a program loop count increases, based on temperature information about a temperature inside or outside the memory device  100 . Also, the voltage controller  121  may generate the voltage control signal CTRL_vol to generate verifying voltages whereby at least one from among a level change degree and a change start verify voltage is changed, based on the temperature information. In another embodiment, the voltage controller  121  may generate the voltage control signal CTRL_vol in order to control generation of verifying voltages whose levels vary as a program loop count increases based on at least one of the temperature information and a programming state to be verified. Also, the voltage controller  121  may generate the voltage control signal CTRL_vol in order to control generation of verifying voltages whereby at least one from among a level change degree and a change start verify voltage is changed. 
     The voltage generator  130  may generate various voltages (indicated generally as VWL in  FIG. 2 ) for performing programming, read, and erase operations on the memory cell array  110  based on the voltage control signal CTRL_vol. In detail, the voltage generator  130  may generate a word line voltage, for example, a programming voltage (or a write voltage), a read voltage, a programming inhibit voltage, a read inhibit voltage, or a verifying voltage. In an embodiment, the voltage generator  130  may generate a verifying voltage whose level varies as a program loop count increases based on the voltage control signal CTRL_vol. A programming loop may be executed by using an incremental step pulse programming (ISPP) scheme, and the voltage generator  130  may generate a programming voltage whose level increases by a step voltage from a previous programming voltage whenever a programming loop is executed. 
     The row decoder  140  may select some word lines from among the word lines WL in response to a row address X-ADDR received from the control logic  120 . In detail, during a programming operation, the row decoder  140  may apply a programming voltage to the selected word lines and may apply a programming inhibit voltage to non-selected word lines. Also, the row decoder  140  may select some ground selection lines from among the ground selection lines GSL and some string selection lines from among the string selection lines SSL in response to the row address X-ADDR received from the control logic  120 . 
     The page buffer  150  may be connected to the memory cell array  110  through the bit lines BL, and may select some bit lines from among the bit lines BL in response to a column address Y-ADDR received from the control logic  120 . In detail, during a read operation, the page buffer  150  may operate as a sense amplifier and may detect data DATA stored in the memory cell array  110 . During a programming operation, the page buffer  150  may operate as a write driver, and may input data DATA to be stored in the memory cell array  110 . 
       FIG. 3  illustrates a circuit diagram of an equivalent circuit of the first block BLK 1  of  FIG. 2 . 
     Referring to  FIG. 3 , the first block BLK 1  may be a vertical NAND flash memory, and each of the first through z th  blocks BLK 1  through BLKz of  FIG. 2  may have the same form as that in  FIG. 3 . The first block BLK 1  may include a plurality of NAND strings NS 11  through NS 33 , a plurality of word lines WL 1  through WL 8 , a plurality of bit lines, e.g., first through third bit lines BL 1  through BL 3 , a plurality of ground selection lines GSL 1  through GSL 3 , a plurality of string selection lines SSL 1  through SSL 3 , and a common source line CSL. The number of NAND strings, the number of word lines, the number of bit lines, the number of ground selection lines, and the number of string selection lines may be changed in various ways. 
     The NAND strings NS 11 , NS 21 , and NS 31  are provided between the first bit line BL 1  and the common source line CSL, the NAND strings NS 12 , NS 22 , and NS 32  are provided between the second bit line BL 2  and the common source line CSL, and the NAND strings NS 13 , NS 23 , and NS 33  are provided between the third bit line BL 3  and the common source line CSL. Each NAND string (e.g., NS 11 ) may include a string selection transistor SST, a plurality of memory cells MC 1  through MC 8 , and a ground selection transistor GST that are serially connected. Hereinafter, a NAND string is referred to as a string for convenience of explanation. 
     Strings commonly connected to one bit line constitute one column. For example, the strings NS 11 , NS 21 , and NS 31  commonly connected to the first bit line BL 1  may correspond to a first column, the strings NS 12 , NS 22 , and NS 32  commonly connected to the second bit line BL 2  may correspond to a second column, and the strings NS 13 , NS 23 , and NS 33  commonly connected to the third bit line BL 3  may correspond to a third column. 
     Strings connected to one string selection line constitute one row. For example, the strings NS 11 , NS 12 , and NS 13  connected to the first string selection line SSL 1  may correspond to a first row, the strings NS 21 , NS 22 , and NS 23  connected to the second string selection line SSL 2  may correspond to a second row, and the strings NS 31 , NS 32 , and NS 33  connected to the third string selection line SSL 3  may correspond to a third row. 
     The string selection transistors SST are respectively connected to the string selection lines SSL 1  through SSL 3 . The plurality of memory cells MC 1  through MC 8  are respectively connected to the word lines WL 1  through WL 8 . The ground selection transistors GST are respectively connected to the ground selection lines GSL 1  through GSL 3 . The string selection transistors SST are also respectively connected to the first through third bit lines BL 1  through BL 3 , and the ground selection transistors GST are connected to the common source line CSL. 
     In the present embodiment, the word lines having the same height (e.g., WL 1 ) are connected to one another, the string selection lines SSL 1  through SSL 3  are separated from one another, and the ground selection lines GSL 1  through GSL 3  are separated from one another. For example, when memory cells connected to the first word line WL 1  and included in the strings NS 11 , NS 12 , and NS 13  are programmed, the first word line WL 1  and the first string selection line SSL 1  are selected. However, the inventive concept is not limited thereto, and in another embodiment, the ground selection lines GSL 1  through GSL 3  may be connected to one another. 
       FIG. 4  illustrates a perspective view of the first block BLK 1  of  FIG. 2  according to an embodiment of the inventive concept. 
     Referring to  FIG. 4 , the first block BLK 1  is formed in a direction perpendicular to a substrate SUB. Although the first block BLK 1  includes two selection lines GSL and SSL, eight word lines WL 1  through WL 8 , and three bit lines BL 1  through BL 3  in  FIG. 4 , the first block BLK 1  may actually include fewer or more lines. 
     The substrate SUB has a first conductivity type (e.g., a p-type), and the common source line CSL extends in a first direction (e.g., a Y direction) on the substrate SUB and is doped with impurities having a second conductivity type (e.g., an n-type). A plurality of insulating films IL that extend in the first direction are sequentially provided in a third direction (e.g., a Z direction) on a portion of the substrate SUB between two adjacent common source lines CSL, and are spaced apart by a predetermined distance from each other in the third direction. For example, the plurality of insulating films IL may include an insulating material such as silicon oxide. 
     A plurality of pillars P that pass through the plurality of insulating films IL in the third direction and are sequentially arranged in the first direction are provided on a portion of the substrate SUB between two adjacent common source lines CSL. For example, the plurality of pillars P may pass through the plurality of insulating films IL and may contact the substrate SUB. In detail, a surface layer S of each of the pillars P may include a silicon material having a first conductivity type and may function as a channel region. An inner layer I of each pillar P may include an insulating material such as silicon oxide or an air gap. 
     A charge storage layer CS is provided along exposed surfaces of the insulating films IL, the pillars P, and the substrate SUB in a portion between two adjacent common source lines CSL. The charge storage layer CS may include a gate insulating layer (or referred to as a ‘tunneling insulating layer’), a charge trap layer, and a blocking insulating layer. For example, the charge storage layer CS may have an oxide-nitride-oxide (ONO) structure. Also, a gate electrode GE such as each of the selection lines GSL and SSL and the word lines WL 1  through WL 8  is provided on an exposed surface of the charge storage layer CS in a portion between two adjacent common source lines CSL. A ground selection transistor GST is adjacent the substrate SUB. 
     Drains or drain contacts DR are provided on the plurality of pillars P. For example, the drains or drain contacts DR may include a silicon material doped with impurities having a second conductivity type. A string selection transistor SST is adjacent the drain contact DR. The first through third bit lines BL 1  through BL 3  that extend in a second direction (e.g., an X direction) and are spaced apart by a predetermined distance from each other in the first direction are provided on the drain or drain contacts DR. 
     According to the present embodiment, charges trapped in a predetermined region of the charge storage layer CS as a result of a programming operation may escape from the predetermined region and may be trapped in another region or may move to another layer other than the charge storage layer CS, thereby widening a threshold voltage distribution of memory cells. Accordingly, the reliability of a memory device including the charge storage layer CS may be reduced, which will be explained in detail below. 
       FIG. 6  illustrates a graph of a programming voltage applied to a memory cell during a programming operation according to an embodiment of the inventive concept. In  FIG. 5 , the vertical axis represents a programming voltage Vpgm, and the horizontal axis represents a program loop number. 
     Referring to  FIGS. 2 and 5 , the voltage generator  130  may apply a programming voltage Vpgm operation to a selected word line of the memory cell array  110 . A level of the programming voltage Vpgm increases by a step voltage Vstep whenever a programming loop is executed during a programming. Also, the voltage generator  130  may apply a verifying voltage to the selected word line of the memory cell array  110  in order to perform a verifying operation for verifying a programming state after a programming voltage Vpgm is applied. 
       FIG. 6  illustrates a graph of a threshold voltage distribution of memory cells after a programming operation is completed. In  FIG. 6 , the vertical axis represents a number of programmed memory cells, and the horizontal axis represents a threshold voltage. 
     Referring to  FIG. 6 , each memory cell according to an embodiment may be a multi-bit cell, and thus two or more bits of data may be stored in one memory cell. A threshold voltage distribution of memory cells having four programming states may be formed as shown in  FIG. 6  by performing a programming operation by using an ISPP scheme of  FIG. 5 . Each memory cell may have an erase state E, a first programming state P 1 , a second programming state P 2 , or a third programming state P 3  as a result of the programming operation. The voltage generator  130  of  FIG. 2  may perform a verifying operation for verifying whether memory cells are in the first programming state P 1  as a result of the programming operation by using a first verifying voltage VP 1 . Also, the voltage generator  130  may perform a verifying operation for verifying whether the memory cells are in the second programming state P 2  by using a second verifying voltage VP 2 . The voltage generator  130  may perform a verifying operation for verifying whether the memory cells are in the third programming state P 3  by using a third verifying voltage VP 3 . Although a memory device including memory cells in which two bits of data is stored is described, the inventive concept is not limited thereto. Thus, in an embodiment, a memory device including multi-level cells MLCs in which a plurality of bits of data may be stored and that may have a plurality of programming states may be used. 
       FIGS. 7A, 7B and 7C  each illustrate a distribution graph of a program loop count needed until each programming state is reached when a pulse-type programming voltage is applied to memory cells. In  FIGS. 7A-7C , the vertical axes represent a number of programmed memory cells, and the horizontal axes represent a program loop number. 
     Referring to  FIG. 7A , a number of times a programming loop is repeatedly executed until a threshold voltage of a predetermined memory cell exceeds the first verifying voltage VP 1  of  FIG. 6  and the predetermined memory cell reaches the first programming state P 1  may vary according to memory cells. That is, fast cells FC 1  may reach the first programming state P 1  after a programming loop is executed thereon a relatively small number of times. Slow cells SC 1  may reach the first programming state P 1  after a programming loop is executed thereon a relatively large number of times. 
     Referring to  FIG. 7B , the number of times a programming loop is repeatedly executed until a threshold voltage of a predetermined memory cell exceeds the second verifying voltage VP 2  of  FIG. 6  and the predetermined memory cell reaches the second programming state P 2  may vary according to memory cells. That is, fast cells FC 2  may reach the second programming state P 2  after a programming loop a is executed thereon a relatively small number of times, and slow cells SC 2  may reach the second programming state P 2  after a programming loop is executed thereon a relatively large number of times. 
     Referring to  FIG. 7C , the number of times a programming loop is repeatedly executed until a threshold voltage of a predetermined memory cell exceeds the third verifying voltage VP 3  of  FIG. 6  and the predetermined memory cell reaches the third programming state P 3  may vary according to memory cells. That is, fast cells FC 3  may reach the third programming state P 3  by executing a programming loop a relatively small number of times, and slow cells SC 3  may reach the third programming state P 3  by executing a programming loop a relatively large number of times. 
     As such, there may exist memory cells whose threshold voltages are rapidly changed and memory cells whose threshold voltages are slowly changed when a programming loop is executed. 
       FIGS. 8A and 8B  illustrate graphs showing a change in a threshold voltage of a memory cell according to memory cell characteristics and a temperature. In  FIGS. 8A and 8B , the vertical axes of the graphs represent threshold voltage, and the horizontal axes represent time. 
       FIG. 8A  illustrates graphs showing a relationship between a threshold voltage of memory cells and a time under a first temperature condition. A graph (a) in  FIG. 8A  illustrates a change in a threshold voltage of memory cells having the first programming state P 1 . A graph (b) in  FIG. 8A  illustrates a change in a threshold voltage of memory cells having the second programming state P 2 . Also, a graph (c) in  FIG. 8A  illustrates a change in a threshold voltage of memory cells having the third programming state P 3 . Referring to  FIG. 8A , a change amount of a threshold voltage per time increases as a programming state has a greater threshold voltage, and a change amount of a threshold voltage of a fast cell per time is greater than a change amount of a threshold voltage of a slow cell per time. 
       FIG. 8B  illustrates graphs showing a relationship between a threshold voltage of memory cells and a time under a second temperature condition. The second temperature condition may have a temperature lower than a temperature of the first temperature condition. For example, the first temperature condition may correspond to a temperature of 80° C. and the second temperature condition may correspond to a temperature of −10° C. Referring to  FIG. 8B , a change amount of a threshold voltage per time increases as a programming state has a greater threshold voltage, and a change amount of a threshold voltage of a fast cell per time is greater than a change amount of a threshold voltage of a slow cell per time. Furthermore, a difference between a change amount of a threshold voltage of a fast cell per time and a change amount of a threshold voltage of a slow cell per time increases as a temperature of a temperature condition decreases. 
       FIGS. 9A and 9B  illustrate graphs showing a threshold voltage distribution according to memory cell characteristics of  FIGS. 8A and 8B . In  FIGS. 9A and 9B , the vertical axes represent a number of programmed memory cells, and the horizontal axes represent a threshold voltage. 
     As shown in  FIG. 9A , since a threshold voltage of memory cells varies as time passes, a threshold voltage distribution of memory cells after a programming operation is completed may be changed. For example, a threshold voltage of some memory cells having the first programming state P 1  may be shifted leftward by a first interval a 1 , a threshold voltage of some memory cells having the second programming state P 2  may be shifted leftward by a second interval a 2 , and a threshold voltage of some memory cells having the third programming state P 3  may be shifted leftward by a third interval a 3 . In this case, a change amount of a threshold voltage distribution may increase as memory cells have a programming state requiring a higher verifying voltage level in order to perform a verifying operation, that is, have a higher threshold voltage, and thus the third interval a 3  may be greater than the second interval a 2  and the second interval a 2  may be greater than the first interval a 1 . 
     As shown in  FIG. 9B , since a difference between a change amount of a threshold voltage of a fast cell per time and a change amount of a threshold voltage of a slow cell per time increases as a temperature condition decreases, a change amount of a threshold voltage distribution of memory cells under a temperature condition having a temperature lower than that in  FIG. 9A  may be greater than that in  FIG. 9A . That is, a threshold voltage of some memory cells having the first programming state P 1  may be shifted leftward by a first interval b 1 , a threshold voltage of some memory cells having the second programming state P 2  may be shifted leftward by a second interval b 2 , and a threshold voltage of some memory cells having the third programming state P 3  may be shifted leftward by a third interval b 3 . The first through third intervals b 1  through b 3  of  FIG. 9B  may be respectively greater than the first through third intervals a 1  through a 3  of  FIG. 9A . 
       FIG. 10  illustrates a block diagram of a voltage controller  200  according to an embodiment of the inventive concept.  FIGS. 11A and 11B  illustrate diagrams of control information needed during an operation of the voltage controller  200  according to embodiments of the inventive concept.  FIGS. 12A through 12C  illustrate graphs for explaining an operation of the voltage controller  200  to control changing of a level of a verifying voltage according to an embodiments of the inventive concept. The voltage controller  200  may correspond to the voltage controller  121  of control logic  120  shown in  FIG. 2 . Also, in  FIGS. 12A-12C  the vertical axes represent a verify voltage, and the horizontal axes represent a program loop. 
     Referring to  FIG. 10 , the voltage controller  200  includes a program loop counter  210 , a verifying voltage level control signal generator  220 , and a control information storage unit  230 . The program loop counter  210  counts the number of times a programming loop is executed on memory cells. In an embodiment, the program loop counter  210  may count the number of repetitions of a programming loop by counting a number of pulses when a programming voltage is stepped up. The program loop counter  210  may generate program loop count information by counting the number of repetitions of a programming loop and may send the program loop count information to the verifying voltage level control signal generator  220 . Also, in an embodiment (which will be described later with respect to  FIG. 14A  for example), the program loop counter  210  may control the verifying voltage level control signal generator  220  to be activated/deactivated based on the program loop count information provided from the control information storage unit  230 . 
     The verifying voltage level control signal generator  220  generates a voltage control signal CTRL_vol 1  for controlling a verifying voltage generated by a voltage generator, the verifying voltage to be generated having a level that varies as a program loop count increases. The verifying voltage level control signal generator  220  may receive control information for controlling changing of a verifying voltage from the control information storage unit  230 , and may receive the program loop count information from the program loop counter  210 . The verifying voltage level control signal generator  220  may control changing of a level of a verifying voltage by using the program loop count information and the control information. 
     The control information storage unit  230  may store pieces of control information needed to change a level of a verifying voltage. The pieces of control information may include a change start verify voltage level parameter, a level change degree parameter, and a level change start loop parameter, and may further include a program loop number parameter and a verifying voltage level parameter corresponding to the program loop number parameter. The pieces of control information may be stored in the ROM fuse  112  when the memory device  100  of  FIG. 2  is turned off and may be loaded to the control information storage unit  230  when the memory device  100  is turned on. The control information storage unit  230  may apply the pieces of control information to the verifying voltage level control signal generator  220 . However, the inventive concept is not limited thereto, and the verifying voltage level control signal generator  220  may directly receive the pieces of control information from the ROM fuse  112 . 
     Referring to  FIG. 11A , the control information stored in control information storage unit  230  may include control parameters including a change start verify voltage level parameter SVL, a level change degree parameter LCD, and a level change start loop parameter SL according to each programming state to be verified (e.g., P 1 , P 2  and P 3 ). The change start verify voltage level parameter SVL is a parameter that is referred to in order to control a start level of a verifying voltage when the voltage controller  200  starts to control changing of a level of the verifying voltage. The level change degree parameter LCD is a parameter that is referred to in order to control, when the voltage controller  200  controls changing of a level of the verifying voltage, a level change degree of the verifying voltage. The level change start loop parameter SL is a parameter that is referred to in order for the voltage controller  200  to control a level change start timing of a verifying voltage. The verifying voltage level control signal generator  220  may generate the voltage control signal CTRL_vol 1  for controlling the voltage generator by using the above control information. 
     Referring to  FIG. 11B , the control information stored in control information storage unit  230  may further include control parameters including a verifying voltage level parameter VVL and a program loop number parameter PLN according to each programming state to be verified (e.g., P 1 , P 2  and P 3 ). The program loop number parameter PLN and the verifying voltage level parameter VVL may be parameters that are referred to in order for the voltage controller  200  to generate a verifying voltage having a predetermined level when a predetermined programming loop is executed. The verifying voltage level control signal generator  220  may generate the voltage control signal CTRL_vol 1  for controlling the voltage generator by using the above control information. 
     An operation of the voltage controller  200  to control changing of a level of the first verifying voltage VP 1  for verifying the first programming state P 1  of  FIG. 6  will now be explained with reference to  FIGS. 10, 11A, and 12A . In an embodiment, the voltage controller  200  may control generation of a first verifying voltage (by voltage generator  130  of  FIG. 2 ) whose level gradually decreases as a programming loop is executed on memory cells. That is, a verifying voltage whose level decreases as a programming loop is executed as L, L+1, . . . may be generated as shown in  FIG. 12A . Also, the voltage controller  200  may control generation of a verifying voltage whose level gradually decreases by a predetermined level change degree from a level of a change start verify voltage. In an embodiment, the voltage controller  200  may set the change start verify voltage to a 1-1 verifying voltage V va1  for programming loop L by using the change start verify voltage level parameter SVL, and may set a level change degree to a first offset voltage V os1  by using the level change degree parameter LCD. The voltage controller  200  may control generation of a first verifying voltage whose level decreases by the first offset voltage V os1  from the 1-1 verifying voltage V va1  as a programming loop is executed. 
     As shown in  FIG. 12A  as an example, the 1-1 verifying voltage V va1  for programming loop L is decreased by the first offset voltage V os1  to 1-2 verifying voltage V va2  for programming loop L+1. That is, for example, the 1-2 verifying voltage V va2  having a second level which is less than a first level (the 1-1 verifying voltage V va1 ) is applied to memory cells that fail to pass the verifying operation using the first level verifying voltage. As further shown, the 1-2 verifying voltage V va2  for programming loop L+1 is decreased by the first offset voltage V os1  to 1-3 verifying voltage V va3  for programming loop L+2. The 1-3 verifying voltage V va3  for programming loop L+2 is decreased by the first offset voltage V os1  to 1-4 verifying voltage V va4  for programming loop L+3. The 1-4 verifying voltage V va4  for programming loop L+3 is decreased by the first offset voltage V os1  to 1-5 verifying voltage V va5  for programming loop L+4. The 1-5 verifying voltage V va5  for programming loop L+4 is decreased by the first offset voltage V os1  to 1-6 verifying voltage V va6  for programming loop L+5. Incidentally, in this description a 1-1 verifying voltage should be understood whereby the notation “1-1” is indicative of a first verifying voltage (e.g., VP 1  in  FIG. 6 ) during a first programming loop. Likewise, a 1-2 verifying voltage may be indicative of a first verifying voltage (e.g., VP 1 ) during a second programming loop, and a 2-1 verifying voltage may be indicative of a second verifying voltage (e.g., VP 2  in  FIG. 6 ) during a first programming loop. 
     In an embodiment, the change start verify voltage may have a level higher than a level of a verifying voltage for verifying a programming state. For example, a level of the 1-1 verifying voltage V va1  may be higher than a level of a verifying voltage conventionally generated to verify a first programming state. 
     In this manner, a level of a verifying voltage may be changed in consideration that a threshold voltage of memory cells gradually decreases as a time passes and a change amount of a threshold voltage of a fast cell is greater than a change amount of a threshold voltage of a slow cell. Accordingly, memory cells of a memory device according to the inventive concept may have a constant threshold voltage distribution even when a predetermined period of time passes, thereby improving the reliability of the memory device. 
     In another embodiment, the voltage controller  200  may control a level of a verifying voltage to be changed in programming loops after a level change start loop. For example, the voltage controller  200  may set an L th  programming loop to a level change start loop by using the level change start loop parameter SL. The voltage controller  200  may control a level of a first verifying voltage to be changed in programming loops L+1, L+2, . . . after the L th  programming loop. In this manner, the voltage controller  200  may control verifying voltages for verifying programming states to have different level change start timings. Since levels of verifying voltages may be sequentially changed, instead of being changed all at once, as a program loop count increases, an efficient operation may be performed. 
     An embodiment of an operation of the voltage controller  200  for controlling changing of a level of the first verifying voltage VP 1  for verifying the first programming state P 1  of  FIG. 6  will now be explained with reference to  FIGS. 10, 11B, and 12A . The voltage controller  200  may compare program loop count information generated by the program loop counter  210  with control information, and may control a level of a first verifying voltage to be changed by using the control information level parameter VVL corresponding to a comparison result. For example, first, when the program loop counter  210  generates program loop count information indicating an L th  programming loop, the voltage controller  200  may compare the program loop count information with the program loop number parameter PLN and may control a first verifying voltage to have a level of the 1-1 verifying voltage V va1  by using the verifying voltage level parameter VVL corresponding to a comparison result. Next, when the program loop counter  210  generates program loop count information indicating an L+1 th  programming loop, the voltage controller  200  may compare the program loop count information with the program loop number parameter PLN and may control the first verifying voltage to have a level of a 1-2 verifying voltage V va2  by using the verifying voltage level parameter VVL corresponding to a comparison result. In this manner, the voltage controller  200  may control a level of a second verifying voltage for verifying a second programming state of memory cells and a level of a third verifying voltage for verifying a third programming state of the memory cells. However, the inventive concepts are not limited thereto, and any of various other methods of changing a level of a verifying voltage may be used. 
     An operation of the voltage controller  200  to control changing of a level of the second verifying voltage VP 2  for verifying the second programming state P 2  of  FIG. 6  will now be explained with reference to  FIGS. 10, 11A, and 12B . In an embodiment, the voltage controller  200  may control generation of a second verifying voltage whose level gradually decreases as a programming loop is executed on memory cells. 
     There is a difference from  FIG. 12A  in that the voltage controller  200  may set a change start verify voltage to the 2-1 verifying voltage V vb1  by using the change start verify voltage level parameter SVL and may set a level change degree to a second offset voltage V os2  by using the level change degree start loop parameter SL. The second offset voltage V os2  may have a level that is higher than that of the first offset voltage V os1 , and the 2-1 verifying voltage V vb1  may have a level that is higher than that the 1-1 verifying voltage V va1 . As shown in  FIG. 12B  as an example, the 2-1 verifying voltage V vb1  for programming loop M is decreased by the second offset voltage V os2  to 2-2 verifying voltage V vb2  for programming loop M+1. The 2-2 verifying voltage V vb2  for programming loop M+1 is decreased by the second offset voltage V os2  to 2-3 verifying voltage V vb3  for programming loop M+2. The 2-3 verifying voltage V vb3  for programming loop M+2 is decreased by the second offset voltage V os2  to 2-4 verifying voltage V vb4  for programming loop M+3. The 2-4 verifying voltage V vb4  for programming loop M+3 is decreased by the second offset voltage V os2  to 2-5 verifying voltage V vb5  for programming loop M+4. The 2-5 verifying voltage V vb5  for programming loop M+4 is decreased by the second offset voltage V os2  to 2-6 verifying voltage V vb6  for programming loop M+5. 
     An operation of the voltage controller  200  to control changing of a level of the third verifying voltage VP 3  for verifying the third programming state P 3  of  FIG. 6  will now be explained with reference to  FIGS. 10, 11A, and 12C . In an embodiment, the voltage controller  200  may control generation of a third verifying voltage whose level gradually decreases as a programming loop is executed on memory cells. 
     There is a difference from  FIG. 12A  in that the voltage controller  200  may set a change start verify voltage to a 3-1 verifying voltage V vc1  by using the change start verify voltage level parameter SVL, and may set a level change degree to a third offset voltage V os3  by using the level change degree parameter LCD. Also, the voltage controller  200  may set an IN programming loop to a level change start loop by using the level change start loop parameter SL. The third offset voltage V os3  may have a level that is higher than that of the second offset voltage V os2  and the 3-1 verifying voltage V vc1  may have a level that is higher than that of the 2-1 verifying voltage V vb1 . As shown in  FIG. 12C  as an example, the 3-1 verifying voltage V vc1  for programming loop N is decreased by the third offset voltage V os3  to 3-2 verifying voltage V vc2  for programming loop N+1. The 3-2 verifying voltage V vc2  for programming loop N+1 is decreased by the third offset voltage V os3  to 3-3 verifying voltage V vc3  for programming loop N+2. The 3-3 verifying voltage V vc3  for programming loop N+2 is decreased by the third offset voltage V os3  to 3-4 verifying voltage V vc4  for programming loop N+3. The 3-4 verifying voltage V vc4  for programming loop N+3 is decreased by the third offset voltage V os3  to 3-5 verifying voltage V vc5  for programming loop N+4. 
     As such, the voltage controller  200  may control levels of a first verifying voltage, a second verifying voltage, and a third verifying voltage to be differently changed. Since a change amount of a threshold voltage increases as memory cells have a higher threshold voltage as described with reference to  FIGS. 8A and 8B , in order to form a desired threshold voltage distribution, the voltage controller  200  may change voltage levels so that a level change degree of a third verifying voltage is greater than a level change degree of a second verifying voltage (i.e., V os3 &gt;V os2 ), and the level change degree of the second verifying voltage is greater than a level change degree of a first verifying voltage (i.e., V os2 &gt;V os1 ). The voltage controller  200  may control the voltage generator so that a level difference between the 1-1 verifying voltage V va1  that is a change start verify voltage of the first verifying voltage and a change start verify voltage V vb1  of the second verifying voltage is less than a level difference between the change start verify voltage V vb1  of the second verifying voltage and a change start verify voltage V vc1  of the third verifying voltage. That is, the voltage controller  200  may control a level difference between adjacent verifying voltages to increase as verifying voltages have higher levels. Also, the voltage controller  200  may control verifying voltages to be changed by differently setting programming loops in which levels of the verifying voltages start to be changed, thereby making it possible to efficiently change a level. 
       FIGS. 13A, 13B, 13C and 13D  illustrate graphs for explaining an operation of the voltage controller  200  to control changing of a level of a verifying voltage according to various embodiments of the inventive concept. 
     Referring to  FIGS. 10 and 13A , the voltage controller  200  may control a level of a first verifying voltage to be changed by a level change degree that varies according to each programming loop, in contrast to the embodiment described with respect to  FIG. 12A . The voltage controller  200  may change a level of a first verifying voltage by the first offset voltage V os1  that is a constant level change degree in the embodiment described with respect to  FIG. 12A , whereas the voltage controller  200  may change a level of a first verifying voltage by any of offset voltages V os1-1  through V os1-5  that are different from one another for programming loops L+1 through L+5 in the embodiment described with respect to  FIG. 13A . 
     Referring to  FIGS. 10 and 13B , the voltage controller  200  may control a level of a first verifying voltage to be changed at every predetermined loop interval, in contrast to the embodiment described with respect to  FIG. 12A . That is, the voltage controller  200  may control a level of a verifying voltage to be changed at every predetermined loop interval, instead of being changed at every programming loop. In an embodiment, control information may further include a loop interval parameter, and the voltage controller  200  may control a level of a verifying voltage to be changed by using the loop interval parameter. The loop interval as shown in  FIG. 13B  is two programming loops. However, the inventive concepts are not limited thereto, and any of various other loop intervals may be set. In another embodiment, the predetermined loop interval may not be fixed, and may vary as a program loop count increases. 
     Referring to  FIGS. 10 and 13C , the voltage controller  200  may control a level of a first verifying voltage to be fixed after a programming loop is executed on memory cells a predetermined number of times, in contrast to the embodiment described with respect to  FIG. 12A . For example, the voltage controller  200  may control a level of at least one verifying voltage from among the first verifying voltage VP 1 , the second verifying voltage VP 2 , and the third verifying voltage VP 3  of  FIG. 6  to be fixed after a specific programming loop. That is, the voltage controller  200  may control a first verifying voltage to be a level of a predetermined verifying voltage V vak  after a P th  programming loop P. However, the inventive concept is not limited thereto, and the voltage controller  200  may control a level of the first verifying voltage to be changed again after a P+3 th  programming loop (not shown) for example, and various other modifications may be made. 
     Referring to  FIGS. 10 and 13D , the voltage controller  200  may control a first verifying voltage to have a level that is higher than a level of a first reference voltage V ref1  corresponding to the first verifying voltage while programming loops L through J+1 are initially performed, and may control the first verifying voltage to have a level that is lower than the level of the first reference voltage V ref1  corresponding to the first verifying voltage while the programming loops J+1 through . . . are subsequently performed. In an embodiment, the first reference voltage V ref1  may correspond to a conventional verifying voltage for verifying a first programming state. Furthermore, the voltage controller  200  may control a level of any of verifying voltages other than the first verifying voltage to be lower than a level of each corresponding reference voltage, and thus a program loop count needed to complete a programming operation may be reduced, thereby rapidly performing the programming operation. Also, control information stored in the control information storage unit  230  may include a reference voltage parameter corresponding to each verifying voltage, and the voltage controller  200  may control a verifying operation to be performed by using a reference voltage having a constant level without changing a level of a verifying voltage by using the reference voltage parameter. Also, in an embodiment, a change start verify voltage level parameter may be generated by using the reference voltage parameter and a level change degree parameter. 
     Changing of levels of verifying voltages may be controlled by selecting a control method suitable for a programming operation condition of a memory device from among various control methods of the voltage controller  200  as described with respect to  FIGS. 13A through 13D . Also, the various control methods of the voltage controller  200  as described with respect to  FIGS. 13A through 13D  may be used to control changing of levels of a second verifying voltage and a third verifying voltage, and may also be used to control changing of a level of a verifying voltage of memory cells that may store three or more bits of data and single-level cells SLCs. 
       FIGS. 14A and 14B  each illustrate a block diagram for explaining a control operation of a voltage controller according to embodiments of the inventive concept. 
     Referring to  FIG. 14A , a voltage controller  200 ′ includes a program loop counter  210 ′, a verifying voltage level control signal generator  220 ′, and a control information storage unit  230 ′. The verifying voltage level control signal generator  220 ′ includes a subtractor  221 ′ and an accumulator  222 ′. The accumulator  222 ′ receives program loop count information PLCI from the program loop counter  210 ′. Also, the accumulator  222 ′ receives level change degree information LCDI from the control information storage unit  230 ′. The accumulator  222 ′ may generate accumulation information ACI including an accumulation amount obtained by accumulating a level change degree corresponding to the level change degree information LCDI whenever the program loop count information PLCI is received. The accumulator  222 ′ may transmit the accumulation information ACI to the subtractor  221 ′. The subtractor  221 ′ receives change start verifying voltage level information SVLI from the control information storage unit  230 ′. The subtractor  221 ′ generates a voltage control signal CTRL_vol 1 ′ after subtracting the accumulation amount included in the accumulation information ACI from a change start verify voltage level corresponding to the change start verifying voltage level information SVLI. In an embodiment, the level change degree information LCDI may be the level change degree parameter LCD of  FIG. 11A , and the change start verifying voltage level information SVLI may be the change start verify voltage level parameter SVL of  FIG. 11A . 
     The voltage controller  200 ′ may control changing of a level of a verifying voltage as shown in the graph of  FIG. 12A  or the like in this manner. Also, although not shown in  FIG. 14A , in an embodiment, the program loop counter  210 ′ may receive level change start loop information from the control information storage unit  230 ′ and may control the accumulator  222 ′ and the subtractor  221 ′ to be activated/deactivated based on the level change start loop information. That is, the program loop counter  210 ′ may compare the program loop count information PLCI with the level change start loop information and may activate the accumulator  222 ′ and the subtractor  221 ′ which were deactivated when the program loop count information PLCI and the level change start loop information are the same. In another embodiment, the voltage controller  200 ′ may include an activation controller, and may control the accumulator  222 ′ and the subtractor  221 ′ to be activated/deactivated based on the level change start loop information and the program loop count information PLCI. 
     Referring to  FIG. 14B , a voltage controller  200 ″ includes a program loop counter  210 ″, a verifying voltage level control signal generator  220 ″, and a control information storage unit  230 ″. The verifying voltage level control signal generator  220 ″ includes a comparison result-based control signal generator  221 ″ and an information comparator  222 ″. The information comparator  222 ″ may compare program loop count information PLCI generated by the program loop counter  210 ″ with control information CSI and may generate a comparison result CRI. The information comparator  222 ″ may transmit the comparison result CRI to the comparison result-based control signal generator  221 ″. The comparison result-based control signal generator  221 ″ may generate a voltage control signal CTRL_vol 1 ″ for controlling generation of a verifying voltage having a verifying voltage level corresponding to the comparison result CRI. For example, referring to  FIG. 11B , when the program loop counter  210 ″ generates program loop count information indicating an L th  program loop, the information comparator  222 ″ may compare the program loop count information with the program loop number parameter PLN (i.e., control information CSI) and may generate the voltage control signal CTRL_vol 1 ″ for controlling a first verifying voltage having a level of the 1-1 verifying voltage V va1  to be generated by using the verifying voltage level parameter VVL corresponding to a comparison result. 
       FIG. 15  illustrates a block diagram for explaining an operation of a program loop counter  310  according to an embodiment of the inventive concept. 
     Referring to  FIG. 15 , a voltage controller  300  includes the program loop counter  310 , a verifying voltage level control signal generator  320 , and a control information storage unit  330 . The verifying voltage level control signal generator  320  includes a first verifying voltage level control signal generator  321  that generates a control signal for changing a level of a first verifying voltage for verifying a first programming state, a second verifying voltage level control signal generator  323  that generates a control signal for changing a level of a second verifying voltage for verifying a second programming state, and a third verifying voltage level control signal generator  325  that generates a control signal for changing a level of a third verifying voltage for verifying a third programming state. However, the inventive concept is not limited thereto, and the voltage controller  300  of a memory device including memory cells that may store three or more bits of data or single-level cells SLCs may include more verifying voltage level control signal generators than described with respect to  FIG. 15 . 
     The program loop counter  310  may receive level change start loop information from the control information storage unit  330 . The program loop counter  310  may control the first through third verifying voltage level control signal generators  321 ,  323 , and  325  to be activated/deactivated by transmitting an enable/disable signal to each of the first through third verifying voltage level control signal generators  321 ,  323 , and  325 , based on the level change start loop information. That is, referring to  FIG. 11A , since a level change start loop of a first verifying voltage for verifying the first programming state P 1  is the L th  program loop L, the program loop counter  310  may activate the first verifying voltage level control signal generator  321  when a program loop count corresponds to the L th  program loop L. In this manner, the program loop counter  310  may activate the second and third verifying voltage level control signal generators  323  and  325  when a program loop count respectively corresponds to the M th  program loop M and the Nth program loop N. In this manner, the voltage controller  300  may individually control changing of levels of verifying voltages for verifying programming states, thereby leading to efficient control. 
       FIG. 16  illustrates a block diagram of a voltage controller  400  according to another embodiment of the inventive concept.  FIGS. 17A and 17B  each illustrate a graph for explaining an operation of the voltage controller  400  to control changing of a level of a verifying voltage according to the embodiment described with respect to  FIG. 16 . 
     Referring to  FIGS. 16, 17A, and 17B , the voltage controller  400  includes a program loop counter  410 , a verifying voltage level control signal generator  420 , a control information storage unit  430 , and a temperature information generator  440 . As shown in  FIG. 17A , the voltage controller  400  may set a level change degree of a predetermined verifying voltage under a first temperature condition to a first offset voltage V os1  and may control a level of the predetermined verifying voltage to decrease from change start verify voltage V va1  by a level of the first offset voltage V os1  in every programming loop L+1 through L+5 to respectively provide verify voltages V va2  to V va6 . In an embodiment as shown in  FIG. 17B , the voltage controller  400  may set a level change degree of a predetermined verifying voltage under a second temperature condition to a first offset voltage V os1′  and may control a level of the predetermined verifying voltage to decrease from change start verify voltage V va1′  by a level of the first offset voltage V os1′  in every programming loop L+1 through L+5 to respectively provide verify voltages V va2′  to V va6′ . 
     The first temperature condition may have a temperature higher than a temperature of the second temperature condition, and the voltage controller  400  may control a level of a change start verify voltage V va1  of the verifying voltage of  FIG. 17A  and the first offset voltage V os1  to be respectively less than a level of a change start verify voltage V va1′  of the verifying voltage of  FIG. 17B  and the first offset voltage V os1′ . Since a change amount of a threshold voltage of each of a fast cell and a slow cell per time increases as a temperature decreases as described with reference to  FIGS. 8A and 8B , the voltage controller  400  may control changing of a verifying voltage by increasing a level of a change start verify voltage and a level change degree as a temperature of a temperature condition decreases. 
     A detailed method of the voltage controller  400  to control changing of a level of a verifying voltage will now be explained. The temperature information generator  440  may generate temperature information about a temperature inside or outside a memory device including the voltage controller  400 . The temperature information may indicate a temperature inside or outside the memory device, and may be a predetermined coefficient that varies according to a temperature. Also, in an embodiment, the temperature information generator  440  may be a temperature sensor, and may be separately provided in the memory device, instead of being included in the voltage controller  400 . 
     A voltage control signal CTRL_vol 2  transmitted by the voltage controller  400  to the voltage generator  130  of  FIG. 2  may include temperature information received from the temperature information generator  440  and a control signal generated by the verifying voltage level control signal generator  420 . The temperature information may include a coefficient according to a temperature. For example, the coefficient according to the temperature may increase as the temperature decreases. The voltage generator  130  of  FIG. 2  may generate verifying voltages whose levels are changed based on the voltage control signal CTRL_vol 2 . In an embodiment, the voltage generator  130  may perform a calculation on the coefficient according to the temperature and the control signal and may generate verifying voltages based on a calculation result. 
       FIG. 18A  illustrates a block diagram for explaining an operation of a voltage controller  500  to control changing of a level of a verifying voltage according to another embodiment of the inventive concept.  FIG. 18B  is a diagram illustrating control information needed during an operation of the voltage controller  500  according to the embodiment described with respect to  FIG. 18A . 
     Referring to  FIG. 18A , the voltage controller  500  includes a program loop counter  510 , a verifying voltage level control signal generator  520 , a control information storage unit  530 , and a temperature information generator  540 . The verifying voltage level control signal generator  520  according to an embodiment may receive temperature information from the temperature information generator  540 , and may receive control information from the control information storage unit  530 . The verifying voltage level control signal generator  520  may generate a voltage control signal CTRL_vol 3  based on the temperature information and the control information. Referring to  FIG. 18B , control information including a change start verify voltage level parameter SVL and a level change degree parameter LCD that vary according to a temperature condition may be stored in the control information storage unit  530 . Accordingly, the voltage controller  500  may change a level of a verifying voltage by referring to the change start verify voltage level parameter SVL and the level change degree parameter LCD corresponding to a temperature condition based on the temperature information. For example, it is assumed that a second temperature condition Temp. 2  may have a temperature lower than a temperature of a first temperature condition Temp. 1  and the voltage controller  500  changes a level of a first verifying voltage to verify the first programming state P 1  of  FIG. 6 . The voltage controller  500  may control changing of the level of the first verifying voltage by making a level of a change start verify voltage V va1′  under the second temperature condition Temp. 2  greater than a level of a change start verify voltage V va1  under the first temperature condition Temp. 1  and making a level change degree V os1′  under the second temperature condition Temp. 2  greater than a level change degree V os1  under the first temperature condition Temp. 1 . The voltage controller  500  may similarly change start verify voltage V vb1  to change start verify voltage V vb1′ , change start verify voltage V vc1  to change start verify voltage V vc1′ , level change degree V os2  to level change degree V os2′  and level change degree V os3  to level change degree V os3′  under the second temperature condition Temp.  2 . 
     However, the inventive concept is not limited thereto, and control information may include the verifying voltage level parameter VVL that varies according to a temperature condition as shown in  FIG. 11B , and the voltage controller  500  may control changing of a level of a verifying voltage based on the control information and temperature information. 
       FIG. 19A  illustrates a block diagram for explaining an operation of a voltage controller  600  to control changing of a level of a verifying voltage according to another embodiment of the inventive concept.  FIG. 19B  illustrates a graph for explaining a method of a temperature information generator  640  to generate temperature information according to the embodiment described with respect to  FIG. 19A . In  FIG. 19B , the vertical axis represents the temperature coefficient, and the horizontal axis represents temperature. 
     Referring to  FIG. 19A , the voltage controller  600  includes a program loop counter  610 , a verifying voltage level control signal generator  620 , a control information storage unit  630 , a temperature information generator  640 , and a control signal integrator  650 . Referring to  FIG. 19B , by using a detected temperature inside or outside a memory device, the temperature information generator  640  may generate a coefficient according to the detected temperature. In an embodiment, the temperature information generator  640  may generate a first coefficient TC hot  at a first temperature Thot that is high, and may generate a second coefficient TC cold  at a second temperature Tcold that is low. The second coefficient TC cold  may be greater than the first coefficient TC hot . That is, the temperature information generator  640  may generate a coefficient that increases as a detected temperature decreases. 
     The control signal integrator  650  according to an embodiment may receive a voltage control signal from the verifying voltage level control signal generator  620 , and may receive temperature information including the generated coefficient from the temperature information generator  640 . The control signal integrator  650  may perform a predetermined calculation on the generated coefficient and the voltage control signal, to generate a voltage control integrated signal CTRL_vol 3 . For example, the control signal integrator  650  may generate the voltage control integrated signal CTRL_vol 3  by multiplying the generated coefficient by the voltage control signal. The voltage controller  600  may control a level of a verifying voltage to be changed by varying at least one of a change start verify voltage level and a level change degree according to a temperature condition by using a generated coefficient, even without a parameter that varies according to a temperature condition included in control information of  FIGS. 11A and 11B . 
       FIGS. 20A and 20B  are graphs for explaining an overall operation of the voltage controller  121  shown in  FIG. 2  according to an embodiment of the inventive concept. 
     Referring to  FIGS. 2 and 20A , the voltage controller  121  may control changing of a level of each of verifying voltages based on at least one of a programming state of memory cells to be verified and temperature information about a temperature inside or outside the memory device  100 . In an embodiment, the voltage controller  121  may control changing of a level of each verifying voltage according to a programming state of memory cells to be verified. That is, the voltage controller  121  may control changing of a level of each verifying voltage by increasing a change start verify voltage level and a level change degree of the verifying voltage as a level of the verifying voltage corresponding to a programming state to be verified increases. For example, as shown in  FIG. 20A  the voltage controller  121  may control changing of a level of each verifying voltage by making a change start verify voltage level and a level change degree V os2  of a second verifying voltage for verifying a second programming state P 2  greater than a change start verify voltage level and a level change degree V os1  of a first verifying voltage for verifying a first programming state P 1 . Also, the voltage controller  121  may control changing of a level of each verifying voltage by making a change start verify voltage level and a level change degree V os3  of a third verifying voltage for verifying a third programming state P 3  greater than the change start verify voltage level and the level change degree V os2  of the second verifying voltage for verifying the second programming state P 2 . In another embodiment, the voltage controller  112  may control verifying voltages to have different level change start timings by differently setting level change start loops of the first verifying voltage through the third verifying voltage. 
     Moreover, as shown in  FIG. 20B , the voltage controller  121  may control changing of a level of each verifying voltage according to temperature information about a temperature inside or outside the memory device  100  and a programming state of memory cells to be verified. For example, the voltage controller  121  may control changing of a level of a third verifying voltage by making a level of a change start verify voltage V vc1′  and a level change degree V os3′  of a third verifying voltage for verifying a third programming state P 3  under a second temperature condition T 2  condition greater than a level of a change start verify voltage V vc1  and a level change degree V os3  of a third verifying voltage for verifying the third programming state P 3  under a first temperature condition T 1  condition. Similarly, the voltage generator  121  may make a level of a change start verify voltage V vb1′  and a level change degree V os2′  of a second verifying voltage for verifying a second programming state P 2  under a second temperature condition T 2  condition greater than a level of a change start verify voltage V vb1  and a level change degree V os2  of a second verifying voltage for verifying the second programming state P 2  under a first temperature condition T 1  condition. Likewise, for verifying the first programming state P 1 , the voltage generator  121  may make a level of a change start verify voltage V va1′  and a level change degree V os1′  under a second temperature condition T 2  condition greater than a level of a change start verify voltage V va1  and a level change degree V os1  under a first temperature condition T 1  condition. 
     The voltage controller  121  according to an embodiment may control changing of a level of each verifying voltage based on at least one of a programming state to be verified and temperature information about a temperature inside or outside the memory device  100 , in order to perform a verifying operation considering that a threshold voltage of a memory cell is shifted. 
       FIG. 21  illustrates a flowchart for explaining a programming operation in a memory device such as memory device  100  shown in  FIG. 2  for example, according to an embodiment of the inventive concept. In the description that follows, it is assumed that memory device  100  includes voltage controller  200  shown in  FIG. 10  for example. However, in other embodiments memory device  100  may include any of the voltage controllers of the various embodiments previously described. 
     Referring to  FIG. 21 ,  FIG. 2  and  FIG. 10  for example, in operation S 100  a program loop counter such as program loop counter  210  initializes a program loop count before a programming operation starts. In operation S 110 , a level of a programming voltage to be applied to memory cells of the memory cell array  110  connected to a selected word line is determined. The level of the programming voltage may be determined by control logic  120  to correspond to a pulse voltage that increases by a predetermined step voltage by using the program loop count. In operation S 120 , the determined programming voltage as provided by voltage generator  130  is applied to the selected word line via row decoder  140  for example. Next, in order to verify the memory cells connected to the selected word line, a level of a verifying voltage is determined by voltage controller  200  for example. In an embodiment, in operation S 130  the level of the verifying voltage may be changed based on at least one of a programming state to be verified and temperature information. In operation S 140 , a verifying operation is performed by applying the verifying voltage whose level has been changed as provided by voltage generator  130  to the selected word line via row decoder  140 . In operation S 150 , it is determined by control logic  120  for example whether all of the memory cells of the selected word line pass the verifying operation. When it is determined in operation S 150  that all of the memory cells pass the verifying operation, processing proceeds to operation S 160  where it is determined that the programming operation is completed. When it is determined in operation S 150  that all of the memory cells do not pass the verifying operation, processing proceeds to operation S 170  where it is determined by control logic  120  whether the counted program loop count exceeds a maximum value. When it is determined in operation S 170  that the counted program loop count exceeds the maximum value, processing proceeds to operation S 180  where it is determined that the programming operation fails. When it is determined in operation S 170  that the counted program loop count does not exceed the maximum value, processing proceeds to operation S 190  where the program loop count is increased, and a next programming loop is executed thereafter beginning at operation S 110 . 
       FIG. 22  illustrates a block diagram of an example where a memory device is applied to a memory card system  1000  according to embodiments of the inventive concept. 
     Referring to  FIG. 22 , the memory card system  1000  includes a host  1100  and a memory card  1200 . The host  1100  includes a host controller  1110  and a host connector  1120 . The memory card  1200  includes a card connector  1210 , a card controller  1220 , and a memory device  1230 . In this case, the memory card  1200  may be realized by using the embodiment of  FIG. 1 , or any of the other variously disclosed embodiments. 
     The host  1100  may write data to the memory card  1200  or may read data stored in the memory card  1200 . The host controller  1110  may transmit a command CMD, a clock signal CLK generated by a clock generator (not shown) in the host  1100 , and data DATA to the memory card  1200  through the host connector  1120 . 
     The card controller  1220  may synchronize data with a clock signal generated by a clock signal (not shown) in the card controller  1220  and may store the data in the memory device  1230 , in response to a command received through the card connector  1210 . The memory device  1230  may store the data transmitted from the host  1100 . 
     The memory card  1200  may be for example any of a compact flash card (CFC), a microdrive, a smart media card (SMC), a multimedia card (MMC), a security digital card (SDC), a memory stick, and a USB flash memory driver or the like. 
       FIG. 23  illustrates a block diagram of a computing system  2000  including a memory device according to embodiments of the inventive concept. 
     Referring to  FIG. 23 , the computing system  2000  includes a memory system  2100 , a processor  2200 , a RAM  2300 , an input/output device  2400 , and a power supply  2500 . The computing system  2000  may communicate with a video card, a sound card, a memory card, or a USB device or the like for example, or may further include ports for communicating with other electronic devices. The computing system  2000  may be for example a personal computer, or may be a portable electronic device such as a notebook computer, a mobile phone, a personal digital assistant (PDA), or a camera, or the like. 
     The processor  2200  may perform specific calculations or tasks. According to an embodiment, the processor  2200  may be a microprocessor or a central processing unit (CPU). The processor  2200  may communicate with the RAM  2300 , the input/output device  2400 , and the memory system  2100  through a bus  2600  such as an address bus, a control bus, or a data bus. According to an embodiment, the processor  2200  may be connected to an expansion bus such as a peripheral component interconnect (PCI) bus. 
     In this case, the memory system  2100  may be realized by using the embodiment of  FIG. 1 , or any of the other variously disclosed embodiments. In detail, a memory device  2110  may perform a verifying operation by changing a level of a verifying voltage based on at least one of a programming state of memory cells to be verified and temperature condition about a temperature inside or outside the memory device  2110 . 
     The RAM  2300  may store data needed during an operation of the computing system  2000 . For example, the RAM  2300  may be for example a dynamic random-access memory (DRAM), a mobile DRAM, a static RAM (SRAM), a phase-change RAM (PRAM), a ferroelectric RAM (FRAM), a resistive RAM (RRAM), and/or a magnetoresistive RAM (MRAM). The input/output device  2400  may include an input device such as for example a keyboard, a keypad, or a mouse, or the like, and an output device such as a printer or a display. The power supply  2500  may supply an operating voltage needed during an operation of the computing system  2000 . 
       FIG. 24  illustrates a block diagram of an example where a memory device is applied to a solid-state disk (SSD) system  3000  according to embodiments of the inventive concept. 
     Referring to  FIG. 24 , the SSD system  3000  includes a host  3100  and an SSD  3200 . The SSD  3200  transmits/receives a signal SGL to/from the host  3100  through a signal connector, and receives power PWR through a power connector. The SSD  3200  includes a SSD controller  3210 , an auxiliary power supply  3220 , and a plurality of memory devices  3230 ,  3240 , and  3250  connected to SSD controller  3210  via channels Ch 1 , Ch 2 , . . . Chn. In this case, the SSD  3200  may be realized by using the embodiment of  FIG. 1 , or any of the other variously disclosed embodiments. In detail, the SSD  3200  may perform a verifying operation by changing a level of a verifying voltage based on at least one of a programming state of memory cells to be verified and temperature information about a temperature inside or outside the SSD  3200 . 
       FIG. 25  illustrates a block diagram of an example where a memory device is applied to a universal flash storage (UFS) system  4000  according to embodiments of the inventive concept. 
     Referring to  FIG. 25 , the UFS system  4000  includes a UFS host  4100 , UFS device 1   4200 , UFS device 2   4300 , an embedded UFS device  4400 , and a removable UFS card  4500 . The UFS host  4100  may for example be an application processor of a mobile device. Each of the UFS host  4100 , the UFS devices  4200  and  4300 , the embedded UFS device  4400 , and the removable UFS card  4500  may communicate with external devices through a UFS protocol. At least one of the UFS devices  4200  and  4300 , the embedded UFS device  4400 , and the removable UFS card  4500  may include the memory device  100  of  FIG. 1 . 
     The embedded UFS device  4400  and the removable UFS card  4500  may communicate with each other through a protocol other than the UFS protocol. The UFS host  4100  and the removable UFS card  4500  may communicate through various card protocols such as for example USB flash drive (UFD), MMC, secure digital (SD), miniSD, and microSD. 
     A memory card, a nonvolatile memory device, and a card controller according to the inventive concept may be mounted by using any of various packages. For example, a flash memory device and/or a memory controller according to the inventive concept may be mounted by using any of packages such as package on package (PoP), ball grid array (BGA), chip scale package (CSP), plastic leaded chip carrier (PLCC), plastic dual in-line package (PDIP), die in waffle pack, die in wafer form, chip on board (COB), ceramic dual in-line package (CERDIP), plastic metric quad flat pack (MQFP), thin quad flatpack (TQFP), small outline (SOIC), shrink small outline package (SSOP), thin small outline (TSOP), system in package (SIP), multi chip package (MCP), wafer-level fabricated package (WFP), and wafer-level processed stack package (WSP). 
     While the inventive concept has been particularly shown and described with reference to embodiments thereof, it will be understood that various changes in form and details may be made therein without departing from the spirit and scope of the following claims. Accordingly, the technical scope of the inventive concept should be defined by the accompanying claims.