CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a Continuation of U.S. application Ser. No. 15/299,255, filed Oct. 20, 2016 which is a Continuation of U.S. application Ser. No. 14/983,802, filed Dec. 30, 2015, which is a Continuation of U.S. application Ser. No. 14/559,265, filed Dec. 3, 2014, now U.S. Pat. No. 9,257,189, which is a Continuation of U.S. application Ser. No. 14/078,195, filed Nov. 12, 2013, now U.S. Pat. No. 8,929,135, which is a Continuation of U.S. application Ser. No. 13/482,577, filed May 29, 2012, now U.S. Pat. No. 8,605,511, which is a Continuation of U.S. application Ser. No. 12/967,227, filed Dec. 14, 2010, now U.S. Pat. No. 8,208,311, which is a Continuation of U.S. application Ser. No. 12/652,418, filed Jan. 5, 2010, now U.S. Pat. No. 7,864,591, which is a Continuation of U.S. application Ser. No. 12/168,283, filed Jul. 7, 2008, now U.S. Pat. No. 7,672,168, which is a Continuation of U.S. application Ser. No. 11/871,441, filed Oct. 12, 2007, now U.S. Pat. No. 7,405,970, which is a Continuation of U.S. application Ser. No. 11/417,185, filed May 4, 2006, now U.S. Pat. No. 7,286,404, which is a Continuation of U.S. application Ser. No. 11/049,535, filed Feb. 3, 2005, now U.S. Pat. No. 7,088,616, which is a Divisional of U.S. application Ser. No. 10/656,139 filed on Sep. 8, 2003, now U.S. Pat. No. 6,990,019, which is a Divisional of U.S. application Ser. No. 10/051,372, filed Jan. 22, 2002, now U.S. Pat. No. 6,643,188, which is based upon and claims the benefit of priority from the prior Japanese Application No. 2001-397446, filed Dec. 27, 2001, the entire contents of which are incorporated herein by reference in their entirety. 
     
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
       [0002]    This invention relates to an electrically data rewritable non-volatile semiconductor memory device. More particularly, it relates to a multi-value flash memory adapted to store a multi-valued data in a memory cell. 
       2. Description of the Related Art 
       [0003]    In a flash memory, the accumulated electric charge of the floating gate of a memory cell transistor is changed as the stored data is erased and a new data is written there. Then, as a result, the threshold value is changed to store the data. For instance, the negative threshold value may be made to corresponds to a “1” data, whereas the positive threshold value may be 25 made to corresponds to a “0” data. In recent years, multi-value flash memories adapted to store a plurality of bits in a single memory 
         [0004]    cell have been developed to reduce the cost per bit and/or increase the storage capacity. In a memory device adapted to store two bits in a single memory cell, the memory cell has four threshold values depending on the data to be stored there. 
         [0005]    A highly reliable memory device can be obtained by accurately controlling the threshold values of each memory cell. “Fast and Accurate Programming Method for Multi-level NAND EEPROMs, pp. 129-130, Digest of 1995 Symposium on VLSI Technology” proposes a method of writing data, raising the write voltage Vpgm at a rate, in order to precisely control the threshold values of each memory cell. 
         [0006]    With the method proposed in the above cited document, the width of distribution of each threshold value can be controlled theoretically to as small as 0.2V by raising the write voltage Vpgm at a rate of 0.2V/10 μsec. Normally, the write voltage Vpgm is divided into a plurality of write pulses and the voltage Vpgm of the pulses is raised stepwise at a predetermined rate. This technique provides an effect similar to that of continuously raising the write voltage Vpgm. The threshold value is checked after applying each pulse to the memory cell and the write operation is terminated when the threshold value has got to a predetermined verification level. 
         [0007]    Meanwhile, micronization of processing dimensions is in progress. This means that the gaps separating memory cells are made smaller and smaller to consequently give rise to various problems from the viewpoint of multi-valued flash memories. 
         [0008]    For instance, the distance separating floating gates is reduced to produce problems as pointed out below as a result of micronization. 
         [0009]    Imagine two memory cells A and B arranged side by side. Assume that the data of the two memory cells are erased simultaneously and they are made to have a threshold value of −3V. Then, firstly a data is written into the memory cell A. As a result, its threshold value may be raised to 0.5V to 1V. Subsequently, another data that is different from the data written into the memory cell A is written into the memory cell B. As the threshold value of the memory cell B is raised to 1.5V to 2V, the electric potential of the floating gate of the memory cell A falls and its threshold value is raised, say, to 1V to 1.5V as a result of the capacitive coupling of the floating gates of the two memory cells. 
         [0010]    In the above described instance, the difference of the threshold values of the memory cells A and B (read out margin) should be at least 0.5V. However, it is reduced to 0V as a result of the capacitive coupling of the floating gates of the two memory cells. Thus, the difference of the threshold values necessary for discriminating two different data is reduced and the read out margin disappears. 
         [0011]    How the threshold value of a memory cell storing a data written in advance in a manner described above changes under the influence of a write operation of another memory cell will be described below by referring to  FIGS. 1A through 1C  of the accompanying drawing. 
         [0012]      FIG. 1A  shows the electric charge of the floating gate FG 1  of a memory cell where the data stored there is erased and subsequently a new data is written. Electrons are accumulated in the floating gate FG 1  of the memory cell where a data is written. In  FIG. 1A , “- -” indicates electrons. Subsequently, data are written in the memory cells located respectively at the two sides of the first memory cell and having respective floating gates FG 2 , FG 3 . Then, a change occurs at the floating gate FG 1  of the first memory cell as shown in  FIG. 1B . The electric potential of the memory cell where a data is written first falls and its threshold value rises as shown in  FIG. 1C  because of the electrostatic capacitive coupling of the neighboring floating gates FG 2 , FG 3 . Then, as a result, the threshold value of the memory cell having the floating gate FG 1  shows a wide distribution. In  FIGS. 1A and 1B , reference symbol WL denotes the word line (control gate) arranged commonly for the memory cells having the floating gates FG 1 , FG 2 , FG 3 . 
         [0013]    Thus, the technological development for reducing the distribution width of the threshold value of a memory will become increasingly important in the future in order to cope with this problem. 
         [0014]    It may be conceivable to reduce the stepwise increment Dvpgm of the write voltage Vpgm in order to avoid this problem. For example, the distribution width of the threshold value is reduced from 0.5V to 0.1V to increase the write out margin by 0.4V by reducing the stepwise increment Dvpgm from 0.5V to 0.1V. 
         [0015]    However, as the stepwise increment is reduced to ⅕ of the original value, the number of pulses becomes five times as many as the original number. Then, the write time will become five times as long as the original value to give rise to a new problem. 
         [0016]    Therefore, so far, any attempt at securing a write out margin and raising the reliability of a memory device is accompanied by the problem of an increased write time. 
       BRIEF SUMMARY OF THE INVENTION 
       [0017]    In an aspect of the present invention, there is provided a non-volatile semiconductor memory device comprises: an electrically data rewritable non-volatile semiconductor memory cell; and a write circuit for writing data in the memory cell, the write circuit writes a data in the memory cells by supplying a write voltage and a write control voltage to the memory cell, continues the writing of the data in the memory cell by changing the supply of the write control voltage to the memory cell in response to an advent of a first write state of the memory cell and inhibits any operation of writing a data to the memory cell by further changing the supply of the write control voltage to the memory cell in response to an advent of a second write state of the memory cell. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING 
         [0018]      FIGS. 1A through 1C  are schematic illustrations of the sectional view and distribution of a threshold value referred to for pointing out the problem of the prior art; 
           [0019]      FIG. 2  is a schematic block diagram of the first embodiment of flash memory according to the invention, illustrating its overall configuration; 
           [0020]      FIG. 3A  is a schematic block diagram illustrating the internal configuration of the memory cell array in  FIG. 2 ; 
           [0021]      FIG. 3B  is a circuit diagram of a NAND-type memory unit arranged in each of the blocks of  FIG. 3A ; 
           [0022]      FIG. 4  is a schematic cross sectional view of the memory cell array of  FIG. 2  taken along the column direction to show the structure of the device; 
           [0023]      FIGS. 5A and 5B  are schematic cross sectional views of the memory cell array of  FIG. 2  taken along the row direction to show the structure of the device; 
           [0024]      FIG. 6  is a schematic block diagram of a principal part of the column control circuit of  FIG. 2 , illustrating its configuration; 
           [0025]      FIG. 7  is a graph illustrating the relationship between a multi-valued data and the threshold value of a memory cell of the first embodiment of multi-value flash memory according to the invention; 
           [0026]      FIG. 8  is a graph illustrating the changing threshold value of memory cells of a known flash memory and a data writing method adapted to use such a changing threshold value; 
           [0027]      FIG. 9  is a graph illustrating the changing threshold value of a memory cell of the first embodiment of multi-value flash memory according to the invention and a data writing method adapted to use such a changing threshold value; 
           [0028]      FIG. 10  is a graph illustrating the method for writing a higher order page data into a same memory cell and the change with time of the threshold value of the memory of the first embodiment; 
           [0029]      FIG. 11  is a graph illustrating the signal waveforms of different parts of the first embodiment of flash memory according to the invention when writing a lower order page data into a single memory cell; 
           [0030]      FIG. 12  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when writing a lower order page data into a single memory cell; 
           [0031]      FIG. 13  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when writing a higher order page data into a memory cell; 
           [0032]      FIG. 14  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention for controlling the order of writing data into the blocks; 
           [0033]      FIG. 15  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when reading the lower order page data stored in a memory cell; 
           [0034]      FIG. 16  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when reading the higher order page data stored in a memory cell; 
           [0035]      FIG. 17A  is a graph illustrating the signal waveforms in a write step of the first embodiment of flash memory according to the invention; 
           [0036]      FIG. 17B  is a graph illustrating the signal waveforms in a write step of the second embodiment of flash memory according to the invention; and 
           [0037]      FIG. 18  is a graph illustrating the signal waveforms of different parts of the third embodiment of flash memory according to the invention when writing a data into a single memory cell. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0038]    Now, the present invention will be described in greater detail by referring to the accompanying drawing that illustrates preferred embodiment of the invention. 
         [0039]      FIG. 2  is a schematic block diagram of the first embodiment of multi-value flash memory according to the invention, illustrating its overall configuration; 
         [0040]    Referring to  FIG. 2 , a plurality of flash memory cells, a plurality of bit lines and a plurality of word lines are arranged in the memory cell array  1 . The flash memory cells are arranged in the form of a matrix. 
         [0041]    A column control circuit  2  and a row control circuit  3  are arranged adjacently relative to the memory cell array  1 . The column control circuit  2  controls the bit lines in the memory cell array  1  for erasing data from, writing data into and reading data from memory cells. 
         [0042]    The row control circuit  3  is used for selecting a word line in the memory cell array  1  and supplying a voltage necessary for erasing, writing and reading data. 
         [0043]    Additionally, a source line control circuit  4  for controlling source lines of the memory cell array  1  and a P-well control circuit  5  for controlling the p-type wells for forming the memory cell array  1  are also arranged near the memory cell array  1 . 
         [0044]    Data input/output buffer  6  is connected to a host by way of an external I/O line. The data input/output buffer  6  is adapted to receive data to be written, outputs read out data and receive address data and command data. The data to be written received by the data input/output buffer  6  are forwarded to the column control circuit  2 . The data input/output buffer  6  receives the read out data from the column control circuit  2 . 
         [0045]    An external address data is sent to the column control circuit  2  and the row control circuit  3  by way of state machine  8  in order to select memory cells in the memory cell array  1 . 
         [0046]    A command data from the host is sent to command interface  7 . The command interface  7  receives a control signal from the host and determines if the data input to the data input/output buffer  6  is a data to be written, a command data or an address data. If it is a command data, the command interface  7  forwards the command to the state machine  8  as received command signal. 
         [0047]    The state machine  8  controls the overall operation of the flash memory. It receives a command from the host for controlling the operation of reading data, writing data and erasing data and also controls the data input/output operation. The state machine  8  arranged a write counter PC for counting the number of data writing operations to each of the memory cells. 
         [0048]      FIG. 3A  is a schematic block diagram illustrating the internal configuration of the memory cell array  1  in  FIG. 2 . The memory cells of the memory cell array  1  are divided into a number of blocks BLOCK( ) through BLOCK1023. A block is the smallest unit for an erasing operation. Each of the blocks BLOCKi (i=0 through 1023) includes a total of 8,512 NAND type memory units as shown in  FIG. 3B . 
         [0049]    In this embodiment, each of the NAND type memory units contains four memory cells M that are connected in series and further to a bit line BLe or BLo at an end thereof by way of a selection gate S 1  commonly connected to selection gate lines SGD i and to a common source line C-source at the opposite end thereof by way of a selection gate S 2  commonly connected to selection gate lines SGS i. 
         [0050]    Each memory cell M has a control gate, a floating gate, a source and a drain. The control gates of the four memory cell M of each NAND type memory unit are commonly connected to the corresponding one of the word lines WL 0   i  through WL 3   i.    
         [0051]    Data are independently written into and read out from the even-numbered bit lines BLe and the odd-numbered bit lines BLo as counted from 0. Data are simultaneously written into or read out from 4,256 memory cells connected to the even-numbered bit lines BLe out of the 8,512 memory cells whose control gates are connected to a single word line WL. 
         [0052]    When each memory cell stores a 1-bit data, the 4,256 bits data stored in 4,256 memory cells constitute a unit of page. Thus, when a single memory cell stores a 2-bit data, the 4,256 memory cells store data of two pages. Data of other two pages are stored in the 4,256 memory cells connected to the odd-numbered bit lines BLo. Data are written into or read out from the memory cells of a same page simultaneously. 
         [0053]      FIG. 4  is a schematic cross sectional view of the memory cell array  1  of  FIG. 2  taken along the column direction to show the structure of the device. Referring to  FIG. 4 , an n-type well  11  is formed on a p-type substrate  10  and a p-type well  12  is formed in the n-type well  11 . Each memory cell M comprises a source and a drain formed in an n-type diffusion layer  13 , a floating gate FG arranged in a channel region between the source and the drain by way of a tunnel oxide film and a control gate CG arranged on the floating gate FG by way of an insulating film and operating as word line WL. 
         [0054]    Each of the selection gates S 1 , S 2  includes a source and a drain formed in the n-type diffusion layer  13  and a selection gate line SG having a two-layer structure. Both the word line WL and the selection gate line SG are connected to the row control circuit  3  in  FIG. 2  and controlled by the output signal from the row control circuit  3 . 
         [0055]    Each NAND type memory unit including four memory cells M and selection gates S 1 , S 2  is connected at an end thereof to the metal wiring layer M 0  of the first layer by way of a contact hole CB 1 . The metal wiring layer M 0  is connected to the metal wiring layer M 1  of the second layer operating as bit line BL by way of a via hole V 1 . The bit line BL is connected to the column control circuit  2  in  FIG. 2 . 
         [0056]    The NAND type memory unit is connected at the other end thereof to the metal wiring layer M 2  of the first layer operating as common source line C-source by way of still another contact hole CB 2 . The common source line C-source is connected to the source line control circuit  4  in  FIG. 2 . 
         [0057]    An n-type diffusion layer  14  is formed on the surface of the n-type well  11 , while a p-type diffusion layer  15  is formed on the surface of the p-type well  12 . Both of the n-type diffusion layer  14  and the p-type diffusion layer  15  are connected to the metal wiring layer M 3  of the first layer operating as well line C-p-well by way of respective contact holes CB 3 , CB 4 . The well line C-p-well is connected to the P well control circuit  5  in  FIG. 2 . 
         [0058]      FIGS. 5A and 5B  are schematic cross sectional views of the memory cell array  1  taken along the row direction to show the structure of the device. As shown in  FIGS. 5A and 5B , each memory cell is isolated from the remaining memory cells by element isolations STI. 
         [0059]    As shown in  FIG. 5A , in each memory cell, a floating gate FG is laid on a channel region by way of a tunnel oxide film  16 . A word line WL is laid on the floating gate FG by way of an insulating film  17  that is an ONO film. 
         [0060]    As shown in  FIG. 5B , the selection gate line SG has a two-layer structure. The upper layer selection gate line SG and the lower layer selection gate line SG are connected to an end of the memory cell array  1  or a predetermined number of bit lines. 
         [0061]      FIG. 6  is a schematic block diagram of a principal part of the column control circuit  2  of  FIG. 2 , illustrating its configuration. 
         [0062]    In the column control circuit  2 , a data storage circuit  20  is arranged for every two bit lines including an even-numbered bit line BLe and an odd-numbered bit line BLo having a same column number. 
         [0063]    In the column control circuit  2 , a sense amplifier is also arranged for the data storage circuit  20  in order to write data into and read data from memory cells. 
         [0064]    Referring to  FIG. 6 , an n-channel MOS transistor Qn 1  is connected for column selection between the data storage circuit  20  and the even-numbered bit line BLe, whereas another n-channel MOS transistor Qn 2  is connected for column selection between the data storage circuit  20  and the odd-numbered bit line BLo. 
         [0065]    Either of the even-numbered bit line BLe or the odd-numbered bit line BLo connected to each data storage circuit  20  is selected and connected to the data storage circuit  20  to control the operation of writing a data or that of reading a data. More specifically, when signal EVENBL is at level H and signal ODDBL is at level L, the MOS transistor Qn 1  is made electrically conductive to select the even-numbered bit line BLe, which bit line BLe is then connected to the data storage circuit  20 . When, on the other hand, when signal EVENBL is at level L and signal ODDBL is at level H, the MOS transistor Qn 2  is made electrically conductive to select the odd-numbered bit line BLo, which bit line BLo is then connected to the data storage circuit  20 . Note that the signal EVENBL is supplied to all the n-channel MOS transistors for column selection connected to the even-numbered bit lines BLe, whereas the signal ODDBL is supplied to all the n-channel MOS transistors for column selection connected to the odd-numbered bit lines BLo. The unselected bit lines BL are controlled by some other circuit (not shown). 
         [0066]    Each data storage circuit  20  includes three binary data storage sections DS 1 , DS 2 , DS 3 , of which the data storage section DS 1  is connected to the data input/output buffer  6  by way of an internal data input/output line (I/O line) and stores an externally input data to be written or a read out data to be externally output, while the data storage section DS 2  stores the detection outcome of a write verify operation for confirming the threshold value of a memory cell after a write operation and the data storage section DS 3  temporarily stores the data of a memory cell at the time of writing it and at the time of reading it. 
         [0067]      FIG. 7  is a graph illustrating the relationship between a multi-valued data and the threshold value of a memory cell of the first embodiment of multi-value flash memory according to the invention. 
         [0068]    Now, the operation of the embodiment of multi-valued flash memory according to the invention and having the above described configuration will be described below by referring to  FIG. 7 . Assume that each memory cell of this embodiment is adapted to store two bits or a four-valued data. It will be appreciated that a 2-bit data is “11”, “10”, “01” or “00”. The two bits belong respectively to different row addresses (different pages). 
         [0069]    A four-valued data is stored in a memory cell with different threshold values. Referring to  FIG. 7 , assume that a data showing the lowest threshold value (e.g., the threshold voltage is negative) represents “11” and a data, showing the second lowest threshold value (e.g., the threshold voltage is positive) represents “10”, while a data showing the third lowest threshold value (e.g., the threshold voltage is positive) represents “01” and a data showing the highest threshold value (e.g., the threshold voltage is positive) represents “00”. 
         [0070]    After an erasing operation, the data in the memory cell is “11”. If the data of the lower order page written into this memory cell is “0”, the state of the memory cell shifts from “11” to “10” as a result of the writing operation. If the data written into this memory cell is “1”, the state of the memory cell remains to be “11”. 
         [0071]    Then, the data of the higher order page is written into the memory cell. If the written data is “1”, the state of the memory cell remain from “11” or “10”. If the written data is “0”, the state of the memory cell shift either from “11” to “01” or from “10” to “00”. 
         [0072]    During a write operation, the data written into a memory cell is read out and a so-called write verify operation is conducted to verify if the writing operation is satisfactory. 
         [0073]    The data read out by the sense amplifier is regarded as “11” if the threshold value is not higher than 0V and as “10 if the threshold value is not lower than 0V and not higher than 1V, whereas the data is regarded as “01” if the threshold value is not lower than 1V and not higher than 2V and as “00” if the threshold value is not lower than 2V. 
         [0074]    Thus, four-value threshold values are used for storing a 2-bit data in a memory cell. In actual devices, the performance of the memory cells can vary from memory cell to memory cell and hence their threshold values can also vary. If they vary to a large extent, it will be no longer possible to identify the data stored in each memory cell and a wrong data may be read out. 
         [0075]    This embodiment of multi-valued flash memory is adapted to suppress dispersion of threshold value in a manner as indicated by a solid line in  FIG. 7  unlike the dispersion of threshold value observed in known flash memories as indicated by broken lines in  FIG. 7 . This point will be described in detail below. 
         [0076]    Table 1 shows typical voltages of various parts of the first embodiment of multi-valued flash memory in erase, write, read and write verify operations. Note that, the values shown in Table 1 are obtained when the word line WL 2  and the even-numbered bit lines BLe are selected for write and read operations. 
         [0000]    
       
         
               
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
             
             
               
                   
                   
                 First 
                 Second 
                   
                   
                   
                   
               
               
                   
                   
                 step 
                 step 
                 Write 
               
               
                   
                 Erase 
                 write 
                 write 
                 inhibit 
                 “10” read 
                 “01” read 
                 “00” read 
               
               
                   
               
               
                 BLe 
                 Floating 
                 0 V 
                 0.4 V   
                 Vdd 
                 H or L 
                 H or L 
                 H or L 
               
               
                 BLo 
                 Floating 
                 Vdd 
                 Vdd 
                 Vdd 
                   0 V 
                   0 V 
                   0 V 
               
               
                 SGD 
                 Floating 
                 Vdd 
                 Vdd 
                 Vdd 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 WL3 
                 0 V 
                 10 V  
                 10 V  
                 10 V  
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 WL2 
                 0 V 
                 Vpgm 
                 Vpgm 
                 Vpgm 
                   0 V 
                   1 V 
                   2 V 
               
               
                 WL1 
                 0 V 
                 0 V 
                 0 V 
                 0 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 WL0 
                 0 V 
                 10 V  
                 10 V  
                 10 V  
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 SGS 
                 Floating 
                 0 V 
                 0 V 
                 0 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 C-source 
                 Floating 
                 0 V 
                 0 V 
                 0 V 
                   0 V 
                   0 V 
                   0 V 
               
               
                 C-p-well 
                 20 V  
                 0 V 
                 0 V 
                 0 V 
                   0 V 
                   0 V 
                   0 V 
               
               
                   
               
             
          
           
               
                   
                   
                 “10” 
                   
                 “01” 
                   
                 “00” 
               
               
                   
                 “10” first 
                 second 
                 “01” first 
                 second 
                 “00” first 
                 second 
               
               
                   
                 step write 
                 step write 
                 step write 
                 step write 
                 step write 
                 step write 
               
               
                   
                 verify 
                 verify 
                 verify 
                 verify 
                 verify 
                 verify 
               
               
                   
               
               
                 BLe 
                 H or L 
                 H or L 
                 H or L 
                 H or L 
                 H or L 
                 H or L 
               
               
                 BLo 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
               
               
                 SGD 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 WL3 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 WL2 
                 0.2 V 
                 0.4 V 
                 1.2 V 
                 1.4 V 
                 2.2 V 
                 2.4 V 
               
               
                 WL1 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 WL0 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 SGS 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
                 4.5 V 
               
               
                 C-source 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
               
               
                 C-p-well 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
                   0 V 
               
               
                   
               
             
          
         
       
     
         [0077]    For an erase operation, 20V and 0V are supplied respectively to the p-type well  12  (well line C-p-well) and all the word lines WL 0  of the selected block. Electrons are discharged from the floating gates FG of all the memory cells M of the block so that the threshold value becomes negative to show a state of “11”. While the word lines and the bit lines BL of the unselected blocks are brought to an electrically floating state, they show a voltage level close to 20V as a result of the capacitive coupling with the p-type well  12 . 
         [0078]    For writing a data, a first step operation, a second step operation and a write inhibiting operation are conducted sequentially. Firstly, program voltage (write voltage) Vpgm of about 14V to 20V is supplied to the selected word line WL 2 . A high voltage such as 10V is supplied to each of the unselected word lines, including, say, the word line WL 3 , of the memory cells located at the bit line side relative to the selected memory cells in order to make the memory cells connected to the word line WL 3  electrically conductive. On the other hand, a low voltage such as 0V is supplied to each of the unselected word lines, including, say the word line WL 1 , of the memory cells located at the side of the well line C-p-well relative to the selected memory cells in order make the memory cells connected to the word line WL 1  electrically non-conductive. The selected bit lines BLe is supplies a voltage such as 0V. As a result, the 0V supplied to the selected bit lines BLe are transferred to the drains of the selected memory cells and the electric potential of the floating gates FG is raised by the capacitive coupling of the control gates CG and that of the floating gates FG so that electrons are injected into the floating gates FG from the drain by way of the tunnel oxide film (the tunnel oxide film  16  of  FIG. 5A ) due to the tunneling phenomenon and the threshold value is rapidly raised (the first step write operation). The voltage of the bit lines BLe is raised to 0.4V to suppress the rate at which the threshold value rises in a write operation (the second step write operation). The bit lines BLe are made to show a sufficiently high voltage, e.g., the supply voltage Vdd (up to 3V) for completely blocking the rise of the threshold value (write inhibition). 
         [0079]    A read operation is conducted by sequentially supplying different read voltages (0V, 1V, 2V) to the selected word line WL 2 . A voltage that makes the unselected memory cells electrically conductive, typically 4.5V, is supplied to the unselected remaining word lines. If the threshold value of the selected memory cells is lower than the read voltage, the bit lines BLe and the common source line C-source are made electrically communicative with each other so that an electric current flows through them to bring the electric potential of the bit lines BLe to a relatively low level, or level L. If, on the other hand, the threshold value of the selected memory cells is higher the read voltage, the bit lines BLe and the common source line C-source are made electrically non-communicative with each other to bring the electric potential of the bit lines BLe to a relatively high level, or level H. The read voltage is typically made equal to 0V and a read operation is conducted (to read “10”) for checking if the electric potential of a memory cell is higher than the threshold value corresponding to the state of “10” or not. The read voltage is typically made equal to 1V and a read operation is conducted (to read “01”) for checking if the electric potential of a memory cell is higher than the threshold value corresponding to the state of “01” or not. The read voltage is typically made equal to 2V and a read operation is conducted (to read “00”) for checking if the electric potential of a memory cell is higher than the threshold value corresponding to the state of “00” or not. 
         [0080]    A data is written into a memory cell in the state of “10” so as to make the threshold value not smaller than 0.4V in order to provide a read margin of 0.4V for the read voltage of 0V. Thus, the operation of writing “10” is inhibited when the threshold value of the memory cell has got to 0.4V as a result of a write verify operation. 
         [0081]    Conventional devices comparable to this embodiment are only adapted to check if the threshold value has got to 0.4V or not so that the threshold value shows a relatively broad distribution width as shown in  FIG. 7 . 
         [0082]    To the contrary, this embodiment of the present invention is adapted to check if the threshold value has got to a level slightly lower than the target threshold value or not and the rate at which the threshold value rises is suppressed in the second step write operation. Therefore, it is now possible to narrow the distribution width of the threshold value as indicated by the solid line in  FIG. 7 . 
         [0083]    The above description also applies to the states of “01” and “00”. 
         [0084]    A write verify operation is conducted by sequentially supplying different verify voltages, e.g., 0.2V, 0.4V, 1.2V, 1.4V, 2.2V, 2.4V to the selected word line WL 2 . If the threshold value of the selected memory cells is lower than the verify voltage, the bit lines BLe and the common source line C-source are made electrically communicative with each other so that an electric current flows through them to bring the electric potential of the bit lines BLe to a relatively low level, or level L. If, on the other hand, the threshold value of the selected memory cells is higher than the verify voltage, the bit lines BLe and the common source line C-source are made electrically non-communicative with each other to bring the electric potential of the bit lines BLe to a relatively high level, or level H. 
         [0085]    If the target threshold value of the memory cell is 0.4V, the verify voltage is reduced typically to 0.2V for a write verify operation in order to check if the threshold value of the memory cell is higher than a level slightly lower than the target threshold value, which is 0.2V in this embodiment, or not (the first step operation of write verify “10”). The verify voltage is made equal to 0.4V and a write verify operation is conducted in order to check if the threshold value of the memory cell is higher than 0.4 or not (the second step operation of write verify “10”). 
         [0086]    If the target threshold value of the memory cell is 1.4V, the verify voltage is reduced typically to 1.2V for a write verify operation in order to check if the threshold value of the memory cell is higher than a level slightly lower than the target threshold value, which is 1.2V in this embodiment, or not (the first step operation of write verify “01”). The verify voltage is made equal to 1.4V and a write verify operation is conducted in order to check if the threshold value of the memory cell is higher than 1.4V or not (the second step operation of write verify “01”). 
         [0087]    If the target threshold value of the memory cell is 2.4V, the verify voltage is reduced to 2.2V for a write verify operation in order to check if the threshold value of the memory cell is higher than a level slightly lower than the target threshold value, which is 2.2V in this embodiment, or not (the first step operation of write verify “00”). The verify voltage is made equal to 2.4V and a write verify operation is conducted in order to check if the threshold value of the memory cell is higher than 2.4 or not (the second step operation of write verify “00”). 
         [0088]      FIG. 8  is a graph illustrating the changing threshold value of memory cells of a known flash memory and a data writing method adapted to use such a changing threshold value. In  FIG. 8 , the small white squares indicate the threshold value and the write control voltage (the voltage of the bit line BL) to be supplied to a memory cell where a data can be easily written, whereas the small black squares indicate the threshold value and the write control voltage (the voltage of the bit line BL) to be supplied to a memory cell where a data can be hardly written. The two memory cells stores the data of a same page. The data are erased from both of them in the initial state and they show a negative threshold value. 
         [0089]    The write voltage Vpgm is divided into a number of pulses and the pulses are made to rise stepwise typically by 0.2V at a time. In other words, the write voltage Vpgm increased with a stepwise increment Dvpgm of 0.2V per pulse. 
         [0090]    As the voltage of the bit line BL that is the write control voltage is made equal to 0V, the threshold value rises at a rate of 0.2V/pulse which is equal to the increment of the write voltage Vpgm after several pulses. A write verify operation is conducted after the application of each write pulse and the write operation is inhibited at each memory cell whose threshold value, becomes to a bit line voltage Vdd of the memory cell detected to have got to the level of the write verify voltage. Thus, the threshold value shows a distribution width of 0.2V. 
         [0091]      FIG. 9  is a graph illustrating the changing threshold value of a memory cell of the first embodiment of multi-value flash memory according to the invention and a data writing method adapted to use such a changing threshold value. As in the case of  FIG. 8 , the small white squares indicate the threshold value and the write control voltage (the voltage of the bit line BL) to be supplied to a memory cell where a data can be easily written, whereas the small black squares indicate threshold values and a write control voltage (the voltage of the bit line BL) to be supplied to a memory cell where a data can be hardly written. 
         [0092]    The two memory cells stores the data of the respective columns of a same page. The data are erased from both of them in the initial state and they show a negative threshold value. 
         [0093]    The write voltage Vpgm is divided into a number of pulses and the pulses are made to rise stepwise typically by 0.2V at a time. In other words, the write voltage Vpgm increases with a stepwise increment Dvpgm of 0.2V per pulse. 
         [0094]    The voltage of the bit line BL that is the write control voltage is made equal to 0V and a first step write operation is conducted. In the first step write operation, the threshold value rises at a rate of 0.2V/pulse which is equal to the increment of the write voltage Vpgm after the supplied several pulses. A first step write verify operation or a second step write verify operation is conducted after the application of each write pulse. 
         [0095]    The voltage of the bit line of the memory cell whose threshold value has got to the first step write verify voltage is subsequently increased to 0.4V and the second step write operation is conducted on a memory cell by memory cell basis. The voltage of the bit line of the memory cell whose threshold value has got to the second step write verify voltage is subsequently brought to Vdd to inhibit any write operation on a memory cell by memory cell basis. 
         [0096]    In the second step write operation, the rising rate of the threshold value is held lower than the 0.2V/pulse of the first step write operation for several pulses. In other words, while the voltage of the bit lines BL, or the write control voltage, is 0V in the first step write operation, it rises to 0.4 in the second step write operation. Therefore, it is more difficult to write data in the second step write operation than in the first step write operation. 
         [0097]    The rising rate of the threshold value in the second step write operation is typically held within a range between 0V/pulse and 0.05V/pulse. In other words, the threshold value shows a distribution width of as small as 0.05V in the second step write operation. 
         [0098]    If the write pulse width is 20 μsec. and the time required for a write verify operation is 5 μsec., the duration of a write operation is conventionally (20 μsec.+5 μsec.)×18 pulses=450 μsec. 
         [0099]    Conventionally, the voltage increment Dvpgm of write voltage Vpgm needs to be made equal to 0.05V, or a quarter of 0.2V, in order to realize a threshold value distribution width of 0.05V. Then, the duration of a write operation is 450 μsec×4=1800 μsec. 
         [0100]    On the other hand, with this embodiment, as shown in  FIG. 9 , it is possible to realize a threshold value distribution width of 0.05V by using a voltage increment Dvpgm of 0.2V/pulse so that the duration of a write time is (20 μsec.+5 μsec.+5 μsec.)×20 pulses=600 μsec. 
         [0101]    Thus, the duration of the write operation necessary for realizing a threshold value distribution width of 0.05V in this embodiment is reduced to a third of that of the above known device. 
         [0102]    “10” is written by using a “10” first step write verify voltage and a “10” second step write verify voltage respective for first step write verify voltage and for the second step write verify voltage. 
         [0103]      FIG. 10  is a graph illustrating the method for writing a higher order page data into a same memory cell and the change with time of the threshold value of the memory of the first embodiment. As in the case of  FIGS. 8 and 9 , the small white squares indicate the threshold value and the write control voltage (the voltage of the bit line BL) to be supplied to a memory cell where a data can be easily written, whereas the small black squares indicate threshold values and a write control voltage (the voltage of the bit line BL) to be supplied to a memory cell where a data can be hardly written. The two memory cells stores the data of the respective columns of a same page. 
         [0104]    The data in the memory cell whose write control voltage is indicated by white squares, where a data can be easily written, is erased in the initial state and the memory cell shows a negative threshold value. Assume that a date is written in the memory cell to make it show to show a “01” state. A data is already written in the memory cell whose write control voltage is indicated by black squares to make it show a “10” state in the initial state. Assume that a data is written to the memory cell to make it show a “00” state. 
         [0105]    The write voltage Vpgm is divided into a number of pulses and the pulses are made to rise stepwise typically by 0.2V at a time. In other words, the write voltage Vpgm increases with a stepwise increment Dvpgm of 0.2V per pulse. 
         [0106]    The voltage of the bit line BL that is the write control voltage is made equal to 0V and a first step write operation is conducted. In the first step write operation, the threshold value rises at a rate of 0.2V/pulse which is equal to the increment of the write voltage Vpgm after several pulses. A “01” first step write verify operation is conducted after the application of each write pulse. After the write operation using a threshold value slightly lower than the target threshold value, a “01” second step write verify operation is conducted after the application of each write pulse. Thereafter, a “00” first step write verify operation and a “00” second step write verify operation are conducted. 
         [0107]    When the threshold value of the memory cell indicated by white squares is detected to have got to the “01” first step write verify voltage, subsequently the bit line voltage is made equal to 0.4V and the process proceeds to the second step write operation. When the threshold value of the memory cell indicated by black squared is detected to have got to the “00” first step write verify voltage, subsequently the bit line voltage is made equal to 0.4V and the process proceeds to the second step write operation. 
         [0108]    Furthermore, when the threshold value of the memory cell indicated by white squares is detected to have got to the “01” second step write verify voltage, subsequently the bit line voltage is made equal to Vdd and the write operation is inhibited. Finally, when the threshold value of the memory cell indicated by black squares is detected to have got to the “00” second step write verify voltage, subsequently the bit line voltage is made equal to Vdd and the write operation is inhibited. 
         [0109]    After the second step write operation starts for both the data “01” and the data “00”, the increment of the threshold value is typically held within a range between about 0V/pulse and 0.05V/pulse for several pulses of the write voltage. Therefore, the threshold value shows only a distribution width of 0.05V. 
         [0110]      FIG. 11  is a graph illustrating the signal waveforms of different parts of the first embodiment of flash memory according to the invention when writing a lower order page data into a single memory cell. 
         [0111]    Referring to  FIG. 11 , the write step continues from time tp 0  to time tp 7 . A write pulse is applied during this period. The “10” first step write verify operation continues from time tfv 0  to time tfv 6 . Then, the period of time from time tsv 0  to time tsv 6  is assigned to the “10” second step write verify operation. In this instance, it is assumed that the word line WL 2  and the even-numbered bit lines BLe are selected. 
         [0112]    In the write step, the voltage of the bit lines BLe that is the write control voltage is brought to 0V for the first step write operation and to 0.4V for the second step write operation, whereas it is brought to Vdd (e.g., 2.5V) when any write operation is inhibited. 
         [0113]    In each write verify period, firstly the bit lines BLe is charged typically to 0.7V. Thereafter, when the selected word line WL 2  has gets to the write verify voltage, the bit lines BLe is held to 0.7V if the threshold value of the memory cell has got to the write verify voltage but the voltage of the bit lines BLe is reduced toward 0V if the threshold value of the memory cell has not got to the write verify voltage. If the threshold value of the memory cell has got to the write verify voltage or not can be detected by observing the voltage of the bit lines BLe by means of a sense amplifier at timing of time tfv 4  or tsv 4 . If the threshold value of the memory cell has got to the write verify voltage, the detecting operation is successfully completed. 
         [0114]      FIG. 12  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when writing a lower order page data into a single memory cell. 
         [0115]    The control operation starts with receiving a data input command from the host and placing the data input command in the state machine  8  (S 1 ). Then, the operation proceeds to receiving an address data from the host and placing the address in the state machine  8  to select the page to be used for a write operation (S 2 ). Thereafter, the operation proceeds to a step of receiving data to be written in a page and storing them correspondingly in the respective data storage sections DS 1  (S 3 ). Subsequently, the operation proceeds to a step of receiving a write command issued from the host and placing the write command in the state machine  8  (S 4 ). As the write command is placed, the operation of Steps S 5  through S 16  is automatically started by the state machine  8  in the inside. 
         [0116]    The data stored in the data storage sections DS 1  are copied respectively to the corresponding data storage sections DS 2  (S 5 ). Thereafter, 12V is selected for the initial value of the write voltage Vpgm and the write counter PC is set to 0 (S 6 ). If the data in the data storage sections DS 1  are “0”s and the data in the data storage sections DS 2  are also “0”s, they indicate a first step write operation and, therefore, the voltage of the bit lines BLe that is the write control voltage is reduced to 0V. If, on the other hand, the data in the data storage sections DS 1  are “0”s and the data in the data storage sections DS 2  are “1”s, they indicate a second step write operation and, therefore, the voltage of the bit lines BLe that is the write control voltage is brought to 0.4V. If, finally, the data in the data storage sections DS 1  are “1”s and the data in the data storage sections DS 2  are also “1”s, they indicate write inhibition and, therefore, the voltage of the bit lines BLe that is the write control voltage is brought to Vdd (S 7 ). 
         [0117]    Then, the operation proceeds to the write step of applying a write pulse to the memory cells for storing the data of a page by using the selected write voltage Vpgm and the write control voltage (S 8 ). In the next step, if all the data stored in the data storage sections DS 2  are “1”s or not is checked and, if they are all “1”s, it is determined that the status of the first step is satisfactory whereas, if all the data stored in the data storage sections DS 2  are not “1”s, it is determined that the status of the first step is not satisfactory (S 9 ). As will be described hereinafter, if all the data stored in the data storage sections DS 2  are “1”s, there is no memory cell where the first step write operation is conducted in the preceding write step (S 8 ). 
         [0118]    If the status of the first step is satisfactory, a “10” first step write verify operation is started (S 10 ) and the data of the data storage sections DS 2  corresponding to only the memory cells where the detection outcome is satisfactory out of the memory cells for storing the data of a page are shifted from “0”s to “1”s. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. 
         [0119]    When the status of the first step is satisfactory or when the “10” first step write verify operation is completed, a “10” second step write verify operation is started (S 11 ). The data of the data storage sections DS 1  corresponding to only the memory cells where the detection outcome is satisfactory out of the memory cells for storing the data of a page are shifted from “0”s to “1”s. The data storage sections DS 1  storing “1”s are made to keep on storing “1”s. 
         [0120]    After the “10” second step write verify operation, if all the data stored in the data storage sections DS 1  are “1”s or not is checked and, if they are all “1”s, it is determined that the status of the second step is satisfactory whereas, if all the data stored in the data storage sections DS 2  are not “1”s, it is determined that the status of the second step is not satisfactory (S 12 ). If the status of the second step is satisfactory, it is judged that the write operation has completed successfully and the status of the write operation is rated as satisfactory to terminate the write operation (S 13 ). 
         [0121]    If, on the other hand, the status of the second step is not satisfactory, the write counter PC is checked (S 14 ). If the reading of the write counter PC is not less than 20, it is judged that the status of the write operation is failure and the write operation is terminated unsuccessfully (S 15 ). If the reading of the write counter PC is not greater than 20, the reading of the write counter PC is incremented by one and the write voltage Vpgm is raised by 0.2V (S 16 ). Then, the operation is moved back to Step S 7  and then the write operation of Step S 8  is retried. It will be appreciated that the norm for the write operation is not necessarily be 20 and some other norm may be selected if appropriate. 
         [0122]    Table 2 shows the relationship between the data of the data storage sections DS 1  and DS 2  before and after the “10” first step write verify operation and the threshold value (Vt) of the corresponding memory cells of the write algorithm illustrated in  FIG. 12 . 
         [0000]    
       
         
               
               
             
               
               
               
             
               
               
               
               
             
           
               
                   
                 TABLE 2 
               
             
             
               
                   
                   
               
               
                   
                 DS1/DS2 data DS1/DS2 after n-th 
               
               
                   
                 “10” first step write verify 
               
               
                   
                 Memory cell threshold value Vt 
               
             
          
           
               
                   
                 When lower than 
                 When higher than 
               
               
                   
                 0.2 V 
                 0.2 V 
               
               
                   
                   
               
             
          
           
               
                 DS1/DS2 data DS1/DS2 
                 0/0 
                 0/0 
                 0/1 
               
               
                 before n-th “10” first 
                 0/1 
                 0/1 
                 0/1 
               
               
                 step write verify 
                 1/1 
                 1/1 
                 1/1 
               
               
                   
               
             
          
         
       
     
         [0123]    Immediately before the n-th “10” first step write verify operation, the data of the data storage sections DS 1  and DS 2  are one of the combinations of 0/0, 0/1 and 1/1. The combination of 0/0 indicates that the threshold value of the memory cells has not got to the “10” first step write verify voltage by the n−1-th write step. The combination of 0/1 indicates that the threshold value of the memory cells has got to the “10” first step write verify voltage but not to the “10” second step write verify voltage by the n−1-th write step. The combination of 1/1 indicates that the threshold value of the memory cells has got to the “10” second step write verify voltage by the n−1-th write step. It is not possible that the threshold value of the memory cells has got to the “10” second step write verify voltage but not to the “10” first step write verify voltage by the n−1-th write step so that the combination of I/O does not exists in this embodiment. 
         [0124]    Immediately before the first “10” first step write verify operation, the data of the data storage sections DS 1  and DS 2  are either of the combinations of 0/0 and 1/1. 
         [0125]    If the threshold value of the memory cells has not got to 0.2V which is the “10” first step write verify voltage by the n-th write step, the detection outcome of the “10” first step write verify operation is not satisfactory so that the data in the data storage sections DS 2  are not changed. If, on the other hand, the threshold value of the memory cells has got to 0.2V, the detection outcome of the “10” first step write verify operation is satisfactory so that the data in the data storage sections DS 2  are shifted to “1”s. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. 
         [0126]    Table 3 shows the relationship between the data of the data storage sections DS 1  and DS 2  before and after the “10” second step write verify operation and the threshold value of the corresponding memory cells of the write algorithm illustrated in  FIG. 12 . 
         [0000]    
       
         
               
               
             
               
               
               
             
               
               
               
               
             
           
               
                   
                 TABLE 3 
               
             
             
               
                   
                   
               
               
                   
                 DS1/DS2 data DS1/DS2 after n-th 
               
               
                   
                 “10” second step write verify 
               
               
                   
                 Memory cell threshold value Vt 
               
             
          
           
               
                   
                 When lower than 
                 When higher than 
               
               
                   
                 0.4 V 
                 0.4 V 
               
               
                   
                   
               
             
          
           
               
                 DS1/DS2 data DS1/DS2 
                 0/0 
                 0/0 
                 — 
               
               
                 before n-th “10” second 
                 0/1 
                 0/1 
                 1/1 
               
               
                 step write verify 
                 1/1 
                 1/1 
                 1/1 
               
               
                   
               
             
          
         
       
     
         [0127]    Immediately before the n-th “10” second step write verify operation, the data of the data storage sections DS 1  and DS 2  are one of the combinations of 0/0, 0/1 and 1/1. The combination of 0/0 indicates that the threshold value of the memory cells has not got to the “10” first step write verify voltage after the end of the n-th write step. The combination of 0/1 indicates that the threshold value of the memory cells has got to the “10” first step write verify voltage by the n-th write step but not to the “10” second step write verify voltage by the n−1th write step. The combination of 1/1 indicates that the threshold value of the memory cells has got to the “10” second step write verify voltage by the end of the n−1-th write step. 
         [0128]    It is not possible that the threshold value of the memory cells has got to the “10” second step write verify voltage by the n−1th write step but not to the “10” first step write verify voltage by the n-th write step so that the combination of I/O does not exists in this embodiment. 
         [0129]    If the threshold value of the memory cells has not got to 0.4V which is the “10” second step write verify voltage by the n-th write step, the detection outcome of the “10” second step write verify operation is not satisfactory so that the data in the data storage sections DS 1  are not changed. If, on the other hand, the threshold value of the memory cells has got to 0.4V, the detection outcome of the “10” second step write verify operation is satisfactory so that the data in the data storage sections DS 1  are shifted to “1”s. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. The combination of 0/0 will not be changed by the “10” second write verify operation. 
         [0130]      FIG. 13  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when writing a higher order page data into a memory cell. 
         [0131]    Referring to  FIG. 13 , the control operation starts with receiving a data input command from the host and placing the data input command in the state machine  8  (S 1 ). Then, the operation proceeds to receiving an address data from the host and placing the address in the state machine  8  to select the page to be used for a write operation (S 2 ). Thereafter, the operation proceeds to a step of receiving data to be written in a page and storing them correspondingly in the respective data storage sections DS 1  (S 3 ). Subsequently, the operation proceeds to a step of receiving a write command issued from the host and placing the write command in the state machine  8  (S 4 ). As the write command is placed, the operation of Steps S 5  through S 20  is automatically started by the state machine  8  in the inside. 
         [0132]    Firstly, a “10” write operation is started (S 5 ) and the operation is satisfactory (the data of the memory cells are “10”s, “0”s are stored in the corresponding data storage sections DS 3 . If the operation is not satisfactory, “1” are stored in the corresponding data storage sections DS 3 . Thereafter, the data stored in the data storage sections DS 1  are copied respectively to the corresponding storage sections DS 2  (S 6 ). Then, 14V is selected for the initial value of the write voltage Vpgm and the write counter PC is set to 0 (S 7 ). If the data in the data storage sections DS 1  are “0”s and the data in the data storage sections DS 2  are also “0”s, they indicate a first step write operation and, therefore, the voltage of the bit lines BL that is the write control voltage is set to 0V. If, on the other hand, the data in the data storage sections DS 1  are “0”s and the data in the data storage sections DS 2  are “1”s, they indicate a second step write operation and, therefore, the voltage of the bit lines BL that is the write control voltage is set to 0.4V. If, finally, the data in the data storage sections DS 1  are “1”s and the data in the data storage sections DS 2  are also “1”s, they indicate write inhibition and, therefore, the voltage of the bit lines BL that is the write control voltage is set to Vdd (S 8 ). Then, the operation proceeds to the write step of applying a write pulse to the memory cells for storing the data of a page by using the selected write voltage Vpgm and the write control voltage (S 9 ). 
         [0133]    In the next step, in all the data storage circuits  20  where “0”s are stored in the data storage sections DS 3 , it is checked if all the data stored in the data storage sections DS 2  are “1”s or not and, if they are all “1”s, it is determined that the status of the “00” first step is satisfactory whereas, if all the data stored in the data storage sections DS 2  are not “1”s, it is determined that the status of the “00” first step is not satisfactory (S 10 ). If all the data stored in the data storage sections DS 2  are “1”s, there is no memory cell where the “00” first step write operation is conducted in the preceding write step (S 9 ). 
         [0134]    If the status of the “00” first step is not satisfactory, a “00” first step write verify operation is started (S 11 ) and the data of the data storage sections DS 2  corresponding to only the memory cells where the detection outcome is satisfactory out of the memory cells for storing the data of a page are shifted from “0”s to “1”s, provided that the data in the data storage sections DS 3  are “0”. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. 
         [0135]    When the status of the “00” first step is satisfactory or when the “00” first step write verify operation is completed, a “00” second step write verify operation is started (S 12 ). The data of the data storage sections DS 1  corresponding to only the memory cells where the detection outcome is satisfactory out of the memory cells for storing the data of a page are shifted from “0”s to “1”s, provided that the data in the data storage section DS 3  are “0”s. The data storage sections DS 1  storing “1”s are made to keep on storing “1”s. 
         [0136]    Thereafter, in all the data storage circuits  20  where “0”s are stored in the data storage sections DS 3 , it is checked if all the data stored in the data storage sections DS 2  are “1”s or not is checked, if they are all “1”s, it is determined that the status of the “01” first step is satisfactory whereas, if all the data stored in the data storage sections DS 2  are not “1”s, it is determined that the status of that step is not satisfactory (S 13 ). As will be described hereinafter, if all the data stored in the data storage sections DS 2  are “1”s, there is no memory cell where the first step write operation is conducted in the preceding write step (S 9 ). 
         [0137]    If the status of the “01” first step is not satisfactory, a “01” first step write verify operation is started (S 14 ) and, in all the data storage circuits  20  where “0”s are stored in the data storage sections DS 3 , the data of the data storage sections DS 2  corresponding to only the memory cells where the detection outcome is satisfactory out of the memory cells for storing the data of a page are shifted from “0”s to “1”s, provided that the data in the data storage sections DS 3  are “0”. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. 
         [0138]    When the status of the “01” first step is satisfactory or when the “10” first step write verify operation is completed, a “10” second step write verify operation is started (S 15 ). Then, in all the data storage circuits  20  where “0”s are stored in the data storage sections DS 3 , the data of the data storage sections DS 1  corresponding to only the memory cells where the detection outcome is satisfactory out of the memory cells for storing the data of a page are shifted from “0”s to “1”s. The data storage sections DS 1  storing “1”s are made to keep on storing “1”s. 
         [0139]    After the “01” second step write verify operation, if all the data stored in the data storage sections DS 1  are “1”s or not is checked and, if they are all “1”s, it is determined that the status of the second step is satisfactory whereas, if all the data are not “1”s, it is determined that the status of the second step is not satisfactory (S 16 ). If the status of the second step is satisfactory, it is judged that the write operation has completed successfully and the status of the write operation is rated as satisfactory to terminate the write operation (S 17 ). If, on the other hand, the status of the second step is not satisfactory, the write counter PC is checked (S 18 ). If the reading of the write counter PC is not less than 20, it is judged that the status of the write operation is failure and the write operation is terminated unsuccessfully (S 19 ). If the reading of the write counter PC is not greater than 20, the reading of the write counter PC is incremented by one and the write voltage Vpgm is raised by 0.2V (S 20 ). Then, the operation is moved back to Step S 8  and then the write operation of Step S 9  is retried. It will be appreciated that the norm for the write operation is not necessarily be 20 and some other norm may be selected if appropriate. 
         [0140]    Table 4 shows the relationship between the data of the data storage sections DS 1 , DS 2  and DS 3  before and after the “10” first step write verify operation and the threshold value (Vt) of the corresponding memory cells of the write algorithm illustrated in  FIG. 13 . 
         [0000]    
       
         
               
               
             
               
               
               
             
               
               
               
               
             
           
               
                   
                 TABLE 4 
               
             
             
               
                   
                   
               
               
                   
                 DS1/DS2/DS3 data DS1/DS2/DS3 after 
               
               
                   
                 n-th “01” first step write verify 
               
               
                   
                 Memory cell threshold value Vt 
               
             
          
           
               
                   
                 When lower than 
                 When higher than 
               
               
                   
                 1.2 V 
                 1.2 V 
               
               
                   
                   
               
             
          
           
               
                 DS1/DS2/DS3 data 
                 0/0/1 
                 0/0/1 
                 0/1/1 
               
               
                 DS1/DS2/D3 before 
                 0/1/1 
                 0/1/1 
                 0/1/1 
               
               
                 n-th “01” first 
                 1/1/1 
                 1/1/1 
                 1/1/1 
               
               
                 step write verify 
                 0/0/0 
                 0/0/0 
                 0/0/0 
               
               
                   
                 0/1/0 
                 0/1/0 
                 0/1/0 
               
               
                   
                 1/1/0 
                 1/1/0 
                 1/1/0 
               
               
                   
               
             
          
         
       
     
         [0141]    Immediately before the n-th “01” first step write verify operation, the data of the data storage sections DS 1 , DS 2  and DS 3  are one of the combinations of 0/0/1, 0/1/1, 1/1/1, 0/0/0, 0/1/0 and 1/1/0. The combination of 0/0/1 indicates that the threshold value of the memory cells has not got to the “01” first step write verify voltage by the n−1-th write step. 
         [0142]    The combination of 0/1/1 indicates that the threshold value of the memory cells has got to the “01” first step write verify voltage but not to the “01” second step write verify voltage by the n−1-th write step. The combination of 1/1/1 indicates that the threshold value of the memory cells has got to the “01” second step write verify voltage by the n-1-th write step. It is not possible that the threshold value of the memory cells has got to the “01” second step write verify voltage but not to the “01” first step write verify voltage by the n−1-th write step so that the combination of 1/0/0 does not exists in this embodiment. 
         [0143]    If the threshold value of the memory cells has not got to 1.2V which is the “01” first step write verify voltage by the n-th write step, the detection outcome of the “01” second step write verify operation is not satisfactory so that the data in the data storage sections DS 2  are not changed. If, on the other hand, the threshold value of the memory cells has got to 1.2V, the detection outcome of the “01” first step write verify operation is satisfactory so that the data in the data storage sections DS 2  are shifted to “1”s. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. The combinations of 0/0/0, 0/1/0 and 1/1/0 do not constitute any objects of the first step write verify operation so that they are not changed. 
         [0144]    Table 5 shows the relationship between the data of the data storage sections DS 1 , DS 2  and DS 3  before and after the “01” second step write verify operation and the threshold value (Vt) of the corresponding memory cells of the write algorithm illustrated in  FIG. 13 . 
         [0000]    
       
         
               
               
             
               
               
               
             
               
               
               
               
             
           
               
                   
                 TABLE 5 
               
             
             
               
                   
                   
               
               
                   
                 DS1/DS2/DS3 data DS1/DS2/DS3 after 
               
               
                   
                 n-th “01” second step write verify 
               
               
                   
                 Memory cell threshold value Vt 
               
             
          
           
               
                   
                 When lower than 
                 When higher than 
               
               
                   
                 1.4 V 
                 1.4 V 
               
               
                   
                   
               
             
          
           
               
                 DS1/DS2/DS3 data 
                 0/0/1 
                 0/0/1 
                 — 
               
               
                 DS1/DS2/D3 before 
                 0/1/1 
                 0/1/1 
                 1/1/1 
               
               
                 n-th “01” second 
                 1/1/1 
                 1/1/1 
                 1/1/1 
               
               
                 step write verify 
                 0/0/0 
                 0/0/0 
                 0/0/0 
               
               
                   
                 0/1/0 
                 0/1/0 
                 0/1/0 
               
               
                   
                 1/1/0 
                 1/1/0 
                 1/1/0 
               
               
                   
               
             
          
         
       
     
         [0145]    Immediately before the n-th “01” second step write verify operation, the data of the data storage sections DS 1 , DS 2  and DS 3  are one of the combinations of 0/0/1, 0/1/1, 1/1/1, 0/0/0, 0/1/0 and 1/1/0. The combination of 0/0/1 indicates that the threshold value of the memory cells has not got to the “01” first step write verify voltage after the n-th write step. 
         [0146]    The combination of 0/1/1 indicates that the threshold value of the memory cells has got to the “01” first step write verify voltage by the n-th write step but not to the “01” second step write verify voltage by the n−1-th write step. The combination of 1/1/1 indicates that the threshold value of the memory cells has got to the “01” second step write verify voltage by the n−1-th write step. It is not possible that the threshold value of the memory cells has got to the “01” second step write verify voltage by the n−1-th write step but not to the “01” first step write verify voltage by the n-th write step so that the combination of 1/0/1 does not exists in this embodiment. 
         [0147]    If the threshold value of the memory cells has not got to 1.4V which is the “01” second step write verify voltage by the n-th write step, the detection outcome of the “01” second step write verify operation is not satisfactory so that the data in the data storage sections DS 1  are not changed. If, on the other hand, the threshold value of the memory cells has got to 1.4V, the detection outcome of the “01” second step write verify operation is satisfactory so that the data in the data storage sections DS 1  are shifted to “1”s. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. The combination of 0/0/1 will not be changed by the “01” second write verify operation. The combinations of 0/0/0, 0/1/0 and 1/1/0 do not constitute any objects of the first step write verify operation so that they are not changed. 
         [0148]    Table 6 shows the relationship between the data of the data storage sections DS 1 , DS 2  and DS 3  before and after the “00” first step write verify operation and the threshold value (Vt) of the corresponding memory cells of the write algorithm illustrated in  FIG. 13 . 
         [0000]    
       
         
               
               
             
               
               
               
             
               
               
               
               
             
           
               
                   
                 TABLE 6 
               
             
             
               
                   
                   
               
               
                   
                 DS1/DS2/DS3 data DS1/DS2/DS3 after 
               
               
                   
                 n-th “00” first step write verify 
               
               
                   
                 Memory cell threshold value Vt 
               
             
          
           
               
                   
                 When lower than 
                 When higher than 
               
               
                   
                 2.2 V 
                 2.2 V 
               
               
                   
                   
               
             
          
           
               
                 DS1/DS2/DS3 data 
                 0/0/1 
                 0/0/1 
                 — 
               
               
                 DS1/DS2/D3 before 
                 0/1/1 
                 0/1/1 
                 — 
               
               
                 n-th “00” first 
                 1/1/1 
                 1/1/1 
                 — 
               
               
                 step write verify 
                 0/0/0 
                 0/0/0 
                 0/1/0 
               
               
                   
                 0/1/0 
                 0/1/0 
                 0/1/0 
               
               
                   
                 1/1/0 
                 1/1/0 
                 1/1/0 
               
               
                   
               
             
          
         
       
     
         [0149]    Immediately before the n-th “00 first step write verify operation, the data of the data storage sections DS 1 , DS 2  and DS 3  are one of the combinations of 0/0/1, 0/1/1, 1/1/1, 0/0/0, 0/1/0 and 1/1/0. The combination of 0/0/0 indicates that the threshold value of the memory cells has not got to the “00” first step write verify voltage by the n−1-th write step. 
         [0150]    The combination of 0/1/0 indicates that the threshold value of the memory cells has got to the “00” first step write verify voltage but not to the “00” second step write verify voltage by the n−1-th write step. The combination of 1/1/0 indicates that the threshold value of the memory cells has got to the “00” second step write verify voltage. It is not possible that the threshold value of the memory cells has got to the “00” second step write verify voltage but not to the “00” first step write verify voltage by the n−1-th write step so that the combination of 1/0/0 does not exists in this embodiment. 
         [0151]    If the threshold value of the memory cells has not got to 2.2V which is the “00” first step write verify voltage by the n-th write step, the detection outcome of the “00” first step write verify operation is not satisfactory so that the data in the data storage sections DS 2  are not changed. If, on the other hand, the threshold value of the memory cells has got to 2.2V by the n-th writer step, the detection outcome of the “00” first step write verify operation is satisfactory so that the data in the data storage sections DS 2  are shifted to “1”s. The data storage sections DS 2  storing “1”s are made to keep on storing “1”s. The combinations of 0/0/1, 0/1/1 and 1/1/1 do not constitute any objects of the first step; very operation so that they are not changed. 
         [0152]    Table 7 shows the relationship between the data of the data storage sections DS 1 , DS 2  and DS 3  before and after the “00” second step write verify operation and the threshold value (Vt) of the corresponding memory cells of the write algorithm illustrated in  FIG. 13 . 
         [0000]    
       
         
               
               
             
               
               
               
             
               
               
               
               
             
           
               
                   
                 TABLE 7 
               
             
             
               
                   
                   
               
               
                   
                 DS1/DS2/DS3 data DS1/DS2/DS3 after 
               
               
                   
                 n-th “00” second step write verify 
               
               
                   
                 Memory cell threshold value Vt 
               
             
          
           
               
                   
                 When lower than 
                 When higher than 
               
               
                   
                 2.4 V 
                 2.4 V 
               
               
                   
                   
               
             
          
           
               
                 DS1/DS2/DS3 data 
                 0/0/1 
                 0/0/1 
                 — 
               
               
                 DS1/DS2/D3 before 
                 0/1/1 
                 0/1/1 
                 — 
               
               
                 n-th “00” second 
                 1/1/1 
                 1/1/1 
                 — 
               
               
                 step write verify 
                 0/0/0 
                 0/0/0 
                 — 
               
               
                   
                 0/1/0 
                 0/1/0 
                 0/1/0 
               
               
                   
                 1/1/0 
                 1/1/0 
                 1/1/0 
               
               
                   
               
             
          
         
       
     
         [0153]    Immediately before the n-th “00” second step write verify operation, the data of the data storage sections DS 1 , DS 2  and DS 3  are one of the combinations of 0/0/1, 0/1/1, 1/1/1, 0/0/0, 0/1/0 and 1/1/0. The combination of 0/0/0 indicates that the threshold value of the memory cells has not got to the “00” first step write verify voltage after the n-th write step. The combination of 0/1/0 indicates that the threshold value of the memory cells has got to the “00” first step write verify voltage by the n-th write step but not to the “00” second step write verify voltage by the n−1-th write step. The combination of 1/1/0 indicates that the threshold value of the memory cells has got to the “00” second step write verify voltage by the n−1-th write step. It is not possible that the threshold value of the memory cells has got to the “00 second step write verify voltage by the n−1-th write step but not to the “00 first step write verify voltage by the n-th write step so that the combination of 1/0/0 does not exists in this embodiment. 
         [0154]    If the threshold value of the memory cells has not got to 2.4V which is the “00” second step write verify voltage by the n-th write step, the detection outcome of the “00” second step write verify operation is not satisfactory so that the data in the data storage sections DS 1  are not changed. If, on the other hand, the threshold value of the memory cells has got to 2.4V, the detection outcome of the “00” second step write verify operation is satisfactory so that the data in the data storage sections DS 1  are shifted to “1”s. The data storage sections DS 1  storing “1”s are made to keep on storing “1”s. The combination of 0/0/0 will not be changed by the “00” second write verify operation. The combinations of 0/0/1, 0/1/1 and 1/1/1 do not constitute any objects of the first step; very operation so that they are not changed. 
         [0155]      FIG. 14  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention for controlling the order of writing data into the blocks. 
         [0156]    Firstly, the word line WL 0  is selected and lower order data are written into a page constituted by a plurality of memory cells connected to even-numbered bit lines. Secondly, lower order data are written into a page constituted by a plurality of memory cells connected to odd-numbered bit lines. Thirdly, higher order data are written into a page constituted by a plurality of memory cells connected to even-numbered bit lines. Finally, higher order data are written into a page constituted by a plurality of memory cells connected to odd-numbered bit lines. Then, data are written in a similar manner by sequentially using the remaining word lines WL 1 , WL 2 , WL 3 , . . . , observing the above sequence. 
         [0157]    With this arrangement, the interference of the floating gates of adjacent memory cells can be minimized. In other words, if a memory cell where a data is written subsequently shifts its state from “11” to “10”, from “11” to “01” or from “10” to “00”, a shift from “11” to “00” never takes place. The shift from “11” to “00” raises the threshold value of adjacent memory cells most. 
         [0158]      FIG. 15  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when reading the lower order page data stored in a memory cell. 
         [0159]    The control operation starts with receiving a read command from the host and placing the read command in the state machine  8  (S 1 ). Then, the operation proceeds to receiving an address data from the host and placing the address in the state machine  8  to select the page to be used for a read operation (S 2 ). As a result of the addressing, the operation of Steps S 3  through S 5  is automatically started by the state machine  8  in the inside. 
         [0160]    Firstly, a “01” read operation is started (S 3 ). A voltage of 1V is supplied to the word line WL for the “01” read operation. “1” is produced by the reading operation of the sense amplifier if the threshold value of the memory cell is lower than the “01” data, whereas “0” is produced if the threshold value of the memory cell is higher than “01” data. The outcome of the read operation is stored in the corresponding data storage section DS 3 . Thereafter, a “10” read operation is started (S 4 ). A voltage of 0V is supplied to the word line WL for the “10” read operation. “1” is produced by the reading operation of the sense amplifier if the threshold value of the memory cell is lower than the “10” data, whereas “0” is produced if the threshold value of the memory cell is higher than “10” data. The outcome of the read operation is stored in the corresponding data storage section DS 2 . Lastly, a “00” read operation is started (S 5 ). A voltage of 2V is supplied to the word line WL for the “00” read operation. “1” is produced by the reading operation of the sense amplifier if the threshold value of the memory cell is lower than the “00” data, whereas “0” is produced if the threshold value of the memory cell is higher than “00” data. The lower order page data is produced by a logical operation using the outcome of the “00” read operation and the data stored in the corresponding data storage sections DS 2  and DS 3  and stored in the corresponding data storage section DS 1 . The data stored in the data storage section DS 1  is output as lower order page data. 
         [0161]    For example, if the outcome of the operation of reading “01” stored in the data storage section DS 3  is “1” and that of the operation of reading “10” stored in the data storage section DS 2  is also “1”, “1” is produced by the logical operation using the lower order page data. If the outcome of the operation of reading “01” stored in the data storage section DS 3  is “1” and that of the operation of reading “10” stored in the data storage section DS 2  is “0”, “0” is produced by the logical operation using the lower order page data. If the outcome of the operation of reading “01” stored in the data storage section DS 3  is “0” and that of the operation of reading “00” is also “0”, “0” is produced by the logical operation using the lower order page data. The outcome of the operation of reading “01” stored in the data storage section DS 3  is “0” and that of the operation of reading “00” is “1”, “1” is produced by the logical operation using the lower order page data. 
         [0162]    In short, the logic circuit for carrying out such logical operations needs to be so arranged that the value of the DS 2  is stored in the data storage section DS 1  as lower order page data when DS 3  is “1” and the outcome of reading “01” is stored in the data storage section DS 1  as lower order page data when DS 3  is “0”. 
         [0163]      FIG. 16  is a flow chart schematically illustrating the control algorithm of the first embodiment of flash memory according to the invention when reading the higher order page data stored in a memory cell. 
         [0164]    The control operation starts with receiving a read command from the host and placing the read command in the state machine  8  (S 1 ). Then, the operation proceeds to receiving an address data from the host and placing the address in the state machine  8  to select the page to be used for a read operation (S 2 ). As a result of the addressing, the operation of Step S 3  is automatically started by the state machine  8  in the inside. 
         [0165]    Firstly, a “01” read operation is started in Step S 3 . The outcome of the reading operation shows upper order page data, which is stored in the corresponding data storage section DS 1 . In other words, the outcome of the operation of reading “01” is used as upper order page data. Then, the data in the data storage section DS 1  is externally output. 
         [0166]    In this way, with the multi-value flash memory of the first embodiment, it is now possible to suppress any undesired increase of write time and reduce the distribution width of a threshold value so as to improve the reliability of the device. 
         [0167]    Now, the second embodiment of the invention will be described below. 
         [0168]      FIG. 17A  is a graph illustrating the signal waveforms in a write step of the first embodiment of flash memory according to the invention as extracted from the signal waveform of  FIG. 11 . Note that the voltage of the bit lines BLe is made equal to 0.4V to carry out a second step write operation. In a write step of the first embodiment, the write operation is conducted while the voltage of the bit lines BL that is the write control voltage is typically held to 0.4V during all the period of applying a predetermined write voltage (e.g., 18.0V as shown in  FIG. 17A ) to the selected word line WL. 
         [0169]      FIG. 17B  is a graph illustrating the signal waveforms in a write step of the second embodiment of flash memory according to the invention. As shown in  FIG. 17B , the voltage of the bit lines BL that is the write control voltage is held to 0V for only a predetermined period Twr out of all the period of applying the write voltage Vpgm to the selected word line WL and subsequently brought to Vdd in order to inhibit any write operation thereafter. 
         [0170]    The predetermined period Twr for which the voltage of the bit lines BL is held to 0V is determined in such a way that the duration of the second step write operation is shorter that of the first step write operation. Then, the increment of the threshold value for the second step write operation can be made smaller than that of the threshold vale for the first step write operation as in the case of the first embodiment. 
         [0171]    Thus, with the second embodiment, the effective value of the write control voltage can be made substantially equal to that of the first embodiment where the voltage of the bit lines BL that is the write control voltage is held to a constant level during the entire write step to consequently bring about the advantages of the first embodiment. 
         [0172]    Now, the third embodiment of the invention will be described below. 
         [0173]      FIG. 18  is a graph illustrating the signal waveforms of different parts of the third embodiment of flash memory according to the invention when writing a data into a single memory cell. It will be appreciated that  FIG. 18  corresponds to the waveforms of  FIG. 11 . 
         [0174]    As described above by referring to  FIG. 11 , with the first embodiment, the voltage of the bit lines is reset to 0V after the end of a first step write verify operation even when it maintains the voltage level observed immediately after a charging operation and then the bit lines are electrically recharged for a second step write verify operation. 
         [0175]    On the other hand, with the third embodiment a write verify operation is conducted in a manner as described below. 
         [0176]    The bit lines BLe are electrically charged typically to 0.7V for a first step write verify operation. As the selected word line WL 2  gets to the first step write verify voltage, the bit lines BLe maintain the 0.7V if the threshold value of the memory cell has got to the first step write verify voltage. However, the voltage of the bit lines BLe falls toward 0V if the threshold value of the memory cell has not got to the first step write verify voltage. If the threshold value of the memory cell has got to the first step write verify voltage or not can be detected by observing the voltage of the bit lines BLe by means of a sense amplifier at timing of tfv 4  shown in  FIG. 18 . If the threshold value of the memory cell has got to the write verify voltage, the detecting operation is successfully completed. 
         [0177]    Thereafter, at timing of tfv 5  of tfv 3 , the voltage of the selected word line WL 2  is switched from the first step write verify voltage to the second step write verify voltage. For example, the voltage of the selected word line WL 2  may be raised from 0.2V to 0.4V as shown in  FIG. 18 . If the threshold value of the memory cell has got to the second step write verify voltage, the 0.7V of the bit lines BLe is maintained. If, on the other hand, the threshold value of the memory cell has not got to the second step write verify voltage, the voltage of the bit lines BLe falls toward 0V. If the threshold value of the memory cell has got to the second step write verify voltage or not can be checked by detecting the voltage of the bit lines BLe at the timing of tsv 4 . If the threshold value of the memory cell has got to the write verify voltage, the outcome of the detection is satisfactory. 
         [0178]    The third embodiment provides an advantage of eliminating the time necessary for charging the bit lines for a second step write verify operation and achieving a higher data writing rate in addition to the advantages of the first embodiment. It will be appreciated that the above description applies to a first or second step write verify operation with data “01” or data “00” by changing the write verify voltage. 
         [0179]    While the above embodiments are described in terms of storing a 2-bit data, or a 4-valued data, in a single memory cell, it will be appreciated that embodiments adapted to store a higher valued data in a single memory can easily be realized. 
         [0180]    Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.
A non-volatile semiconductor memory device includes an electrically data rewritable non-volatile semiconductor memory cell and a write circuit for writing data in the memory cell, the write circuit writing a data in the memory cells by supplying a write voltage Vpgm and a write control voltage VBL to the memory cell, continuing the writing of the data in the memory cell by changing the value of the write control voltage VBL in response to an advent of a first write state of the memory cell and inhibiting any operation of writing a data to the memory cell by further changing the value of the write control voltage VBL to Vdd in response to an advent of a second write state of the memory cell.