(19) |
|
|
(11) |
EP 0 858 661 B1 |
(12) |
EUROPEAN PATENT SPECIFICATION |
(45) |
Mention of the grant of the patent: |
|
15.12.1999 Bulletin 1999/50 |
(22) |
Date of filing: 19.07.1996 |
|
(51) |
International Patent Classification (IPC)6: G11C 16/06 |
(86) |
International application number: |
|
PCT/US9612/045 |
(87) |
International publication number: |
|
WO 9716/831 (09.05.1997 Gazette 1997/20) |
|
(54) |
PROGRAM ALGORITHM FOR LOW VOLTAGE SINGLE POWER SUPPLY FLASH MEMORIES
ALGORITHMUS ZUR PROGAMMIERUNG EINES FLASH-SPEICHERS MIT EINZIGER NIEDERSPANNUNGSNETZVERSORGUNG
ALGORITHME DE PROGRAMMATION POUR MEMOIRES FLASH A ALIMENTATION EN PUISSANCE UNIQUE
A FAIBLE TENSION
|
(84) |
Designated Contracting States: |
|
DE FR GB NL |
(30) |
Priority: |
01.11.1995 US 551705
|
(43) |
Date of publication of application: |
|
19.08.1998 Bulletin 1998/34 |
(73) |
Proprietor: ADVANCED MICRO DEVICES INC. |
|
Sunnyvale,
California 94088-3453 (US) |
|
(72) |
Inventors: |
|
- KUO, Tiao, Hua
San Jose, CA 95129 (US)
- CHANG, Chung, K.
Santa Clara, CA 95051 (US)
- CHEN, Johnny
Cupertino, CA 95014 (US)
- YU, James, C., Y.
San Jose, CA 95120 (US)
|
(74) |
Representative: Sanders, Peter Colin Christopher et al |
|
BROOKES & MARTIN
High Holborn House
52/54 High Holborn London WC1V 6SE London WC1V 6SE (GB) |
(56) |
References cited: :
EP-A- 0 459 794 US-A- 5 430 674
|
WO-A-95/07534
|
|
|
|
|
|
|
|
|
Note: Within nine months from the publication of the mention of the grant of the European
patent, any person may give notice to the European Patent Office of opposition to
the European patent
granted. Notice of opposition shall be filed in a written reasoned statement. It shall
not be deemed to
have been filed until the opposition fee has been paid. (Art. 99(1) European Patent
Convention).
|
BACKGROUND OF THE INVENTION
Field of Invention
[0001] The present invention pertains to the field of flash memories. More particularly,
this invention relates to a program algorithm for low voltage single power supply
flash memories.
Art Background
[0002] Flash memories are commonly employed in a wide variety of computer systems to provide
non-volatile information storage. Prior flash memories typically include program circuitry
for programming information into the flash memory cells as well as erase circuitry
for erasing the memory cells. However, the voltage supply levels required by such
program and erase circuitry differs from the voltage supply levels that are typically
available from a computer system power supply.
[0003] Some prior flash memories require multiple voltage supplies to accommodate the program
and erase circuitry. For example, one prior flash memory requires a VCC supply voltage
and a separate VPP supply voltage for the program circuitry. Unfortunately, such a
requirement of dual voltage supplies typically increases the complexity of power system
design for computer systems that employ such dual supply flash memories and increases
the overall cost of such systems.
[0004] On the other hand, single power supply flash memories commonly contain specialized
circuitry that generates the appropriate voltage levels and electrical current levels
required to program and erase the individual flash memory cells. For example, such
flash memories typically include charge pump circuitry that converts a single electrical
supply voltage into the appropriate voltage level required to drive the inputs to
the flash memory cells during programming.
[0005] More recent computer systems, such as portable computers, employ integrated circuits
and other devices that function with relatively low voltage supply (VCC) levels in
comparison to earlier systems. For example, prior notebook computer systems that employed
a 5v VCC supply are now evolving toward 3v or lower VCC supplies.
[0006] Unfortunately, such low levels of electrical supply voltage impose a practical limit
on the amount of electrical programming current that can be generated by charge pump
circuitry on the flash memory. Such a limit on available programming current may reduce
the overall speed of such flash memories by limiting the number of flash cells that
can be programmed simultaneously.
[0007] Theoretically, a larger and more complex implementation of charge pump circuitry
would provide the necessary electrical current required to program entire bytes or
words of flash memory cells simultaneously. However, such larger and more complex
charge pump circuitry typically consumes larger areas of an integrated circuit die.
Such large amounts of integrated circuit die space dedicated to a charge pump typically
reduces the available die space available for flash memory cells and associated access
circuitry which thereby limits the overall storage capacity of such a flash memory.
On the other hand, such large amounts of die space may require a significant increase
in the overall size of the integrated circuit die which increases manufacturing costs.
[0008] US-A-5,430,674 describes a programming method for a memory having an array of memory
cells wherein programming circuitry in the memory is sub-divided into a set of groups
and wherein the groups are switched such that the number of simultaneously programmed
cells in the cell array does not exceed a predetermined number while using maximum
available programming current.
[0009] According to the present invention such a method is characterised by detecting the
number of logic zeros to be programmed into the cell array by each group, and controlling
the switching between the groups according to the detected number of zeros.
[0010] Preferably, the switching between the groups is controlled such that groups for which
the total number of detected zeros does not exceed the said predetermined number of
cells are simultaneously activated, while groups for which the total number of detected
zeros exceeds the predetermined number are sequentially activated.
[0011] Accordingly, we shall describe a new program algorithm for a single power supply
flash memory, the algorithm efficiently distributing the available programming current
to only the flash memory cells that require programming.
[0012] We shall describe a programming algorithm that enables the fastest programming speeds
given the limits on available programming current.
[0013] In particular, we shall describe a program algorithm for a low voltage single power
supply flash memory that operates in both bytes mode and word mode. The data input
buffer and programming circuitry in the flash memory is subdivided into a set of separately
controllable groups. The algorithm detects a number of logic zeros to be programmed
into a flash cell array by each group. The algorithm switches among the groups such
that a number of simultaneously programmed cells in the flash cell array does not
exceed a predetermined number such that maximum current capacity is used and such
that maximum current capability is used for programming. The predetermined number
is selected to prevent the overtaxing of charge pump circuitry in the flash memory
while obtaining maximum programming speed.
[0014] In the accompanying drawings, by way of example only:
Fig. 1 illustrates a single power supply flash memory including a program circuit
and a flash cell array;
Fig. 2 illustrates a sequence in which the program control state machine selects the
programming groups 0-3 when the word detector detects 5 or fewer zeros to be programmed
in the flash cell array;
Fig. 3 illustrates a sequence in which the program control state machine selects the
groups 0-3 when the low byte detector and the high byte detector each detect 5 or
fewer zeros for programming wherein the combination of zeros and the high and the
low bytes is greater than 5;
Fig. 4 illustrates a sequence in which the program control state machine selects the
groups 0-3 when the low byte detector detects 5 or fewer zeros to be programmed and
the high byte detector detects more than 5 zeros to be programmed into the flash cell
array;
Fig. 5 illustrates a sequence in which the program control state machine selects the
groups 0-3 when the low byte detector detects more than 5 zeros to be programmed while
the high byte detector detects 5 or fewer zeros to be programmed into the flash cell
array;
Fig. 6 illustrates a sequence in which the program control state machine selects the
groups 0-3 when the low byte detector detects more than 5 zeros to be programmed while
the high byte detector also detects more than 5 zeros to be programmed into the flash
cell array;
Fig. 7 illustrates the states of the program control state machine for both byte mode
and word mode programming on the flash cell array;
Fig. 8 is a schematic of the word detector in one embodiment;
Fig. 9 is a schematic diagram of the low byte detector in one embodiment;
Fig.10 is a schematic diagram of the high byte detector in one embodiment;
Fig. 11 is a schematic diagram of the program control state machine in one embodiment.
DETAILED DESCRIPTION
[0015] Fig. 1 illustrates a single power supply flash memory 200 including a program circuit
100 and a flash cell array 120. The program circuit 100 implements a program algorithm
for the single power supply flash memory 200 that enables operation at low VCC supply
levels.
[0016] The program circuit 100 includes a program control state machine 10, a low byte detector
20, a high byte detector 21 and a word detector 22. The program circuit 100 also includes
set of data input buffer circuits which are referred to as Dinbuf0 through Dinbuf15
(Dinbuf0-15). The Dinbuf0-15 circuits are coupled to a corresponding set of input/output
pads via a set of input/output lines which are referred to as lines I/O0 through I/O15
(I/O0-15). The Dinbuf0-15 circuits drive the bit lines of the flash cell array 120.
[0017] For one embodiment, the flash cell array 120 is 16 bits wide and is accessible in
both byte and word modes. Each 16 bit word of the flash cell array coupled to the
Dinbuf0-15 circuits is subdivided into four groups referred to as group0 throughout
group3 (group0-3). The group0 includes the data input buffers Dinbuf0-3, the group1
includes Dinbuf4-7, the group2 includes Dinbuf8-11, and the group3 includes Dinbuf12-15.
[0018] The group0 and the group1 data input buffers are combined into a low byte of a programming
word or a programming byte in the byte mode for the flash cell array 120 while the
group2 and the group3 input buffers are combined into a high byte of a programming
word. An entire programming word or a programming byte in the byte mode for the flash
cell array 120 includes all four data input buffer groups, group0-3.
[0019] The program control state machine 10 selects one or more of the data input buffer
groups0-3 to drive the corresponding bit lines of the flash cell array 120 during
programming operations. The program control state machine 10 switches among the groups0-3
via a set of control signals S0PGM through S3PGM. The program control state machine
10 switches as many of the data input buffer groups0-3 as is required to program an
entire byte or word according to the content of the programming data targeted for
the flash cell array 120 and according to whether the program circuit 100 is operating
in a byte mode or a word mode.
[0020] Each Dinbuf0-15 contains a program circuit that drives a corresponding set of bit
lines in the flash cell array 120. The program control state machine 10 activates
the groups0-3 in a sequence that prevents the programming circuits in the Dinbufs
0-15 from overtaxing the electrical current output of drain pump circuitry (not shown)
that drives the flash cell array 120 during programming.
[0021] For one embodiment, the drain pump circuitry for the flash memory 200 is capable
of supplying approximately 2.5 milliamps of programming current at 5v from a voltage
supply VCC that varies between 2.7v and 3.6v. The 2.5 milliamps is sufficient to drive
the drains of up to 5 flash memory cells during a program operation.
[0022] The word lines and the Y pass gates of the flash cell array 120 are not switched
until after the program control state machine 10 completes the necessary switching
among the groups0-3 to complete a programming operation. No program verify operations
in the flash memory 200 occur between switching of the groups0-3 in order to save
programming time. Programming verification operations are performed after completion
of a whole word or whole byte program operation.
[0023] If a program verify operation fails then the whole word or byte is reprogrammed according
to the same program process. During such reprogramming only failed program cells are
programmed on subsequent program cycles. This prevents overprogramming of the flash
cells that were correctly programmed during the initial program cycle.
[0024] The low byte detector 20, the high byte detector 21 and the word detector 22 generate
a set of control signals X4BL, X4BH, and X4BW,respectively. The program control state
machine 10 uses the control signals X4BL, X4BH, and X4BW, along with other information
to determine the appropriate switching sequence for the groups 0-3.
[0025] The low byte detector 20 receives a set of signals Din(0:7) that indicate the actual
logic "0" states to be programmed into the low byte of the flash cell array 120. If
the low byte detector 20 detects 5 or fewer zeros in the Din(0:7) data then the control
signal X4BL is asserted high. If the low byte detector 20 detects more than 5 zeros
in the Din(0:7) data then the control signal X4BL is asserted low.
[0026] Similarly, the high byte detector 21 receives a set of signals Din(8:15) that indicate
the actual logic "0" states to be programmed into the high byte of the flash cell
array 120. The high byte detector 21 asserts the control signal X4BH high if 5 or
fewer zeros are detected in the Din(8:15) data and asserts the control signal X4BH
low otherwise.
[0027] The word detector 22 receives the signals Din(0:15) and detects the actual logic
"0" states to be programmed into a word of the flash cell array 120. The word detector
22 asserts the control signal x4BW high if 5 or fewer zeros are detected in the Din(0:15)
data and asserts the control signal X4BW low otherwise.
[0028] The program control state machine 10 uses the control signals X4BL, X4BH and X4BW,
along with a BYTE signal, and an HBYTE signal to determine the appropriate sequence
for allowing groups0-3 to program the flash cell array 120. The program control state
machine 10 is clocked by a programming clock (PGMCLK). The BYTE signal indicates whether
the flash memory 200 is being accessed in byte or word mode. The HBYTE signal indicates
whether the high byte or the low byte in the flash cell array 120 is being programmed
if the byte mode is indicated.
[0029] The program control state machine 10 generates a set of programming control signals
for the groups0-3. The programming control signals include an SOPGM signal that selects
the group0, an S1PGM signal that selects the group1, an S2PGM signal that selects
the group2, and an S3PGM control signal that selects the group3. The S0-S3PGM control
signals also determine when the program control state machine 10 terminates a program
process after completion of a program operation on the flash cell array 120.
[0030] Fig. 2 illustrates a sequence for word mode programming in which the program control
state machine 10 selects the groups 0-3 when the word detector 22 detects 5 or fewer
zeros to be programmed in the flash cell array 120. In this programming sequence,
the S0PGM-S3PGM signals are activated simultaneously between times t1 and t2 to enable
simultaneous programming of the flash cell array 120 by the groups 0-3.
[0031] Fig. 3 illustrates a sequence for word mode programming in which the program control
state machine 10 selects the groups 0-3 when the low byte detector 20 detects 5 or
fewer zeros for programming and the high byte detector 21 detects 5 or fewer zeros
for programming wherein the combination of zeros in the high and the low byte is greater
than 5. In this programming sequence, the program control state machine activates
the S0PGM and S1PGM control signals between times t3 and t4 to enable group 0 and
1 programming on the flash cell array 120. Between times t4 and t5, the program control
state machine 10 activates the S2PGM and S3PGM control signals to activate programming
by the groups 2 and 3.
[0032] Fig. 4 illustrates a sequence for word mode programming in which the program control
state machine 10 selects the groups 0-3 when the low byte detector 20 detects 5 or
fewer zeros to be programmed and the high byte detector 21 detects more than 5 zeros
to be programmed into the flash cell array 120. In this sequence, the program control
state machine 10 activates groups0 and 1 between times t6 and t7, followed by group2
between times t7 and t8, and followed by group3 between times t8 and t9.
[0033] Fig. 5 illustrates a sequence for word mode programming in which the program control
state machine 10 selects the groups 0-3 when the low byte detector 20 detects more
than 5 zeros to be programmed while the high byte detector 21 detects 5 or fewer zeros
to be programmed into the flash cell array 120. In this sequence, the program control
state machine 10 activates the group 0 between times t10 and t11, followed by the
group 1 between times t11 and t12. After completion of the group 0 and 1 programming,
the program control state machine 10 activates groups2 and 3 simultaneously between
times t12 and t13 to complete the programming sequence.
[0034] Fig. 6 illustrates a sequence for word mode programming in which the program control
state machine 10 selects the groups 0-3 when the low byte detector 20 detects more
than 5 zeros to be programmed while the high byte detector 21 also detects more than
5 zeros to be programmed into the flash cell array 120. In this case, the program
control state machine 10 sequentially activates the groups 0-3 in separate intervals.
The program control state machine 10 activates group0 between times t14 and t15, group1
between times t15 and t16, group2 between times t16 and t17, and group3 between times
t17 and t18.
[0035] Fig. 7 illustrates the states of the program control state machine 10 for both byte
mode and word mode programming on the flash cell array 120. The low byte det. column
indicates the state of the X4BL control signal, the high byte det. column indicates
the state of the X4BH control signal, and the word det. column indicates the state
of the X4BW control signal. Each programming sequence may contain up to 4 program
subpulses referred to as the first PGM subpulse through the fourth PGM subpulse. During
each subpulse the states of the program control state machine 10 are indicated by
states SO through S3 which correspond to the control signals SOPGM through S3PGM.
[0036] As discussed above with respect to Figs. 2-6, the word mode of the program control
state machine 10 yields 5 possible programming sequences. In the byte mode, high byte
programming and low byte programming each include two possible programming sequences
as indicated in Fig. 7.
[0037] Fig. 8 is a schematic of the word detector 22 in one embodiment. The word detector
22 includes an analog summing circuit that determines the numbers of zeros indicated
on the DIN(15:0) signal lines.
[0038] Figs. 9 and 10 are schematic diagrams of the low byte detector 20 and the high byte
detector 21 respectively. The low byte detector 20 and the high byte detector 21 each
contain an analog summing circuit which determines the number of zeros in the corresponding
input data lines DIN(7:0) or DIN(15:8).
[0039] Fig. 11 is a schematic diagram of the program control state machine 10 in one embodiment.
The states S0 through S3 indicate the next state for the program control state machine.
[0040] The foregoing detailed description of the present invention is provided for the purposes
of illustration and is not intended to be exhaustive or to limit the invention to
the precise embodiment disclosed. Accordingly, the scope of the present invention
is defined by the appended claims.
1. A programming method for a memory (200) including an array of memory cells (120),
the method comprising sub-dividing programming circuitry (100) in the memory into
a set of groups, and switching between the groups such that the number of simultaneously
programmed cells in the cell array (120) does not exceed a predetermined number while
using maximum available programming current, characterised by detecting the number
of logic zeros to be programmed into the cell array by each group, and controlling
the switching between the groups according to the detected number of zeros.
2. A method according to claim 1 wherein the switching between the groups is controlled
such that groups for which the total number of detected zeros does not exceed the
said predetermined number of cells are simultaneously activated, while groups for
which the total number of detected zeros exceeds the predetermined number are sequentially
activated.
3. A method according to claim 1 or claim 2, wherein the number of logic zeros is detected
in a program byte (20, 21) targeted for the cell array.
4. A method according to claim 1, wherein the program byte comprises a high byte of the
cell array.
5. A method according to claim 3, wherein the program byte comprises a low byte of the
cell array.
6. A method according to claim 1 or claim 2, wherein the number of logic zeros is detected
in a program word targeted for the cell array.
7. A method according to claim 1, wherein the memory (200) is a low voltage single power
supply flash memory.
8. A memory (200) comprising programming circuitry (100) arranged into a set of separately
controllable groups (20, 21), and switching circuitry (10) that switches among the
groups such that a number of simultaneously programmed cells in a cell array (120)
of the memory does not exceed a predetermined number while using maximum available
programming current, characterised by detection circuitry (20, 21, 22) for detecting
the number of logic zeros to be programmed into the cell array by each group, and
control means (10) for controlling the switching sequence according to the detected
number of zeros.
9. A memory according to claim 8 wherein the control means (10) simultaneously activates
groups for which the total number of detected zeros does not exceed the said predetermined
number of cells and sequentially activates groups for which the total number of zeros
exceeds the said predetermined number.
10. The memory of claim 8 or claim 9, wherein the control means (10) comprises a state
machine.
11. The memory of claim 10, wherein the detection circuitry (20, 21, 22) determines a
number of logic zeros contained in a program byte targeted for the cell array.
12. The memory of claim 11, wherein the program byte comprises a high byte of the cell
array.
13. The memory of claim 11, wherein the program byte compnses a low byte of the cell array.
14. The memory of claim 8 or claim 9, wherein the detection circuitry (20, 21, 22) determines
a number of logic zeros contained in a program word targeted for the cell array.
15. The memory of claim 8 or claim 9, wherein the cell array (120) comprises a flash cell
array for a low voltage single power supply flash memory.
1. Programmierverfahren für einen Speicher (200) mit einem Speicherzellenarray (120),
wobei das Verfahren eine Programmierschaltung (100) im Speicher zur Unterteilung in
einen Satz Gruppen und derartiges Umschalten zwischen den Gruppen umfaßt, daß die
Anzahl gleichzeitig programmierter Zellen in dem Zellenarray (120) eine vorbestimmte
Anzahl nicht übersteigt, wenn der maximal zur Verfügung stehenden Programmierstrom
benutzt wird,
gekennzeichnet durch
Detektieren der Anzahl an von jeder Gruppe in das Zellenarry zu programmierenden logischen
Nullen und Steuern der Umschaltung zwischen den Gruppen gemäß der detektierten Anzahl
an Nullen.
2. Verfahren nach Anspruch 1, wobei das Umschalten zwischen den Gruppen derart gesteuert
wird, daß Gruppen, bei denen die Gesamtzahl an detektierten Nullen die vorbestimmte
Anzahl an Zellen nicht übersteigt, gleichzeitig aktiviert werden, während Gruppen,
bei denen die Gesamtzahl der detektierten Nullen die vorbestimmte Anzahl übersteigt,
sequentiell aktiviert werden.
3. Verfahren nach Anspruch 1 oder 2, wobei die Anzahl an logischen Nullen in einem für
das Zellenarray markierten Programmbyte (20, 21) detektiert wird.
4. Verfahren nach Anspruch 3, wobei das Programmbyte ein Hoch-byte-Zellenarray aufweist.
5. Verfahren nach Anspruch 3, wobei das Programmbyte ein Niedrigbyte-Zellenarray aufweist.
6. Verfahren nach Anspruch 1 oder 2, wobei die Anzahl an logischen Nullen in einem für
das Zellenarray markierten Programmwort detektiert wird.
7. Verfahren nach Anspruch 1, wobei es sich bei dem Speicher (200) um einen Niederspannungs-Einzelenergieversorgungs-Flash-Speicher
handelt.
8. Speicher (200) mit einer in einem Satz separat steuerbarer Gruppen (20, 21) angeordneten
Programmierschaltung (100) und einer Umschaltschaltung (10) zum Umschalten zwischen
den Gruppen, so daß eine Anzahl gleichzeitig programmierter Zellen in einem Zellenarray
(120) des Speichers eine vorbestimmte Anzahl nicht übersteigt, wenn der maximal verfügbare
Programmierstrom benutzt wird,
gekennzeichnet durch
eine Detektierschaltung (20, 21, 22) zum Detektieren der Anzahl an durch jede Gruppe
in das Zellenarray zu programmierenden logischen Nullen und eine Steuervorrichtung
(10) zum Steuern der Umschaltsequenz gemäß der detektierten Anzahl an Nullen.
9. Speicher nach Anspruch 8, wobei die Steuervorrichtung (10) Gruppen, bei denen die
Gesamtzahl der detektierten Nullen die vorbestimmte Anzahl an Zellen nicht übersteigt,
gleichzeitig aktiviert und Gruppen, bei denen die Gesamtzahl an Nullen die vorbestimmte
Anzahl übersteigt, sequentiell aktiviert.
10. Speicher nach Anspruch 8 oder 9, wobei die Steuervorrichtung (10) eine Zustandsmaschine
aufweist.
11. Speicher nach Anspruch 10, wobei die Detektierschaltung (20, 21, 22) eine Anzahl an
in einem für das Zellenarray markierten Programmbyte enthaltenen logischen Nullen
bestimmt.
12. Speicher nach Anspruch 11, wobei das Programmbyte ein Hoch-byte-Zellenarray aufweist.
13. Speicher nach Anspruch 11, wobei das Programmbyte ein Niedrigbyte-Zellenarray aufweist.
14. Speicher nach Anspruch 8 oder 9, wobei die Detektierschaltung (20, 21, 22) eine Anzahl
an in einem für das Zellenarray markierten Programmwort enthaltenen logischen Nullen
bestimmt.
15. Speicher nach Anspruch 8 oder 9, wobei das Zellenarray (120) ein Flashzellenarray
für einen Niederspannungs-Einzelenergieversorungs-Flash-Speicher aufweist.
1. Procédé de programmation pour une mémoire (200) comportant un réseau de cellules de
mémoire (120), le procédé consistant à subdiviser une circuiterie de programmation
(100) de la mémoire en un ensemble de groupes, et à commuter entre les groupes de
telle sorte que le nombre de cellules programmées simultanément dans le réseau de
cellules (120) ne dépasse pas un nombre prédéterminé tout en utilisant un courant
de programmation maximal disponible, caractérisé par le fait de détecter le nombre
de zéros logiques à programmer dans le réseau de cellules par chaque groupe, et de
commander la commutation entre les groupes selon le nombre de zéros détectés.
2. Procédé selon la revendication 1, dans lequel la commutation entre les groupes est
commandée de telle sorte que les groupes pour lesquels le nombre total de zéros détectés
ne dépasse pas ledit nombre prédéterminé de cellules sont simultanément activés, tandis
que les groupes pour lesquels le nombre total de zéros détectés dépasse le nombre
prédéterminé sont activés séquentiellement.
3. Procédé selon la revendication 1 ou la revendication 2, dans lequel le nombre de zéros
logiques est détecté dans un multiplet de programme (20, 21) généré pour le réseau
de cellules.
4. Procédé selon la revendication 3, dans lequel le multiplet de programme comprend un
multiplet haut du réseau de cellules.
5. Procédé selon la revendication 3, dans lequel le multiplet de programme comprend un
multiplet bas du réseau de cellules.
6. Procédé selon la revendication 1 ou la revendication 2, dans lequel le nombre de zéros
logiques est détecté dans un mot de programme ciblé pour le réseau de cellules.
7. Procédé selon la revendication 1, dans le quel la mémoire (200) est une mémoire flash
à alimentation en puissance unique à faible tension.
8. Mémoire (200) comprenant une circuiterie de programmation (100) agencée en un ensemble
de groupes commandables séparément (20,21), et une circuiterie de commutation (10)
qui commute entre les groupes de telle sorte que le nombre de cellules programmées
simultanément du réseau de cellules (120) de la mémoire ne dépasse pas un nombre prédéterminé
tout en utilisant un courant de programmation maximal disponible, caractérisé par
la circuiterie de détection (20, 21, 22) servant à détecter le nombre de zéros logiques
à programmer dans le réseau de cellules par chaque groupe, et des moyens de commande
(10) pour commander la séquence de commutation selon le nombre de zéros détectés.
9. Mémoire selon la revendication 8 dans lequel les moyens de commande (10) activent
simultanément les groupes pour lesquels le nombre total de zéros détectés ne dépasse
pas ledit nombre prédéterminé de cellules et activent séquentiellement les groupes
pour lesquels le nombre total de zéros dépasse ledit nombre prédéterminé.
10. Mémoire selon la revendication 8 ou la revendication 9, dans laquelle les moyens de
commande (10) comprennent une machine d'état.
11. Mémoire selon la revendication 10, dans laquelle la circuiterie de détection (20,
21, 22) détermine un nombre de zéros logiques contenus dans un multiplet de programme
généré pour le réseau de cellules.
12. Mémoire selon la revendication 11, dans laquelle le multiplet de programme comprend
un multiplet haut du réseau de cellules.
13. Mémoire selon la revendication 11, dans laquelle le multiplet de programme comprend
un multiplet bas du réseau de cellules.
14. Mémoire selon la revendication 8 ou la revendication 9, dans laquelle la circuiterie
de détection (20, 21, 22) détermine un nombre de zéros logiques contenus dans un mot
de programme ciblé pour le réseau de cellules.
15. Mémoire selon la revendication 8 ou la revendication 9, dans laquelle le réseau de
cellules (120) comprend un réseau de cellules flash pour une mémoire flash d'alimentation
en puissance à faible tension.