EP0877386A1 - Method and device for analog programming of non-volatile memory cells, in particular flash memory cells - Google Patents

Method and device for analog programming of non-volatile memory cells, in particular flash memory cells Download PDF

Info

Publication number
EP0877386A1
EP0877386A1 EP97830216A EP97830216A EP0877386A1 EP 0877386 A1 EP0877386 A1 EP 0877386A1 EP 97830216 A EP97830216 A EP 97830216A EP 97830216 A EP97830216 A EP 97830216A EP 0877386 A1 EP0877386 A1 EP 0877386A1
Authority
EP
European Patent Office
Prior art keywords
value
programming
memory cell
cell
pulse
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
EP97830216A
Other languages
German (de)
French (fr)
Other versions
EP0877386B1 (en
Inventor
Pierluigi Rolandi
Roberto Canegallo
Ernestina Chioffi
Danilo Gerna
Marco Pasotti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
SGS Thomson Microelectronics SRL
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 STMicroelectronics SRL, SGS Thomson Microelectronics SRL filed Critical STMicroelectronics SRL
Priority to EP97830216A priority Critical patent/EP0877386B1/en
Priority to DE69723814T priority patent/DE69723814D1/en
Priority to US09/076,013 priority patent/US6195283B1/en
Publication of EP0877386A1 publication Critical patent/EP0877386A1/en
Application granted granted Critical
Publication of EP0877386B1 publication Critical patent/EP0877386B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS

Definitions

  • the present invention relates to a method and a device for analog programming of non-volatile memory cells, in particular flash memory cells.
  • analog programming of a memory cell consists of modifying to a desired analogue value the threshold voltage value of the cell (i.e. the minimum voltage to be applied between the gate terminals and the source of the cell itself, in order for the latter to begin to conduct current).
  • Programming is currently carried out in a memory array by connecting the gate terminal of the cell to be programmed to a reference voltage, the drain terminal to a high programming voltage, and the source terminal to ground. Since the programming is a non-reproducible process, it is carried out in multi-level memories by providing a plurality of programming pulses of short duration, and by reading the threshold voltage value reached by the cell at the end of each programming pulse (verify step).
  • the gate terminal of the cell to be programmed is supplied with a high programming voltage.
  • the programming process is preceded by a cell erasing step, such that the cells have a low initial threshold voltage (lower than the minimum analog value to be stored) and each programming pulse gives rise to an increase of the threshold voltage of the cell; when the desired threshold voltage is reached, the programming process is interrupted.
  • programming is carried out at present by gradually modifying the initial threshold voltage value through short programming pulses, followed by reading the reached level, until the desired level is obtained.
  • the programming pulses are short, as indicated above, such that when a cell must sustain a large threshold jump, the described process requires a large number of programming/reading cycles, and thus involves a considerable programming time.
  • the object of the invention is thus to provide a method and a programming device which permit reduction of the programming time of memory cells.
  • a method for analog programming of non-volatile memory cells, in particular flash memory cells is provided, as defined in claim 1.
  • a device for analog programming of non-volatile memory cells in particular flash memory cells, is provided, as defined in claim 4.
  • the present threshold value is determined directly or indirectly for each cell to be programmed; the desired threshold value is acquired; the analog distance between the present threshold value and the desired threshold value is calculated; and a programming pulse is then generated, the duration of which is proportional to the analog distance calculated.
  • the threshold level reached is read and compared once more with the desired threshold value, and further programming pulses can be supplied, the duration of which can be determined on the basis of the distance between the desired threshold value and the threshold value reached, or the pulses can be fixed and short, similarly to known solutions.
  • At least the first programming pulse is much longer than the standard pulse, reducing substantially the total programming time by reducing the number of reading operations and saving the corresponding intermediate times necessary in order to transfer the circuit from the reading condition to the programming condition and vice versa in the various programming/reading cycles.
  • This process also permits programming in parallel of a plurality of cells which belong to the same line and different columns, each with a programming pulse, the duration of which is proportional to the analog distance between the present threshold value of each cell and the desired threshold value for the same cell.
  • This process requires suitable pulse control circuitry for each column, and involves a programming time for each cycle which is related with the duration of the longest programming pulse from among those planned for the various columns programmed in parallel. In this case therefore, with increased complexity of the control circuitry, a considerable saving of time is obtained altogether by means of parallel application of the programming, and the saving in the reading cycles.
  • FIG 1 An example of a programming device for a cell which uses a specific circuit for reading the threshold voltage is shown in figure 1, and is described hereinafter.
  • the reading circuit in figure 1 provides an indirect value of the present threshold voltage of the cell to be programmed, and is described in detail in European patent application 97830172.9 dated 15.4.97 with the title "High-precision analogue reading circuit for memory matrices, in particular flash analog memory matrices", incorporated herein for reference.
  • the present invention is not limited to this type of reading circuit, although it is advantageously applicable to the latter, and can also be implemented with other reading circuits which directly or indirectly can supply the present threshold voltage value of the cell.
  • the cell 1 to be programmed has a source terminal 11 which is connected to ground, a gate terminal 12 which is biased to a reading voltage V R , and a drain terminal 13 which is connected to a first node 14 through an NMOS-type selector switch 15.
  • the first node 14 is connected to a second node 16 through a first biasing transistor 17; the second node 16 is in turn connected to a current mirror circuit 19 formed by two PMOS transistors 21, 22; in detail, the PMOS transistor 21 is diode-connected (i.e it has short-circuited drain and gate terminals) and has the drain terminal connected to the node 18, the source terminal connected to the supply line 23 which is set to V dd , and the gate terminal connected to the gate terminal of the PMOS transistor 22; the latter has the source terminal connected to the supply line 23, and the drain terminal connected to a node 24.
  • the PMOS transistor 21 is diode-connected (i.e it has short-circuited drain and gate terminals) and has the drain terminal connected to the node 18, the source terminal connected to the supply line 23 which is set to V dd , and the gate terminal connected to the gate terminal of the PMOS transistor 22; the latter has the source terminal connected to the supply line 23, and the drain terminal connected to a node 24.
  • the node 24 is connected through a second biasing transistor 25 also of the NMOS type and a dummy switch 26 which is always maintained closed, to the drain terminal 28 of a reference cell 27, for example a virgin cell, which has the source terminal 29 connected to ground and the gate terminal 30 connected to the output of an operational amplifier 31; the latter has an inverting input which is connected to the node 16, and a non-inverting input which is connected to the node 24.
  • the node 14 is connected to a programming voltage line 33, which is set to the programming voltage V PD , through a controlled switch 34 which has a control terminal 35 connected to an output 36 of a pulse generator 37.
  • the pulse generator 37 has a first and a second input 38, 39 which receive a target threshold voltage V TAR (which is proportional to the desired threshold voltage) and the output voltage V o of the operational amplifier 31 (which, as explained hereinafter, is proportional to the present threshold voltage of the cell 1 to be programmed), such as to generate a control pulse S which is supplied to the controlled switch 34, and has a duration proportional to the difference between the target threshold voltage V TAR and the output voltage V o , and thus between the desired threshold voltage and the present threshold voltage.
  • a control unit 40 provides the pulse generator 37 with a signal EN which enables and de-enables the pulse generator 37 when the cell 1 is to be programmed and when the programming is completed.
  • the circuit in figure 1 operates as follows. Initially, the initial value of the output voltage V o of the operational amplifier 31 is determined, and the target voltage V TAR is acquired; the pulse generator 37 then generates the control pulse S, which causes controlled switch 34 to close and node 14 to be connected to the programming voltage V PD for a time which is proportional to the difference between the desired threshold voltage and the present threshold voltage of the cell 1. At the end of the pulse S, the new value of the output voltage V o is determined, and on the basis of the latter a further programming and reading cycle is optionally initiated; the programming and reading cycles are then repeated until the desired threshold value is reached.
  • Reading of the present threshold voltage of the cell 1 through output voltage V o is carried out as follows.
  • V o V R - (V th,1 - V th,27 ) i.e. the output voltage V o is linearly dependent on the threshold voltage of the cell to be read 2, via the gate biasing voltage V R and the threshold voltage V th,27 of the reference cell 27.
  • programming of the cell 1 consists of modifying the threshold of the cell itself such that the output voltage V o becomes equal to the sum of the value to be stored (desired difference between the thresholds of cells 1 and 27) and the gate biasing voltage V R .
  • the target voltage V TAR is equal to this sum, and the pulse generator supplies a pulse, the duration of which is proportional to the distance between the desired difference between the thresholds of the cells 1 and 27 (value to be stored) and the present difference, since the term V R is cancelled out.
  • Figure 2 shows an embodiment which permits programming in parallel of a plurality of cells which belong to different columns.
  • the cells 1 are disposed on lines and in columns in order to form a portion (for example a sector or part of the latter) of a memory array 2 which belongs to a memory 3, of which only the components essential for understanding of the invention are shown.
  • the cells 1 are connected to a plurality of bit lines 4 1 -4 N and a plurality of word lines 5 1 -5 M .
  • the word lines 5 1 -5 M are connected to a row decoder 6; the bit lines 4 1 -4 N are connected to the programming voltage line 33 via a selection transistor 15 1 -15 N which belongs to a column decoder 7.
  • a controlled switch 34 1 -34 N is disposed between each selection transistor 15 1 -15 N and the programming voltage line 33.
  • Each controlled switch 34 1 -34 N receives a control signal S 1 -S N from a pulse generator 37 1 - 37 N which in turn receives at its input a target threshold voltage value V TAR1 -V TARN and a threshold voltage value read V 01 -V ON supplied by a reading circuit 42 1 -42 N .
  • Each reading circuit 42 1 -42 N has an input which is connected to the node 14 1 -14 N present between each selection transistor 15 1 -15 N and the controlled switch 34 1 -34 N .
  • the reading circuits are the same as one another; they are preferably produced as shown in figure 1, and comprise the biasing transistors 17, 25; the current mirror circuit 19; the dummy transistor 26, the reference cell 27 and the operational amplifier 31.
  • each reading circuit 42 1 -42 N reads the present value of the threshold voltage of the cell 1, and supplies it to the pulse generator 37 1 -37 N which also receives the value of the target threshold voltage V TAR1 -V TARN ; when the enabling signal EN is received, the pulse generators 37 1 -37 N then each supply their own pulse S 1 -S N of different duration. Repetition of the reading/ programming cycles then makes it possible to reach the desired threshold value for all the N cells connected to the word line 5 1 , thus permitting simultaneous programming of a plurality
  • Fig. 3 shows a possible implementation of the pulse generator 37 by means of an operational amplifier 44 in a differential amplifier configuration, and a comparator 45; this figure does not show the enabling input for the signal EN.
  • the operational amplifier 44 has the non-inverting input connected to the input 38 through a first resistor 47, and to ground through a second resistor 48, and has the inverting input connected to the input 39 through a third resistor 49, and to the output 51 through a fourth resistor 50.
  • the comparator 45 has the positive input connected to the output 51 of the operational amplifier 44, the negative input receives a ramp signal, and the output forms the output 36 of the pulse generator 37.
  • the signal S at the output of the comparator 45 thus has a high value until the amplitude of the ramp signal is lower than the signal V OP , and switches to the low state as soon as the ramp signal exceeds the signal V OP .
  • the duration of the signal S is proportional to the difference between the threshold voltages V TAR - V o .
  • the advantages which can be obtained by means of the method and the device described are as follows. Firstly, as described above, they permit considerable reduction of the programming times of each memory cell. Additionally, compared with memories which permit programming of a single cell at a time, a considerable saving of time is obtained by means of programming in parallel of a plurality of cells.
  • the device is inherently simple and reliable, and can be used without problems in present flash memories.

Landscapes

  • Read Only Memory (AREA)

Abstract

For each cell (1) to be programmed, the present threshold value (Vo) of the cell is determined; the desired threshold value (VTAR) is acquired; the analog distance between the present threshold value and the desired threshold value is calculated; and a programming pulse (S) is then generated, the duration of which is proportional to the analog distance calculated. The programming and reading cycle is repeated until the desired threshold is reached. By this means a time saving is obtained, owing to the reduction of the number of intermediate reading steps. The method permits programming in parallel and simultaneously of a plurality of cells (1) of a memory array (2) which is connected to a single word line (51) and to different bit lines (41 - 4N), each with a programming pulse (S1 - SN) the duration of which is proportional to the analog distance calculated for the same cell. The programming process is thus very fast, owing to parallel application of the programming and the saving in the intermediate reading cycles.

Description

The present invention relates to a method and a device for analog programming of non-volatile memory cells, in particular flash memory cells.
As is known, analog programming of a memory cell consists of modifying to a desired analogue value the threshold voltage value of the cell (i.e. the minimum voltage to be applied between the gate terminals and the source of the cell itself, in order for the latter to begin to conduct current). Programming is currently carried out in a memory array by connecting the gate terminal of the cell to be programmed to a reference voltage, the drain terminal to a high programming voltage, and the source terminal to ground. Since the programming is a non-reproducible process, it is carried out in multi-level memories by providing a plurality of programming pulses of short duration, and by reading the threshold voltage value reached by the cell at the end of each programming pulse (verify step). In general during each programming pulse, the gate terminal of the cell to be programmed is supplied with a high programming voltage. In general the programming process is preceded by a cell erasing step, such that the cells have a low initial threshold voltage (lower than the minimum analog value to be stored) and each programming pulse gives rise to an increase of the threshold voltage of the cell; when the desired threshold voltage is reached, the programming process is interrupted. Generally speaking therefore, programming is carried out at present by gradually modifying the initial threshold voltage value through short programming pulses, followed by reading the reached level, until the desired level is obtained.
In order to avoid programming the cell excessively, the programming pulses are short, as indicated above, such that when a cell must sustain a large threshold jump, the described process requires a large number of programming/reading cycles, and thus involves a considerable programming time.
The object of the invention is thus to provide a method and a programming device which permit reduction of the programming time of memory cells.
According to the present invention, a method for analog programming of non-volatile memory cells, in particular flash memory cells, is provided, as defined in claim 1.
Furthermore, according to the invention, a device for analog programming of non-volatile memory cells, in particular flash memory cells, is provided, as defined in claim 4.
In order to allow the present invention to be understood, a preferred embodiment is now described, purely by way of non-limiting example, with reference to the attached drawings, in which:
  • figure 1 is a circuit diagram for the device for programming a memory cell;
  • figure 2 is a schematic circuit diagram of the device for programming a memory array; and
  • figure 3 is the circuit diagram of a detail of the present invention.
According to the present method, the present threshold value is determined directly or indirectly for each cell to be programmed; the desired threshold value is acquired; the analog distance between the present threshold value and the desired threshold value is calculated; and a programming pulse is then generated, the duration of which is proportional to the analog distance calculated. Subsequently, the threshold level reached is read and compared once more with the desired threshold value, and further programming pulses can be supplied, the duration of which can be determined on the basis of the distance between the desired threshold value and the threshold value reached, or the pulses can be fixed and short, similarly to known solutions.
Therefore, when a cell is to be programmed with a desired threshold voltage, the value of which is remote from the present value, at least the first programming pulse is much longer than the standard pulse, reducing substantially the total programming time by reducing the number of reading operations and saving the corresponding intermediate times necessary in order to transfer the circuit from the reading condition to the programming condition and vice versa in the various programming/reading cycles.
This process also permits programming in parallel of a plurality of cells which belong to the same line and different columns, each with a programming pulse, the duration of which is proportional to the analog distance between the present threshold value of each cell and the desired threshold value for the same cell. This process requires suitable pulse control circuitry for each column, and involves a programming time for each cycle which is related with the duration of the longest programming pulse from among those planned for the various columns programmed in parallel. In this case therefore, with increased complexity of the control circuitry, a considerable saving of time is obtained altogether by means of parallel application of the programming, and the saving in the reading cycles.
An example of a programming device for a cell which uses a specific circuit for reading the threshold voltage is shown in figure 1, and is described hereinafter. In particular, the reading circuit in figure 1 provides an indirect value of the present threshold voltage of the cell to be programmed, and is described in detail in European patent application 97830172.9 dated 15.4.97 with the title "High-precision analogue reading circuit for memory matrices, in particular flash analog memory matrices", incorporated herein for reference. However the present invention is not limited to this type of reading circuit, although it is advantageously applicable to the latter, and can also be implemented with other reading circuits which directly or indirectly can supply the present threshold voltage value of the cell.
In figure 1, the cell 1 to be programmed has a source terminal 11 which is connected to ground, a gate terminal 12 which is biased to a reading voltage VR, and a drain terminal 13 which is connected to a first node 14 through an NMOS-type selector switch 15. The first node 14 is connected to a second node 16 through a first biasing transistor 17; the second node 16 is in turn connected to a current mirror circuit 19 formed by two PMOS transistors 21, 22; in detail, the PMOS transistor 21 is diode-connected (i.e it has short-circuited drain and gate terminals) and has the drain terminal connected to the node 18, the source terminal connected to the supply line 23 which is set to Vdd, and the gate terminal connected to the gate terminal of the PMOS transistor 22; the latter has the source terminal connected to the supply line 23, and the drain terminal connected to a node 24.
The node 24 is connected through a second biasing transistor 25 also of the NMOS type and a dummy switch 26 which is always maintained closed, to the drain terminal 28 of a reference cell 27, for example a virgin cell, which has the source terminal 29 connected to ground and the gate terminal 30 connected to the output of an operational amplifier 31; the latter has an inverting input which is connected to the node 16, and a non-inverting input which is connected to the node 24.
The node 14 is connected to a programming voltage line 33, which is set to the programming voltage VPD, through a controlled switch 34 which has a control terminal 35 connected to an output 36 of a pulse generator 37. The pulse generator 37 has a first and a second input 38, 39 which receive a target threshold voltage VTAR (which is proportional to the desired threshold voltage) and the output voltage Vo of the operational amplifier 31 (which, as explained hereinafter, is proportional to the present threshold voltage of the cell 1 to be programmed), such as to generate a control pulse S which is supplied to the controlled switch 34, and has a duration proportional to the difference between the target threshold voltage VTAR and the output voltage Vo, and thus between the desired threshold voltage and the present threshold voltage.
A control unit 40 provides the pulse generator 37 with a signal EN which enables and de-enables the pulse generator 37 when the cell 1 is to be programmed and when the programming is completed.
The circuit in figure 1 operates as follows. Initially, the initial value of the output voltage Vo of the operational amplifier 31 is determined, and the target voltage VTAR is acquired; the pulse generator 37 then generates the control pulse S, which causes controlled switch 34 to close and node 14 to be connected to the programming voltage VPD for a time which is proportional to the difference between the desired threshold voltage and the present threshold voltage of the cell 1. At the end of the pulse S, the new value of the output voltage Vo is determined, and on the basis of the latter a further programming and reading cycle is optionally initiated; the programming and reading cycles are then repeated until the desired threshold value is reached.
Reading of the present threshold voltage of the cell 1 through output voltage Vo is carried out as follows. As described in detail in the aforementioned European patent application 97830172.9, the current mirror circuit 19 forces the same currents I1 = I27 into the cell 1 to be programmed and into the reference cell 27; the biasing transistors 17 and 25 maintain the cells 1 and 27 in the linear region, keeping the voltage drop between their drain and source terminals constant; in addition, in a condition of equilibrium, the voltages at the inputs of the operational amplifier 31 (voltages at the nodes 16 and 24) are the same, and, since the biasing transistors 17, 25 receive the same biasing voltage Vs (for example 1.5 V) at the gate terminal, they have the same gate-source drop; consequently, leaving out of consideration the voltage drop across the selector switch 15 and the dummy switch 26, the following is obtained: VDS,1 = VDS,27 i.e. the drain-source voltage is the same in the cell 1 to be programmed and in the reference cell 27.
Furthermore, provided that the cell 1 to be read and the reference cell 27 are equal and manufactured using the same technology, the current I1 which flows through the cell 1 to be programmed and the current I27 which flows through the reference cell 27 are provided by the following, in the first approximation: I1 = K*(W/L)*[(VR - Vth,1)]*VDS,1 I27 = K*(W/L)*[(Vo - Vth,27)]*VDS,27 where Vth,1 and Vth,27 are respectively the threshold voltages of the cell 1 to be programmed and the reference cell 27, K is a constant which is associated with the production process, and W/L is the dimensional ratio (width to length) of the cells.
Since I1 = I27, by equalising (1) and (2), the following is obtained by means of simple calculations: Vo = VR - (Vth,1 - Vth,27) i.e. the output voltage Vo is linearly dependent on the threshold voltage of the cell to be read 2, via the gate biasing voltage VR and the threshold voltage Vth,27 of the reference cell 27.
The presence of the values VR and Vth,27 in (3) does not create problems, since the target voltage VTAR can be calculated by summing the desired threshold value for the cell 1 and values VR and Vth,27. However, this would require accurate knowledge of the threshold voltage Vth,27 of the reference cell 27, which is not always present. In effect, this knowledge is not necessary. In fact for programming and subsequent reading of the threshold voltage of the cell 1, it is possible to use solely the relative value of the threshold voltage of the cell 1 with respect to the threshold voltage of the reference cell 27, i.e. the difference between them which thus becomes the value to be stored. In this case, programming of the cell 1 consists of modifying the threshold of the cell itself such that the output voltage Vo becomes equal to the sum of the value to be stored (desired difference between the thresholds of cells 1 and 27) and the gate biasing voltage VR. In this case, the target voltage VTAR is equal to this sum, and the pulse generator supplies a pulse, the duration of which is proportional to the distance between the desired difference between the thresholds of the cells 1 and 27 (value to be stored) and the present difference, since the term VR is cancelled out.
Figure 2 shows an embodiment which permits programming in parallel of a plurality of cells which belong to different columns. The cells 1 are disposed on lines and in columns in order to form a portion (for example a sector or part of the latter) of a memory array 2 which belongs to a memory 3, of which only the components essential for understanding of the invention are shown.
In detail, the cells 1 are connected to a plurality of bit lines 41-4N and a plurality of word lines 51-5M. The word lines 51-5M are connected to a row decoder 6; the bit lines 41-4N are connected to the programming voltage line 33 via a selection transistor 151-15N which belongs to a column decoder 7. In addition, a controlled switch 341-34N is disposed between each selection transistor 151-15N and the programming voltage line 33.
Each controlled switch 341-34N receives a control signal S1-SN from a pulse generator 371 - 37N which in turn receives at its input a target threshold voltage value VTAR1-VTARN and a threshold voltage value read V01-VON supplied by a reading circuit 421-42N. Each reading circuit 421-42N has an input which is connected to the node 141-14N present between each selection transistor 151-15N and the controlled switch 341-34N. The reading circuits are the same as one another; they are preferably produced as shown in figure 1, and comprise the biasing transistors 17, 25; the current mirror circuit 19; the dummy transistor 26, the reference cell 27 and the operational amplifier 31.
In the diagram in figure 2, it is possible to carry out programming in parallel of all the cells connected to the bit lines 41-4N and to a specific word line, for example the word line 51; in this case, the line decoder 6, which is controlled in a known manner by a logic unit not shown, polarises the word line 51 to the reference voltage VR and maintains the other word lines 52-5M grounded, such that the cells connected to these word lines 52-5M continue to be switched off; each reading circuit 421-42N reads the present value of the threshold voltage of the cell 1, and supplies it to the pulse generator 371-37N which also receives the value of the target threshold voltage VTAR1-VTARN; when the enabling signal EN is received, the pulse generators 371-37N then each supply their own pulse S1-SN of different duration. Repetition of the reading/ programming cycles then makes it possible to reach the desired threshold value for all the N cells connected to the word line 51, thus permitting simultaneous programming of a plurality of cells.
Fig. 3 shows a possible implementation of the pulse generator 37 by means of an operational amplifier 44 in a differential amplifier configuration, and a comparator 45; this figure does not show the enabling input for the signal EN. In detail, the operational amplifier 44 has the non-inverting input connected to the input 38 through a first resistor 47, and to ground through a second resistor 48, and has the inverting input connected to the input 39 through a third resistor 49, and to the output 51 through a fourth resistor 50. The comparator 45 has the positive input connected to the output 51 of the operational amplifier 44, the negative input receives a ramp signal, and the output forms the output 36 of the pulse generator 37.
The resistors 47-50 all have the same resistance R; consequently at the output 51 of the operational amplifier 44, there is a voltage signal VOP = VTAR - Vo which is compared with the ramp signal supplied to the negative input of the comparator 45. The signal S at the output of the comparator 45 thus has a high value until the amplitude of the ramp signal is lower than the signal VOP, and switches to the low state as soon as the ramp signal exceeds the signal VOP. By this means, the duration of the signal S is proportional to the difference between the threshold voltages VTAR - Vo.
The advantages which can be obtained by means of the method and the device described are as follows. Firstly, as described above, they permit considerable reduction of the programming times of each memory cell. Additionally, compared with memories which permit programming of a single cell at a time, a considerable saving of time is obtained by means of programming in parallel of a plurality of cells. The device is inherently simple and reliable, and can be used without problems in present flash memories.
Finally, it will be appreciated that numerous modifications and variants, all of which come within the scope of the inventive concept, can be made to the method and the device described and illustrated here.

Claims (8)

  1. A method for analog programming of a non-volatile memory cell which can store an analog value, comprising the steps of:
    acquiring a desired programming value; and
    detecting a value stored in the memory cell;
    characterised in that it comprises the steps of:
    detecting a difference value which is equal to the difference between said desired programming value and said stored value; and
    generating a programming pulse for said memory cell, which has a duration which is correlated to said difference value.
  2. A method according to claim 1, for a plurality of memory cells connected to a single selection line and to a plurality of biasing lines, characterised in that it comprises the steps of:
    acquiring the desired programming value for each memory cell;
    detecting the value stored in each memory cell;
    calculating the difference value associated with each memory cell, each difference value being equal to the difference between said desired programming value and said stored value for the respective memory cell; and
    generating in parallel a plurality of programming pulses, one for each memory cell, each programming pulse having a duration which is correlated to said difference value associated with said respective cell.
  3. A method according to claim 1 or 2, characterised in that after said generating step, the stored value is determined once more, and if the newly determined stored value differs from said desired programming value, a new programming pulse is generated.
  4. An analog programming device for a non-volatile memory cell which can store an analog value, comprising input means (38) for acquiring a desired programming value and reading means (42) for determining a value stored in said memory cell (1), characterised in that it comprises pulse modulation means (37) determining a difference value equal to the difference between said desired programming value and said stored value, and generating a programming pulse for said memory cell, with a duration correlated to said difference value.
  5. A device according to claim 4 for a memory array (2), comprising a plurality of memory cells (1) connected to a single selection line (51) and to a plurality of biasing lines (41-4N), characterised in that it comprises a plurality of input means (38) each acquiring a desired programming value for a respective memory cell (1); a plurality of reading means (421-42N) each determining the value stored in a respective memory cell; and a plurality of pulse modulation means (37) determining a difference value associated with each memory cell and equal to the difference between said desired programming value and said value stored by the respective memory cell, and generating in parallel a plurality of programming pulses for a respective memory cell, each programming pulse having a duration correlated to said difference value associated with said respective memory cell.
  6. A device according to claim 4 or 5, characterised in that said pulse modulation means (37) comprise a first operational amplifier (44) in a differential configuration, and a comparator (45) which has a first input which is connected to an output (51) of said operational amplifier and a second input which receives a comparative ramp signal.
  7. A device according to any one of claims 4-6, characterised in that it comprises a programming voltage line (33) which is connected to a drain terminal (13) of said memory cell (1) via a controlled switch (34) which has a control terminal (35) connected to said pulse modulation means (37).
  8. A device according to any one of claims 4-7, characterised in that said reading means (42) comprise a current mirror circuit (19) having a first and a second node (16, 24) which supply equal first and second currents to a first terminal (13) of said memory cell (1) and, respectively, to a first terminal (28) of a reference cell (27); and a second operational amplifier (31) which has a first input connected to said first node (16), a second input connected to said second node (24) and an output connected to a control terminal (30) of said reference cell (27) and to an input (39) of said pulse modulation means (37), said first terminal (13) of the memory cell (1) receiving said programming pulse.
EP97830216A 1997-05-09 1997-05-09 Method and device for analog programming of non-volatile memory cells, in particular flash memory cells Expired - Lifetime EP0877386B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP97830216A EP0877386B1 (en) 1997-05-09 1997-05-09 Method and device for analog programming of non-volatile memory cells, in particular flash memory cells
DE69723814T DE69723814D1 (en) 1997-05-09 1997-05-09 Method and device for analog programming of non-volatile memory cells, in particular for flash memory cells
US09/076,013 US6195283B1 (en) 1997-05-09 1998-05-11 Method and device for analog programming of non-volatile memory cells

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP97830216A EP0877386B1 (en) 1997-05-09 1997-05-09 Method and device for analog programming of non-volatile memory cells, in particular flash memory cells

Publications (2)

Publication Number Publication Date
EP0877386A1 true EP0877386A1 (en) 1998-11-11
EP0877386B1 EP0877386B1 (en) 2003-07-30

Family

ID=8230631

Family Applications (1)

Application Number Title Priority Date Filing Date
EP97830216A Expired - Lifetime EP0877386B1 (en) 1997-05-09 1997-05-09 Method and device for analog programming of non-volatile memory cells, in particular flash memory cells

Country Status (3)

Country Link
US (1) US6195283B1 (en)
EP (1) EP0877386B1 (en)
DE (1) DE69723814D1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005073981A1 (en) * 2004-01-21 2005-08-11 Sandisk Corporation Programming non-volatile memory
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7450426B2 (en) 2006-10-10 2008-11-11 Sandisk Corporation Systems utilizing variable program voltage increment values in non-volatile memory program operations
US7474561B2 (en) 2006-10-10 2009-01-06 Sandisk Corporation Variable program voltage increment values in non-volatile memory program operations
US7508715B2 (en) 2007-07-03 2009-03-24 Sandisk Corporation Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7599224B2 (en) 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8000200A (en) * 1999-10-08 2001-04-23 Aplus Flash Technology, Inc. Multiple level flash memory
US6515904B2 (en) 2001-03-21 2003-02-04 Matrix Semiconductor, Inc. Method and system for increasing programming bandwidth in a non-volatile memory device
US6574145B2 (en) * 2001-03-21 2003-06-03 Matrix Semiconductor, Inc. Memory device and method for sensing while programming a non-volatile memory cell
DE602005018738D1 (en) * 2005-03-03 2010-02-25 St Microelectronics Srl A time shift based reference cell emulation memory device
US8300478B2 (en) * 2007-09-19 2012-10-30 Apple Inc. Reducing distortion using joint storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990000801A1 (en) * 1988-07-13 1990-01-25 Information Storage Devices, Inc. High density integrated circuit analog signal recording and playback system
WO1992013350A1 (en) * 1991-01-22 1992-08-06 Information Storage Devices, Inc. Cascading analog record/playback devices
WO1996008823A1 (en) * 1994-09-14 1996-03-21 Information Storage Devices, Inc. Integrated circuit system for analog signal storing and recovery incorporating read while writing voltage program method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3336813B2 (en) * 1995-02-01 2002-10-21 ソニー株式会社 Nonvolatile semiconductor memory device
US5712815A (en) * 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
US5675537A (en) * 1996-08-22 1997-10-07 Advanced Micro Devices, Inc. Erase method for page mode multiple bits-per-cell flash EEPROM
US5801991A (en) * 1997-03-31 1998-09-01 Intel Corporation Deselected word line that floats during MLC programming of a flash memory
US5903487A (en) * 1997-11-25 1999-05-11 Windbond Electronics Corporation Memory device and method of operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990000801A1 (en) * 1988-07-13 1990-01-25 Information Storage Devices, Inc. High density integrated circuit analog signal recording and playback system
WO1992013350A1 (en) * 1991-01-22 1992-08-06 Information Storage Devices, Inc. Cascading analog record/playback devices
WO1996008823A1 (en) * 1994-09-14 1996-03-21 Information Storage Devices, Inc. Integrated circuit system for analog signal storing and recovery incorporating read while writing voltage program method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BLYTH T ET AL: "A NON-VOLATILE ANALOG STORAGE DEVICE USING EEPROM TECHNOLOGY", IEEE INTERNATIONAL SOLID STATE CIRCUITS CONFERENCE, vol. 34, 1 February 1991 (1991-02-01), pages 192 - 193, 315, XP000238309 *
GASTALDI R ET AL: "A 1-MBIT CMOS EPROM WITH ENHANCED VERIFICATION", IEEE JOURNAL OF SOLID-STATE CIRCUITS, NEW YORK, NY, US, vol. 23, no. 5, October 1988 (1988-10-01), pages 1150 - 1156, XP000003880 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005073981A1 (en) * 2004-01-21 2005-08-11 Sandisk Corporation Programming non-volatile memory
US7035146B2 (en) 2004-01-21 2006-04-25 Sandisk Corporation Programming non-volatile memory
EP1881504A2 (en) 2004-01-21 2008-01-23 SanDisk Corporation Programming non-volatile memory
EP1881504A3 (en) * 2004-01-21 2008-05-07 SanDisk Corporation Programming non-volatile memory
CN1926637B (en) * 2004-01-21 2010-08-18 桑迪士克股份有限公司 Non-volatile memory, and programming method
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7450426B2 (en) 2006-10-10 2008-11-11 Sandisk Corporation Systems utilizing variable program voltage increment values in non-volatile memory program operations
US7474561B2 (en) 2006-10-10 2009-01-06 Sandisk Corporation Variable program voltage increment values in non-volatile memory program operations
US7508715B2 (en) 2007-07-03 2009-03-24 Sandisk Corporation Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7599224B2 (en) 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing

Also Published As

Publication number Publication date
DE69723814D1 (en) 2003-09-04
US6195283B1 (en) 2001-02-27
EP0877386B1 (en) 2003-07-30

Similar Documents

Publication Publication Date Title
US6134141A (en) Dynamic write process for high bandwidth multi-bit-per-cell and analog/multi-level non-volatile memories
EP0913832B1 (en) Method for multilevel programming of a nonvolatile memory, and a multilevel nonvolatile memory
KR0157342B1 (en) Voltage sensing method of nonvolatile semiconductor memory
US7532529B2 (en) Apparatus and methods for multi-level sensing in a memory array
US6009040A (en) Apparatus and methods for controlling sensing time in a memory device
US6621745B1 (en) Row decoder circuit for use in programming a memory device
KR101355225B1 (en) Bit symbol recognition method and structure for multiple bit storage in non-volatile memories
US6091642A (en) Method for controlled erasing memory devices, in particular analog and multi-level flash-EEPROM devices
JP2000019200A (en) Potential detecting circuit
KR20010082518A (en) Nonvolatile semiconductor memory device
KR20000035375A (en) Nonvolatile semiconductor storage device and data writing method thereof
EP0877386B1 (en) Method and device for analog programming of non-volatile memory cells, in particular flash memory cells
US6154390A (en) Sensing apparatus and method for fetching multi-level cell data
US20020015345A1 (en) Reading device and method for integrated circuit memory
US6069822A (en) Method for parallel programming of nonvolatile memory devices, in particular flash memories and EEPROMS
KR19990057222A (en) Word line voltage generation circuit of semiconductor memory device
EP0833347B1 (en) Programmable reference voltage source, particulary for analog memories
US6163483A (en) Circuit for parallel programming nonvolatile memory cells, with adjustable programming speed
EP1249841B1 (en) Reading circuit and method for a multilevel non volatile memory
US7706193B2 (en) Voltage regulator for the programming circuit of a memory cell
JP3591849B2 (en) Storage device and method of operating the storage device
JP2000251480A (en) Method for reading-out multi-level non-volatile memory and multi-level non-volatile memory
KR100316522B1 (en) Current limiting sensing circuit for autoverify programing a nonvolatile memory
EP1473732A1 (en) Apparatus and method of multi-level sensing in a memory array
KR100245415B1 (en) Circuit of generating incremetal step in pulse and non volatile semiconductor memory device utilizing it

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB IT

17P Request for examination filed

Effective date: 19990503

AKX Designation fees paid

Free format text: DE FR GB IT

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Designated state(s): DE FR GB IT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20030730

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 69723814

Country of ref document: DE

Date of ref document: 20030904

Kind code of ref document: P

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20031031

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20040504

EN Fr: translation not filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: IT

Payment date: 20060531

Year of fee payment: 10

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20080424

Year of fee payment: 12

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20070509

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20090509

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090509