Abstract:
A nonvolatile memory device includes a control circuit configured to generate a control signal by counting a number of first data among input data, a buffer unit configured to temporarily store the input data, invert the input data in response to the control signal, and store the inverted data or the input data as the program data, and a memory cell block configured to receive and store the program data.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    Priority to Korean patent application number 10-2009-0047835 filed on May 29, 2009 and Priority to Korean patent application number 10-2010-0048109 filed on May 24, 2010, the entire disclosure of which are incorporated by reference herein, are claimed. 
       BACKGROUND 
       [0002]    Exemplary embodiments relate to a nonvolatile memory device and a method of programming and reading the same and, more particularly, to a nonvolatile memory device, which is capable of reducing current consumption of a program operation by inverting a value of program data, and a method of programming and reading the same. 
         [0003]    Recently, there is an increasing demand for nonvolatile memory devices which can be electrically programmed and erased and which do not require the refresh function of rewriting data at specific intervals. 
         [0004]    A nonvolatile memory cell of a nonvolatile memory device is an element in which electrical program and erase operations of data can be performed. The program and erase operations are performed in such a manner that electrons stored in a thin oxide layer of the cell are moved by a strong electric field applied to the oxide layer, so that a threshold voltage of the cell is shifted. 
         [0005]    In a nonvolatile memory device, such as a NAND type flash memory device, the program and read operations are performed on each page, including a number of memory cells. That is, during the program operation, input data are programmed into the memory cells of a corresponding page at the same time. During the read operation, data stored in the memory cells of a corresponding page are read at the same time. 
         [0006]    With a gradual increase in the capacity of the NAND type flash memory device, the number of memory cells belonging to one page is gradually increased. Accordingly, there may be an increase in the number of cells to be programmed (i.e., program cells), and therefore, more program cells may be programmed at the same time. Further, as the number of memory cells being programmed at the same time increases, current consumption also increases. 
       BRIEF SUMMARY 
       [0007]    Exemplary embodiments relate to a nonvolatile memory device and a method of programming and reading the same, which are capable of reducing the number of program cells by counting the number of first data among input data and programming the first data as second data when the number of the first data is more than half the total amount of input data. The nonvolatile memory device and the method of programming and reading the same can reduce current consumption and back-pattern dependency effects of the memory device, and also improve a distribution of threshold voltages of cells. 
         [0008]    A nonvolatile memory device according to an aspect of the present disclosure includes a control circuit configured to generate a control signal by counting a number of first data among input data, a buffer unit configured to invert or maintain the input data in response to the control signal and to store the inverted data or the maintained data as program data, and a memory cell block configured to store the program data. 
         [0009]    A method of programming a nonvolatile memory device according to another aspect of the present disclosure includes counting a number of first data among input data, inverting the input data and storing the inverted data as program data, if the number of first data is greater than a specific amount as a result of the counting, storing the input data as the program data, if the number of first data is equal to or less than the specific amount, storing inverse information about the input data, and storing the program data and the inverse information in main cells and a flag cell, respectively. 
         [0010]    In accordance with yet another aspect of the present disclosure, there is provided a method of reading a nonvolatile memory device, comprising main cells for storing program data and a flag cell for storing program operation information. The method includes reading the program operation information by performing a first read operation, reading the program data by performing a second read operation and storing the read program data, retaining or inverting the stored program data on the basis of the program operation information and storing resulting data as read data, and outputting the read data. 
         [0011]    In accordance with still yet another aspect of the present disclosure, there is provided a nonvolatile memory device including a control circuit configured to generate a control signal by counting a number of first data among input data, and a buffer unit configured to selectively invert the input data in response to the control signal and store the selectively inverted data as program data. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  is a block diagram of a nonvolatile memory device according to an embodiment of this disclosure; 
           [0013]      FIG. 2  is a block diagram of a memory cell block and a buffer unit according to an embodiment of this disclosure; 
           [0014]      FIG. 3  is a flowchart illustrating a method of programming a nonvolatile memory device according to an embodiment of this disclosure; 
           [0015]      FIGS. 4A and 4B  are diagrams illustrating an operation of inverting input data according to an embodiment of this disclosure; and 
           [0016]      FIG. 5  is a flowchart illustrating a method of reading a nonvolatile memory device according to an embodiment of this disclosure. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0017]    Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. The figures are provided to facilitate understanding the exemplary embodiments of the disclosure by those of ordinary skill in the art. 
         [0018]      FIG. 1  is a block diagram of a nonvolatile memory device according to an embodiment of this disclosure. 
         [0019]    Referring to  FIG. 1 , the nonvolatile memory device  100  includes a data storage unit  110 , a data counter unit  120 , a buffer unit  130 , a control unit  140 , and a memory cell block  150 . 
         [0020]    The data storage unit  110  stores external input data Input DATA. 
         [0021]    The data counter unit  120  counts the number of first data (e.g., data ‘0 ’) among the input data stored in the data storage unit  110 , and outputs a count signal Count based on the number of first data counted. 
         [0022]    The buffer unit  130  temporarily stores the input data Input DATA stored in the data storage unit  110 . A nonvolatile memory device may use a page buffer as the buffer unit  130 . 
         [0023]    The control unit  140 , responding to the count signal Count, compares a specific/certain amount with the number of first data counted and outputs a control signal Con according to a result of the comparison. The buffer unit  130  retains or inverts the input data Input DATA in response to the control signal Con and stores resulting data as program data. 
         [0024]      FIG. 2  is a block diagram of the memory cell block  150  and the buffer unit  130  according to an embodiment of this disclosure. 
         [0025]    Referring to  FIG. 2 , the buffer unit  130  includes a cache latch  131  and a main latch  132 . During a program operation, the buffer unit  130  stores the input data Input DATA in the cache latch  131 , inverts or retains the input data Input DATA in response to the control signal Con, and stores the resulting data in the main latch  132  as the program data. The program data stored in the main latch  132  is sent to the memory cell block. 
         [0026]      FIG. 3  is a flowchart illustrating a method of programming the nonvolatile memory device according to an embodiment of this disclosure.  FIGS. 4A and 4B  are diagrams illustrating an operation of inverting input data according to an embodiment of this disclosure. 
         [0027]    The method of programming the nonvolatile memory device according to the embodiment of this disclosure is described below with reference to  FIGS. 1 to 3 ,  4 A, and  4 B. 
         [0028]    First, external input data are received and stored in the data storage unit  110  at step P 110 . Furthermore, the buffer unit  130  temporarily stores the input data stored in the data storage unit  110 . 
         [0029]    The data counter unit  120  counts the number of first data (e.g., data ‘0’) among the input data stored in the data storage unit  110  and outputs the count signal Count based on the number of first data counted at step P 120 . 
         [0030]    The control unit  140  determines whether the number of first data counted is greater than a specific amount at step P 130 . The specific amount is preferably half the number of memory cells belonging to one page of the memory cell block  150  or equal to the number of second data (e.g. data ‘1 ’ where the first data is data ‘0 ’) among the input data. The control unit  140  outputs the control signal Con according to a result of the determination. 
         [0031]    If, as a result of the determination, the number of first data counted is determined to be greater than the specific amount, the buffer unit  130  inverts the input data stored therein in response to the control signal Con, as shown in  FIG. 4A  and stores the inverted data as program data at step P 140 . Accordingly, the number of second data included in the program data is greater than the number of first data included in the program data. Here, information about whether the inverse operation has been performed is stored in a flag cell of the memory cell block  150  as inverse information. 
         [0032]    If, as a result of the determination at step P 130 , the number of first data is determined to be equal to or less than the specific amount, the buffer unit  130  retains the input data stored therein in response to the control signal Con, as shown in  FIG. 4B , and stores the input data as program data at step P 150 . Accordingly, the number of second data included in the program data is greater than the number of first data. Here, information about whether the inverse operation has been performed is stored in the flag cell of the memory cell block  150  as inverse information. 
         [0033]    Here, the buffer unit  130  performs the inverse operation in response to the control signal Con as follows. As described above with reference to  FIG. 2 , the input data stored in the cache latch  131  are retained or inverted in response to the activation or inactivation of the control signal Con and then sent to the main latch  132 . The program data stored in the main latch  132  are programmed into memory cells. 
         [0034]    The program data stored in the buffer unit  130  are sent to the memory cell block  150 . When a program voltage is supplied to a word line corresponding to a selected page of the memory cell block, the program data are programmed into memory cells and a flag cell belonging to the corresponding page at step P 160 . 
         [0035]    When a program operation is performed, the number of first data on which the program operation is substantially performed is always less than the number of second data. Accordingly, the current consumption caused by the program operation can be reduced. 
         [0036]      FIG. 5  is a flowchart illustrating a method of reading a nonvolatile memory device according to an embodiment of this disclosure. 
         [0037]    The method of reading the nonvolatile memory device according to the embodiment of this disclosure is described below with reference to  FIGS. 1 ,  2 , and  5 . 
         [0038]    First, inverse information stored in the flag cell of the memory cell block  150  is read and stored in the buffer unit  130  at step R 110 . 
         [0039]    It is then determined whether program data programmed into the main cells of the memory cell block  150  have been inverted during a program operation on the basis of the inverse information at step R 120 . 
         [0040]    If, as a result of the determination, the program data are determined not to have been inverted during the program operation, the program data programmed into the main cells of the memory cell block  150  are read and stored in the buffer unit  130  at step R 130 . Here, the program data programmed into the main cells of the memory cell block  150  are stored in the main latch  132  of the buffer unit  130  through bit lines coupled to the memory cells and then stored in the cache latch  131 . 
         [0041]    If, as a result of the determination at step R 120 , the program data are determined to have been inverted during the program operation, the control unit  140  generates the control signal Con at step R 140 . 
         [0042]    The buffer unit  130  reads the program data, inverts the program data in response to the control signal Con, and stores inverted program data at step R 150 . Here, the program data are first stored in the main latch  132  through the bit lines coupled to the main cells of the memory cell block  150 , and then inverted and stored in the cache latch  131  in response to the control signal Con. 
         [0043]    Next, the program data stored in the buffer unit  130  are externally outputted at step R 160 . 
         [0044]    In accordance with exemplary embodiments of this document, the number of first data among input data is counted and if, as a result of the count, the number of first data is more than half the total amount of input data, the first data is programmed as second data. Accordingly, the number of program cells (i.e., the cells required to be programmed), current consumption, and the back-pattern dependency effects of a memory device can be reduced. Furthermore, a distribution of threshold voltages of cells can be improved.