Abstract:
A hybrid method of programming a non-volatile memory cell to a final programmed state is described. The method described is a more robust protocol suitable for reliably programming selected memory cells while eliminating programming disturbs. The hybrid method comprises programming the non-volatile memory cell to a first state according to a first coarse programming mechanism, and programming the non-volatile memory cell according to a second different more precise programming mechanism thereby completing the programming of the non-volatile memory cell to the final programmed state. Additionally, the described method is particularly advantageous for programming multilevel chips.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to technology for programming memory devices. More particularly, the present invention relates to a hybrid approach to the programming of non-volatile memory devices, and particularly, flash memory devices. 
     BACKGROUND 
     Non-volatile semiconductor memory devices, and in particular flash memory devices, are becoming increasingly popular means of storage for small devices such as digital cameras, MP3 players, cellular telephones, personal digital assistants (PDAs), laptop computers, etc. Other forms of nonvolatile memory include EPROM (Electrically Programmable Read Only Memory) and EEPROM (Electrically Erasable and Programmable Read Only Memory. 
     Unlike standard MOS transistors, flash memory cell transistors contain a floating gate that is electrically isolated and located between a control gate and typically a p-type substrate. Programming of a memory cell results in raising the threshold value of the transistor to a positive value as a result of electrons being injected through the insulating dielectric layer into the floating gate. Conversely, erasing results in lowering the threshold value of the transistor to a negative value as a result of electrons being removed from the floating gate. In this manner, the threshold value of the memory cell indicates its corresponding logic state. Programming is generally accomplished by using one of three major mechanisms: Fowler-Nordheim (FN) tunneling, source side [hot-electron] injection (SSI) and channel, or substrate, hot-electron injection (CHEI or SHEI). 
     When programming a memory cell string, there are various disturb mechanisms that tend to result in unintentional programming or erase. This problem is of particular concern when trying to program one cell on a wordline without programming the other cells on the same wordline. Since the program voltage is applied to all of the cells on a wordline during the programming of a selected cell, there exists a possibility that unselected cells may become inadvertently programmed (or erased) as well. Furthermore, the higher electric fields resulting as devices are scaled down in size and the source and drain junctions become more abrupt can lead to disturbs such as drain junction breakdown resulting in Gate Induced Drain Leakage (GIDL) whereby electrons leak into the boosted channel, and in particular, into the drain junction. Additionally, high electric fields can also lead to unintentional programming of unselected cells through FN tunneling, SSI and CHEI. 
     Various techniques, such as self boosting, local self boosting (LSB), and erased area self boosting (EASB), have improved the inhibition of program disturb, but still suffer from their own problems and fail to prevent program disturb in all instances. For example, in EASB, if the voltage applied to unselected wordlines is too low, channel boosting can be insufficient to prevent program disturb. Conversely, if this voltage is too high, there will be unintentional programming of memory cells on unselected wordlines as a result of tunneling. The three aforementioned techniques (and others known but not described herein) also suffer from a disturb mechanism that depends on whether or not the source-side neighbor cell is programmed. For example, if the source-side neighboring cell is programmed, it will have a negative charge on the floating gate. Since the control gate of the source side neighbor is at 0V, a highly reverse biased junction is created under the gate. This can lead to the phenomenon of GIDL resulting in a reduced boost potential, which can eventually lead to program disturb (in this case erasure). Conversely, if the source-side neighbor is erased, its threshold voltage is likely negative and the transistor of the cell may not turn off. 
     It has been observed that wordline zero (WL 0 ) is particularly susceptible to certain program disturb mechanisms. This is a result of WL 0  being positioned adjacent to the source select gate (select gate source or SGS), which is typically held at 0V during many programming methods (such as FN Tunneling) by the SGS line. This has the effect of creating a high electric field across the source of the transistor on WL 0  which can cause program disturb 
     What is needed is a more robust programming protocol suitable for reliably programming selected memory cells, and in particular, those memory cells on wordline  0  (WL 0 ) most susceptible to programming disturbs. 
     SUMMARY 
     To achieve the foregoing and other objects of the invention, an improved method of programming a non-volatile memory cell to a final programmed state is described. The hybrid method described is a more robust protocol suitable for reliably programming selected memory cells while eliminating programming disturbs. 
     In one aspect of the invention, a hybrid method of programming a non-volatile memory cell to a final programmed state is described. The method comprises first programming the non-volatile memory cell to a first initial state according to a first initial programming mechanism. Subsequently, the non-volatile memory cell is programmed according to a second different programming mechanism thereby completing the programming of the non-volatile memory cell to the final programmed state. In described embodiments, the first mechanism is a coarse mechanism capable of moving the threshold voltage distributions by large amounts using only a few programming pulses, while the second mechanism is enabled to fine-tune the distributions to their final desired states. 
     In the described embodiments the non-volatile memory cell is one of a number of non-volatile memory cells arranged to form a non-volatile memory array suitable for storing data. The non-volatile memory array is arranged in a NAND-type memory array architecture having a number of wordlines and bitlines. Additionally, the described method is contemplated for use on a multilevel type memory array that when programmed stores data in the form of at least one lower page and at least one associated upper page. The described method is particularly advantageous for programming multilevel arrays where tighter more precisely positioned threshold voltage distributions are required. In a preferred embodiment of the present invention, the first programming mechanism is used to program the lower page of the multilevel array and the second programming mechanism is used to program the upper page. 
     In preferred embodiments, the first programming mechanism is based on Fowler-Nordheim (FN) Tunneling, while the second programming mechanism is based on source side injection (SSI). In other embodiments, second programming mechanisms based on gate induced drain leakage (GIDL) and/or substrate hot electron injection (SHEI) are contemplated for use. 
     It should be noted that the present invention is especially pertinent to memory cells being programmed on wordline zero (WL 0 ). In fact, in some embodiments, the hybrid method is only employed to program WL 0  because memory cells on WL 0  are the most susceptible to program disturb mechanisms and, additionally, show the most improvement when programmed with the hybrid method of the present invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention, together with further objects and advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings. 
         FIG. 1  illustrates an exemplary MOSFET having a floating gate. 
         FIG. 2  illustrates an exemplary non-volatile memory string. 
         FIG. 3  illustrates an exemplary non-volatile memory array. 
         FIG. 4   a  illustrates a plot of lower page threshold voltage states versus # of cells. 
         FIG. 4   b  illustrates a plot showing the splitting of the lower page states of  FIG. 4   a.    
         FIG. 4   c  illustrates a plot showing upper page states produced by splitting the lower page states of  FIG. 4   a.    
         FIG. 5  shows a flowchart illustrating a hybrid algorithm of programming a non-volatile memory cell in accordance with an embodiment of the present invention. 
         FIG. 6  shows a flowchart illustrating a first method of programming a non-volatile memory cell in accordance with an embodiment of the present invention. 
         FIG. 7  shows a flowchart illustrating a second method of programming a non-volatile memory cell in accordance with an embodiment of the present invention. 
         FIG. 8  illustrates the memory cell of  FIG. 1  under erase bias conditions in accordance with an embodiment of the present invention. 
         FIG. 9  illustrates a memory cell under FN tunneling programming bias conditions in accordance with an embodiment of the present invention. 
         FIG. 10  illustrates a memory cell under SSI programming bias conditions in accordance with an embodiment of the present invention. 
     
    
    
     In the drawings, like reference numerals designate like structural elements. Also, it should be understood that the depictions in the figures are not to scale. 
     DETAILED DESCRIPTION 
     In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some or all of these specific details. In the description below, a memory cell is programmed according to two distinct programming mechanisms. The objective is to use a first programming mechanism that is fast, although course in its precision, to program the memory cell to a first state. Subsequently, a second slower, but much more precise, mechanism is used to fine-tune the memory cell to a final programmed state. 
     With reference to  FIGS. 1 ,  2  and  3  an exemplary non-volatile memory storage array will be described. In the described embodiment, the non-volatile memory storage system is a flash memory chip having a NAND architecture, although the present invention is applicable to other forms of non-volatile memory including EPROM and EEPROM, and additionally to NOR architectures as well. In the described embodiment, the array consists of non-volatile memory storage elements that are p-type substrate floating gate MOSFETs.  FIG. 1  illustrates an exemplary floating gate MOSFET, such as that used in this architecture, having a substrate  102 , a source  104 , a drain  106 , a control gate  108 , a floating gate  110 , and a dielectric  112  surrounding the floating gate. 
     In NAND flash memory, a number of such transistors, also known hereafter as cells, memory cells or memory storage elements, are arranged in series. On either side of the series of memory cells is an additional transistor known as a select transistor, or gate. Collectively, the memory cells and two select gates are referred to as a NAND string. By way of illustration, the equivalent circuit of a 4-transistor NAND string is illustrated in  FIG. 2 . The four memory cells are labeled  206 ,  208 ,  210  and  212 . The first select gate  204 , referred to as the select gate drain (SGD), connects the NAND string to bitline  202 . The second select gate  214 , referred to as the select gate source (SGS), connects the NAND string to sourceline  216 . Select gates  204  and  214  are controlled by control gates  218  and  236 , respectively. An SGD line controls the control gate  218  for the select gate  204 , while an SGS line controls the control gate  236  for the select gate  214 . The four series transistors  206 - 212  each have both a control gate and a floating gate. For example, transistor  206  has a control gate  220  and a floating gate  222 ; transistor  208  has a control gate  224  and a floating gate  226 ; transistor  210  has a control gate  228  and a floating gate  230 ; and transistor  212  has a control gate  232  and a floating gate  234 . Control gates  220 ,  224 ,  228  and  232  are connected to wordlines WL 3 , WL 2 , WL 1  and WL 0 , respectively. It should be noted that although the example provided describes a NAND string that includes four memory cells, other numbers of cells may be arranged in series and are permissible as well. 
       FIG. 3  illustrates an example of a NAND string array showing three NAND strings  301 ,  302  and  303  of a memory array having many more NAND strings not shown. Like the string of  FIG. 2 , each of the NAND strings of  FIG. 3  includes two select gates and four memory cells. For example, NAND string  301  includes select gates  304  and  314  as well as memory cells  306 ,  308 ,  310  and  312 . Similarly, NAND string  302  includes select gates  316  and  326  as well as memory cells  318 ,  320 ,  322  and  324 . Finally, NAND string  303  includes select gates  328  and  338  as well as memory cells  330 ,  332 ,  334  and  336 . It should be noted that all control gates in a given row, or wordline, are connected. For example, WL 0  connects the control gates of memory cells  312 ,  324  and  336 . Each of the NAND strings are also connected to the same sourceline via select gates  314 ,  326  and  338 . The SGS line controls the source side select gates  314 ,  326 , and  338 , while the SGD line controls the select gates  304 ,  316  and  328 , which connect the NAND strings to their respective bitlines. 
     Such a memory array is also suitable for use in a multilevel chip (MLC). A MLC is a non-volatile memory chip capable of storing multiple bits of data at a single memory cell location. In physical construction, each memory cell of an MLC is generally no different than that used in a conventional non-volatile memory chip, the difference laying in the programming of each memory cell. As stated earlier, in a non-volatile memory cell, it is the level of the threshold voltage that distinguishes one logic state from another. By way of example, in a 4LC, each memory cell can be programmed into one of four possible threshold voltage levels. A first programming pass positions the threshold voltage of the cell into one of two states. Collectively, these states are referred to as a lower page. A second programming pass is then enabled to split one of the two aforementioned states by shifting the threshold voltage level to further program the cell. Collectively, these four possible secondary states are referred to as an upper page. Obviously, the threshold voltage levels in an MLC need to be more finely tuned than those in a standard memory chip, thereby rendering the multilevel chip more susceptible to programming disturbs. 
     By way of example, in the case of a 4-level chip (4LC) wherein a memory cell is designed to store two bits of data (arranged as a lower page and a corresponding upper page) by means of programming a threshold value into one of four possible states (00, 01, 10, 11), the disturb may be severe enough such that only two states (i.e., a single bit) may be stored because the upper page states overlap and/or cannot be reliably distinguished from the lower page, as can be appreciated through examining  FIG. 4  that illustrates three plots of threshold voltage distributions such as that may be observed in a 4LC. The lower page states  402  and  404  illustrated in  FIG. 4   a  correspond to the erased (logic 1) distribution and programmed (logic 0) distribution, respectively.  FIG. 4   b  illustrates a midway point in a second pass of programming in which midway distributions  406 ,  408 ,  410  and  412  are formed as the distributions  402  and  404  are being split into final programmed upper pages. The importance of having “tight” and properly positioned/spaced distributions of upper page states should be appreciated upon examination of  FIG. 4   b .  FIG. 4   c  illustrates the final (sufficiently distributed) upper page states E  414 , A  416 , B  418  and C  420  representing logic 11, 10, 01, and 00, respectively, produced by splitting and shifting the lower page states. 
     Referring to  FIG. 5 , a hybrid method of programming a non-volatile memory storage element is described that substantially reduces the likelihood of programming disturb events especially with regards to wordline zero. In the described embodiment, at step  502 , a selected block of memory cells is erased. In one example of an erase operation, the substrates of selected memory cells to be erased are raised to a large positive erase voltage (i.e. 16V) while the wordlines corresponding to the selected cells are simultaneously grounded and sources and bit-lines are floated.  FIG. 8  illustrates the erase operation, in which arrows  802  and  804  indicate electron flows of the electrons  806  stored in the floating gate  110 . 
     At step  504 , a first pattern of desired states for selected cells within a page of the block is loaded. The programming algorithm then proceeds to step  506 , where a first programming mechanism is used to program selected cells within the page. In a preferred embodiment, the programming operation is carried out using Fowler-Nordheim (FN) tunneling to initially program the selected memory cells. At step  508 , a second pattern of desired states is loaded. The programming operation of the memory cell is then completed by way of a second programming mechanism at step  510  that brings the selected memory cells to final programmed states. In a preferred embodiment, the second mechanism is based on using SSI to program the selected memory cells. In other embodiments, GIDL or CHEI (SHEI) mechanisms may be used as the second mechanism. The second mechanism may also involve a combination of SSI, GIDL and CHEI. 
     The reason for the choices of FN tunneling and SSI as the first and second mechanisms, respectively, is that, based upon characterization, it has been found that FN tunneling typically moves the Vt distributions ( FIGS. 4A-4C ) by large amounts, while SSI, under normal bias conditions, typically moves the Vt distributions by small amounts. The reason for the latter is that it is known that disturbs such as SSI, GIDL and/or CHEI tend to move the Vt distributions by a fixed amount because electron injection is limited by the amount of charge in the channel connected to the drain of the transistor. Hence, a single programming pulse can only move the Vt distribution by a limited amount based on this limited quantity of charge. Consequently, SSI is slower and requires many more pulses, but allows for finer control than FN tunneling. Hence, by using the coarse FN tunneling mechanism to bring the Vt distributions close to their desired states, and subsequently, fine tuning the Vt distributions to their final programmed states with multiple pulses using SSI, a substantial reduction in the likelihood of program disturbs can be realized than would otherwise be possible using only FN tunneling, for example. 
     As already described, such a hybrid approach is particularly useful in MLCs where multiple pages are programmed. While it is desired that the programming operation proceed as fast as possible, it is also desired that the Vt distributions be tight (narrow) such that a wider read margin (distance between the distributions) is obtained. Thus, a fast approach, such as FN tunneling, is employed first, while a slower approach with the ability to more finely tune, such as SSI, is subsequently employed. It should also be noted that if multiple effects such as SSI, GIDL or SHEI occur, these effects are cooperative. That is, SSI, GIDL, and SHEI all move the selected distributions in the same direction. Therefore, even in the presence of multiple effects, unanticipated disturb will not occur. At most, these effects would cause variations in the programming rate. Furthermore, since the unselected bitlines are at zero or low bias, GIDL, SSI and SHEI should not occur on unselected bitlines. However, there does exist a need to ensure that Vpgm and Vpass are low enough to prevent Vpass disturbances due to tunneling. 
     The first and second programming mechanisms may be applied in any combination. In a preferred embodiment, however, the first mechanism is used to program a lower page of the memory chip while the second mechanism is used to program an upper page. This embodiment is preferred on one hand because the upper and lower pages are programmed during separate programming passes regardless of the algorithm, and thus, this provides a natural break in which to switch methods, but furthermore, programming of the lower page doesn&#39;t generally require the fine-tuning of the Vt distributions that is required when programming an upper page of an MLC. 
     In some embodiments, only WL 0  is programmed using the hybrid method described herein. There are a few reasons for this, one of which is that it has been observed that WL 0  is the most susceptible to certain program disturbs. In the described embodiment, SSI is used to program the upper page of WL 0 . It is easier to employ the SSI mechanism on WL 0  than it is on the other wordlines because, for the case of WL 0 , the voltage required for SSI is fairly well known. The reason for this is that the SGS isn&#39;t programmed, and hence, it has a fairly fixed Vt. Examining other wordlines on the bitline, it is observed that the injector for the WL(n) gate becomes the WL(n−1) gate, and will have one of the plurality of possible threshold voltages described earlier. This makes the voltage required for SSI harder to find. For these reasons, the embodiments described herein focus on using the SSI mechanism for WL 0 , although SSI has been shown to work on other wordlines as well. 
       FIG. 6  shows a flowchart illustrating a method of programming using FN tunneling. First, the cell is subjected to a read operation  602 . During the read operation, the threshold voltage of the memory cell is verified. In step  604  it is then determined whether or not a first target verification voltage level, Vt 1 , is reached. If the threshold voltage of the memory cell is greater than Vt 1 , then the cell is locked-out in step  616 . If the threshold voltage is less than Vt 1 , then in step  606  a large positive bias, called a program voltage (i.e. 15V), is applied to the control gate of the selected memory cell by biasing the appropriate wordline (WL) while, in step  608 , the associated bitline (BL) is held low at approximately 0 V. Additionally, in step  610 , unselected bitlines are pre-charged to a high voltage, generally Vdd, while, in step  612 , unselected wordlines are held at a passing voltage, Vpass, and the SGS is held at 0V. Next, Vpgm and Vpass are incremented in step  614  and the process is repeated until the condition  604  is satisfied. It should be noted that other biasing schemes for programming with FN tunneling are well known in the art and are permitted as well. 
     The bias conditions described above for programming with FN tunneling are illustrated in  FIG. 9 , where a selected memory cell  904  on WL 0  is being programmed. Adjacent to the cell  904  are a select gate source  902  connected to an SGS line and a second memory cell  906  connected to WL 1 . The arrows  908  and  910  indicate the direction the electrons  912  are traveling.  FIG. 9  also clearly shows why WL 0  is particularly susceptible to program disturb. With a large Vpgm (i.e. as high as 25 V) being applied to the selected cell and the SGS line being grounded, a large electric field is created in the n+ region between the two transistors. These electrons may, in turn, be injected into the floating gate of the selected memory cell. In contrast, when programming other memory cells on other wordlines besides WL 0 , the regions between the transistors don&#39;t typically experience such high fields because the neighboring cells will typically not be grounded. 
       FIG. 7  shows a flowchart illustrating a method of programming using SSI. SSI is a method of programming whereby electrons are injected from the drain of one transistor into the gate above the source of an adjacent transistor. When programming with SSI, many of the bitline bias senses are reversed with respect to FN tunneling. In the described embodiment, the cell is first subjected to a read operation  702 . During the read operation, the threshold voltage of the memory cell is verified. In step  704  it is then determined whether or not a second target verification voltage level, Vt 2 , is reached. If the threshold voltage of the memory cell is greater than Vt 2 , the cell is locked-out in step  718 . If the threshold voltage is less than Vt 2 , then in step  706  a high positive program voltage, Vpgm, is applied to the control gate of the selected memory cell by biasing the appropriate wordline while, in step  708 , a high bias (4-5 V) is applied to the selected bitline. In step  710 , unselected wordlines are held at a passing voltage, Vpass, while, in step  712 , unselected bitlines are grounded. In step  714 , the SGS line is ramped from 0V until the threshold voltage of the select gate source is surpassed. It is around this threshold voltage that SSI begins. It should be noted that the SGS line is ramped so as to guarantee that the bias supplied to the SGS passes Vt. In this manner, the floating gate of the selected cell on WL 0  serves as a collector of electrons and the SGS serves as the injector. Next, Vpgm and Vpass are incremented in step  716  and the process is repeated until the condition  704  is satisfied. 
     The bias conditions described above for SSI programming are illustrated in  FIG. 10 , where a selected memory cell  1004  on WL 0  is being programmed. Adjacent to the cell  1004  are a select gate source  1002  connected to an SGS line and a second memory cell  1006  connected to WL 1 . The arrows  1008  and  1010  indicate the direction the electrons  1012  are traveling. When the source select gate is ramped through its Vt, a conducting channel of electrons is created between its source and drain. Since the unselected wordlines are held at a passing voltage, the bias applied to the selected bitline draws electrons from the select gate source into the source of the selected memory cell  1004 . The large Vpgm applied to the control gate of cell  1004  causes electrons in the source to be injected into the floating gate of the cell  1004 . 
     It should be noted that other biasing schemes for programming with SSI are well known in the art and are permitted as well. For example, there are boost-based schemes for boosting the channel voltage in a selected memory cell. In such schemes, the selected wordline is often biased to Vdd while unselected wordlines are biased with a voltage, Vboost, which is greater than Vpass. Such boosting schemes take advantage of the channel capacitance of unselected cells. Hence, the strength of boosting increases as the number of wordlines increases and scales down as the device geometries scale down. Alternatively, the much larger BL capacitance can be used to provide the boost. 
     It should be additionally noted that SSI is very efficient in generating hot electrons in the channel of the selected transistor receiving the electrons and also provides very high efficiency in collecting these channel hot electrons into the floating gate. SSI also requires significantly less current than other modes of programming, improves reliability and allows for re-programming using on-chip charge pumps. 
     Although only a few embodiments of the invention have been described in detail, it should be appreciated that the invention may be implemented in many other forms without departing from the spirit or scope of the invention. By way of example, the invention may be implemented as a device that includes computer code stored on a computer readable medium for using a first programming mechanism to program a non-volatile memory cell to a first programmed state, and computer code stored on a computer readable medium for using a second programming mechanism to program the non-volatile memory cell from the first programmed state to a final programmed state. Although specific features and conditions have been described, it should be appreciated that a wide variety of implementations, such as bias conditions and method combinations, may be modified and employed as well. In addition, although in physical construction the present invention is applied to a conventional non-volatile memory system without modification, it should be appreciated by one skilled in the art that the structure could be modified to enhance the effects of the present invention. Accordingly, the present embodiments are to be considered as illustrative and not restrictive and the invention is not to be limited to the details given herein, but may be modified within the scope of the appended claims.