WO2013085676A1 - A non-volatile memory device and a method of programming such device - Google Patents

A non-volatile memory device and a method of programming such device Download PDF

Info

Publication number
WO2013085676A1
WO2013085676A1 PCT/US2012/064881 US2012064881W WO2013085676A1 WO 2013085676 A1 WO2013085676 A1 WO 2013085676A1 US 2012064881 W US2012064881 W US 2012064881W WO 2013085676 A1 WO2013085676 A1 WO 2013085676A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory cells
memory
unit
programming
indicator
Prior art date
Application number
PCT/US2012/064881
Other languages
French (fr)
Inventor
Hieu Van Tran
Hung Quoc Nguyen
Anh Ly
Thuan Vu
Original Assignee
Silicon Storage Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Storage Technology, Inc. filed Critical Silicon Storage Technology, Inc.
Priority to EP12855763.4A priority Critical patent/EP2788987A4/en
Priority to JP2014545913A priority patent/JP2015500546A/en
Priority to CN201280068501.2A priority patent/CN104081462B/en
Priority to KR1020147018843A priority patent/KR20140102733A/en
Priority to TW101143445A priority patent/TWI543156B/en
Publication of WO2013085676A1 publication Critical patent/WO2013085676A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2263Write conditionally, e.g. only if new data and old data differ
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Definitions

  • the present invention relates to a non-volatile memory device and a method of programming such a non-volatile memory device.
  • Non-volatile memory cells having a floating gate or a trapping charge layer for the storage of charges thereon are well known in the art.
  • FIG 1 there is shown a cross-sectional view of a non-volatile memory cell 10 (split gate source side injection hot electron programming cell) of the prior art.
  • the memory cell 10 comprises a single crystalline substrate 12, of a first conductivity type, such as P type. At or near a surface of the substrate 12 is a first region 14 of a second conductivity type, such as N type. Spaced apart from the first region 14 is a second region 16 also of the second conductivity type.
  • a word line 20, made of polysilicon is positioned over a first portion of the channel region 18.
  • the word line 20 is spaced apart from the channel region 18 by an insulating layer 22, such as silicon (di)oxide.
  • a floating gate 24 which is also made of polysilicon, and is positioned over another portion of the channel region 18.
  • the floating gate 24 is separated from the channel region 18 by another insulating layer 30, typically also of silicon (di)oxide.
  • a coupling gate 26, also made of polysilicon is positioned over the floating gate 24 and is insulated therefrom by another insulating layer 32.
  • an erase gate 28 On another side of the floating gate 24, and spaced apart therefrom, is an erase gate 28, also made of polysilicon.
  • the erase gate 28 is positioned over the second region 16 and is insulated therefrom.
  • the erase gate 28 is adjacent to and spaced apart from the coupling gate 26.
  • the erase gate 28 can have a slight overhang over the floating gate 24.
  • charge stored on the floating gate 24 controls the flow of current between the first region 14 and the second region 16. Where the floating gate 24 is negatively charged thereon, the memory cell is programmed. Where the floating gate 24 is positively charged thereon, the memory cell is erased.
  • the memory cell 10 is fully disclosed in USP 7,868,375 whose disclosure is incorporated herein in its entirety by reference. [0003]
  • the memoty cell 10 operates as follows.
  • a high positive voltage e.g. 8-1 IV
  • a negative voltage e.g., -6 to -8V or ground voltage can be applied to the coupling gate 26 and/or the word line 20.
  • Electrons are transferred from the floating gate 24 to the erase gate 28 by Fowler-Nordheim tunneling through the insulating layer between the floating gate 24 and the erase gate 28.
  • the floating gate 24 may be formed with a sharp tip facing the erase gate 28, thereby facilitating said tunneling of electrons.
  • the high positive voltage is supplied from a charge pump 52 (shown in Figure 2).
  • the charge pump 52 need not supply a large current (typically in nanoampere range).
  • the memory cell 10 can be programmed.
  • a first positive voltage e.g. I V to 2V
  • a second positive voltage e.g. 8V to 10V, also in the shape of a pulse, is applied to the coupling gate 26, to utilize high coupling ratio between coupling gate 26 and floating gate 24 to maximize the voltage coupling to the floating gate 24.
  • a third positive voltage e.g, 3V to 6V, also in the shape of a pulse, is applied to the erase gate 28, to utilize coupling ratio between erase gate 28 and floating gate 24 to maximize the voltage coupling to the floating gate 24.
  • a high voltage differential e.g, 4V to 7V, also in the shape of a pulse, is applied between the first region 14 and the second region 16, to provide generation of hot electrons in the channel 18.
  • a current typically in microamperes
  • a first positive voltage e.g., IV to 3V
  • a second positive voltage e.g., 0V to 4V
  • a third voltage e.g, 0V to 3V
  • a voltage differential e.g, 0.5V to 2V, is applied to the first region 14 and the second region 16. If the floating gate 24 were programmed, i.e.
  • the floating gate 24 stores electrons, then the second positive voltage applied to the coupling gate 26 and the third voltage applied to the erase gate 28 is not able to overcome the negative electrons stored on the floating gate 24 and the portion of the channel region 18 beneath the floating gate 24 remains non-conductive. Thus, no current or a negligibly small amount of current would flow between the first region 14 and the second region 16. However, if the floating gate 24 were not programmed, i.e. the floating gate 24 remains neutral or positively charged, then the second positive voltage applied to the coupling gate 26 and the third voltage applied to the erase gate 28 is able to cause the portion of the channel region 18 beneath the floating gate 24 to be conductive. Thus, a current would flow between the first region 14 and the second region 16.
  • memory cells 10 are typically formed in an array, having a pluralit of rows and columns of memory cells 10, on a semiconductor wafer.
  • FIG 2 there is shown a block level diagram of a memory device 50 of the prior art with an array 60 of memory cells 10.
  • Figure 3 is a more detailed diagram of the array 60 shown in Figure 2.
  • the array 60 comprises a plurality of subarrays 62 (a-d), with a plurality of memory cells, such as memory cells 10 arranged in a plurality of rows and columns.
  • a row decoder aka xdec, also wordline decoder
  • sense amplifiers 70a and 70b Associated with columns of memory cells 10 in each subarray, e.g. subarray 62a are sense amplifiers 70a and 70b.
  • a column (bitline) decoder (ymux, not shown ) is used to select (multiplex, decode) columns of memory cells into sense amplifiers. From the sense amplifiers 70, the signals are supplied to an output register 72.
  • each subarray 62 is multiplexed (i.e., decoded by a ymux, not shown) into two words with each word having 16 bits.
  • each row has 2048 memory cells
  • the first 1024 cells is multiplexed into a 1 st word ( to be programmed)
  • the second 1024 cells is multiplexed into a 2 nd word ( to be programmed).
  • a block or group of units such as a number of bytes (with 8 bits to a byte)
  • the erase operation places the plurality of bits into a state of "FF" (hex), or "1 1 11 1 1 1 1 ".
  • selected bits of a byte are programmed by injecting electrons onto the floating gate into the logical state of "0".
  • the charge pump 52 must be able to supply programming current as if all of the bits of a byte are to be programmed.
  • the charge pump 52 must be designed with the ability to supply programming current as if all the bits of the byte were to be programmed to the state of "00" (hex), or "00000000".
  • a number of bytes are programmed simultaneously. This adds further burden on the charge pump 52 to provide a large programming current. Since a charge pump 52 capable of providing a large current requires a large amount of real estate on the silicon die, a larger charge pump 52 takes up more silicon real estate. Thus, it is one objective of the present invention to reduce the size of the charge pump 52. [0008]
  • parity bits are well known in the art.
  • a parity bit is a bit associated with a plurality of bits (such as a byte) in which the parity bit is programmed to a state representing an error check on the data stored in the byte.
  • bits such as a byte
  • typically parity bits have been used with volatile memory cells, and have been used only for error correction.
  • the present invention is a non-volatile memory device that has a charge pump for providing a programming current.
  • the memory device has an arra of non-volatile memory cells, with each memory cell programmed by the programming current.
  • the array of nonvolatile memory cells is partitioned into a pluralit of units, with each unit comprising a plurality of memory cells.
  • An indicator memory cell is associated with each unit of non- volatile memory cells.
  • a programming circuit programs the memory cells of each unit using the programming current, when a certain percentage or less of the memory cells of each unit is to be programmed, and programs the inverse of the memory cells of each unit and the indicator memory cell associated with each unit, using the programming current, when more than the certain percentage of the memory cells of each unit is to be programmed.
  • the present invention is also a method of programming a non-volatile memory device which relies on a charge pump supplying a programming current during the programming operation.
  • Figure 1 is a cross-sectional view of a non-volatile memory cell of the prior art with a floating gate for the storage of charges thereon to which the programming method of the present invention is applicable, and which can be used in the memory device of the present invention.
  • Figure 2 is a block level diagram of a non-volatile memor device of the prior art including the charge pump that provides a programming current for use during the programming of the non-volatile memory cells.
  • Figure 3 is a detailed block level diagram of the array portion of the non-volatile memory device of the prior art shown in Figure 2.
  • Figure 4 is a detailed block level diagram of the array portion of one embodiment of the non-voiatile memory device of the present invention.
  • Figure 5 is a detailed block level diagram of the array portion of another embodiment of the non-volatile memory device of the present invention.
  • Figure 6 is a block level diagram of the programming circuit for use in the nonvolatile memory device of the present invention.
  • Figure 7 is a block level diagram of the read out circuit for use in the non-volatile memory device of the present invention.
  • Figure 8 is a datain ' ⁇ ' detect analog circuit for use in the non-volatile memory device of the present invention
  • Figure 9 is a flow diagram for datain ⁇ ' analog detecting for use in the nonvolatile memory device of the present invention
  • Figure 10 is a block diagram of datain ' ⁇ ' detect digital circuit for use in the nonvolatile memory device of the present invention
  • Figure 1 1 is a flow diagram for programming for use in the non-volatile memory device of the present invention
  • Figure 12 is an alternative flow diagram for programming for use in the non- volatile memory device of the present invention
  • Figure 13 is another alternative flow diagram for programming for use in the nonvolatile memor device of the present invention DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • FIG 4 there is shown a block level diagram of one embodiment of the non-volatile memory array 200 of the present invention.
  • the non-volatile memory array 200 can be used in the non-volatile memory device 50 shown in Figure 2 in place of the array 60. Since the memory array 200 of the present invention is similar to the memory array 60, same numerals will be used for like parts.
  • the array 200 comprises a plurality of subarrays 62 (a-d), with a plurality of memory cells, such as memory cells 10 arranged in a plurality of rows and columns.
  • each row decoder 64 Associated with each row of memory cells 10 spanning across the subarrays 62a, 62b, 62c and 62d is a row decoder 64. Associated with each column of memory cells 10 in each subarray, e.g. subarray 62a are sense amplifiers 70a and 70b. From the sense amplifiers 70, the signals are supplied to an output register 72. in the embodiment shown in Figure 4, each subarray 62 has multiple rows with each row having 2048 memory cells 10 , the first 1024 cells is multiplexed into a 1 st word (each word having 16 bits to be programmed) and the second 1024 cells is multiplexed into a 2 nd word ( to be programmed).
  • the array 200 further comprises an array 80 of memory cells (called indicator memory cells), which can be of the same type of memory cells as used in the subarrays 62(a- d), namely memory cells 10, each row of array 80 has multiple indicator memory cells.
  • the array 80 of memory cells is positioned between the subarray 62(d) and the row decoder 64, with one row of indicator memory cells 10 associated with each row of memory cells 10 in the subarrays 62(a-d).
  • the position of the indicator cell array 80 is immediately adjacent to the row decoder 64 to have the fastest access time from row decoding to lessen the impact of the overall speed due to logic associating with the indictor bit.
  • one indicator cell is associated with two selected words (32 selected memory cells 10) in each subarray 62.
  • one indicator memory cell 10 is associated with each selected unit of eight words (128 memory cells 10).
  • each indicator memory cell 10 may be associated with a unit of memory cells, with the unit of memory cells having any number.
  • a sense amplifier 82 is associated with the indicator memory cells 10 in the array 80.
  • each indicator bit (cell) consists of one (basic) memory cell 10.
  • each indicator bits consists of 2 or more (basic) memory cell 10, in this case sensing of the indicator cell would be faster to not impact overall speed due to checking and the inversion of the data out.
  • a unit of memory cells 10 with which the indicator memory cell 10 is associated is a byte or 8 bits. After the byte or 8 bits is erased, it is in the state of "FF" (hex) or a bit pattern of "1 11 11111 ". If the new data to be programmed into the byte is "00000000", then instead of supplying the programming current sufficient to change the state of 8 memory cells 10, the memory device 200 of the present invention instead merely programs the associated indicator memory cell 10 from "1" to "0" and keeps the state of the bits of the associated byte at "11 111 11 1". In this manner, only 1 bit is programmed, and programming current sufficient to program only 1 memory cell 10 needs to be provided by the charge pump 52.
  • a unit of memory cells 10 with which the indicator memory cell 10 is associated is a byte or 8 bits. After the byte or 8 bits is erased, it is in the state of "FF" (hex) or a bit pattern of "1 11 1 1 1 1 1”. If the new data to be programmed into the associated byte is "01010101", which is fifty percent of the bits in the associated unit, then the programming circuit causes the bit pattern of "01010101 " to be programmed into the bits of the associated byte. In this case, only 4 bits are programmed, and the total programming current required is for the programming of four bits.
  • the programming circuit causes the inverse bit pattern, or "1010101 1" to be programmed into the bits of the associated byte and causes the associated ind icator bit to be programmed into a state of "0".
  • the total programming current is again only 4 bits.
  • the data pattern to be stored is mostly ' 1 ' data (since if more than fifty percent ⁇ * data would be inverted into ' 1 ' data) .
  • Alternative embodiments needs not be exactly fifty percent but could be approximately fifty percent or any number of percentage. In case of less than fifty percent the chip operation is less optimal.
  • FIG. 5 there is shown a block level diagram of another embodiment of the non-volatile memory array 300 of the present invention.
  • the non-volatile memory array 300 is similar to the non-volatile memory array 200 shown in Figure 4 and can be used in the non-volatile memory device 50 shown in Figure 2 in place of the array 60. Since the memory array 300 of the present invention is similar to the memory array 200, same numerals will be used for like parts.
  • the array 300 comprises a plurality of subarrays 62 (a-d), with a plurality of memory cells, such as memory cells 10 arranged in a plurality of rows and columns.
  • each row decoder 64 Associated with each row of memory celts 10 spanning across the subarrays 62a, 62b, 62c and 62d is a row decoder 64. Associated with each column of memory cells 10 in each subarray, e.g. subarray 62a are sense amplifiers 70a and 70b. From the sense amplifiers 70, the signals are supplied to an output register 72. In the embodiment shown in Figure 5, each subarray 62 has multiple rows with each row having 2048 memory cells 10 , the first 1024 cells is multiplexed into a 1 st word (each word having 16 bits to be programmed) and the second 1024 cells is multiplexed into a 2 nd word ( to be programmed). An entire row of memory cells 10 in the array 60 thus comprising units of 128 memory cells 10 with each unit being multiplexed into eight words word0-word7 and coupled into the sense amplifier SA0-SA127 70.
  • the array 300 further comprises a plurality of arrays 80(a-d) of memory cells (called indicator memory cells), which can be of the same type of memory cells as used in the subarrays 62(a-d), namely memory cells 10.
  • Each array 80 of indicator memory cells is associated with a subarray 62 of memory cells and is positioned between the associated subarray 62 and the associated sense amplifiers 70, with one indicator memory cell 10 associated with associative columns of memory cells 10 in the subarray 62. Similar to the previous discussion regarding each indicator memory cell being associated with a row of memory cells, each indicator memory cell 10 need not be associated with one column of memory cells and may be associated with a unit of memory cells, with the unit of memory cells having any number.
  • a sense amplifier 82 Associated with each array 80 of indicator memory cells is a sense amplifier 82, whose output gates the output from the sense amplifiers 70 into the registers 72.
  • the circuit 210 comprises a digit counter circuit 246, an inverting circuit 204 and a multiplexer MUX 202.
  • the digit counter circuit 246 is used to count the number of logical bit '0' in the datain stream. If the number of logical bit '0' is more than a certain predetermined digit percentage, e.g. 50%, the data is inverted through the selection MUX 202 and the inverting circuit 204. Alternatively, a digit percentage may be employed, e.g, 33%, 66%, 51 .
  • the output of the MUX circuit 202 is the data to be stored into the memory cells 10.
  • the data out mux circuit 260 includes the indicator sense amplifier 82, the sense amplifier 70, an inverting circuit 264, and a multiplexing circuit MUX 262.
  • Input to the indicator sense amplifier 82 is the indicator memory cells from the array 80.
  • Input to the sense amplifier 70 is the memory cells 10 from the array 62.
  • the output of the sense amplifier 70 is fed through or inverted by the MUX 262 and the inverting circuit 264.
  • the output of the MUX 262 typically goes to a DOUT (Data Output) circuit 72 which is coupled to an IOBUF
  • the circuit 310 includes a plurality of enabling bias circuit 320, a PMOS transistor 316, a PMOS transistor 330, a current bias circuit 332.
  • the circuit 500 includes a a-bit Counter 510 and a detect logic Det-Logie circuit 520.
  • the a-bit counter provides the clocking pulses CKn and the detect logic 520 provides the digit '0' checking for Dn, the increment function for Cn, Dn ⁇ CKn, the checking for count Cn, the initialization, start, and done function.
  • the output DECTO 522 1 to indicate number of the ⁇ ' digits is more than 32 out of 64.
  • the circuit 500 operates sequentially on bit by bit at a time, for example for 64 datain bits, it operates on 64 clock pulses.
  • FIG. 1 1 there is shown a flow chart of programming algorithm 600 for efficient programming of ' ⁇ ' datain pattern.
  • there are 64 datain bits in Figure 4 and 5 there are 128 datain bits
  • 16 bits of '0' datain can only be programmed at a time (meaning the high voltage charge pump is design to supply for 16 bits at a time (to minimize charge pump area ) in programming, for example to program 32 bits would needs two programming pulses operating sequentially with each programming pulse programs 16 bits at a time ).
  • the algorithm will start from first datain and count number of '0' datain digit, once 16 '0' digits is reached, a program (write) operation is performed to program these 16 bits into appropriate memory cells 10, meaning changing memory cell storage state of these cells from erase state (' 1 ') to program state ( ⁇ '). After this programming is done, next is to count and identify the next 16 '0' datain digits to be programmed. The sequence continues until all 64 datain is accounted for programming operation. [0039] The program algorithm sequence works as following. After an erase operation to erase all selected memory cells, the algorithm 600 is used to program the datain into in the memory cells 10.
  • FIG. 12 there is shown a flow chart of another programming algorithm 600 for efficient programming of '0' datain pattern.
  • the '0' digit detection is operated on word (16 bits) basis.
  • the number of zeros of the selected words can be programmed (written) is 16 at a time in this embodiment.
  • Example shown is for four words in this embodiment.
  • This algorithm only program the necessary words with ' ⁇ ' digits, meaning changing memory cell storage state from erase state (' 1 ') to program state (' ⁇ ') ⁇
  • This method is less efficient than that in Figure 1 1 (which operates on bits instead of words) but requires simpler implementation.
  • step 702 which initializes any necessary parameters.
  • step 704 if check for number of '0' digit of 4 words W0-3 is ⁇ 1 (no cell memory cell needs to be programmed), if yes then goes to final step 777 done (meaning no programming operation needs to be done). If no then goes to step 706 to check for if number of '0' digits of 4 words W0-3 is ⁇ 16, if Yes then goes to step 708 to program all words (since number of bits to be programmed is less than 16 bits, which is the number of bits that can be programmed at the same time) and then goes to the final step 777 done.
  • step 706 If in step 706, if number of '0' digit of 4 words W0-3 ⁇ 16 is No, then goes to step 710 to check for number of '0' digit of 2 words W0,W1 ⁇ 1, if No then goes to step 712 to check number of '0' digit of 2 words W0,W1 is ⁇ 16, if Yes then program both words W0,W1 at same time then goes to step 720, if No then program W0 and program Wl individually (i.e., sequentially one word at a time) then goes to the step 720. If in the step 710, the answer is Yes then goes to the step 720.
  • step 720 now check for number of '0' digit of word W2,W3 ⁇ 1, if Yes then goes to the final step 777 done, if No then goes to step 722 to check for number of '0' digit of words W2 ⁇ W3 ⁇ 16. If yes then goes to step 724 to program both words W2, W3 at the same times, if No then goes step 726 to program word W2 ( W3 individually
  • FIG. 13 there is shown a flow chart of another programming algorithm 600 for efficient programming of '0' datain pattern.
  • the '0' digit detection is operated on word ( 16 bits) basis.
  • the number of zero s of the selected words can be programmed (written) is 16 at a time in this embodiment.
  • Example shown is for four words in this embodiment.
  • This algorithm only program the necessary words with '0' digits. This method is more efficient than that in Figure 12 but requires more complex implementation for more exhaustive word combination check.
  • step 802 start to initialize any necessary parameters.
  • step 804 which check for number of '0' digit in datain of 4 words W0-3 ⁇ 16. If Yes then goes to step 806 to program all words at same time and then goes to final step 888 done. If no then goes to step 810 to check for number of '0' digit for words W0, Wl ⁇ 1 . If Yes then goes to step 812 to program both words W0, W 1 at same times. After step 812 goes to step 814 to check for number of '0' digit of words W2, W3 ⁇ 16. If yes the goes to step 816 to program both words W2, W3 at the same times and then goes to the final step 888 done.
  • step 814 If at step 814 the answer is No then goes to step 818 to program W2 and program W3 individually (sequentially) then goes to the final step 888 done.
  • steps 820-828, steps 830-838 , steps 840-848 , steps 850-858, steps 860-868 for the exhaustive combinations of rest of the 4 words is similar to step 810-818.
  • the Step 870 program each word W0, Wl, W2, W3 individually and then goes to the final step 888 done.
  • An array architecture for the above four word datain ( 64 datain bits) in Figure 12 and 13 is one that is similar to the array 200 or array 300 in Figure 4 and 5 respectively that consists of sub-arrays 62a and 62 b only (no subarrays 62c or 62d).
  • the memory array that consists of plurality of subarrays (62a-d)
  • a selected (enabled) word or words that are to be programmed th subarrays that associates with these words are enabled (programming biases, programming high voltage, and circuit is enabled to come into the array memory cells 10) and the sub-arrays that associated with the unselected (disabled) words are disabled (programming biases, programming high voltage, and circuit is disabled from coming into the array memory cells 10) to minimize any programming high voltage and biases from disturbing on the unselected subarrays.
  • the indicator bit and operational algorithms is associated with the programming data pattern.
  • the datain ⁇ is associated with programmed state.
  • Data ⁇ ' can be associated with programmed state by inverting the datain and inverting the data out.
  • Alternative embodiment has indicator bit and operational algorithms associated with erase data pattern for technology that can be optimized for erasing operation.
  • Another embodiment has indicator bit and operational algorithms associated with data pattern for technology that can be optimized for endurance (number of erase/program cycles for operating lifetime ) and data retention (ability to hold data permanently for operating lifetime, e.g., 10 years) , for example endurance and data retention preferring ' 1 ' state for best endurance and data retention performance then data pattern to be stored in memory would be more data in T state after being processed by operational algorithm.
  • Another embodiment has indicator bit and operational algorithms associated with data pattern for technology that can be optimized for disturb (meaning less changing in data state of unselected cells in erase or programming operation) in that certain data pattern is less prone to disturb.
  • Another embodiment has indicator bit and operational algorithms associated with data pattern for technology and/or design that can be optimized for overall optimal bit error rate (BER) (meaning less changing in data state of memory cells in erase or programming or read operation).
  • BER bit error rate
  • Another embodiment has indicator bit and operational algorithms associated with data pattern for technology that is to be optimized for read power consumption (such as data pattern to be stored in memory would be more data '0' state after being processed by the algorithm for the memory cell 10, since in '0' state there is no memory cell current, meaning no power consumption from memory cell 10).
  • Another embodiment has indicator bit and operational algorithms associated with data pattern for technology and design that is to be optimized for overall power consumption of all operational modes (e.g, read, program, erase) according to a power profile depending on user usage.
  • the present invention can be applied to any non-volatile memory device which requires a charge pump to supply a programming current.
  • the present invention can be applied to a non-volatile memory device with a floating gate for storage charges, with a charge pump to store charges on the floating gate during programming, and is not limited to the type of memory cell 10 shown in Figure 1.
  • the present invention can also be applied to a memory device with a trapping charge layer for storing charges with a charge pump to store charges in the trapping charge layer during programming.

Landscapes

  • Read Only Memory (AREA)

Abstract

A non-volatile memory device has a charge pump for providing a programming current and aft array of non-volatile memory cells. Each memory cell of the array is programmed by the programming current from the charge pump. The array of non-volatile memory cells is partitioned into a plurality of units, with each unit comprising a plurality of memory cells. An indicator memory cell is associated with each unit of non-volatile memory cells. A programming circuit programs the memory cells of each unit using the programming current, when fifty percent or less of the memory cells of each unit is to be programmed, and programs the inverse of the memory cells of each unit and the indicator memory cell associated with each unit, using the programming current, when more than fifty percent of the memory cells of each unit is to be programmed.

Description

A NON- VOLATILE MEMORY DEVICE AND A METHOD OF PROGRAMMING
SUCH DEVICE
TECHNICAL FIELD
[0001] The present invention relates to a non-volatile memory device and a method of programming such a non-volatile memory device.
BACKGROUND OF THE INVENTION
[0002] Non-volatile memory cells having a floating gate or a trapping charge layer for the storage of charges thereon are well known in the art. Referring to Figure 1 there is shown a cross-sectional view of a non-volatile memory cell 10 (split gate source side injection hot electron programming cell) of the prior art. The memory cell 10 comprises a single crystalline substrate 12, of a first conductivity type, such as P type. At or near a surface of the substrate 12 is a first region 14 of a second conductivity type, such as N type. Spaced apart from the first region 14 is a second region 16 also of the second conductivity type.
Between the first region 14 and the second region 16 is a channel region 18. A word line 20, made of polysilicon is positioned over a first portion of the channel region 18. The word line 20 is spaced apart from the channel region 18 by an insulating layer 22, such as silicon (di)oxide. Immediately adjacent to and spaced apart from the word line 20 is a floating gate 24, Which is also made of polysilicon, and is positioned over another portion of the channel region 18. The floating gate 24 is separated from the channel region 18 by another insulating layer 30, typically also of silicon (di)oxide. A coupling gate 26, also made of polysilicon is positioned over the floating gate 24 and is insulated therefrom by another insulating layer 32. On another side of the floating gate 24, and spaced apart therefrom, is an erase gate 28, also made of polysilicon. The erase gate 28 is positioned over the second region 16 and is insulated therefrom. The erase gate 28 is adjacent to and spaced apart from the coupling gate 26. The erase gate 28 can have a slight overhang over the floating gate 24. In the operation of the memory cell 10, charge stored on the floating gate 24 controls the flow of current between the first region 14 and the second region 16. Where the floating gate 24 is negatively charged thereon, the memory cell is programmed. Where the floating gate 24 is positively charged thereon, the memory cell is erased. The memory cell 10 is fully disclosed in USP 7,868,375 whose disclosure is incorporated herein in its entirety by reference. [0003] The memoty cell 10 operates as follows. During the erase operation, when electrons are removed from the floating gate 24, a high positive voltage, e.g. 8-1 IV, is applied to the erase gate 28. A negative voltage, e.g., -6 to -8V or ground voltage can be applied to the coupling gate 26 and/or the word line 20. Electrons are transferred from the floating gate 24 to the erase gate 28 by Fowler-Nordheim tunneling through the insulating layer between the floating gate 24 and the erase gate 28. In particular, the floating gate 24 may be formed with a sharp tip facing the erase gate 28, thereby facilitating said tunneling of electrons. During the erase operation, the high positive voltage is supplied from a charge pump 52 (shown in Figure 2). Typically, because the erase operation involves only the removal of electrons from the floating gate 24, the charge pump 52 need not supply a large current (typically in nanoampere range).
[0004] Thereafter, the memory cell 10 can be programmed. During the programming operation, when electrons are injected to the floating gate 24 through hot-electron injection with the portion of the channel 18 under the floating gate 24 in inversion, a first positive voltage, e.g. I V to 2V, in the shape of a pulse is applied to the word line 20 causing the portion of the channel region 18 under the word line 20 to be conductive. A second positive voltage, e.g, 8V to 10V, also in the shape of a pulse, is applied to the coupling gate 26, to utilize high coupling ratio between coupling gate 26 and floating gate 24 to maximize the voltage coupling to the floating gate 24. A third positive voltage, e.g, 3V to 6V, also in the shape of a pulse, is applied to the erase gate 28, to utilize coupling ratio between erase gate 28 and floating gate 24 to maximize the voltage coupling to the floating gate 24. A high voltage differential, e.g, 4V to 7V, also in the shape of a pulse, is applied between the first region 14 and the second region 16, to provide generation of hot electrons in the channel 18. Thus, during the programming operation a current (typically in microamperes) flows between the first region 14 and the second region 16 which must be supplied from the charge pump 52.
[0005] During the read operation, a first positive voltage, e.g., IV to 3V, is applied to the word line 20 to turn on the portion of the channel region 18 beneath the word line 20. A second positive voltage, e.g, 0V to 4V, is applied to the coupling gate 26. A third voltage , e.g, 0V to 3V, is applied to the erase gate 28. A voltage differential, e.g, 0.5V to 2V, is applied to the first region 14 and the second region 16. If the floating gate 24 were programmed, i.e. the floating gate 24 stores electrons, then the second positive voltage applied to the coupling gate 26 and the third voltage applied to the erase gate 28 is not able to overcome the negative electrons stored on the floating gate 24 and the portion of the channel region 18 beneath the floating gate 24 remains non-conductive. Thus, no current or a negligibly small amount of current would flow between the first region 14 and the second region 16. However, if the floating gate 24 were not programmed, i.e. the floating gate 24 remains neutral or positively charged, then the second positive voltage applied to the coupling gate 26 and the third voltage applied to the erase gate 28 is able to cause the portion of the channel region 18 beneath the floating gate 24 to be conductive. Thus, a current would flow between the first region 14 and the second region 16.
[0006] As is well known, memory cells 10 are typically formed in an array, having a pluralit of rows and columns of memory cells 10, on a semiconductor wafer. Referring to Figure 2 there is shown a block level diagram of a memory device 50 of the prior art with an array 60 of memory cells 10. Figure 3 is a more detailed diagram of the array 60 shown in Figure 2. The array 60 comprises a plurality of subarrays 62 (a-d), with a plurality of memory cells, such as memory cells 10 arranged in a plurality of rows and columns.
Associated with each row of memory cells 10 spanning across the subarrays 62a, 62b, 62c and 62d is a row decoder (aka xdec, also wordline decoder) 64. Associated with columns of memory cells 10 in each subarray, e.g. subarray 62a are sense amplifiers 70a and 70b. A column (bitline) decoder (ymux, not shown ) is used to select (multiplex, decode) columns of memory cells into sense amplifiers. From the sense amplifiers 70, the signals are supplied to an output register 72. In the embodiment shown in Figure 3, each subarray 62 is multiplexed (i.e., decoded by a ymux, not shown) into two words with each word having 16 bits. In one embodiment in the subarray array 62, each row has 2048 memory cells, the first 1024 cells is multiplexed into a 1st word ( to be programmed) and the second 1024 cells is multiplexed into a 2nd word ( to be programmed). [0007] During erase, a block or group of units (such as a number of bytes (with 8 bits to a byte)) of memory cells are erased at once. The erase operation places the plurality of bits into a state of "FF" (hex), or "1 1 11 1 1 1 1 ". During programming, selected bits of a byte are programmed by injecting electrons onto the floating gate into the logical state of "0".
However, the charge pump 52 must be able to supply programming current as if all of the bits of a byte are to be programmed. Thus, the charge pump 52 must be designed with the ability to supply programming current as if all the bits of the byte were to be programmed to the state of "00" (hex), or "00000000". Furthermore, to increase performance, a number of bytes are programmed simultaneously. This adds further burden on the charge pump 52 to provide a large programming current. Since a charge pump 52 capable of providing a large current requires a large amount of real estate on the silicon die, a larger charge pump 52 takes up more silicon real estate. Thus, it is one objective of the present invention to reduce the size of the charge pump 52. [0008] Finally, parity bits are well known in the art. A parity bit is a bit associated with a plurality of bits (such as a byte) in which the parity bit is programmed to a state representing an error check on the data stored in the byte. However, typically parity bits have been used with volatile memory cells, and have been used only for error correction.
SUMMARY OF THE INVENTION
[0009] The present invention is a non-volatile memory device that has a charge pump for providing a programming current. The memory device has an arra of non-volatile memory cells, with each memory cell programmed by the programming current. The array of nonvolatile memory cells is partitioned into a pluralit of units, with each unit comprising a plurality of memory cells. An indicator memory cell is associated with each unit of non- volatile memory cells. A programming circuit programs the memory cells of each unit using the programming current, when a certain percentage or less of the memory cells of each unit is to be programmed, and programs the inverse of the memory cells of each unit and the indicator memory cell associated with each unit, using the programming current, when more than the certain percentage of the memory cells of each unit is to be programmed. [0010] The present invention is also a method of programming a non-volatile memory device which relies on a charge pump supplying a programming current during the programming operation.
BRIEF DESCRIPTION OF THE DRAWINGS [0011] Figure 1 is a cross-sectional view of a non-volatile memory cell of the prior art with a floating gate for the storage of charges thereon to which the programming method of the present invention is applicable, and which can be used in the memory device of the present invention.
[0012] Figure 2 is a block level diagram of a non-volatile memor device of the prior art including the charge pump that provides a programming current for use during the programming of the non-volatile memory cells. [0013] Figure 3 is a detailed block level diagram of the array portion of the non-volatile memory device of the prior art shown in Figure 2.
[0014] Figure 4 is a detailed block level diagram of the array portion of one embodiment of the non-voiatile memory device of the present invention.
[0015] Figure 5 is a detailed block level diagram of the array portion of another embodiment of the non-volatile memory device of the present invention.
[0016] Figure 6 is a block level diagram of the programming circuit for use in the nonvolatile memory device of the present invention.
[0017] Figure 7 is a block level diagram of the read out circuit for use in the non-volatile memory device of the present invention.
[0018] Figure 8 is a datain 'Ο' detect analog circuit for use in the non-volatile memory device of the present invention
[0019] Figure 9 is a flow diagram for datain Ό' analog detecting for use in the nonvolatile memory device of the present invention
[0020] Figure 10 is a block diagram of datain ' Ο' detect digital circuit for use in the nonvolatile memory device of the present invention
[0021] Figure 1 1 is a flow diagram for programming for use in the non-volatile memory device of the present invention
[0022] Figure 12 is an alternative flow diagram for programming for use in the non- volatile memory device of the present invention
[0023] Figure 13 is another alternative flow diagram for programming for use in the nonvolatile memor device of the present invention DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[0024] Referring to Figure 4 there is shown a block level diagram of one embodiment of the non-volatile memory array 200 of the present invention. The non-volatile memory array 200 can be used in the non-volatile memory device 50 shown in Figure 2 in place of the array 60. Since the memory array 200 of the present invention is similar to the memory array 60, same numerals will be used for like parts.
[0025] The array 200 comprises a plurality of subarrays 62 (a-d), with a plurality of memory cells, such as memory cells 10 arranged in a plurality of rows and columns.
Associated with each row of memory cells 10 spanning across the subarrays 62a, 62b, 62c and 62d is a row decoder 64. Associated with each column of memory cells 10 in each subarray, e.g. subarray 62a are sense amplifiers 70a and 70b. From the sense amplifiers 70, the signals are supplied to an output register 72. in the embodiment shown in Figure 4, each subarray 62 has multiple rows with each row having 2048 memory cells 10 , the first 1024 cells is multiplexed into a 1st word (each word having 16 bits to be programmed) and the second 1024 cells is multiplexed into a 2nd word ( to be programmed). An entire row of memory cells 10 in the array 60 thus comprising multiple units of 128 memory cells 0 with each unit being multiplexed into eight words word0-word7 and coupled into the sense amplifier SA0-SA127 70. [0026] The array 200 further comprises an array 80 of memory cells (called indicator memory cells), which can be of the same type of memory cells as used in the subarrays 62(a- d), namely memory cells 10, each row of array 80 has multiple indicator memory cells. The array 80 of memory cells is positioned between the subarray 62(d) and the row decoder 64, with one row of indicator memory cells 10 associated with each row of memory cells 10 in the subarrays 62(a-d). The position of the indicator cell array 80 is immediately adjacent to the row decoder 64 to have the fastest access time from row decoding to lessen the impact of the overall speed due to logic associating with the indictor bit. In one embodiment one indicator cell is associated with two selected words (32 selected memory cells 10) in each subarray 62. In another embodiment, one indicator memory cell 10 is associated with each selected unit of eight words (128 memory cells 10). Of course, as will be seen hereinafter* the invention is not so limited, and each indicator memory cell 10 may be associated with a unit of memory cells, with the unit of memory cells having any number. A sense amplifier 82 is associated with the indicator memory cells 10 in the array 80. As will be seen, the output of the sense amplifiers 82 gate the output from the sense amplifiers 70(a-h) into the registers 72(a-h). In one embodiment each indicator bit (cell) consists of one (basic) memory cell 10. In another embodiment, each indicator bits consists of 2 or more (basic) memory cell 10, in this case sensing of the indicator cell would be faster to not impact overall speed due to checking and the inversion of the data out.
[0027] The operation of the present invention may best be understood by the following example. Let us assume that a unit of memory cells 10 with which the indicator memory cell 10 is associated is a byte or 8 bits. After the byte or 8 bits is erased, it is in the state of "FF" (hex) or a bit pattern of "1 11 11111 ". If the new data to be programmed into the byte is "00000000", then instead of supplying the programming current sufficient to change the state of 8 memory cells 10, the memory device 200 of the present invention instead merely programs the associated indicator memory cell 10 from "1" to "0" and keeps the state of the bits of the associated byte at "11 111 11 1". In this manner, only 1 bit is programmed, and programming current sufficient to program only 1 memory cell 10 needs to be provided by the charge pump 52.
[0028] Other examples of the present invention are as follows. Again let us assume that a unit of memory cells 10 with which the indicator memory cell 10 is associated is a byte or 8 bits. After the byte or 8 bits is erased, it is in the state of "FF" (hex) or a bit pattern of "1 11 1 1 1 1 1". If the new data to be programmed into the associated byte is "01010101", which is fifty percent of the bits in the associated unit, then the programming circuit causes the bit pattern of "01010101 " to be programmed into the bits of the associated byte. In this case, only 4 bits are programmed, and the total programming current required is for the programming of four bits. However, if the new data to be programmed into the associated byte is "010101 0", which is more than fifty percent of the bits in the associated byte, then the programming circuit causes the inverse bit pattern, or "1010101 1" to be programmed into the bits of the associated byte and causes the associated ind icator bit to be programmed into a state of "0". In this example, again only 4 bits are required to be programmed and the total programming current is again only 4 bits. As can be seen from these examples, by the method of the present invention, compared to the array 60 of the prior art, the maximum amount of programming current that the charge pump 52 needs to supply to program the array 200 is only one-half or fifty percent of the programming current that was otherwise required for the memory array 60 of the prior art. In this described method the data pattern to be stored is mostly ' 1 ' data (since if more than fifty percent Ό* data would be inverted into ' 1 ' data) . Alternative embodiments needs not be exactly fifty percent but could be approximately fifty percent or any number of percentage. In case of less than fifty percent the chip operation is less optimal.
[0029] Referring to Figure 5 there is shown a block level diagram of another embodiment of the non-volatile memory array 300 of the present invention. The non-volatile memory array 300 is similar to the non-volatile memory array 200 shown in Figure 4 and can be used in the non-volatile memory device 50 shown in Figure 2 in place of the array 60. Since the memory array 300 of the present invention is similar to the memory array 200, same numerals will be used for like parts. [0030] The array 300 comprises a plurality of subarrays 62 (a-d), with a plurality of memory cells, such as memory cells 10 arranged in a plurality of rows and columns.
Associated with each row of memory celts 10 spanning across the subarrays 62a, 62b, 62c and 62d is a row decoder 64. Associated with each column of memory cells 10 in each subarray, e.g. subarray 62a are sense amplifiers 70a and 70b. From the sense amplifiers 70, the signals are supplied to an output register 72. In the embodiment shown in Figure 5, each subarray 62 has multiple rows with each row having 2048 memory cells 10 , the first 1024 cells is multiplexed into a 1st word (each word having 16 bits to be programmed) and the second 1024 cells is multiplexed into a 2nd word ( to be programmed). An entire row of memory cells 10 in the array 60 thus comprising units of 128 memory cells 10 with each unit being multiplexed into eight words word0-word7 and coupled into the sense amplifier SA0-SA127 70.
[0031] The array 300 further comprises a plurality of arrays 80(a-d) of memory cells (called indicator memory cells), which can be of the same type of memory cells as used in the subarrays 62(a-d), namely memory cells 10. Each array 80 of indicator memory cells is associated with a subarray 62 of memory cells and is positioned between the associated subarray 62 and the associated sense amplifiers 70, with one indicator memory cell 10 associated with associative columns of memory cells 10 in the subarray 62. Similar to the previous discussion regarding each indicator memory cell being associated with a row of memory cells, each indicator memory cell 10 need not be associated with one column of memory cells and may be associated with a unit of memory cells, with the unit of memory cells having any number. Associated with each array 80 of indicator memory cells is a sense amplifier 82, whose output gates the output from the sense amplifiers 70 into the registers 72.
[0032] Referring to Figure 6 there is shown a circuit 210 for testing the data to be programmed to determine whether the data or its inverse is to be programmed in accordance with the method of the present invention. The circuit 210 comprises a digit counter circuit 246, an inverting circuit 204 and a multiplexer MUX 202. The digit counter circuit 246 is used to count the number of logical bit '0' in the datain stream. If the number of logical bit '0' is more than a certain predetermined digit percentage, e.g. 50%, the data is inverted through the selection MUX 202 and the inverting circuit 204. Alternatively, a digit percentage may be employed, e.g, 33%, 66%, 51 . The output of the MUX circuit 202 is the data to be stored into the memory cells 10.
[0033] Referring to Figure 7 there is shown a data out mux circuit 260 for gating the outputs from the sense amplifiers 70 into the registers 72 in accordance with the method of the present invention. The data out mux circuit 260 includes the indicator sense amplifier 82, the sense amplifier 70, an inverting circuit 264, and a multiplexing circuit MUX 262. Input to the indicator sense amplifier 82 is the indicator memory cells from the array 80. Input to the sense amplifier 70 is the memory cells 10 from the array 62. Depending on the output of the indicator sense amplifier 82, the output of the sense amplifier 70 is fed through or inverted by the MUX 262 and the inverting circuit 264. The output of the MUX 262 typically goes to a DOUT (Data Output) circuit 72 which is coupled to an IOBUF
(Input/Output Buffer) circuit.
[0034] Referring to Figure 8 there is shown an analog digit Ό' counter (detection) circuit 310. The circuit 310 includes a plurality of enabling bias circuit 320, a PMOS transistor 316, a PMOS transistor 330, a current bias circuit 332. The enabling bias circuit 320 includes a current bias circuit IBIAS 324 and a NMOS transistor 322. Input to the gate of the NMOS 322 is the inverted datain IN/, hence if datain I = Ό', the inverted datain IN/=' 1 ' will enabling the NMOS transistor 322. The bias circuit 324 is implemented as a unit bias current IBIAS, e.g., IBIAS = 2uA. For example there is 16 datain IN<0-15>, hence there is 16 circuit 320. For example if there is 9 datain = '0' (other 7 datain =' 1 '), leading to 9 units of bias current IBIAS 324 enabled into the PMOS 316. This current is mirrored into the PMOS transistor 330. For example the circuit 332 has M x IBIAS with M=8 and IBIAS = 2uA. The current in the PMOS 330 is 9 X IBIAS while the current in the circuit 332 is 8 x IBIAS, hence the output 334 will be pulled high indicating number of digit '0' is more than 8 out of 16 datain bits. The circuit 310 operates on all datain bits at the same time.
[0035] Referring to Figure 9 there is shown a flow chart algorithm of digital digit Ό' detection. At start step 410, initialization sequence initialize Dn=D0 (first datain out of for example 64) and clock pulse CKn=C 0 (first clock), and Count Cn=0. Next in step 412 checking if datain Dn =0 (digit 'Ο') , if Y (yes) then goes to step 414 to increase the count Cn by 1 (Cn=Cn+l), if N (no) then goes to step 416 to keep the count Cn same as current count. Next goes to step 418 to increase the clock pulse to next clock pulse CKn=CKn+l and inputting next datain Dn=Dn+l . Next goes to step 420 and check if n=K, for example, =64, if No then goes back to the step 412 loop and repeat checking for digit Ό'.
Figure imgf000011_0001
-> Yes then goes to step 422. Now check if count Cn > M, e,g, M=33, if true then detect 'Ό' DET0=true =1, if not then DET0=faIse=0, Next is final step 424 =done sequence.
[0036] Referring to Figure 10 there is shown a digital digit '0' detection circuit 500. The circuit 500 includes a a-bit Counter 510 and a detect logic Det-Logie circuit 520. The a-bit counter provides the clocking pulses CKn and the detect logic 520 provides the digit '0' checking for Dn, the increment function for Cn, Dn^CKn, the checking for count Cn, the initialization, start, and done function. For example for 64 datain bits D<0:63>, if there are 33 datain =0, the output DECTO 522 =1 to indicate number of the Ό' digits is more than 32 out of 64. The circuit 500 operates sequentially on bit by bit at a time, for example for 64 datain bits, it operates on 64 clock pulses.
[0037] The programming algorithms in Figure 1 1, 12, and 13 can be used in combination thereof with the above described inventions for further operational optimization in operating only on needed data bits.
[0038] Referring to Figure 1 1 there is shown a flow chart of programming algorithm 600 for efficient programming of 'Ο' datain pattern. In this embodiment there are 64 datain bits ( in Figure 4 and 5 there are 128 datain bits) and 16 bits of '0' datain can only be programmed at a time (meaning the high voltage charge pump is design to supply for 16 bits at a time (to minimize charge pump area ) in programming, for example to program 32 bits would needs two programming pulses operating sequentially with each programming pulse programs 16 bits at a time ). The algorithm will start from first datain and count number of '0' datain digit, once 16 '0' digits is reached, a program (write) operation is performed to program these 16 bits into appropriate memory cells 10, meaning changing memory cell storage state of these cells from erase state (' 1 ') to program state (Ό'). After this programming is done, next is to count and identify the next 16 '0' datain digits to be programmed. The sequence continues until all 64 datain is accounted for programming operation. [0039] The program algorithm sequence works as following. After an erase operation to erase all selected memory cells, the algorithm 600 is used to program the datain into in the memory cells 10. At step start 602, initialization step initialize Dinn=Din0, next is step 604 to enable count 00, next is step 606 for checking if DlNn=0 then enabling DINn to be programmed (written) later and increment count C by 1 (C=C+1), if DINn=l then disable DINn for later programming operation and keep count C current Next is step 608 to goes to next datain DINn=DINn+l, next is the step 610 to check if last datain has been reached DINn=DlN63. If No then goes to step 612 to check of count C has reached 16 , if Yes goes to step 614 to perform an program operation on these 16 enabled datain DINn. If C is not 1 , then goes back to the step 606 to check to enable the next '0' datain. If in the step 610, DINn=DIN63 then goes to step 616, if now count C<1 ( there is no memory cell needs to be programmed) then goes to final step 666 Done, if C>= 1 then goes to step 618 to perform an program operation on datain bits that has been enabled for programming and then goes to the final step 666 Done.
[0040] Referring to Figure 12 there is shown a flow chart of another programming algorithm 600 for efficient programming of '0' datain pattern. In this embodiment the '0' digit detection is operated on word (16 bits) basis. The number of zeros of the selected words can be programmed (written) is 16 at a time in this embodiment. Example shown is for four words in this embodiment. This algorithm only program the necessary words with 'Ο' digits, meaning changing memory cell storage state from erase state (' 1 ') to program state ('Ο')· This method is less efficient than that in Figure 1 1 (which operates on bits instead of words) but requires simpler implementation.
[0041] The algorithm works as following. First is start step 702 which initializes any necessary parameters. Next is step 704 if check for number of '0' digit of 4 words W0-3 is < 1 (no cell memory cell needs to be programmed), if yes then goes to final step 777 done (meaning no programming operation needs to be done). If no then goes to step 706 to check for if number of '0' digits of 4 words W0-3 is < 16, if Yes then goes to step 708 to program all words (since number of bits to be programmed is less than 16 bits, which is the number of bits that can be programmed at the same time) and then goes to the final step 777 done. If in step 706, if number of '0' digit of 4 words W0-3 < 16 is No, then goes to step 710 to check for number of '0' digit of 2 words W0,W1 <1, if No then goes to step 712 to check number of '0' digit of 2 words W0,W1 is < 16, if Yes then program both words W0,W1 at same time then goes to step 720, if No then program W0 and program Wl individually (i.e., sequentially one word at a time) then goes to the step 720. If in the step 710, the answer is Yes then goes to the step 720. In the step 720, now check for number of '0' digit of word W2,W3 <1, if Yes then goes to the final step 777 done, if No then goes to step 722 to check for number of '0' digit of words W2} W3 <16. If yes then goes to step 724 to program both words W2, W3 at the same times, if No then goes step 726 to program word W2( W3 individually
(sequentially) then goes to the final step 777 done.
[0042] Referring to Figure 13 there is shown a flow chart of another programming algorithm 600 for efficient programming of '0' datain pattern. In this embodiment the '0' digit detection is operated on word ( 16 bits) basis. The number of zero s of the selected words can be programmed (written) is 16 at a time in this embodiment. Example shown is for four words in this embodiment. This algorithm only program the necessary words with '0' digits. This method is more efficient than that in Figure 12 but requires more complex implementation for more exhaustive word combination check.
[0043] The algorithm works as following. First is step 802 start to initialize any necessary parameters. Next is step 804 which check for number of '0' digit in datain of 4 words W0-3 <16. If Yes then goes to step 806 to program all words at same time and then goes to final step 888 done. If no then goes to step 810 to check for number of '0' digit for words W0, Wl <1 . If Yes then goes to step 812 to program both words W0, W 1 at same times. After step 812 goes to step 814 to check for number of '0' digit of words W2, W3 <16. If yes the goes to step 816 to program both words W2, W3 at the same times and then goes to the final step 888 done. If at step 814 the answer is No then goes to step 818 to program W2 and program W3 individually (sequentially) then goes to the final step 888 done. Similarly steps 820-828, steps 830-838 , steps 840-848 , steps 850-858, steps 860-868 for the exhaustive combinations of rest of the 4 words is similar to step 810-818. The Step 870 program each word W0, Wl, W2, W3 individually and then goes to the final step 888 done. [0044] An array architecture for the above four word datain ( 64 datain bits) in Figure 12 and 13 is one that is similar to the array 200 or array 300 in Figure 4 and 5 respectively that consists of sub-arrays 62a and 62 b only (no subarrays 62c or 62d).
[0045] For the memory array that consists of plurality of subarrays (62a-d), in the case that a selected (enabled) word or words that are to be programmed th subarrays that associates with these words are enabled (programming biases, programming high voltage, and circuit is enabled to come into the array memory cells 10) and the sub-arrays that associated with the unselected (disabled) words are disabled (programming biases, programming high voltage, and circuit is disabled from coming into the array memory cells 10) to minimize any programming high voltage and biases from disturbing on the unselected subarrays.
[0046] In the above described inventions the indicator bit and operational algorithms is associated with the programming data pattern. And the datain Ό is associated with programmed state. Data Ί ' can be associated with programmed state by inverting the datain and inverting the data out. Alternative embodiment has indicator bit and operational algorithms associated with erase data pattern for technology that can be optimized for erasing operation.
[0047] Another embodiment has indicator bit and operational algorithms associated with data pattern for technology that can be optimized for endurance (number of erase/program cycles for operating lifetime ) and data retention (ability to hold data permanently for operating lifetime, e.g., 10 years) , for example endurance and data retention preferring ' 1 ' state for best endurance and data retention performance then data pattern to be stored in memory would be more data in T state after being processed by operational algorithm. Another embodiment has indicator bit and operational algorithms associated with data pattern for technology that can be optimized for disturb (meaning less changing in data state of unselected cells in erase or programming operation) in that certain data pattern is less prone to disturb.
[0048] Another embodiment has indicator bit and operational algorithms associated with data pattern for technology and/or design that can be optimized for overall optimal bit error rate (BER) (meaning less changing in data state of memory cells in erase or programming or read operation). This would involve characterization of technology and product design of operational modes over operating lifetime and user applications to find algorithm for best fit data pattern (for example mostly Ί ' or mostly '0' data pattern) to be stored in memory cells.
[0049] Another embodiment has indicator bit and operational algorithms associated with data pattern for technology that is to be optimized for read power consumption (such as data pattern to be stored in memory would be more data '0' state after being processed by the algorithm for the memory cell 10, since in '0' state there is no memory cell current, meaning no power consumption from memory cell 10). Another embodiment has indicator bit and operational algorithms associated with data pattern for technology and design that is to be optimized for overall power consumption of all operational modes (e.g, read, program, erase) according to a power profile depending on user usage.
[0050] As can be seen from the foregoing, the present invention can be applied to any non-volatile memory device which requires a charge pump to supply a programming current. Thus, the present invention can be applied to a non-volatile memory device with a floating gate for storage charges, with a charge pump to store charges on the floating gate during programming, and is not limited to the type of memory cell 10 shown in Figure 1. Moreover, the present invention can also be applied to a memory device with a trapping charge layer for storing charges with a charge pump to store charges in the trapping charge layer during programming.

Claims

What Is Claimed is
1. A non-volatile memory device comprising:
a charge pump for providing a programming current;
an array of non-volatile memory cells, with each memory cell programmed by the programming current; said array of non-volatile memory cells partitioned into a plurality of units, with each unit comprising a plurality of memory cells;
an indicator memory cell associated with each unit of non-volatile memory cells; and programming circuit for programming the memory cells of each unit using said programming current, when a certain percentage or less of the memory cells of each unit is to be programmed, and for programming the inverse of the memory cells of each unit and the indicator memory cell associated with each unit, using said programming current, when more than said certain percentage of the memory cells of each unit is to be programmed.
2. The memory device of claim 1 further comprising:
a plurality of sense amplifiers, one connected to each non-volatile memory cells of a unit for sensing the state of the non-volatile memory cells;
an indicator sense amplifier connected to the indicator memory cell for sensing the state of the indicator memory cell associated with the unit sensed;
a logic circuit for outputting the state of the plurality of sense amplifiers in the event the indicator sense amplifier senses the state of the indicator memory cell is in one state; and for outputting the inverse state of the plurality of sense amplifiers in the event the indicator sense amplifier senses the state of the indicator memory cell is in another state.
3. The memory device of claim 1 wherein said array of non-volatile memory cells is arranged in a plurality of rows and columns with an array of indicator memor cells located adjacent to the array of non-volatile memory cells in a row direction, with one indicator memory cell associated with a plurality of memory cells in the same row.
4. The memory device of claim 1 wherein said array of non-volatile memory cells is arranged in a plurality of rows and columns with an array of indicator memory cells located adjacent to the array of non-volatile memory cells in a column direction, with one indicator memory cell associated with a plurality of memory cells in the same column.
5. The memory device of claim 1 wherein each of said memory cells comprises:
a semiconductor substrate of a first conductivity type, having a planar surface; a first region of a second conducti ity type on the planar surface;
a second region of the second conductivity type on the planar surface, spaced apart from the first region, with a channel region therebetween;
a floating gate, spaced apart from a first portion of the channel region;
a word line, adjacent to the floating gate to one side thereof, insulated therefrom, and spaced apart from a second portion of the channel region;
an erase gate, adjacent to the floating to gate to another side thereof, insulated therefrom, and spaced apart from the second region; and
a coupling gate over the floating gate, spaced apart therefrom, and between word line and the erase gate and insulated therefrom.
6. The memory device of claim 1 wherein said certain percentage is fifty percent.
7. The memory device of claim 1 further comprising a digital '0' bit detector.
8. The memory device of claim 7 wherein the digital 'Ο' bit detector comprises a clock pulse generator and is based upon clocked sequentially digital '0' bit detection.
9. The memory device of claim 1 further comprising an analog '0' bit detector.
10. The memory device of claim 9 wherein the analog '0' bit detector detects based upon a unit of current bias.
11. The memory device of claim 10 wherein said current bias is in microamperes.
12. The memory device of claim 1 wherein the memory array further comprising a plurality of memory subarrays.
13. The memory device of claim 12 wherein each subarray not having memory cells for programming have programming biases disabled.
14. A method of programming a non-volatile memory device, said memory device having a plurality of memory units with each memory unit having a plurality of memory cells, each memory unit with an associated indicator memory cell, said plurality of memory cells of a unit and the associated indicator memory cell programmed by a programming current from a charge pump, said method comprising:
determining if a certain percent or less of the memory cells in a unit are to be programmed by the programming current;
if so, programming the memory cells by the programming current; and
if not, programming the inverse of the memory cells and the associated indicator memory cell by the programming current.
15. The method of claim 14 further comprising:
sensing the state of each of the memory cells from the same unit;
sensing the state of the indicator memory cell associated with the same unit;
outputting the state of each of the memory cells from the same unit, in the event the associated indicator memory cell is in one state; and
outputting the inverse state of each of the memory cells from the same unit in the event the associated memory cell is in another state.
16. The method of claim 14 wherein the certain percent is approximately fifty percent.
17. The method of claim 14 wherein an indicator memory cell includes a plurality of basic memory cells.
18. The method of claim 14 wherein an indicator memory is adjacent to row decoder.
19. A method of programming a non-volatile memory device, said memory device having a plurality of memory units with each memory unit having a plurality of memory cells, said plurality of memory cells of a unit programmed by a programming current from a high voltage charge pump, said method comprising:
determining sequentially from first to last memory cell in a unit if a number of the memory cells in the unit to be changing storage state from erase to program state by the high voltage charge pump reaches a predetermined number; if so, programming the determined number of the memory cells by the high voltage charge pump; and
if not, then continuing determining the rest of number of memory cells in the unit to be programmed until all memory cells in the unit are determined to be programmed or not to be programmed.
20. The method of claim 19 wherein the determining basing on bit basis.
21. The method of claim 1 wherein the determining basing on word basis.
22. The method of claim 19 wherein each memory unit further comprising an associated indicator memory cell.
23. The method of claim 19 wherein the determined memory cell for programming corresponds to datain bit Ό'.
PCT/US2012/064881 2011-12-08 2012-11-13 A non-volatile memory device and a method of programming such device WO2013085676A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP12855763.4A EP2788987A4 (en) 2011-12-08 2012-11-13 A non-volatile memory device and a method of programming such device
JP2014545913A JP2015500546A (en) 2011-12-08 2012-11-13 Nonvolatile memory device and method of programming such device
CN201280068501.2A CN104081462B (en) 2011-12-08 2012-11-13 Non-volatile memory device and the method to the programming of this device
KR1020147018843A KR20140102733A (en) 2011-12-08 2012-11-13 A non-volatile memory device and a method of programming such device
TW101143445A TWI543156B (en) 2011-12-08 2012-11-21 A non-volatile memory device and a method of programming such device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/315,213 US8804429B2 (en) 2011-12-08 2011-12-08 Non-volatile memory device and a method of programming such device
US13/315,213 2011-12-08

Publications (1)

Publication Number Publication Date
WO2013085676A1 true WO2013085676A1 (en) 2013-06-13

Family

ID=48571871

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/064881 WO2013085676A1 (en) 2011-12-08 2012-11-13 A non-volatile memory device and a method of programming such device

Country Status (7)

Country Link
US (2) US8804429B2 (en)
EP (1) EP2788987A4 (en)
JP (1) JP2015500546A (en)
KR (1) KR20140102733A (en)
CN (1) CN104081462B (en)
TW (1) TWI543156B (en)
WO (1) WO2013085676A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286982B2 (en) * 2014-08-08 2016-03-15 Silicon Storage Technology, Inc. Flash memory system with EEPROM functionality
US9922715B2 (en) * 2014-10-03 2018-03-20 Silicon Storage Technology, Inc. Non-volatile split gate memory device and a method of operating same
US10283207B2 (en) * 2016-06-03 2019-05-07 Samsung Electronics Co., Ltd. Non-volatile memory devices comprising high voltage generation circuits and operating methods thereof
KR102546306B1 (en) * 2016-06-03 2023-06-23 삼성전자주식회사 Non-volatile memory device comprising high voltage generation circuit and operating method thereof
US10861564B2 (en) 2018-10-17 2020-12-08 Winbond Electronics Corp. Memory circuit and data bit status detector thereof
US10937495B2 (en) 2019-07-02 2021-03-02 Winbond Electronics Corp. Resistive memory apparatus and method for writing data thereof
US10714157B1 (en) 2019-08-27 2020-07-14 Winbond Electronics Corp. Non-volatile memory and reset method thereof
CN112530494B (en) * 2019-09-17 2024-06-25 硅存储技术股份有限公司 Nonvolatile memory device with stored index information
CN111785308B (en) * 2020-06-10 2021-09-10 芯天下技术股份有限公司 Method, system, storage medium and terminal for reducing area of non-flash memory programming pump
CN114203242A (en) * 2021-12-02 2022-03-18 普冉半导体(上海)股份有限公司 NOR type flash memory programming circuit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438032B1 (en) * 2001-03-27 2002-08-20 Micron Telecommunications, Inc. Non-volatile memory with peak current noise reduction
US20020188798A1 (en) 2001-06-07 2002-12-12 Mitsubishi Denki Kabushiki Kaisha Data processor and data processing method reduced in power consumption during memory access
US20060259847A1 (en) * 2005-04-29 2006-11-16 Stmicroelectronics S.R.I. Data storing method for a non-volatile memory cell array having an error correction code
US20090108328A1 (en) * 2007-10-24 2009-04-30 Yuniarto Widjaja Array Of Non-volatile Memory Cells

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6271096A (en) * 1985-09-25 1987-04-01 Toshiba Corp Semiconductor integrated circuit device
US5280447A (en) * 1992-06-19 1994-01-18 Intel Corporation Floating gate nonvolatile memory with configurable erasure blocks
JPH07334991A (en) * 1994-06-07 1995-12-22 Sony Corp Non-volatile semiconductor storage device
JPH08321193A (en) * 1995-05-23 1996-12-03 Sony Corp Nonvolatile semiconductor storage device
US6292868B1 (en) * 1996-10-15 2001-09-18 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
US5867425A (en) * 1997-04-11 1999-02-02 Wong; Ting-Wah Nonvolatile memory capable of using substrate hot electron injection
JP3156636B2 (en) * 1997-05-30 2001-04-16 日本電気株式会社 Nonvolatile semiconductor memory device
US20020136050A1 (en) * 2001-03-23 2002-09-26 Henry Fang Method of programming a memory device
JP2004046974A (en) * 2002-07-12 2004-02-12 Renesas Technology Corp Semiconductor storage device
KR100474203B1 (en) * 2002-07-18 2005-03-10 주식회사 하이닉스반도체 Bit counter, program circuit and method for programming of semiconductor device using the same
KR100555506B1 (en) * 2003-07-11 2006-03-03 삼성전자주식회사 Memory device including programmed memory cells and programmable and erasable memory cells
JP2005116132A (en) * 2003-10-10 2005-04-28 Toshiba Corp Nonvolatile semiconductor memory device
JP4398750B2 (en) * 2004-02-17 2010-01-13 株式会社東芝 NAND flash memory
US7443732B2 (en) * 2005-09-20 2008-10-28 Spansion Llc High performance flash memory device capable of high density data storage
WO2007069295A1 (en) * 2005-12-13 2007-06-21 Spansion Llc Semiconductor device and method of controlling the same
US7555659B2 (en) * 2006-02-28 2009-06-30 Mosaid Technologies Incorporated Low power memory architecture
US7577028B2 (en) * 2007-03-23 2009-08-18 Intel Corporation Memory storage technique for a bi-directionally programmable memory device
US7729165B2 (en) 2007-03-29 2010-06-01 Flashsilicon, Incorporation Self-adaptive and self-calibrated multiple-level non-volatile memories
US7577036B2 (en) 2007-05-02 2009-08-18 Micron Technology, Inc. Non-volatile multilevel memory cells with data read of reference cells
US20090039410A1 (en) 2007-08-06 2009-02-12 Xian Liu Split Gate Non-Volatile Flash Memory Cell Having A Floating Gate, Control Gate, Select Gate And An Erase Gate With An Overhang Over The Floating Gate, Array And Method Of Manufacturing
US8040730B2 (en) * 2008-11-28 2011-10-18 Samsung Electronics Co., Ltd. Nonvolatile memory device
JP2010129154A (en) * 2008-11-28 2010-06-10 Samsung Electronics Co Ltd Nonvolatile semiconductor memory device
US20100302856A1 (en) 2009-05-29 2010-12-02 Sung Hoon Ahn Nonvolatile memory device and method of programming and reading the same
KR20100129179A (en) 2009-05-29 2010-12-08 주식회사 하이닉스반도체 The non volatile memory device and method for programming and method for reading thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438032B1 (en) * 2001-03-27 2002-08-20 Micron Telecommunications, Inc. Non-volatile memory with peak current noise reduction
US20020188798A1 (en) 2001-06-07 2002-12-12 Mitsubishi Denki Kabushiki Kaisha Data processor and data processing method reduced in power consumption during memory access
US20060259847A1 (en) * 2005-04-29 2006-11-16 Stmicroelectronics S.R.I. Data storing method for a non-volatile memory cell array having an error correction code
US20090108328A1 (en) * 2007-10-24 2009-04-30 Yuniarto Widjaja Array Of Non-volatile Memory Cells

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2788987A4

Also Published As

Publication number Publication date
EP2788987A1 (en) 2014-10-15
CN104081462B (en) 2017-06-06
TWI543156B (en) 2016-07-21
US9646700B2 (en) 2017-05-09
JP2015500546A (en) 2015-01-05
US20130148428A1 (en) 2013-06-13
KR20140102733A (en) 2014-08-22
US20150003166A1 (en) 2015-01-01
TW201337922A (en) 2013-09-16
CN104081462A (en) 2014-10-01
EP2788987A4 (en) 2015-07-29
US8804429B2 (en) 2014-08-12

Similar Documents

Publication Publication Date Title
US9646700B2 (en) Non-volatile memory device and a method of programming such device
TWI397921B (en) High speed sense amplifier array and method for nonvolatile memory
US10636488B2 (en) Multi-sensing scan for cross-temperature mitigation
US20160163393A1 (en) Partial block erase for data refreshing and open-block programming
US10026492B2 (en) Multi-die programming with die-jumping induced periodic delays
US8879331B2 (en) Shared bit line string architecture
US10957401B2 (en) Boosting read scheme with back-gate bias
TW200929222A (en) Controlling a memory device responsive to degradation
WO2014074311A1 (en) Flash memory with data retention bias
US20070030729A1 (en) Method of sensing an eeprom reference cell
EP2973583A2 (en) Non-volatile memory program algorithm device and method
US10978152B1 (en) Adaptive VPASS for 3D flash memory with pair string structure
TW201324513A (en) Substrate bias during program of non-volatile storage
JP2015500546A5 (en)
WO2014124324A1 (en) Non-volatile memory including bit line switch transistors formed in a triple-well
CN112116936A (en) System and method for performing dynamic on-chip calibration of memory control signals
US11348649B2 (en) Threshold voltage setting with boosting read scheme
JP2006031821A (en) Nonvolatile semiconductor memory
US10878897B2 (en) System and method for storing and retrieving multibit data in non-volatile memory using current multipliers
US20090219776A1 (en) Non-volatile memory device with plural reference cells, and method of setting the reference cells
JPH11339489A (en) Circuit and technique for read and write of multistate eeprom
US20240168844A1 (en) Grouping and error correction for non-volatile memory cells
US20240290412A1 (en) Non-volatile memory with faster post-erase defect testing
WO2024112355A1 (en) Grouping and error correction for non-volatile memory cells

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12855763

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014545913

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20147018843

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012855763

Country of ref document: EP