The present invention relates to an electrically rewritable non-volatile semiconductor memory device (EEPROM), such as a flash memory, etc, and write-in method thereof.
A NAND type non-volatile semiconductor memory device (see non-patent documents 1-4) is well known for those skilled in art, which comprises a plurality of memory cell transistors (or so-called memory cells below) connected to between bit lines and source lines forming a NAND string and realizes highly integrating.
For common NAND type non-volatile semiconductor memory devices, when erasing, high voltage, for example 20V, is applied to a semiconductor substrate thereof and no voltage, for example 0V is applied to a word line thereof. Following, electrons are removed form an electric charge storage layer formed by poly-silicon material and so on. The threshold voltage is lower than the erasing threshold value (for example −3V). In the other hand, when writing in (programming), no voltage, for example 0V is applied to a semiconductor substrate thereof and high voltage, for example 20V, is applied to a controlling gate thereof. Following, electrons are injected from the semiconductor substrate to the floating gate. The threshold value is higher than the write-in-threshold value (for example 1V). The memory cell to get these threshold values can determine the state by applying a readout voltage (for example 0V) between the write-in threshold value and the readout threshold value to the control gate and identifying if the current is flowing through the memory cell.
Within the non-volatile semiconductor memory device formed as above, when write-in to the memory cell, which is a write-in target, is proceeding by a programming action, electrical charges are injected into the floating gate of the memory cell transistor and the threshold voltage rises. Thus even though voltage, which is below the gate threshold voltage, is applied, there are no currents flowing through. The state after writing-in data “0” is then accomplished. Commonly, the threshold voltages on erasing state are not uniform. Therefore, If applying a determined write-in voltage for carrying out the programming action and verifying the threshold voltage so as to be higher than verify-level, the threshold voltages of the memory cell after writing-in will have distribution higher than verify-level.
In the case of the non-volatile semiconductor memory device of multi-valued memory cells, wherein the memory cells are set different threshold voltages to perform multi-values, if the threshold voltages have wide distribution, the interval between adjacent level values will become narrow so that faithful data saving will also become difficult. To solve this problem, patented document 5 discloses a non-volatile memory core circuit, which stores multi-values by setting plural and different threshold voltages to the memory cell, and a control circuit, which controls write-in to the memory core circuit. When programming the memory cell to one threshold voltage, the control circuit programs a memory cell to be set that threshold voltage and a memory cell to be set a threshold voltage higher than that threshold voltage to that threshold voltage. The control circuit begins to program from the lowest threshold voltage among the plural and different voltages in order.
Additionally, a non-volatile semiconductor memory device is proposed in patented document 6 to improve programming accuracy of the non-volatile semiconductor memory and decrease programming time as well. When programming data to the non-volatile memory cell the non-volatile semiconductor memory increases a programming voltage slowly and in the meantime applies the programming voltage to the memory cell many times. At this time, the increment of the programming voltage is set to be a first voltage before the threshold voltages of all of the memory cell to be written-in reach a initial value. After that, the increment of the programming voltage is set to be a second voltage before the threshold voltages reach a target value. Because of increasing the programming voltage without changing the increment, the threshold voltage of the memory cell can approach the target value with few programming pulses. However, by setting the increment of the programming voltage to be the second voltage after the threshold voltage passes through the initial value, the error to the target value of the threshold voltage can be limited within minimum range. As a result, the programming time of the memory cell can reduce.
Additionally, a non-volatile semiconductor memory device proposed in patented document 7 can appropriately set the initial value of the control gate voltage and the increment of the control gate voltage during the stage proceeds so as to make each state of the stage that write-in ends different, and can control the threshold voltage accurately. The non-volatile semiconductor memory device is provided with memory cell arrays and control circuits. In a write-in action, a voltage applying process and a verifying process are carried out repeatedly. The voltage applying process is setting the control gate voltage which is going to applied to the control gate of the memory cell of the write-in target and corresponds to each write-in state, so that the voltage difference between each write-in state of the control gate voltage becomes equal to the voltage difference between each write-in state of the threshold voltage, which is used to determine the each write-in state, and then applying the control gate voltage corresponding to the write-in state to the unwritten-in memory cell. The verifying process is determining if the threshold voltage of the memory cell is within the threshold voltage range of corresponding write-in state.
Patent document 1 JP H09-147582;
Patent document 2 JP 2000-285692;
Patent document 3 JP 2003-346485;
Patent document 4 JP 2001-028575;
Patent document 5 JP 2001-325796;
Patent document 6 JP 2003-173688; and
Patent document 7 JP 2007-193885.
In
Degradation of the memory cell directly affects the performance of write-in speed. If the memory cell degrades, more ISPP steps are needed so as to make the threshold voltage distribution of all of the memory cells to be programmed reach the preferred situation. Therefore, more time is needed to move the threshold voltage distribution.
Next, a predetermined programming start voltage Vstartdef (n+1) is set at step S7 and the programming start voltage Vstartdef (n+1) is set to be a programming voltage Vpgm (n+1) at step S8. A programming pulse having the programming voltage Vpgm (n+1) is applied at step S9 and whether programmed or not is verified at step S10. It is judged whether all of the memory cells have passed or not at step S11, and then the programming process finishes and the next predetermined process proceeds if yes or the programming process goes to step S12 if no. The programming voltage Vpgm (n+1) is added by the increment Vstep and set to be the programming voltage Vpgm (n+1) again at step S12 and then the programming process proceeds back to step S3.
Within the programming process of
The above flowchart shows an example of possibility of how the programming process fails when using ISPP method according to the prior art. If programming the state (00) needs more than 6 pulses, the required additional time due to programming the degraded cell can not recover and the storage becomes a fail.
That is, within the MLC type flash memory according to the prior art, programming algorithm is formed by successively combining the programming pulse and the verifying step. If a verifying process fails, a voltage higher than the previous pulse voltage is applied to the memory cell through the word line. Thus, the verifying step repeatedly proceeds until all memory cells to be programmed pass in the verifying process. The process is the so-called ISPP method.
Because of passing through an erasing or write-in cycle many times and dispersion of the process, many verifying processes change. If the number of times of the verifying process increases, the speed of the memory write-in will decline and finally deviate from the specification value.
The purpose of this invention is to provide a non-volatile semiconductor memory device and write-in method thereof, which solves the above problems and decrease the number of times of the verifying process for shortening the time to program.
The non-volatile semiconductor memory device concerning the first invention, comprising:
In the non-volatile semiconductor memory device, the programming pulse number at the moment the verifying process passes is a programming pulse number at the moment programming ends.
Herein, the control circuit determines the programming start voltage according to a difference between the programming pulse number at the moment programming ends and a predetermined definition value.
Further, in the non-volatile semiconductor memory device the programming pulse number at the moment the verifying process passes is a programming pulse number at the moment initial programming passes.
Herein, the control circuit determines the programming start voltage according to a difference between the programming pulse number at the moment initial programming passes and a predetermined definition value.
Moreover, in the non-volatile semiconductor memory device, the control circuit determines and sets the programming start voltage according to the programming pulse number at the moment programming ends and the programming pulse number at the moment initial programming passes.
A write-in method for a non-volatile semiconductor memory device concerning the second invention, wherein the non-volatile semiconductor memory device comprises:
Further, in the write-in method for a non-volatile semiconductor memory device, the programming pulse number at the moment the verifying process passes is a programming pulse number at the moment programming ends.
Herein, programming comprises determining the programming start voltage according to a difference between the programming pulse number at the moment programming ends and a predetermined definition value.
Further, in the write-in method for a non-volatile semiconductor memory device, the programming pulse number at the moment the verifying process passes is a programming pulse number at the moment initial programming passes.
Herein, programming comprises determining the programming start voltage according to a difference between the programming pulse number at the moment initial programming passes and a predetermined definition value.
Moreover, in the write-in method for a non-volatile semiconductor memory device, programming comprises determines and sets the programming start voltage according to the programming pulse number at the moment programming ends and the programming pulse number at the moment initial programming passes.
Therefore, according to the non-volatile semiconductor memory device and the write-in method thereof concerning the invention, when increasing the programming voltage from a predetermined programming start voltage by a predetermined voltage increment gradually and verifying it at the same time, the non-volatile semiconductor memory device determines and sets the programming start voltage for programming according to programming pulse number passing the verifying process in the preceding programming. Therefore, the yield rate of the memory array and the lifetime of the memory cell can increase by using dynamic adjusting of the programming voltage which is used in the programming action with dependence on the process number of verifying. By this device and method, for the cell which showing a feature “slower programming”, the programming voltage can dynamically increase only in the necessary case. Therefore, the number of times of the verifying process decreases and the time to program can be shortened.
The embodiments of the invention are described below with the drawings. The same element in each embodiment below is marked as the same symbol.
In
In the memory cell array 10 as shown in
The memory cell array 10 of
The input/output buffer 50 is used for input/output of data and output of address signals. That is, data is transmitted between the input/output terminal 51 and the page buffer 14 through the input/output buffer 50 and the data line 52. The address signals inputted from the input/output terminal 51 are stored in the address register 18 and sent to the row decoder 12 and the column decoder 15 for decoding. The control command is also inputted from the input/output terminal 51. The inputted command is stored in the command register 17 after decoded and herewith the control circuit 11 is controlled. Such as chip enable signals CEB, command latch enable signals CLE, address latch enable signals ALE, write-in enable signals WEB, readout enable signals REB, and so on, the external control signals are taken out by the action logic controller 19, and the inner control signals corresponding to an action mode are generated. The inner control signals are used to control data latching or transmitting on the input/output buffer 50. Following, the data is transmitted to the control circuit 11 for action controlling.
The page buffer 14 has two latch circuits 14a, 14b, the structure of which is capable of carrying out switching between multi-valued action function and cache function. That is, when one memory cell memorizes two value data of one bit, cache function is provided and when one memory cell memorizes four value data of two bits, cache function is provided and cache function is still effective even though limited by address. The detailed configuration for the page buffer 14A (corresponding to 2 bit lines) for implementing the function is shown in
In
In
The page buffer 14A of
The latch L1 is configured by parallel connection of clocked inverters 61, 62. The bit line 10 of the memory cell array 10 is coupled to a sense node N4 via the transmitting switch transistor 85, and the sense mode N4 is coupled to a data holding node N1 of the latch L1 via the transmitting switch transistor 83. The sense node N4 is provided with the pre-charging transistor 71. The node N1 is coupled to a temporally-memorizing node N3, which is used to temporally memorize the data of the node N1, via the transmitting switch transistor 74, 75. The node N4 is coupled to the pre-charging transistor 71, which is used to pre-charge a voltage V1 to the bit line. The node is coupled to the capacitor, which is used to maintain voltage levels thereof. The other terminal of the capacitor 70 is coupled to the ground.
The second latch L2 is configured by parallel connection of clocked inverters 63, 64 as well as the first latch L1. Two data nodes N5, N6 of the latch L2 are coupled the data line 52, which is coupled to the data input/output buffer 50, via the column gate transistors 81, 82, which are controlled by a column selecting signal CSL. The node N5 is coupled to the node N4 via the transmitting switch transistor 84.
In the case that data are written-in to the memory cell, the programming data is taken in the second latch L2 from the data line 52. The programming data must be at the latch L1 for starting the programming action, therefore the data held by the latch L2 are transmitted to the latch L1 subsequently. In the readout action, the readout data must be at the latch L2 for being outputted from the data input/output terminal 51, therefore the data readout by the latch L1 needs to be transmitted to the latch L2. Consequently, the configuration can make data be transmitted between the latch L1 and the latch L2 by conducting the transmitting transistors 83, 84. At this time, a latch circuit which is a destination is switched to on an inactive state and transmitting the data, and then the latch circuit which is a destination is switched back to on an active state holding the data.
In
In the flash EEPROM of the embodiment, the improved ISPP method which can reduce the number of verifying operations and decrease the time for programming is proposed.
In
Next, at step S23, the parameter Npact (n) is set to be the programming pulse number Npactlast which is a programming pulse number when write-in is just over. At step S7A, the programming start voltage Vstart(n+1) is determined and set according to the programming pulse number Npactlast. At step S8, the programming start voltage Vstartdef (n+1) is set to be a programming voltage Vpgm (n+1). Following, a programming pulse having the programming voltage Vpgm (n+1) is applied at step S9 and whether programmed or not is verified at step S10. It is judged whether all of the memory cells have passed or not at step S11, and then the programming process finishes and the next predetermined process proceeds if yes or the programming process goes to step S12 if no. The programming voltage Vpgm (n+1) is added by the increment Vstep and set to be the programming voltage Vpgm (n+1) again at step S12 and then the programming process proceeds back to step S3.
In
In the LSB programming operation of
Here auto-adjusting for the programming voltage can be applied to all situations. The previous detailed embodiment is easy to be practiced because that occurs during one MSB action (one user command). Another method for practicing auto-adjusting for the programming voltage is regularly storing the cycle number of verifying programming actions each distribution, and using this data to adjust the programming start voltage of each distribution. Auto-adjusting for the programming voltage can be applied to all threshold voltage distribution of the MLC type NAND flash memory in which a bit memory cell has 2 bits. That is, in this invention, when increasing the programming voltage from a predetermined programming start voltage by a predetermined voltage increment gradually and verifying it at the same time, the non-volatile semiconductor memory device determines and sets the programming start voltage for programming according to a programming pulse number at the moment the verifying process passes in the preceding programming (not limited to the programming just before this). For example, in the programming process 404, it is practicable determining and setting the above programming start voltage for programming according to the programming pulse number at the moment the verifying process passes in any of the programming processes 401-403.
As described above, programming for “slow” cells makes programming performance overly degraded because the cycle number of programming and verifying increases. To prevent this situation, auto-adjusting for the programming voltage is used. That is, in the case that the state (00) is programmed initially in the MLC distribution using Gray Code, the control circuit 11 stores the cycle number of programming and verifying. When the number exceeds a certain limitation, the programming start voltage for programming the state (10) should be increased. This mechanism is used to gradually reduce the cycle of programming and verifying for programming the state (10). Therefore, the entire programming time can be maintained in the case that programming of the state (00) requires a cycle number lower than a certain limitation.
For example, five typical pulses can be used for programming of the state (00) and the state (10). When programming of both states (00) and (10) requires five pulses, which are a maximum, for programming all cells under the fifth distribution which is wished, the programming performance will become worst (near the longest time allowed by the specification) (please refer to
Following, if the performance of the memory cell decreases due to durability or unevenness of the process, one more programming and verifying cycle is necessary for programming the state (00) (please refer to
On the other hand, in the case that the control circuit 11 allows six cycles of programming and verifying instead of five cycles which are a maximum, the possibility that programming of the state (00) passes is higher. Then the programming start voltage for programming the state (10) increases so that the cycle number of programming and verifying can reduce to, for example, 4. Therefore, the entire programming time doesn't exceed the specification and the programming pulse can pass at the last state (refer to
The write-in method according the embodiment shows that the yield rate of the memory array and the lifetime of the memory cell increases by using dynamic adjusting of the programming voltage which is used in the programming action with dependence on the process number of verifying. By this method, for the cell which showing a feature “slower programming”, the programming voltage can dynamically increase only in the necessary case.
Regarding the above embodiment, in the programming process proceeding for each word line, the programming start voltage Vstart (n+1) is determined and set according to the programming pulse Npactlast which is at the moment when programming ends (YES at the step S5 in
Many kinds of examples of the programming start voltage Vstart (n+1) according to the embodiment and the modified example are described below.
[chart1]
An example for the definition and value of each parameter
Verifying voltage on the nth state (setting value) Vpv (n)=0.5V;
Programming start voltage on the nth state (setting value) Vstartdef (n)=16.5V ;
Verifying voltage on the n+1th state (setting value) Vpv (n+1)=2.0V;
Programming start voltage on the n+1 th state (setting value) Vstartdef (n+1)=18.0V;
Voltage increment (setting value) Vstep=0.4V ;
Programming pulse number on the nth state (definition value at the moment programming ends) Npdeflast (n)=12;
Programming pulse number on the nth state (definition value at the moment initial programming passes) Npdeffirst (n)=3;
Programming pulse number on the nth state (actual value at the moment programming ends) Npactlast (n)=14;
Programming pulse number on the nth state (actual value at the moment initial programming passes) Npactfirst (n)=4;
(Annotation) an example of the states:
The first state=state (01), the second state=state (00).
The programming start voltage, in the case where each state has a definition value of the programming pulse number, is shown in the following formula.
Vstart(n+1)=Vstartdef(n+1)+[Npactlast(n)Npdeflast(n)−0.5]×Vstep [Formula 1]
An example with values of Embodiment 1 is shown in the next formula.
Vstart(n+1)=18+(14−12−0.5)×0.4=18.6 (V) [Formula 2]
In Embodiment 1, with regard to the page buffer 14 or the memory block of which the action speed is slightly slow, the programming voltage will be corrected. Correcting coefficient (−0.5) means it corresponds to a half of the programming pulse for preventing from over correcting.
The programming start voltage, which is figured from the programming pulse number directly, is shown in the following formula.
Vstart(n+1)=Vstart(n)+[Npactlast(n)−Npdeflast(n)−0.5]×Vstep+α×[Vpv(n+1)−Vpv(n)] [Formula 3]
α is a predetermined constant, for example, 1.4. An example with values of Embodiment 2 is shown in the next formula.
In
In the case that the programming start voltage is determined according to the programming pulse number at the moment initial programming passes, the programming start voltage, in the case that each state has a definition value of the programming pulse number, is shown in the following formula.
Vstart(n+1)=Vstartdef(n)+[Npactfirst(n)−Npdeffirst(n)−0.5]×Vstep [Formula 5]
An example with values of Embodiment 3 is shown in the next formula.
Vstart(n+1)=18+(5−3−0.5)×0.4=18.6 (V) [Formula 6]
In Embodiment 3, although the programming pulse number at the moment initial programming passes is used in place of the programming pulse number at the moment programming ends to determine the programming start voltage, the result which is the same as Embodiment 1 can be obtained.
In the case where the programming start voltage is determined according to the programming pulse number at the moment initial programming passes, the programming start voltage, which is figured from the programming pulse number directly, is shown in the following formula.
Vstart(n+1)=Vstart(n)+[Npactfirst(n)−Npdeffirst(n)−0.5]×Vstep+α×[Vpv(n+1)Vpv(n)] [Formula 7]
An example with values of Embodiment 4 is shown in the next formula.
In Embodiment 4, although the programming pulse number at the moment initial programming passes is used in place of the programming pulse number at the moment programming ends to determine the programming start voltage, the result which is the same as Embodiment 2 can be obtained.
In
Vstep(n+1)=[Npactlast(n)−Npactfirst(n)]/[Npdeflast(n)−Npdeffirst(n)]×Vstep(n) [Formula 9]
An example with values of Embodiment 5 is shown in the next formula.
Vstep(n+1)=(14−5)/(12−3)×0.4=0.4 [Formula 10]
Therefore, the value which is the same as the setting value Vstep can be obtained.
In the LSB programming operation of
In the MSB programming operation of
As shown above, the invention can be applied to a NAND flash memory in which each memory cell has 3 bits. Thus, the density can be increased without increasing the silicon area of the memory array. In this case, threshold voltage distribution of 8 states (111), (110), (100), (101), (001), (011), (001), and (000) exists. In the case that the threshold voltage distribution is changed from 4 values to 8 values (MSB programming), auto-adjusting for the programming voltage can be applied to each distribution with dependence on the previous programming number which is needed. In the case of the MLC type NAND flash memory with 3 bits, more distribution types exist so auto-adjusting for the programming voltage is significant to NAND memory design. That is, in this invention, when increasing the programming voltage from a predetermined programming start voltage by a predetermined voltage increment gradually and verifying it at the same time, the non-volatile semiconductor memory device determines and sets the programming start voltage for programming according to programming pulse number at the moment the verifying process passes in the preceding programming (not limited to the programming just before this). For example, in the programming process 511, it is practicable determining and setting the above programming start voltage for programming according to programming pulse number at the moment the verifying process passes in any of the programming processes 501-510.
In the above embodiment and modified example, the non-volatile memory device is provided with a non-volatile memory cell array, which stores multi-valued states by setting a plurality of different threshold voltages corresponding to a plurality of states to each memory cell; and a control circuit, which controls programming to the memory cell array. The feature of the control circuit is that when increasing the programming voltage from a predetermined programming start voltage by a predetermined voltage increment gradually and verifying it at the same time for programming the memory cell, the control circuit determines and sets the programming start voltage for programming according to a programming pulse number at the moment the verifying process passes in the preceding programming.
A NAND type flash EEPROM is described in the above embodiment, but the invention is not limited thereto and also can be broadly applied to the non-volatile semiconductor memory device which can write-in data to a floating gate of NOR type flash EEPROM and etc. In the above description, the example rewriting is accompanied by the programming speed becomes slow is described, but the speed also could become fast conversely according to the principle of write-in and erasing. The NAND type flash EEPROM is one having the above feature. In the case that the programming becomes fast, if one expects the above situation and doesn't decrease the programming start voltage in advance, the width of the Vth distribution will become wider than the setting one and cause the readout failure happen. Setting the programming start voltage low makes the programming time become longer, so the invention can be applied to shorten the time effectively. When the times of rewriting is few, in contrast to programming begins from a little higher programming start voltage Vstart, the invention is auto-sensing from the actual results that a level has been written and programming the next level from a corrected and a little higher programming start voltage Vstart.
In the above embodiment, it is described supposing the threshold voltage distribution of
As the above detailed description, according to the non-volatile semiconductor memory device and the write-in method thereof concerning the invention, when increasing the programming voltage from a predetermined programming start voltage by a predetermined voltage increment gradually and verifying it at the same time, the non-volatile semiconductor memory device determines and sets the programming start voltage for programming according to a programming pulse number at the moment the verifying process passes in the preceding programming. Therefore, the yield rate of the memory array and the lifetime of the memory cell can increase by using dynamic adjusting of the programming voltage which is used in the programming action with dependence on the process number of verifying. By this device and method, for the cell which showing a feature “slower programming”, the programming voltage can dynamically increase only in the necessary case. Therefore, the number of times of the verifying process decreases and the time to program can be shortened.
Number | Date | Country | Kind |
---|---|---|---|
JP2008-270937 | Oct 2008 | JP | national |