1. Field
Embodiments of the present invention relate to a nonvolatile semiconductor memory device.
2. Description of the Related Art
A NAND flash memory is known as a nonvolatile semiconductor memory device that can be electrically rewritten with high data density. In the NAND flash memory, a few tens of memory cells form a NAND string by connecting adjacent memory cells in series sharing a source/drain diffusion layer. Both ends of the NAND string are connected to a bit line and a source line via a selection gate transistor, respectively. Such a configuration enables smaller unit cell area and a larger memory capacity as compared with a NOR flash memory.
A memory cell of the NAND flash memory has a floating gate (charge storage layer) formed on a semiconductor substrate via a tunnel insulation film and a control gate stacked on the floating gate (charge storage layer) via an inter-gate insulation film. Data are stored in a nonvolatile way corresponding to the electric charge of the floating gate. For example, a positively-charged floating gate (lacking electrons) has a low threshold voltage. Such a state is regarded as “1” data, and thus binary data are stored. So-called “multi-level cell” such as a four-level cell (2 bits/cell) and an eight-level cell (3 bits/cell) is also possible by further fractionating written (or “programmed”) threshold voltage distribution (Writing operations of the flash memory is often referred to as “programming” for historical reasons).
However, recent scaling of the NAND flash memory cell brings greater cell-to-cell interference and channel-to-floating-gate interference. These unfavorable effects make it difficult to precisely control threshold voltage distributions and read them without errors.
A nonvolatile semiconductor memory device according to embodiment comprises: a memory cell array configured to include more than one word lines and more than one memory strings, the memory strings having more than one memory cells connected in series, the memory cells being connected to the word lines; and a control unit configured to execute a read sequence to read data page-by-page including more than one memory cells connected to one word line, the control unit, during the read sequence on a first page, executing a read operation by applying a first read-pass voltage to a second word line and reading data in the first page, and executing a re-read operation by applying a second read-pass voltage different from the first read-pass voltage to the second word line and reading data in a first cell in a case where data read from a first cell group in the first page coincides with a specific first reference pattern, where a first word line refers to one of the word lines that the control unit tries to read, the second word line refers to one of the word lines adjacent to the first word line, the page refers to data stored in memory cells connected to a whole word line, the first page refers to the page stored in the first word line, the cell group refers to one or more memory cells continuously placed and connected to the same word line, and the first cell refers to a memory cell belonging to the cell group and under judgment for being re-read.
Hereafter, nonvolatile semiconductor memory devices according to embodiments will be described with reference to the drawings.
First, a general configuration of a nonvolatile semiconductor memory device according to a first embodiment will now be described. Note that in the ensuing description, a NAND flash memory is taken as an example.
The flash memory includes a NAND chip 10, a controller 11 configured to control the NAND chip 10, and a ROM fuse 12 configured to store various kinds of information required to access the NAND chip 10.
The NAND chip 10 includes a memory cell array 1. The memory cell array 1 includes more than one bit lines extending in a column direction, more than one word lines and source lines extending in a row direction. Memory cells are formed at all the intersection points between bit lines and word lines. The memory cell array 1 will be described in detail later.
Note that data reading and programming in the present embodiment are conducted page-by-page. Here, a “page” is a set of data that the control unit can read or program at the same time from or to the memory cell array 1, which is equivalent to one-word-line data, because the read or program operations are performed word line by word line. In a case where one memory cell stores multiple bits, a single word line can store multiple pages. In the present embodiment, however, as for the latter case, for example, in a case where two bits/cell are used, a page consisting of upper bits of each memory cell is referred to as an “upper page” and a page consisting of lower bits of each memory cell is referred to as a “lower page” for discrimination.
The NAND chip 10 includes a control unit configured to execute sequential operations of reading and programming. The control unit includes a row decoder/word line driver 2a, a column decoder 2b, a page buffer 3, a row address register 5a, a column address register 5b, a logic control circuit 6, a sequence control circuit 7, a voltage generation circuit 8, and an I/O buffer 9.
The row decoder/word line driver 2a drives a word line and a selected gate line which will be described later in the memory cell array 1. The page buffer 3 includes sense amplifier circuits and data holding circuits corresponding to one page. Read out data corresponding to one page retained by the page buffer 3 are column-selected subsequently by the column decoder 2b, and output to an external I/O terminal via the I/O buffer 9. Program data supplied from the I/O terminal is selected by the column decoder 2b, and loaded into the page buffer 3. Program data corresponding to one page is loaded into the page buffer 3. A row address signal and a column address signal are input via the I/O buffer 9, and are transferred to the row decoder 2a and the column decoder 2b, respectively. The row address register 5a retains an erased block address in a case of data erasing, and retains a page address in a case of data reading and programming. A head column address for loading program data before starting a program sequence, or a head column address for a read sequence is input to the column address register 5b. The column address register 5b retains the input column address until a write enable /WE or a read enable /RE is toggled under a predetermined condition.
The logic control circuit 6 controls command and address inputting and data inputting and outputting on the basis of controls signals such as a chip enable signal /CE, a command enable signal CLE, an address latch enable signal ALE, a write enable signal /WE, and a read enable signal /RE. A read operation and a program operation are conducted on the basis of a command. Upon receiving a command, the sequence control circuit 7 executes sequence control of a read, program or erase operation. A voltage generation circuit 8 is controlled by the sequence control circuit 7 to generate predetermined voltages required for various operations.
The controller 11 controls a read sequence and a program sequence under a condition suitable for a current program state of the NAND chip 10. Note that as for a part of the read sequence and the program sequence, it is also possible for the control unit in the NAND chip 10 to control.
The memory cell array 1 in the nonvolatile semiconductor memory device according to the present embodiment will now be described.
The memory cell array 1 includes N word lines WL<0> to <N−1>, selection gate lines SGL<0> and <1>, and a source line SL extending in the row direction, M bit lines BL<0> to <M−1> extending in the column direction, and M memory strings MS<0> to <M−1>. Each memory string MS includes N memory cells MC<0> to <N−1> connected in series and selection gate transistors SG<0> and <1> connected to both ends of them. Each memory cell MC is formed as a transistor consisting of a channel on a semiconductor substrate, a floating gate (charge storage layer) formed on a channel, and a control gate formed on the floating gate.
A source region of the selection gate transistor SG<0> is connected to the source line SL. A drain region of the selection gate transistor SG<1> is connected to one of the bit lines BL<0> to <M−1>. Control gates of the memory cells MC<0> to <N−1> are connected to the word lines WL<0> to <N−1>. Gates of the selection gate transistors SG<0> and <1> are connected to the selection gate line SGL<0> and <1>, respectively.
In the above-described configuration, M memory strings MS arranged in the row direction constitute one block BLK. The block BLK is a minimal unit of data erasing. The memory cell array 1 includes L blocks BLK<0> to <L−1> arranged in the column direction. The word line WL and the selection gate line SGL are driven by the row decoder 2a. Each bit line BL is connected to a sense amplifier circuit S/A in the page buffer 3.
A program sequence according to the present embodiment is described below.
Note that in the following description, a memory cell MC of 2 bits/cell is used as an example. However, all the embodiments are applicable to memory cells of 3, 4, or other bits/cell. The threshold voltage distributions of the memory cells MC are labeled as an ER level, an A level, a B level, and a C level in the level growing order, and 2-bit data of “11,” “01,” “00” or “10” are respectively assigned to each threshold voltage distribution as an example.
In the ensuing description, the following terms are used: A predetermined page that the control unit tries to read is referred to as “selected page” and other pages are referred to as “unselected pages.” Among the unselected pages, at least one of pages adjacent to the selected page is referred to as “adjacent page.” A predetermined memory cell that the control unit tries to access is referred to as “selected cell” and other memory cells are referred to as “unselected cells.” Among the unselected cells, at least one of memory cells belonging to the same page as the selected cell and adjacent to the selected cell is referred to as “adjacent cell.” A word line connected to the selected cell is referred to as “selected word line” and other word lines are referred to as “unselected word lines.” Among the unselected word lines, at least one word line adjacent to the selected word line is referred to as “adjacent word line.” A memory string to which the selected cell belongs is referred to as “selected string” and other memory strings are “unselected strings.” Among the unselected strings, at least one memory string adjacent to the selected string is referred to as “adjacent string.” A bit line connected to the selected string is referred to as “selected bit line” and other bit lines are referred to as “unselected bit lines.” Among the unselected bit lines, at least one bit line adjacent to the selected bit line is referred to as “adjacent bit line.”
First, an erasing step is executed at step S101. At this step, data in all memory cells MC in the block BLK are erased in the lump. As a result, threshold voltages Vth's of all memory cells MC in the block BLK shift to the lowest ER level.
Subsequently, at step S102, an L page program step is executed. In a case of 2 bits/cell, two page data are allocated on one word line. At the L page program step, low-order bits (or the first page) of allocated two-page data are programmed onto the selected word line as L page data. Each bit of the L page data is regarded as a low-order bit of each cell. If the low-order bit of the memory cell MC is “1,” the threshold voltage Vth of the memory cell MC is kept at the ER level. If the low-order bit of a memory cell MC is “0,” the threshold voltage Vth of the memory cell MC is shifted from the ER level to an LM level, which is an intermediate level between the A level and the B level.
Finally, at step S103, a U page program step is executed. At the U page program step, the second page of allocated two-page data is programmed as U page of the selected word line. Each bit of the U page data is regarded as an upper-order bit of each cell. If the threshold voltage Vth of the memory cell MC is the ER level while an upper bit to be programmed on the memory cell MC is “1,” the threshold voltage Vth of the memory cell MC is kept at the ER level. If the upper bit to be programmed on the memory cell MC is “0,” the threshold voltage Vth of the memory cell MC is shifted to the A level. On the other hand, in a case where the threshold voltage Vth of the memory cell MC is the LM level and an upper bit to be programmed on the memory cell MC is “0,” the threshold voltage Vth of the memory cell MC is shifted to the B level. In a case where the upper bit of the program data is “1,” the threshold voltage Vth of the memory cell MC is shifted to the C level.
Thus, the L page program step and the U page program step are executed to program 2-bit data into the memory cell MC. Typically a few tens of program loops are repeated for each program step. Each program loop mainly consists of a program operation and a verify-read operation. The program operation shifts the threshold voltage Vth of the memory cell MC, and a verify-read operation verifies whether the threshold voltage Vth of the memory cell MC has reached to a desired value.
During the program operation, the selection gate transistor SG<0> on the source line SL side is held to a non-conductive state, while the selection gate transistor SG<1> on the bit line BL side of the selected block is held to a conductive state or non-conductive state depending on whether the memory string MS is selected or unselected. If the threshold voltage Vth of a memory cell MC is to be shifted, the corresponding memory string MS connected to the memory cell MC is set to the selected state, that is, the selection gate SG<1> on the bit line BL side is held to the conductive state by applying a ground voltage Vss (0V) to the bit line (selected bit line) BL. As a result, the channel voltage of the selected string MS becomes Vch=Vss. If in this biased state the program voltage Vpgm (e.g., approximately ˜20 V) is applied to the selected word line WL and a program-pass voltage Vpps is applied to the unselected word lines WL, an intense electric field is generated between a floating gate and a channel of the selected cell MC, and electrons are injected into the floating gate of the selected cell MC by a tunnel current. As a result, the threshold voltage Vth of the selected cell MC shifts in the positive direction.
On the other hand, in a case where the threshold voltage Vth of a memory cell MC is not to be shifted, the corresponding memory string MS is set to an unselected (or inhibited) state, where the selection gate SG<1> on the bit line BL side is brought into the non-conductive state by applying the power supply voltage Vcc (e.g. typically 3.3 V) to the bit line BL. As a result, the channel of the selected string MS is subjected to preliminary charging. If in addition the program voltage Vpgm is applied to the selected word line WL and the program-pass voltage Vpps is applied to the unselected word lines WL, the channel voltage Vch of the selected string MS is boosted up to the inhibit voltage Vinh (e.g., approximately ˜5 V, where “˜” indicates a floating state) by the capacitive coupling between the control gate and the channel in the memory cell MC. As a result, injection of electrons into the floating gate of the unselected cell MC is prevented.
Before describing the read sequence according to the present embodiment, a comparative example of a traditional read sequence is described in the following part.
The read sequence includes a read operation.
When detecting the threshold voltage Vth (data) of the selected cell MC, the reference voltage Vcgr=Va, Vb, or Vc is applied to the selected word line WL, and the read-pass voltage Vrps (e.g., typically 6 V) is applied to the unselected word lines WL. The reference voltage Va, Vb, or Vc are set between the threshold voltage distributions, and the read-pass voltage Vrps is set to a higher value than the upper tail of the threshold voltage distribution of the highest level (the C level for 2 bit/cell memories). If the cell current does not flow through memory string MS under the applied reference voltage Vcgr=Vc, the threshold voltage Vth of the selected cell MC is found to be the C level. Conversely, if the cell current flows through the memory string MS, the threshold voltage Vth of the selected cell MC is found to be lower than the C level.
Note that the verify-read operation in the program sequence is the same as the read operation except that the verify-read voltage indicating a lower limit of threshold voltage distribution Vvrf=Va′, Vb′ and Vc′ is used instead of the reference voltage Vcgr.
In the above-described program sequence, however, the following problem occurs. The program sequence of the selected word line WL is always performed from lower voltages to higher voltages. Therefore, programming of lower level cells finishes earlier than higher level cells. In the case of 2 bit/cell memories, threshold voltages Vth of the A-level cells typically reach their verify-read voltage first, the B-level cells reach their verify-read voltage next, and finally the C-level cells reach their verify-read voltage. In other words, the C-level cells require more program loops than the A-level cells until they reach the threshold voltage of their own level. Note that the ER-level cells are not assumed to be programmed here. If some of the A-level cells MC are adjacent to the C-level cells on the selected word line, for example, the threshold voltages of the program-finished A-level cells gradually shift upward because of the continuing programming on the adjacent C-level cells and the inter-bit-line cell-to-cell interference. In the worst case, programming into the memory cells MC causes an error.
In the present embodiment, therefore, a read sequence is invented so that influence of such inter-bit-line cell-to-cell interference on the memory cell MC is cancelled posteriorly as described below.
In a case where data stored in more than one consecutive memory cells MC are found to coincide with a specific pattern (first reference pattern) by the above-described read operation according to the present embodiment, a re-read operation is executed on all of the memory cells MC or a part of them on the same word line. The re-read operation is performed with another read-pass voltage on the adjacent word line different from the read-pass voltage Vrps applied at the first read operation. Hereafter, a concrete example in the present embodiment will be described.
First, in
Subsequently, in
Note that the read-pass voltage applied to the adjacent word line WL<n+1> at the first read operation (Vrps1=5.8 V in
Effects of the read sequence in the present embodiment is as follows: Influence of the inter-bit-line cell-to-cell interference on the selected cell MC<m> is maximized when the threshold voltages Vth's in the cell group coincides with the pattern of the C level-ER level-C level. This is because the selected cell of the ER level is not programmed after the erase step whereas programming of the adjacent C-level cells MC<m−1> and <m+1> continues up to the U page program step, and in addition, the magnitude of the threshold voltage Vth shift of the adjacent cells MC<m−1> and <m+1> at the L page program step and the U page program step is greater than the case in which the adjacent cells are in other levels. Therefore, the threshold voltage Vth of the ER-level selected cell shifts to the A level more possibly when the adjacent cells are in the C level than other cases.
The present embodiment reduces the above-described unfavorable influence of the cell-to-cell interference. The threshold voltage of the selected cell MC<m> can be read seemingly low if the data pattern of the cell group coincides with the C level-Er or A level-C level. Even if the selected cell MC<m> is originally set to the ER level and read out as the A level at the first read operation, the read-out result can be corrected as the ER level by the re-read operation.
A modified operations of the present embodiment are also considered.
The above-mentioned effects are applicable for all the cases where the incremental step-up programming to the adjacent cell MC goes on for some program loops after completion of programming to the selected cell MC. This condition is satisfied for most cell groups when the program level of at least either adjacent cell MC is higher than the selected cell MC.
In both examples, programming to the selected cell MC<m> finishes earlier than at least one of the adjacent cells MC<m−1> and MC<m+1>, because the program level of at least one of the adjacent cells is higher than the selected cell MC<m>. Therefore, the incremental step-up programming to at least one of the adjacent cell goes on for several program loops after program completion of the selected cell MC<m>, and the selected cell MC<m> suffers inter-bit-line cell-to-cell interference from the adjacent cell MC<m−1> or MC<m+1>, which makes it possible to cancel the influence of the inter-bit-line cell-to-cell interference posteriorly by executing the re-read operation on the selected cell MC<m> and reading the threshold voltage Vth of the selected cell MC<m> seemingly low.
The present embodiment provides a way of poteriorly cancelling program errors by seemingly lowering threshold voltages of memory cells greatly influenced by the inter-bit-line cell-to-cell interference is great, as described heretofore. The margin between threshold voltage distributions can also be made large. As a result, it is possible to provide more reliable nonvolatile semiconductor memory devices.
The second embodiment is the read sequence according to the first embodiment applied to a read sequence known as DLA (Direct-Lookahead).
Before describing the second embodiment of the present invention, the conventional DLA has to be described as a premise for the second embodiment to be more comprehensive.
A read sequence on the selected page P<n> consists of three steps, that is, a pre-read operation, a first read operation, and a second read operation. The pre-read operation on the adjacent page P<n+1> is executed first.
Subsequently, in
Finally, as shown in
According to the read sequence of the DLA system, different read operations are executed based on whether the influence of the inter-word-line cell-to-cell interference is large or small as described heretofore. As a result, it is possible to posteriorly cancel the influence of the inter-word-line cell interference on the threshold voltages Vth's of the memory cells MC.
On the basis of the read sequence of the DLA system described above, a read sequence in the present embodiment is now described as follows.
The read sequence of the present embodiment also consists of three steps, that is, a pre-read operation, a read operation, and a re-read operation.
First, the pre-read operation on the adjacent page P<n+1> shown in
Subsequently, the read operation on the selected page P<n> is executed.
Finally, the re-read operation on the selected page P<n> is executed.
The read sequence in the present embodiment has the following effects:
It can be seen from
The present embodiment described heretofore obtains the effect of reduction of influence of inter-word-line cell-to-cell interference in the read sequence of the conventional DLA without loss of the effect of the first embodiment. As a result, it is possible to provide a nonvolatile semiconductor memory device with further high reliability than the first embodiment.
The foregoing embodiments are the nonvolatile semiconductor memory device that reads data by posteriorly cancels influence of inter-bit-line cell-to-cell interference caused during the program sequence. On the other hand, the third embodiment is a nonvolatile semiconductor memory device that suppresses influence of the channel-to-floating-gate interference during program sequence.
As described above, the program sequence in the nonvolatile semiconductor memory device is executed by repeating a program loop including the program operation and the verify-read operation.
The channel-to-floating-gate interference, which is caused between a channel and floating gate of a memory cell MC, occurs when programming of two adjacent memory cells MC in the same page complete by one program loop, that is, a memory cell finishes programming one program loop after or before its adjacent cell does.
In the following paragraphs, a program loop for the selected cell MC<m> and adjacent cells MC<m−1> and MC<m+1> is considered as an example to understand the channel-to-floating-gate interference of the program sequence in the nonvolatile semiconductor memory device.
In
If the threshold voltage of MC<m> has already reached slightly below the verify level at the program loop L<i>, the threshold voltage much exceeds the verify level at the program loop L<i+1> (over-programming), which results in broadening of the upper tail of the threshold voltage distribution.
This unfavorable phenomenon is called the channel-to-floating-gate interference.
The present embodiment provides a new program sequence to reduce influence of above-described problem.
In the program sequence in the present embodiment, more than one program pulses are generated with different voltages every program operation as shown in
In the program sequence shown in
In the program operation, either one of the program pulses Ppl and Pph is chosen for programming of the memory cell MC, and the channel of the memory cell is grounded during the chosen program pulse only. This choice is conducted based on whether continuous three programming data on a regarding cell and its both adjacent cells coincide with a pattern of inhibition-permission-inhibition (, which is defined as a “second reference pattern” hereafter). The channel-to-floating-gate interference on the regarding cell is the greatest for this case. If the programming pattern for the continuously placed three memory cells coincides with the second reference pattern, the lower program pulse Ppl is applied on the regarding cell (i.e. the center of the continuous three memory cells). If the programming pattern does not coincide with the second reference pattern, the higher program pulse Pph is applied on the regarding cell. In the example case shown in
First, the page buffer 3 receives program data for the page P<n> at step S301. Then program sequence of the page P<n> is started at step 302.
Subsequently, the index j for the program pulse Pp<j> is initialized at step S303. Note that Pp<1>=Ppl and Pp<2>=Pph in the case of the example shown in
Subsequently, at step S304, each set of continuously placed three memory cells is judged whether its programming pattern coincides with inhibition-permission-inhibition pattern. This judgment is performed for all sets of continuously placed three memory cells whose center is the memory cell MC<1>−MC<M−1> (i.e. MC<0>−MC<1>−MC<2>, MC<1>−MC<2>−MC<3>, and so on). If the regarding memory cell MC, which is the center of each set of continuously placed three memory cells, is judged as a target of programming by the program pulse Pp<j>, the regarding cell is added to a list of memory cells to be programmed at step S305. On the other hand, in a case where the memory cell MC is not judged as a target of programming by the program pulse Pp<j>, the programming operation proceeds to the step S306.
Subsequently, at step S306, the program pulse Pp<j> is applied to memory cells in the selected page P<n>. During the program pulse Pp<j>, channels CH is biased to Vch=Vss for memory cells MC targeted to be programmed at the step S305. On the other hand, the channels CH of memory cells MC targeted not to be programmed at the step S305 are self-boosted (Vch=Vinh).
Subsequently, at step S307, the index j is examined if it indicates the last program pulse Pp<j>. In a case where Pp<j> is not the last program pulse, the program sequence proceeds to step S308. In a case where Pp<j> is the last program pulse, the program sequence proceeds to step S309. The index j of the program pulse Pp is incremented at the step S308, and the program sequence goes back to the step S304.
Subsequently, a verify-read operation on the selected page P<n> is executed at step S309.
Subsequently, at step S310, the number of cells that have not passed the verify-read operation S309 is counted and determined if it is less than a predetermined number. In a case where the number of cells that do not pass the verify-read operation is less than the predetermined number, the program sequence proceeds to step S311, otherwise the program sequence proceeds to step S312.
Subsequently, at step 311, the voltage (Vpgm) of the program pulse Pp is stepped up. Then, the program sequence returns to the step S303.
Finally, at step S312, the program sequence for the page P<n> is finished. Subsequently, a program sequence similar to the steps S301 to S312 is executed on a page P<n+1>
Effects of the program sequence in the present embodiment are as follows:
It can be seen from
The present embodiment is summarized as follows: Magnitude of the channel-to-floating-gate interference is judged based on the program permission/inhibition pattern of continuously placed three memory cells, and the program pulse to be applied on the center of the three memory cells is chosen based on the magnitude of influence, as described heretofore. As a result, the channel-to-floating-gate interference can be reduced during the program sequence. According to the present embodiment, therefore, it is possible to provide a highly reliable nonvolatile semiconductor memory device.
In the third embodiment, the determination condition is that the program permission/inhibition pattern in a cell group coincides with the pattern of inhibition-permission-inhibition. This is because the pattern of inhibition-permission-inhibition is a pattern in which channel-to-floating-gate interference exerts the greatest influence on the selected cell. Besides this pattern, however, in a case where either one of cells adjacent to the selected cell is program inhibition, the channel-to-floating-gate interference exerts influence on the selected cell to some degree. In the fourth embodiment, therefore, a program sequence in which the determination condition is that at least one adjacent cell of the selected cell is program inhibition will be described.
Note that a voltage applied to the control gate during the program sequence in the present embodiment is the same as in the case of the third embodiment shown in
A selection method of a program pulse in the program sequence in the present embodiment will now be described.
In the program operation, either one of the program pulses Ppl and Pph is selected for the memory cell MC and the selected program pulse is applied to the memory cell MC. As for the selection of the program pulses Ppl and Pph, selection is conducted based on whether the program permission/inhibition pattern in a cell group A coincides with a pattern of permission/inhibition-permission-inhibition (third reference pattern), where the cell group A is a set of the selected cell and two adjacent cells. In a case where the program pattern coincides with this pattern, it is considered that the selected cell receives influence of the channel-to-floating-gate interference from at least one adjacent cell. Basically, in a case where the program permission/inhibition pattern in the cell group A coincides with the pattern of permission/inhibition-permission-inhibition, programming is conducted on the selected cell by using the low program pulse Ppl. Even in this case, however, in a case where the program is permitted for all memory cells MC in a cell group B, where the cell B is a set of at least three consecutive memory cells MC including the selected cell, programming is conducted by using the high program pulse Pph as exceptional processing. Even in this case, however, the program speed of the selected cell needs to be lowered, and consequently a bias voltage Vbias which is slightly higher than the ground voltage Vss (0 V) is applied to the channel voltage Vch of the selected cell.
Here, a case where the exceptional processing is not present will be considered. For example, in
On the other hand, in a case where the program permission/inhibition pattern in the cell group A does not coincide with the pattern of inhibition-permission-inhibition, the selected cell is programmed by using the high program pulse Pph.
A flow in the program sequence in the present embodiment will now be described.
First, at step S401, the page buffer 3 receives program data for the page P<n>. At step S402, a program sequence for the page P<n> is started.
Subsequently, at step S403, an index j in a program pulse Pp<j> is initialized. Note that in the case of the example shown in
Subsequently, at step S404, it is determined with respect to each of cell groups A having the memory cells MC<0> to <M−1> as selected cells whether a row of program permission/inhibition pattern of the cell group A coincides with the pattern of permission/inhibition-permission-inhibition. In the present embodiment, at least three consecutive memory cells MC including the selected cell is regarded as cell group B, and exceptional processing described with reference to
Subsequently, at step S406, a voltage on a bit line BL of the selected cell MC set to be a program target by the exceptional processing at step S404 is set. As a result, the channel of the selected cell MC is boosted up to Vch=Vbias.
Subsequently, at step S407, the program pulse Pp<j> is applied to memory cells MC in the page P<n>. At this time, at step S405, Vch=Vss is applied to a channel of a memory cell MC that has become a target of the program as a channel voltage, whereas Vch=Vinh is applied to a channel of a memory cell MC that has not become a target of the program as a channel voltage.
Subsequently, at step S408, it is determined whether the index j points to a final program Pp<j>. In a case where Pp<j> is not the final program pulse, the processing proceeds to step S409. In a case where Pp<j> is the final program pulse, the processing proceeds to step S410.
Subsequently, at step S409, the index j of the program pulse Pp is incremented. Then, the processing proceeds to step S404.
Subsequently, at step S410, a verify-read operation on the selected page P<n> is executed.
Subsequently, it is determined at step S411 whether all memory cells MC in the selected page P<n> have passed the verify-read operation at step S410. In a case where all memory cells MC have not passed the verify-read operation, the processing proceeds to step S412. In a case where all memory cells MC have passed the verify-read operation, the processing proceeds to step S413.
Subsequently, at step S412, height (Vpgm) of the program pulse Pp is stepped up. Then, the processing returns to step S403.
Finally, at step S413, the program sequence for the page P<n> is finished. Subsequently, a program sequence similar to steps S401 to S413 is executed on a page P<n+1>.
The program sequence in the present embodiment has been described heretofore.
Effects of the program sequence in the present embodiment will now be described.
It is appreciated from
According to the present embodiment, therefore, it is possible to provide a nonvolatile semiconductor memory device that is high in data reliability in the same way as the third embodiment as described heretofore.
Note that the present embodiment can be applied to the first and second embodiments.
In the fourth and fifth embodiments, greatness of influence of channel-to-floating-gate interference on a memory cell is judged based on the program permission/inhibition pattern of a cell group including the memory cell. And a program pulse is selected based on a result of the judgment. In the case of these embodiments, however, more than one program pulses are applied without fail in each program operation. Therefore, processing time becomes longer as compared with a program sequence in which the program operation is advanced with a single program pulse. In the present embodiment, therefore, a program sequence in which processing time of the program sequence is shortened without hampering effects of the fourth and fifth embodiments will be described.
In the present embodiment as well, more than one program pulses that differ in height every program operation are prepared in the same way as the fourth and fifth embodiments. As for a predetermined number of first program loops and a predetermined number of last program loops in the program sequence, however, programming is conducted on all memory cells MC needing the program by using a single program pulse Pph regardless of the program permission/inhibition pattern of the cell group. Specifically, nine program loops L<1> to L<9> are shown in
As for the predetermined number of first program loops, the possibility that the program of the memory cell MC will be completed is low. Therefore, the possibility that the program of the selected cell MC will be completed in a program loop subsequent to a program loop in which a program of an adjacent cell MC is completed is extremely low. On the other hand, as for the predetermined number of last program loops, programs of a large number of memory cells MC have already been completed. Therefore, the possibility that the program of the selected cell MC will be completed in a program loop subsequent to that in which the program for the adjacent cell MC has completed is also extremely low. Even if the program is advanced with a single program pulse in the same way as the comparative example as for the predetermined number of first program loops and the predetermined number of last program loops, therefore, nearly the same effects as those in the third and fourth embodiments can be obtained.
A flow in the program sequence in the present embodiment will now be described.
First, at step S501, the page buffer 3 receives program data for the page P<n>. At step S502, a program sequence for the page P<n> is started.
Subsequently, at step S503, an index i in a program pulse L<i> is initialized.
Subsequently, at step S504, it is determined whether the program loop L<i> belongs to a predetermined number of first program loops in the program sequence or belongs to a predetermined number of last program loops in the program sequence. In a case where the program loop L<i> belongs to a predetermined number of first program loops or a predetermined number of last program loops in the program sequence as a result of the determination, the processing proceeds to step S505. Otherwise, the processing proceeds to step S507.
Subsequently, at step S505, a program operation is executed by using a single program pulse Pp in the same way as the comparative example. Then, the processing proceeds to step S506.
Subsequently, at step S506, an index i in the program loop L<i> is incremented. Then, the processing returns to step S504.
Subsequently, at step S507, an index j in the program pulse Pp<j> is initialized. Note that in the case of the example shown in
Subsequently, at step S508, it is determined with respect to each of cell groups having the memory cells MC<0> to <M−1> as selected cells whether a row of program permission/inhibition pattern of the cell group coincides with the pattern of inhibition-permission-inhibition. In a case where the selected cell MC is a target of a program using a program pulse Pp<j> as a result of the determination, this selected cell MC is added as a target of the program at step S509. On the other hand, in a case where the selected cell MC is not a target of the program using the program pulse Pp<j>, the processing proceeds to step S510.
Subsequently, at step S510, the program pulse Pp<j> is applied to memory cells MC in the selected page P<n> and a program operation is executed.
Subsequently, at step S511, it is determined whether the index j points to a final program Pp<j>. In a case where Pp<j> is not the final program pulse, the processing proceeds to step S512. In a case where Pp<j> is the final program pulse, the processing proceeds to step S513.
Subsequently, at step S512, the index j of the program pulse Pp is incremented. Then, the processing proceeds to step S508.
Subsequently, at step S513, a verify-read operation on the page P<n> is executed.
Subsequently, it is determined at step S514 whether all memory cells MC in the page P<n> have passed the verify-read operation at step S513. In a case where all memory cells MC have not passed the verify-read operation, the processing proceeds to step S515. In a case where all memory cells MC have passed the verify-read operation, the processing proceeds to step S516.
Subsequently, at step S515, height (Vpgm) of the program pulse Pp is stepped up. Then, the processing returns to step S506.
Finally, at step S516, the program sequence for the page P<n> is finished. Subsequently, a program sequence similar to steps S501 to S516 is executed on a page P<n+1>.
The program sequence in the present embodiment has been described heretofore.
Effects of the program sequence in the present embodiment will now be described.
It is appreciated from
According to the present embodiment, it is possible to implement a program sequence in which influence of channel-to-floating-gate interference is reduced while suppressing the increase of processing time as described heretofore. According to the present embodiment, therefore, it is possible to provide a nonvolatile semiconductor memory device that is high in data reliability.
Note that the present embodiment can be applied to the first to fourth embodiments.
In the third to fifth embodiments, a nonvolatile semiconductor memory device executing a program sequence in which more than one program pulses are prepared and a program pulse is selected based on the program permission/inhibition pattern of a cell group has been described. In a sixth embodiment, a nonvolatile semiconductor memory device executing a program sequence in which a further larger number of program pulses are prepared and a program pulse is selected considering not only the program permission/inhibition pattern of the cell group but also program data of a memory cell will be described.
In the program sequence in the present embodiment, more than one program pulses selected based on the program permission/inhibition pattern of a cell group are prepared in the same way as the third to fifth embodiments. Furthermore, in the present embodiment, however, more than one sets each including the program pulses are prepared based on threshold voltages preset for the selected cell.
In the case of
Note that the difference between the program pulses Ppl1 and Ppl2 or the difference between the program pulses Pph1 and Pph2 becomes greater than the difference between the program pulses Ppl1 and Pph1 for setting the A level/B level or the difference between the program pulses Ppl2 and Pph2 for setting the C level. Therefore, program pulses for respective levels are prepared independently.
According to the present embodiment, it is possible to implement a program sequence that completes the program with fewer program loops as compared with the program sequence in the third to fifth embodiments, as described heretofore. As a result, it is possible to provide a nonvolatile semiconductor memory device that is short in processing time of the program sequence while obtaining effects similar to those in the third embodiment by adjusting the heights of program pulses and combining with the fifth embodiment.
Note that the present embodiment can be applied to the first to fifth embodiments.
Heretofore, several embodiments of the present invention have been described. However, these embodiments have been presented as examples, and it is not intended to restrict the scope of the invention. These new embodiments can be executed in various other forms. Without departing from the spirit of the invention, various omissions, replacements and changes can be made. These embodiments and their modifications are included in the scope or spirit of the invention, and included in the invention stated in claims and an equivalent scope thereof.
This application is based upon and claims the benefit of priority from the prior U.S. Provisional Application 61/952,434, filed on Mar. 13, 2014, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61952434 | Mar 2014 | US |